@charset "UTF-8";

/* --- 共通設定 --- */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  line-height: 1.15;
  -webkit-text-size-adjust: 100%;
  /* 1920pxで16pxになる設定 */
  font-size: 1.111111vw; 
}

h1 {
  color: #565656;
  font-family: "Shippori Mincho B1", serif;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 2px;
}

h2, h3, p, a, span, li, th, td {
  color: #565656;
  font-family: "Noto Serif JP", serif;
  line-height: 1.6;
  letter-spacing: 2px;
}

/* --- 各要素の書き換え（px ÷ 16 = rem） --- */
body {
  margin: 0;
}

li {
  list-style: none;
}

a {
  color: #000;
  text-decoration: none;
}

a:hover {
  opacity: .8;
}

/* --- コンテナ設定 --- */
.w-container {
  width: 96%;
  margin-inline: 2%;
}

img {
  max-width: 100%; /* width: 100%よりもmax-widthの方が安全です */
  height: auto;
  border-style: none;
}

/* 消してる要素 */
.header {
  display: none;
}

.sp-br {
  display: none;
}

/* フェードアップ */
.fade-up {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 1.0s ease-out, transform 1.0s ease-out;
}

.fade-up.is-show {
  opacity: 1;
  transform: translateY(0);
}

/* ヘッダー */
#header {
  width: 100%;
  height: min(11vw, 110px);
  position: fixed;
  top: 0;
  left: 0;
  z-index: 100;
}

.header-container {
  padding-left: min(8vw, 80px);
  padding-right: min(8vw, 80px);
}

.header-box {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.header-logo {
  width: min(37.4vw, 374px);
  min-width: 160px;
  height: auto;
  margin-top: min(0.9vw, 9px);
}

.header-link {
  display: flex;
  align-items: center;
  gap: min(1.5vw, 15px);
  margin-top: min(0.9vw, 9px);
}

.header-tel a {
  display: inline-block;
  color: #349CA0;
  font-size: min(1.8vw, 18px);
  background-color: #fff;
  padding: min(2vw, 20px) min(3.5vw, 35px);
  border: 2px solid #349CA0;
  border-radius: 50px;
  white-space: nowrap;
  text-decoration: none;
}

.header-tel a span {
  color: #349CA0;
}

.hamburger-btn {
  width: min(7vw, 70px);
  min-width: 44px;
  height: min(7vw, 70px);
  min-height: 44px;
  background-color: #349CA0;
  position: relative;
  cursor: pointer;
  z-index: 100;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.hamburger-btn span {
  display: block;
  width: 50%;
  height: 2px;
  background-color: #fff;
  transition: all .4s;
  position: absolute;
}

.hamburger-btn span:nth-child(1) { transform: translateY(-8px); }
.hamburger-btn span:nth-child(2) { opacity: 1; }
.hamburger-btn span:nth-child(3) { transform: translateY(8px); }

.hamburger-btn.active span:nth-child(1) { transform: rotate(45deg) translateY(0); }
.hamburger-btn.active span:nth-child(2) { opacity: 0; }
.hamburger-btn.active span:nth-child(3) { transform: rotate(-45deg) translateY(0); }

.header-nav {
  position: fixed;
  top: 0;
  right: -100%; 
  width: 33.3%;
  min-width: 300px;
  height: 100vh;
  background-color: #349CA0;
  z-index: 90;
  transition: transform 0.4s ease;
  display: flex;
  justify-content: center;
  align-items: center;
  transform: translateX(100%);
}

.header-nav.active {
  transform: translateX(0);
  right: 0;
}

.header-nav nav {
  width: 100%;
  padding-left: min(5.33vw, 80px);
  padding-right: min(5.33vw, 80px);
}

.header-nav ul {
  display: flex;
  flex-direction: column;
  padding: 0;
  margin: 0;
  list-style: none;
}

.header-nav ul li {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px dashed rgba(255, 255, 255);
}

.header-nav ul li a {
  display: block;
  color: #fff;
  padding: min(1.33vw, 20px) 0;
  font-size: min(1.2vw, 18px);
}

.header-nav ul li img {
  width: min(4.3vw, 43px);
  height: auto;
}

/* トップ */
.main-v {
  width: 100%;
  height: 100vh;
  position: relative;
  overflow: hidden;
}

.main-v-container {
  width: 100%;
  height: 100%;
}

.slide {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  opacity: 0;
  animation: slideShow 15s infinite;
}

.slide1 { background-image: url('../image/top-back1.png'); animation-delay: 0s; }
.slide2 { background-image: url('../image/top-back2.png'); animation-delay: 5s; }
.slide3 { background-image: url('../image/top-back3.png'); animation-delay: 10s; }

@media screen and (max-width: 768px) {
  .slide1 { background-image: url('../image/sp-img1.png'); }
  .slide2 { background-image: url('../image/sp-img2.png'); }
  .slide3 { background-image: url('../image/sp-img3.png'); }
}

@keyframes slideShow {
  0% { opacity: 0; }
  10% { opacity: 1; }
  33% { opacity: 1; }
  43% { opacity: 0; }
  100% { opacity: 0; }
}

.main-v-content {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  text-align: center;
  z-index: 10;
}

.main-v-content h1 {
  color: #000;
  text-shadow: 
    2px 2px 4px #fff,
   -2px -2px 4px #fff,
    2px -2px 4px #fff,
   -2px 2px 4px #fff;
}

.main-v-content h1 span {
  display: block;
  white-space: nowrap;
}

.main-v-content h1 .line1 {
  font-family: "Share", sans-serif;
  font-size: min(4.36vw, 48px);
}

.main-v-content h1 .line2 {
  font-size: min(5.81vw, 64px);
}

.p1-a {
  background-color: #349CA0;
  position: relative;
  z-index: 1;
  width: 100%;
}

.p1-a::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: min(5.71vw, 80px);
  height: 100%;
  background-color: #357072;
  z-index: -1;
}

.p1-a-container {
  max-width: min(91.43vw, 1280px);
  padding: min(2.86vw, 40px) 0;
  margin: 0 auto;
}

.p1-a-box {
  background-color: #fff;
  padding: min(0.71vw, 10px);
}

.p1-a-item {
  padding: min(2.14vw, 30px) min(2.29vw, 32px);
  border: 2px solid #349CA0;
  display: flex;
  justify-content: space-between;
}

.p1-a-title {
  margin-bottom: min(2.43vw, 34px);
}

.p1-a-title h2 {
  font-size: min(2.86vw, 40px);
  color: #349CA0;
}

.p1-a-text {
  display: grid;
  grid-template-columns: repeat(2, min(25.71vw, 360px));
  grid-template-rows: repeat(3, min(5.71vw, 80px));
  gap: min(1.43vw, 20px);
}

.p1-a-p {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  background-color: #F8F2E8;
}

.p1-a-p::before {
  content: "";
  display: block;
  flex-shrink: 0;
  width: min(3.21vw, 45px);
  height: min(3.21vw, 45px);
  background-image: url('../image/part1.png');
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  margin-left: min(0.71vw, 10px);
  margin-right: min(1.43vw, 20px);
}

.p1-a-p p {
  font-size: min(1.14vw, 16px);
}

.p1-a-img {
  width: min(28.93vw, 405px);
  height: auto;
}

.p1-a-box2 {
  max-width: min(68.57vw, 960px);
  background-color: #fff;
  padding: min(0.71vw, 10px);
  margin: min(2.86vw, 40px) auto 0;
}

.p1-a-item2 {
  text-align: center;
  padding: min(2.86vw, 40px) 0;
  border: 2px solid #349CA0;
}

.p1-a-item2 p {
  font-size: min(2vw, 28px);
  color: #349CA0;
}

.p1-a-item2 p span {
  font-size: min(2.57vw, 36px);
  color: #349CA0;
}

.p1-a-item2 p:first-child {
  display: inline-block;
  border-bottom: min(0.86vw, 12px) solid #EFC34E;
}

.p1-b {
  background-color: #F2F1E8;
}

.p1-b-container {
  max-width: min(91.43vw, 1280px);
  padding: min(6.29vw, 88px) 0 min(5.71vw, 80px);
  margin: 0 auto;
}

.p1-b-box {
  display: flex;
  justify-content: space-between;
}

.p1-b-img {
  width: min(34.29vw, 480px);
  height: auto;
}

.p1-b-text-box {
  max-width: min(50.36vw, 705px);
}

.p1-b-title h2 {
  display: flex;
  align-items: center;
  font-size: min(2.86vw, 40px);
  font-weight: 400;
  letter-spacing: min(0.43vw, 6px);
}

.p1-b-title h2::after {
  content: "";
  width: min(18.14vw, 254px);
  height: 2px;
  background-color: #565656;
  margin-left: min(0.71vw, 10px);
}

.p1-b-title p {
  font-size: min(2.29vw, 32px);
  font-family: "Shippori Mincho B1", serif;
  margin: min(1.43vw, 20px) 0;
}

.p1-b-p p {
  font-size: clamp(10px, 1.14vw, 16px);
  line-height: 2.5em;
}

.p1-c-container {
  padding-top: min(6.15vw, 80px);
}

.p1-c-title {
  text-align: center;
  background-image: url(../image/top-back4.png);
  background-repeat: no-repeat;
  background-size: 100% min(3.46vw, 45px);
  background-position: bottom;
  padding-bottom: min(0.38vw, 5px);
  margin-bottom: min(4.62vw, 60px);
}

.p1-c-title h2 {
  font-size: min(3.69vw, 48px);
}

.p1-c-item {
  display: flex;
  justify-content: center;
  background-image: url(../image/top-back5.png);
  background-repeat: no-repeat;
  background-size: 100% auto;
  background-position: left bottom;
  padding-top: min(0.92vw, 12px);
  padding-bottom: min(4.08vw, 53px);
}

.p1-c-img {
  width: min(46.15vw, 600px);
  height: auto;
  position: relative;
  margin-right: max(-4.62vw, -60px);
  z-index: 10;
}

.p1-c-text-box {
  max-width: min(55.38vw, 720px);
  display: inline-block;
  height: fit-content;
  background-color: #fff;
  padding: min(0.62vw, 8px);
  margin-top: min(2.85vw, 37px);
}

.p1-c-text {
  padding: min(0.38vw, 5px) min(2vw, 26px) min(4vw, 52px) min(4.62vw, 60px);
  border: 1px solid #AEA076;
}

.p1-c-text-title {
  text-align: center;
}

.p1-c-text-title span {
  font-size: min(5.54vw, 72px);
}

.p1-c-text-title span:last-child {
  color: #AEA076;
}

.p1-c-p1 {
  text-align: center;
  position: relative;
  padding-bottom: min(2.31vw, 30px);
  margin: min(1.54vw, 20px) 0 min(2.31vw, 30px);   
}

.p1-c-p1::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: min(15.38vw, 200px); 
  height: 2px;
  background-color: #AEA076;
}

.p1-c-p1 p {
  font-size: min(1.85vw, 24px);
}

.p1-c-p2 p {
  font-size: clamp(10px, 1.15vw, 15px);
  line-height: 2.5em;
}

.p1-c .p1-c-item2 {
  background-image: url(../image/top-back6.png);
  background-position: right bottom;
  padding-top: min(2.69vw, 35px);
  padding-bottom: min(4.08vw, 53px);
  margin-top: min(3.08vw, 40px);
}

.p1-c-item2 .p1-c-text {
  padding: min(0.38vw, 5px) min(4.62vw, 60px) min(4vw, 52px) min(2vw, 26px);
}

.p1-c-item2 .p1-c-img {
  margin-right: 0;
  margin-left: max(-4.62vw, -60px);
}

.p1-c-box2 {
  display: flex;
  justify-content: center;
  gap: min(4vw, 56px);
  margin-top: min(4.64vw, 65px);
  margin-bottom: min(8.57vw, 120px);
}

.p1-c-item3 {
  max-width: min(44.57vw, 624px);
}

.p1-c-img2 {
  width: 100%;
  max-width: min(44.57vw, 624px);
  height: auto;
}

.p1-d {
  background-color: #F2F1E8;
}

.p1-d-container {
  width: min(91.42vw, 1280px);
  padding-top: min(5.71vw, 80px);
  padding-bottom: min(2.85vw, 40px);
  margin: 0 auto;
}

.p1-d-box1 {
  background-color: #fff;
  padding: min(0.71vw, 10px);
}

.p1-d-item1 {
  padding: min(2.14vw, 30px) 0;
  border: 1px solid #349CA0;
}

.p1-d-p1 {
  text-align: center;
}

.p1-d-p1 p:first-child {
  font-size: min(2vw, 28px);
  font-family: "Shippori Mincho B1", serif;
  color: #349CA0;
}

.p1-d-p1 p:first-child span {
  font-size: min(2.85vw, 40px);
  font-family: "Shippori Mincho B1", serif;
  color: #349CA0;
}

.p1-d-p1 p:nth-of-type(2) {
  font-size: min(2.28vw, 32px);
  letter-spacing: normal;
}

.p1-d-p1 p:nth-of-type(2) span {
  border-bottom: min(0.85vw, 12px) solid #EFC34E;
  margin-left: min(2.85vw, 40px);
  letter-spacing: normal;
}

.p1-d-p1 p:nth-of-type(2) span:last-child {
  margin-left: 0;
}

.p1-d-p1 p:last-child {
  font-size: min(1.71vw, 24px);
  margin-top: min(1.42vw, 20px);
}

.p1-d-box2 {
  display: flex;
  justify-content: space-between;
  margin-top: min(2.85vw, 40px);
}

.p1-d-img1 {
  width: min(28.14vw, 394px);
  height: auto;
}

.p1-d-item2 {
  display: flex;
  gap: min(1.42vw, 20px);
}

.p1-d-text {
  width: min(17.57vw, 246px);
  height: min(18.57vw, 260px);
  text-align: center;
  background-image: url(../image/top-back7.png);
  background-repeat: no-repeat;
  background-size: cover;
}

.p1-d-text p {
  padding: 0 clamp(10px, 1.07vw, 15px);
  line-height: 2em;
}

.p1-d-text p:first-child {
  font-size: min(1.71vw, 24px);
  color: #349CA0;
  margin-top: min(1.64vw, 23px);
  margin-bottom: min(0.85vw, 12px);
}

.p1-d-text p:last-child {
  font-size: clamp(10px, 1.14vw, 16px);
}

.p1-d-box3 {
  display: flex;
  justify-content: space-between;
  margin-top: min(1.78vw, 25px);
}

.p1-d-text2 {
  width: min(46.92vw, 657px);
  margin-top: min(3.85vw, 54px);
}

.p1-d-text2 p {
  font-size: min(1.71vw, 24px);
  line-height: 2em;
}

.p1-d-img2 {
  width: min(40vw, 560px);
  height: auto;
}

.p1-e {
  background-image: url(../image/top-back8.png);
  background-repeat: no-repeat;
  background-size: 100% min(440px, 30.55vw);
  background-position: top;
  padding-top: min(27px, 1.87vw);
}

.p1-e-container {
  width: 100%;
  position: relative;
  padding-top: min(50px, 3.47vw);
  padding-bottom: min(50px, 3.47vw);
  border-top: 1px solid #fff;
  overflow: hidden;
}

.p1-e-title {
  text-align: center;
}

.p1-e-title h2 {
  font-size: min(48px, max(10px, 3.33vw));
  color: #fff;
  position: relative;
  padding-bottom: min(30px, 2.08vw);
}

.p1-e-title p {
  font-size: min(20px, max(10px, 1.38vw));
  font-weight: 200;
  color: #fff;
  margin: min(32px, 2.22vw) 0;
}

.p1-e-title h2::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: min(210px, 14.58vw);
  height: 2px;
  background-color: #fff;
}

.p1-e-box {
  /* 1590px / 1000px * 100 = 159vw */
  width: min(1590px, 159vw);
  display: flex;
  justify-content: space-between;
  margin-left: auto;
  margin-right: auto;
}

.p1-e-item {
  /* 240px / 1000px * 100 = 24vw */
  width: min(240px, 24vw);
  height: min(240px, 24vw);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  background-color: #fff;
  border-radius: 50%;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.15);
  flex-shrink: 0;
}

.p1-e-text-title {
  /* 100px / 1000px * 100 = 10vw */
  width: min(100px, 10vw);
  height: min(60px, 6vw);
  text-align: right;
  background-repeat: no-repeat;
  background-size: auto 100%;
  background-position: left;
  margin-top: min(10px, 1vw);
}

.p1-e-text-title p {
  /* 48px / 1000px * 100 = 4.8vw */
  font-size: min(48px, max(10px, 4.8vw));
  color: #349CA0;
  line-height: normal;
}

.p1-e-p {
  text-align: center;
}

.p1-e-p p:first-child {
  /* 16.5px / 1000px * 100 = 1.65vw */
  font-size: min(16.5px, max(10px, 1.65vw));
  font-weight: 600;
  color: #349CA0;
  margin-top: min(10px, 1vw);
  margin-bottom: min(5px, 0.5vw);
}

.p1-e-p p:last-child {
  /* 12px / 1000px * 100 = 1.2vw */
  font-size: min(12px, max(10px, 1.2vw));
  line-height: 1.6em; /* はみ出し対策で少し詰め */
  /* ここだけ1440px基準を維持 */
  padding: 0 min(35px, 2.43vw);
}

.p1-e-item:nth-child(1) .p1-e-text-title { background-image: url(../image/top-img9.png); }
.p1-e-item:nth-child(2) .p1-e-text-title { background-image: url(../image/top-img10.png); }
.p1-e-item:nth-child(3) .p1-e-text-title { background-image: url(../image/top-img11.png); }
.p1-e-item:nth-child(4) .p1-e-text-title { background-image: url(../image/top-img12.png); }
.p1-e-item:nth-child(5) .p1-e-text-title { background-image: url(../image/top-img13.png); }
.p1-e-item:nth-child(6) .p1-e-text-title { background-image: url(../image/top-img14.png); }

.p1-e-item:nth-child(2), .p1-e-item:nth-child(4), .p1-e-item:nth-child(6) {
  margin-top: min(45px, 3.75vw);
}

.p1-e-prev, .p1-e-next {
  display: none;
}

@media screen and (max-width: 1440px) {
  .p1-e-box {
    width: 100%;
    justify-content: flex-start;
    gap: 30px;
    margin: 0;
    padding: 10px 5px 20px 5px;
    overflow-x: auto;
    touch-action: none;
    scrollbar-width: none;
    -ms-overflow-style: none;
  }

  .p1-e-p p:last-child {
    line-height: normal;
  }

  .p1-e-box::-webkit-scrollbar {
    display: none;
  }

  .p1-e-prev, .p1-e-next {
    width: 37.5px;
    height: 37.5px;
    padding: 0;
    border: none;
    display: block;
    background-color: transparent;
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
    cursor: pointer;
    position: absolute;
    top: 62%;
    z-index: 100;
    pointer-events: all;
  }

  .p1-e-prev { background-image: url(../image/part6.png); left: 15px; }
  .p1-e-next { background-image: url(../image/part7.png); right: 15px; }
}

.p1-f {
  background-color: #F9F8F0;
}

.p1-f-container {
  padding: min(60px, 4.61vw) 0 min(80px, 6.15vw);
}

.p1-f-title-p {
  text-align: center;
}

.p1-f-title-p p {
  font-size: min(16px, max(10px, 1.23vw));
  line-height: 2em;
}

.p1-f-item {
  display: flex;
  justify-content: center;
  gap: min(70px, 5.38vw);
  margin-top: min(60px, 4.61vw);
}

.p1-f-img {
  width: min(600px, 46.15vw);
  height: auto;
}

.p1-f-text {
  width: min(600px, 46.15vw);
}

.p1-f-text-h3 {
  margin-top: min(15px, 1.15vw);
  margin-bottom: min(30px, 2.3vw);
}

.p1-f-text-h3 h3 {
  font-size: min(28px, 2.15vw);
  font-weight: 500;
  color: #349CA0;
  position: relative;
  padding-bottom: min(30px, 2.3vw);
}

.p1-f-text-h3 h3::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: min(200px, 15.38vw);
  height: 2px;
  background-color: #349CA0;
}

.p1-f-text-p p {
  font-size: min(16px, max(10px, 1.23vw));
  line-height: 2em;
}

.p1-g {
  background-image: url(../image/top-back12.png);
  background-repeat: no-repeat;
  background-size: cover;
}

.p1-g-container {
  max-width: min(1280px, 91.43vw);
  padding-top: min(60px, 4.28vw);
  padding-bottom: min(80px, 5.71vw);
  margin: 0 auto;
}

.p1-g-title {
  text-align: center;
}

.p1-g-title h2 {
  font-size: min(48px, 3.42vw);
  color: #349CA0;
  display: flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap; /* 文字の折り返しを防ぐ */
}

.p1-g-title h2::before,
.p1-g-title h2::after {
  content: "";
  flex-grow: 1;
  height: 1px;
  background-color: #349CA0;
}

.p1-g-title h2::before {
  margin-right: min(30px, 2.14vw);
}

.p1-g-title h2::after {
  margin-left: min(30px, 2.14vw);
}

.p1-g-box {
  width: min(960px, 87.27vw);
  margin: min(20px, 1.82vw) auto 0;
}

.p1-g-item {
  display: flex;
  justify-content: space-between;
  background-color: #fff;
  padding: min(18px, 1.64vw) min(37px, 3.36vw) min(30px, 2.73vw);
  border-top: min(7px, 0.64vw) solid #349CA0;
  margin-top: min(40px, 3.64vw);
}

.p1-g-text-box {
  width: min(660px, 60vw);
}

.p1-g-text-title {
  display: flex;
  align-items: center;
  border-bottom: 1px solid #349CA0;
  margin-bottom: min(15px, 1.36vw);
}

.p1-g-text-title span:first-child {
  /* 72px / 1100px = 6.55vw */
  font-size: min(72px, 6.55vw);
  color: #349CA0;
  line-height: normal;
  margin-right: min(26px, 2.36vw);
}

.p1-g-text-title span:last-child {
  /* 30px / 1100px = 2.73vw */
  font-size: min(30px, max(14px, 2.73vw));
  line-height: normal;
}

.p1-g-text-p p {
  /* 15px / 1100px = 1.36vw */
  font-size: min(15px, max(10px, 1.36vw));
  line-height: 2em;
}

.p1-g-img {
  width: min(210px, 19.09vw);
  height: min(210px, 19.09vw);
}

.p1-g-img2 {
  text-align: center;
}

.p1-g-img2 img {
  width: min(300px, 27.27vw);
  height: auto; /* 比率維持のためautoを推奨 */
}

.p1-g-text-p2 p {
  font-size: min(15px, max(10px, 1.36vw));
  font-weight: 600;
  margin: min(10px, 0.91vw) 0;
}

.p1-g-list li {
  font-size: min(15px, max(10px, 1.36vw));
  display: flex;
  align-items: center;
  gap: min(5px, 0.45vw);
  margin-bottom: min(5px, 0.45vw);
}

.p1-g-list li:last-child {
  margin-bottom: 0;
}

.p1-g-list li::before {
  content: "";
  width: min(15px, 1.36vw);
  height: min(15px, 1.36vw);
  background-color: #000;
  border-radius: 50%;
  flex-shrink: 0;
}

.p1-h {
  background-image: url(../image/top-back9.png);
  background-repeat: no-repeat;
  background-size: cover;
}

.p1-h-container {
  max-width: min(1280px, 91.42vw);
  padding: min(80px, 5.71vw) 0;
  margin: 0 auto;
}

.p1-h .p1-e-title h2 {
  color: #565656;
  /* 48px / 1400px = 3.42vw (p1-eのタイトル共通設定を上書きする場合) */
  font-size: min(48px, 3.42vw);
}

.p1-h .p1-e-title h2::after {
  background-color: #565656;
}

.p1-h-table table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  margin-top: min(60px, 4.28vw);
}

.p1-h-table table tr th {
  /* 800px / 1400px = 57.14vw */
  width: min(800px, 57.14vw);
  font-size: min(24px, max(16px, 1.71vw));
  font-weight: 500;
  color: #fff;
  background-color: #349CA0;
  padding: min(16px, 1.14vw) 0;
  border-bottom: 1px solid #75C1C3;
}

.p1-h-table table tr th span {
  /* 16px / 1400px = 1.14vw */
  font-size: min(16px, max(12px, 1.14vw));
  font-weight: 200;
  color: #fff;
}

.p1-h-table table tr td {
  width: auto;
  font-size: min(24px, max(16px, 1.71vw));
  background-color: #fff;
  padding-left: min(40px, 2.85vw);
  border-bottom: 1px solid #349CA0;
}

.p1-h-table table .p1-h-full th {
  width: 100%;
  border-bottom: none;
}

.p1-i {
  background-color: #349CA0;
  position: relative; 
  z-index: 1;
  overflow: hidden;
}

.p1-i::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url(../image/top-back10.png);
  background-repeat: no-repeat;
  background-size: cover;
  opacity: 0.3;
  z-index: -1;
}

.p1-i-container {
  max-width: min(1260px, 90vw);
  padding: min(60px, 4.28vw) 0 min(80px, 5.71vw);
  margin: 0 auto;
}

.p1-i-title {
  text-align: center;
}

.p1-i-title p {
  display: inline-block;
  font-size: min(48px, 3.42vw);
  color: #fff;
  background-image: url(../image/part8.png), url(../image/part9.png);
  background-repeat: no-repeat, no-repeat;
  background-size: min(283px, 20.21vw) auto, min(283px, 20.21vw) auto;
  background-position: top left, bottom right;
  padding: min(60px, 4.28vw) min(170px, 12.14vw);
}

.p1-i-title p span {
  font-size: min(36px, 2.57vw);
  color: #fff;
}

.p1-i-item {
  display: flex;
  justify-content: center;
  margin-top: min(40px, 2.85vw);
}

.p1-i-img {
  width: min(600px, 42.85vw);
  height: auto;
  position: relative;
  z-index: 10;
  margin-right: max(-60px, -4.28vw); /* ネガティブマージンも可変 */
}

.p1-i-text-box1 {
  width: min(720px, 51.42vw);
  background-color: #fff;
  padding: min(10px, 0.71vw);
  margin-top: min(38px, 2.71vw);
}

.p1-i-text {
  padding: min(45px, 3.21vw) min(26px, 1.85vw) min(45px, 3.21vw) min(79px, 5.64vw);
  border: 1px solid #AEA076;
}

.p1-i-p1 p {
  font-size: min(24px, 1.71vw);
  position: relative;
  padding-bottom: min(40px, 2.85vw);
  margin-bottom: min(22px, 1.57vw);
}

.p1-i-p1 p::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: min(207px, 14.78vw);
  height: 2px;
  background-color: #AEA076;
}

.p1-i-p2 p, .p1-i-p4 p {
  font-size: min(15px, max(10px, 1.07vw));
  letter-spacing: normal;
  line-height: 2em;
}

.p1-i-text-box2 {
  width: min(800px, 57.14vw);
  background-color: #fff;
  padding: min(10px, 0.71vw);
  margin: min(40px, 2.85vw) auto 0;
}

.p1-i-text2 {
  padding: min(20px, 1.42vw) min(40px, 3.42vw);
  border: 1px solid #349CA0;
}

.p1-i-p3 {
  text-align: center;
}

.p1-i-p3 p {
  font-size: min(32px, 2.13vw);
  color: #349CA0;
  position: relative;
  padding-bottom: min(30px, 2.14vw);
  margin-bottom: min(30px, 2.14vw);
}

.p1-i-p3 p::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: min(207px, 14.78vw);
  height: 2px;
  background-color: #349CA0;
}

.p1-i-p4 {
  padding: 0 min(24px, 1.71vw);
}

.p1-i-p4 p {
  font-size: min(15px, max(10px, 1.07vw));
  letter-spacing: 2px;
  line-height: 2em;
}

.p1-j-container {
  padding: min(60px, 5.45vw) 0 min(80px, 7.27vw);
}

.p1-j-title {
  text-align: center;
}

.p1-j-title h2 {
  font-size: min(48px, 4.36vw);
  color: #349CA0;
}

.p1-j-title h2 span {
  font-size: min(36px, 3.27vw);
  color: #349CA0;
}

.p1-j-title p {
  font-size: min(15px, max(10px, 1.36vw));
  margin: min(30px, 2.72vw) 0;
}

.p1-j-img {
  text-align: center;
  background-image: url(../image/top-back4.png);
  background-repeat: no-repeat;
  background-size: 100% min(45px, 4.09vw);
  background-position: center;
}

.p1-j-img iframe {
  width: min(960px, 87.27vw);
  height: min(530px, 48.18vw);
}

.p1-k {
  background-color: #F9F8F0;
}

.p1-k-container {
  max-width: min(1280px, 91.43vw);
  margin: 0 auto;
  padding: min(80px, 5.71vw) 0;
}

.p1-k-item {
  position: relative;
  border: 1px solid #AEA076;
  padding: min(82px, 5.86vw) min(94px, 6.71vw);
}

.p1-k-title {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%, -50%);
  background: transparent;
  padding: 0 min(30px, 2.14vw);
  white-space: nowrap;
}

.p1-k-title::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 6px;
  background-color: #fff;
  z-index: -1;
  transform: translateY(-50%);
}

.p1-k-title h2 {
  font-size: min(48px, 3.43vw);
  color: #AEA076;
  font-weight: 500;
  position: relative;
}

.p1-k-title h2 span {
  font-size: min(36px, 2.57vw);
  color: #AEA076;
}

.p1-k-box {
  background-color: #fff;
  padding: min(10px, 0.71vw);
}

.p1-k-item2 {
  display: flex;
  justify-content: space-between;
  gap: min(40px, 2.86vw);
  margin-top: min(20px, 1.43vw);
}

.p1-k-text-box {
  width: min(530px, 37.86vw);
}

.p1-k-p1 p {
  font-size: min(24px, 1.71vw);
  font-weight: bold;
  color: #AEA076;
  padding: min(10px, 0.71vw) 0;
  border: 1px solid #AEA076;
  margin-bottom: min(30px, 2.14vw);
  text-align: center;
}

.p1-k-p2 p {
  font-size: min(15px, max(10px, 1.07vw));
  letter-spacing: normal;
  line-height: 2em;
  padding: 0 min(60px, 4.29vw);
  margin-bottom: min(30px, 2.14vw);
}

.p1-k-img img {
  width: 100%;
  height: auto;
}

.p1-l {
    background-image: url(../image/top-back12.png);
    background-repeat: no-repeat;
    background-size: cover;
}

.p1-l-container {
  padding: min(60px, 4.29vw) 0 min(80px, 5.71vw);
}

.p1-l .p1-i-title p {
  font-size: min(48px, 3.42vw);
  color: #349CA0;
  background-image: url(../image/part3.png), url(../image/part4.png);
  background-repeat: no-repeat, no-repeat;
  background-size: min(283px, 20.21vw) auto, min(283px, 20.21vw) auto;
  background-position: top left, bottom right;
  padding: min(60px, 4.28vw) min(170px, 12.14vw);
}

.p1-l-box {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: min(110px, 5.56vw); /* さっきのまま */
  margin-top: min(60px, 4.17vw);
}

.p1-l-item {
  width: min(800px, 55.56vw);
  margin-top: min(40px, 2.78vw);
}

.p1-l-item:first-child {
  margin-top: 0;
}

.p1-l-img img {
  width: 27.78vw; /* さっきのまま */
  max-width: 550px; 
  height: auto;
}

.p1-l-text-title {
  display: flex;
  align-items: center;
  gap: min(44px, 3.06vw);
  background-color: #349CA0;
  padding: min(10px, 0.69vw) 0 min(10px, 0.69vw) min(12px, 0.83vw);
}

.p1-l-text-title p:first-child {
  font-size: min(42px, 2.92vw);
  color: #fff;
}

.p1-l-text-title p:last-child {
  font-size: min(28px, 1.94vw);
  color: #fff;
  padding-left: min(12px, 0.83vw);
  border-left: min(4px, 0.28vw) solid #EFC34E;
}

.p1-l-p {
  background-color: #75C1C3;
  padding: min(30px, 2.08vw) min(40px, 2.78vw);
}

.p1-l-p p {
  /* フォントサイズは小さくなりすぎないよう max(10px, ...) を入れると親切です */
  font-size: min(16px, 1.11vw);
  color: #fff;
  line-height: 2em;
  letter-spacing: normal;
}

.p1-m {
  background-color: #F9F8F0;
}

.p1-m-container {
  padding: min(80px, 5.71vw) 0;
}

.p1-m-box {
  display: flex;
  justify-content: center;
  gap: min(40px, 2.85vw);
}

.p1-m-item {
  background-color: #fff;
  padding: min(10px, 0.71vw);
}

.p1-m-text-box {
  width: min(520px, 37.14vw);
  min-height: min(497px, 35.5vw);
  height: auto;
  padding: min(38px, 2.71vw) min(88px, 6.28vw) 0;
  border: 1px solid #349CA0;
}

.p1-m-item .p1-m-text-box2 {
  width: min(720px, 51.42vw);
}

.p1-m-text h3 {
  font-size: clamp(16px, 1.71vw, 24px);
  font-weight: 400;
  position: relative;
  padding-bottom: min(20px, 1.42vw);
}

.p1-m-text h3::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: min(200px, 14.28vw);
  height: 2px;
  background-color: #349CA0;
}

.p1-m-p p {
  display: flex;
  align-items: flex-start;
  font-size: clamp(10px, 1.07vw, 15px);
  position: relative;
  margin-top: min(20px, 1.42vw);
  line-height: 1.6;
}

.p1-m-p p::before {
  content: "";
  display: block;
  flex-shrink: 0;
  width: min(15px, 1.07vw);
  height: min(15px, 1.07vw);
  background-image: url(../image/part1.png);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  margin-right: min(10px, 0.71vw);
  margin-top: 0.35em;
}

.p1-m-list ul {
  margin-top: min(20px, 1.42vw);
}

.p1-m-list ul li {
  display: flex;
  align-items: center;
  font-size: clamp(10px, 1.07vw, 15px);
  position: relative;
  margin-left: min(60px, 4.28vw);
  margin-top: min(10px, 0.71vw);
}

.p1-m-list ul li::before {
  content: "";
  width: min(10px, 0.71vw);
  height: min(10px, 0.71vw);
  background-color: #000;
  border-radius: 50%;
  margin-right: min(5px, 0.35vw);
}

.p1-n-container {
  padding: min(60px, 6vw) 0 min(80px, 8vw);
}

.p1-n-item {
  width: min(960px, 96vw);
  margin: min(40px, 4vw) auto 0;
  border-top: 1px solid #565656;
  border-bottom: 1px solid #565656;
  box-shadow: 0 0 min(15px, 1.5vw) rgba(0, 0, 0, 0.1);
  background-color: #fff;
}

.p1-n-q {
  display: flex;
  align-items: center;
  font-size: clamp(10px, 1.6vw, 16px);
  cursor: pointer;
  position: relative;
  padding: min(27px, 2.7vw) min(20px, 2vw) min(27px, 2.7vw) min(42px, 4.2vw);
}

.p1-n-q span, .p1-n-a span {
  font-size: clamp(18px, 2.8vw, 28px);
  font-family: "Shippori Mincho B1", serif;
  margin-right: min(20px, 2vw);
  flex-shrink: 0;
}

.p1-n-q span {
  color: #349CA0;
}

.p1-n-a {
  height: 0;
  overflow: hidden;
  transition: height 0.4s ease;
}

.p1-n-a-inner {
  display: flex;
  align-items: flex-start;
  font-size: clamp(10px, 1.6vw, 16px);
  padding: 0 min(20px, 2vw) min(27px, 2.7vw) min(42px, 4.2vw);
}

.p1-n-a-inner p {
  margin-top: min(8px, 0.8vw);
}

.p1-n-icon {
  position: absolute;
  right: min(20px, 2vw);
  width: min(20px, 2vw);
  height: min(20px, 2vw);
}

.p1-n-icon::before,
.p1-n-icon::after {
  content: "";
  position: absolute;
  background-color: #565656;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  transition: transform 0.3s, opacity 0.3s;
}

.p1-n-icon::before {
  width: 100%;
  height: 1px;
}

.p1-n-icon::after {
  width: 1px;
  height: 100%;
}

.p1-n-q.is-active .p1-n-icon::after {
  transform: translate(-50%, -50%) rotate(90deg);
  opacity: 0;
}

.p1-o {
  background-image: url(../image/top-back11.png);
  background-repeat: no-repeat;
  background-size: cover;
}

.p1-o-container {
  padding: min(80px, 7.27vw) 0;
}

.p1-o-box {
  display: flex;
  justify-content: center;
  gap: min(58px, 5.27vw);
}

.p1-o-img {
  width: min(420px, 38.18vw);
  height: auto;
}

.p1-o-item {
  width: min(560px, 50.9vw);
}

.p1-o-h3 h3 {
  font-size: clamp(20px, 3.27vw, 36px);
  font-weight: 400;
  letter-spacing: min(4px, 0.36vw);
  display: flex;
  align-items: center;
}

.p1-o-h3 h3::after {
  content: "";
  width: min(300px, 27.27vw);
  height: 2px;
  background-color: #565656;
  margin-left: min(5px, 0.45vw);
  flex-shrink: 0;
}

.p1-o-p1 {
  margin: min(60px, 5.45vw) 0;
}

.p1-o-p1 p {
  font-size: clamp(16px, 2.18vw, 24px);
  font-family: "Shippori Mincho B1", serif;
  letter-spacing: normal;
}

.p1-o-p2 p {
  font-size: clamp(10px, 1.36vw, 15px);
  font-weight: 200;
  letter-spacing: min(1px, 0.09vw);
}

.p1-p-container {
  padding: min(80px, 8.88vw) 0;
}

.p1-p-img {
  width: min(640px, 71.11vw);
  margin: 0 auto;
}

footer {
  background-color: #F9F8F0;
}

.footer-container {
  padding-top: min(60px, 6vw);
}

.footer-box {
  display: flex;
  justify-content: center;
  gap: min(80px, 8vw);
}

.footer-logo {
  width: min(354px, 35.4vw);
  height: auto;
}

.footer-p {
  margin: min(18px, 1.8vw) 0;
}

.footer-p p {
  font-size: clamp(10px, 1.6vw, 16px);
}

.footer-tel a {
  display: inline-block;
  font-size: clamp(14px, 2vw, 20px);
  color: #349CA0;
  padding: min(18px, 1.8vw) min(40px, 4vw);
  border: 1px solid #349CA0;
  border-radius: 50px;
}

.footer-table {
  width: min(457px, 45.7vw);
}

.footer-table table {
  width: min(428px, 42.8vw);
  border-collapse: collapse;
  font-family: "Shippori Mincho B1", "Yu Mincho", "MS Mincho", serif;
  color: #565656;
}

.footer-table th,
.footer-table td {
  text-align: center;
  padding: min(15px, 1.5vw) min(5px, 0.5vw);
  font-weight: 400;
  border-bottom: 1px solid #565656;
}

.footer-table th:first-child,
.footer-table td:first-child {
  text-align: left;
  padding-left: min(10px, 1vw);
  font-size: clamp(10px, 1.6vw, 16px);
}

.footer-table th {
  font-size: clamp(10px, 1.6vw, 16px);
}

.footer-table td {
  font-size: clamp(12px, 2vw, 20px);
}

.footer-p2 {
  font-size: clamp(10px, 1.4vw, 14px);
  color: #565656;
  letter-spacing: normal;
}

.footer-p2 p:first-child {
  display: flex;
  align-items: center;
  margin-bottom: min(5px, 0.5vw);
}

.footer-p2 p span {
  font-size: clamp(14px, 2vw, 20px);
}

.footer-map {
  text-align: center;
  margin: min(60px, 6vw) 0;
}

/* ここだけ 1400px 基準 */
.footer-map iframe {
  width: min(1280px, 91.42vw);
  height: min(577px, 41.21vw);
}

.copy-right {
  text-align: center;
  background-color: #349CA0;
  padding: min(30px, 3vw) 0;
}

.copy-right p {
  font-size: clamp(10px, 1.6vw, 16px);
  color: #fff;
  font-family: "Shippori Mincho B1", serif;
}

@media screen and (max-width: 768px) {
  /* ヘッダー */
  #header {
    height: 60px;
  }

  .header-container {
    padding-left: 18px;
    padding-right: 18px;
  }

  .header-logo {
    width: 185px;
    margin-top: 12px;
  }

  .header-link {
    gap: 4px;
    margin-top: 12px;
  }

  .header-tel a {
    font-size: 14px;
    padding: 15px 20px;
  }

  .header-tel a span {
    display: none;
  }

  .hamburger-btn {
    width: 38px;
    min-width: auto;
    height: 38px;
    min-height: auto;
  }

  .header-nav {
    position: fixed;
    top: 0;
    right: -90%; 
    width: 90%;
    min-width: auto;
    height: 100vh;
    transform: translateX(100%);
  }

  .header-nav nav {
    width: 100%;
    padding-left: 22px;
    padding-right: 22px;
  }

  .header-nav ul li a {
    padding: 17px 0;
    font-size: 16px;
  }

  .header-nav ul li img {
    width: 25px;
    height: auto;
  }

  .sp-br {
    display: block;
  }

  .main-v-content h1 .line1 {
    font-size: 24px;
  }

  .main-v-content h1 .line2 {
    font-size: 32px;
  }
  
  .p1-a::before {
    width: 20px;
  }

  .p1-a-container {
    width: 92%;
    padding: 30px 0;
    margin: 0 4%;
  }

  .p1-a-box {
    padding: 8px;
  }

  .p1-a-item {
    padding: 15px 14px 20px;
    flex-direction: column-reverse;align-items: center;  }

  .p1-a-title {
    text-align: center;
    margin-bottom: 20px;
  }

  .p1-a-title h2 {
    font-size: 20px;
    letter-spacing: normal;
  }

  .p1-a-text {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: auto;
    gap: min(10px, 1.43vw);
  }

  .p1-a-p {
    width: 100%;
    height: clamp(45px, 8.57vw, 60px);
  }

  .p1-a-p::before {
    content: "";
    width: min(25px, 3.57vw);
    height: min(25px, 3.57vw);
    margin-left: min(9px, 1.28vw);
    margin-right: min(9px, 1.28vw);
    flex-shrink: 0;
  }

  .p1-a-p p {
    font-size: clamp(10px, 1.82vw, 14px);
  }

  .p1-a-img {
    width: 100%;
  }

  .p1-a-box2 {
    max-width: 100%;
    padding: 8px;
    margin: 20px auto 0;
  }

  .p1-a-item2 {
    padding: 20px 0;
  }

  .p1-a-item2 p {
    font-size: 16px;
  }

  .p1-a-item2 p span {
    font-size: 20px;
  }

  .p1-a-item2 p:first-child {
    border-bottom: 8px solid #EFC34E;
  }

  .p1-b-container {
    max-width: 92%;
    padding: 30px 0;
    margin: 0 4%;
  }

  .p1-b-box {
    flex-direction: column;
    align-items: center;
  }

  .p1-b-img {
    width: 100%;
    height: auto;
  }

  .p1-b-text-box {
    max-width: 100%;
  }

  .p1-b-title h2 {
    font-size: 24px;
    letter-spacing: 4px;
    margin-top: 20px;
  }

  .p1-b-title h2::after {
    content: "";
    width: 99px;
    height: 2px;
    margin-left: 10px;
  }

  .p1-b-title p {
    font-size: 18px;
    margin: 20px 0;
  }

  .p1-b-p p {
    font-size: 14px;
    line-height: 2em;
  }

  .p1-c-container {
    padding-top: 30px;
  }

  .p1-c-title {
    background-size: 100% 30px;
    padding-bottom: 5px;
    margin-bottom: 15px;
  }

  .p1-c-title h2 {
    font-size: 32px;
  }

  .p1-c-item {
    flex-direction: column;
    align-items: center;
    background-image: url(../image/top-back5.png);
    background-size: cover;
    padding: 0 4% 30px;
  }

  .p1-c-img {
    width: 100%;
    margin-right: 0;
  }

  .p1-c-text-box {
    max-width: 100%;
    padding: 5px;
    margin-top: 22px;
  }

  .p1-c-text {
    padding: 20px 15px;
  }

  .p1-c-text-title span {
    font-size: 40px;
  }

  .p1-c-text-title span:last-child {
    color: #AEA076;
  }

  .p1-c-p1 {
    padding-bottom: 20px;
    margin: 20px 0;   
  }

  .p1-c-p1::after {
    width: 160px; 
  }

  .p1-c-p1 p {
    font-size: 18px;
  }

  .p1-c-p2 p {
    font-size: 14px;
    line-height: 2em;
  }

  .p1-c .p1-c-item2 {
    background-image: url(../image/top-back6.png);
    background-position: right bottom;
    padding: 0 4% 30px;
    margin-top: 15px;
  }

  .p1-c-item2 .p1-c-text-box {
    margin-top: 7px;
  }

  .p1-c-item2 .p1-c-text {
    padding: 20px 15px;
  }

  .p1-c-item2 .p1-c-img {
    margin-left: 0;
    margin-top: 22px;
  }

  .p1-c-box2 {
    flex-direction: column;
    align-items: center;
    gap: 30px;
    margin-top: 30px;
    margin-bottom: 46px;
    padding: 0 2%;
  }

  .p1-c-item3 {
    max-width: 100%;
  }

  .p1-c-img2 {
    width: 100%;
    max-width: 100%;
    height: auto;
    padding-left: 2%;
  }

  .p1-c-box2 .p1-c-p2 {
    padding-left: 2%;
    padding-right: 2%;
  }

  .p1-d-container {
    width: 92%;
    padding-top: 30px;
    padding-bottom: 30px;
    margin: 0 4%;
  }

  .p1-d-box1 {
    padding: 5px;
  }

  .p1-d-item1 {
    padding: 15px 0;
  }

  .p1-d-p1 p:first-child {
    font-size: 16px;
  }

  .p1-d-p1 p:first-child span {
    font-size: 20px;
  }

  .p1-d-p1 p:nth-of-type(2) {
    font-size: 18px;
  }

  .p1-d-p1 p:nth-of-type(2) span {
    border-bottom: 7px solid #EFC34E;
    margin-left: 0;
    letter-spacing: normal;
  }

  .p1-d-p1 p:nth-of-type(2) span:last-child {
    margin-left: 0;
  }

  .p1-d-p1 p:last-child {
    font-size: 16px;
    margin-top: 13px;
  }

  .p1-d-box2 {
    flex-direction: column;
    align-items: center;
    margin-top: 20px;
  }

  .p1-d-img1 {
    width: 100%;
    height: auto;
  }

  .p1-d-item2 {
    width: 100%;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 15px;
    margin-top: 15px;
  }

  .p1-d-text {
    width: 160px;
    height: 160px;
    background-size: 100% 100%;
    flex-shrink: 0;
  }

  .p1-d-text p {
    padding: 0 0;
    line-height: 2em;
    letter-spacing: normal;
  }

  .p1-d-text p:first-child {
    font-size: 15px;
    margin-top: 15px;
  }

  .p1-d-text p:last-child {
    font-size: 13px;
    line-height: 1.5em;
  }

  .p1-d-box3 {
    flex-direction: column-reverse;
    margin-top: 30px;
  }

  .p1-d-text2 {
    width: 100%;
    margin-top: 15px;
  }

  .p1-d-text2 p {
    font-size: 16px;
    line-height: 2em;
  }

  .p1-d-img2 {
    width: 100%;
    height: auto;
  }

  .p1-e {
    background-image: url(../image/top-back8.png);
    background-size: 100% 390px;
    background-position: top;
    padding-top: 0;
  }

  .p1-e-container {
    width: 100%;
    padding-top: 30px;
    padding-bottom: 30px;
    border-top: none;
    overflow: hidden;
  }

  .p1-e-title h2 {
    font-size: 24px;
    padding-bottom: 20px;
  }

  .p1-e-title p {
    font-size: 16px;
    margin: 20px 0;
  }

  .p1-e-title h2::after {
    width: 210px;
  }

  .p1-e-box {
  display: flex;
    gap: 25px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    padding-left: calc(50% - 99px);
    padding-right: calc(50% - 99px);
    scrollbar-width: none;
    -ms-overflow-style: none;
  }

  .p1-e-box::-webkit-scrollbar {
    display: none;
  }

  .p1-e-item {
    /* 240px / 1000px * 100 = 24vw */
    width: 198px;
    height: 198px;
    flex-shrink: 0;
    scroll-snap-align: center;
  }

  .p1-e-text-title {
    /* 100px / 1000px * 100 = 10vw */
    width: 83px;
    height: 49px;
    text-align: right;
    background-repeat: no-repeat;
    background-size: auto 100%;
    background-position: left;
    margin-top: 0;
  }

  .p1-e-text-title p {
    /* 48px / 1000px * 100 = 4.8vw */
    font-size: 39px;
  }

  .p1-e-p p:first-child {
    /* 16.5px / 1000px * 100 = 1.65vw */
    font-size: 13px;
    margin-top: 10px;
    margin-bottom: 10px;
  }

  .p1-e-p p:last-child {
    /* 12px / 1000px * 100 = 1.2vw */
    font-size: 10px;
    line-height: 2em;
    letter-spacing: normal;
    padding: 0 35px;
  }

  .p1-e-item:nth-child(2), .p1-e-item:nth-child(4), .p1-e-item:nth-child(6) {
    margin-top: 30px;
  }

  .p1-f-container {
    padding: 30px 0;
  }

  .p1-f-title-p {
    width: 92%;
    text-align: left;
    margin: 0 auto;
  }

  .p1-f-title-p p {
    font-size: 14px;
    line-height: 2em;
  }

  .p1-f-item {
    width: 92%;
    flex-direction: column;
    gap: 15px;
    margin: 40px auto 0;
  }

  .p1-f-img {
    width: 100%;
    height: auto;
  }

  .p1-f-text {
    width: 100%;
  }

  .p1-f-text-h3 {
    margin-top: 0;
    margin-bottom: 20px;
  }

  .p1-f-text-h3 h3 {
    font-size: 20px;
    padding-bottom: 20px;
  }

  .p1-f-text-h3 h3::after {
    width: 200px;
  }

  .p1-f-text-p p {
    font-size: 14px;
    line-height: 2em;
  }

  .p1-g-container {
    max-width: 100%;
    padding-top: 30px;
    padding-bottom: 30px;
    margin: 0 auto;
  }

  .p1-g-title h2 {
    font-size: 32px;
    color: #349CA0;
  }

  .p1-g-title h2::before {
    margin-right: 30px;
  }

  .p1-g-title h2::after {
    margin-left: 30px;
  }

  .p1-g-box {
    width: 92%;
    margin: 0 auto;
  }

  .p1-g-item {
    flex-direction: column;
    padding: 20px;
    border-top: 7px solid #349CA0;
    margin-top: 20px;
  }

  .p1-g-text-box {
    width: 100%;
  }

  .p1-g-text-title {
    margin-bottom: 20px;
  }

  .p1-g-text-title span:first-child {
    /* 72px / 1100px = 6.55vw */
    font-size: 36px;
    margin-right: 10px;
  }

  .p1-g-text-title span:last-child {
    /* 30px / 1100px = 2.73vw */
    font-size: 20px;
  }

  .p1-g-text-p p {
    /* 15px / 1100px = 1.36vw */
    font-size: 13px;
    line-height: normal;
  }

  .p1-g-img {
    width: 100%;
    height: auto;
    text-align: center;
    margin-top: 23px;
  }

  .p1-g-img2 img {
    width: 175px;
    height: auto; /* 比率維持のためautoを推奨 */
  }

  .p1-g-text-p2 p {
    font-size: 13px;
    margin: 10px 0;
  }

  .p1-g-list li {
    font-size: 13px;
    gap: 5px;
    margin-bottom: 5px;
  }

  .p1-g-list li::before {
    width: 15px;
    height: 15px;
  }

  .p1-h-container {
    max-width: 92%;
    padding: 30px 0;
    margin: 0 auto;
  }

  .p1-h .p1-e-title h2 {
    font-size: 32px;
  }

  .p1-h-table table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    margin-top: 30px;
  }

  .p1-h-table table tr th {
    height: 80px;
    display: block;
  }

  .p1-h-table table tr td {
    height: 80px;
    display: flex;
    justify-content: center;
    align-items: center;
  }

  .p1-h-table table tr th {
    /* 800px / 1400px = 57.14vw */
    width: 100%;
    font-size: 18px;
    padding: 10px 0;
  }

  .p1-h-table table tr th span {
    /* 16px / 1400px = 1.14vw */
    font-size: 13px;
  }

  .p1-h-table table tr td {
    text-align: center;
    font-size: 24px;
    padding-left: 0;
    vertical-align: middle;
  }

  .p1-h-table table .p1-h-full th {
    width: 100%;
    border-bottom: none;
  }

  .p1-i-container {
    max-width: 92%;
    padding: 30px 0;
    margin: 0 auto;
  }

  .p1-i-title p {
    font-size: 20px;
    background-size: 104px auto, 104px 20.21vw auto;
    padding: 20px 50px;
  }

  .p1-i-title p span {
    font-size: 14px;
    color: #fff;
  }

  .p1-i-item {
    flex-direction: column;
    margin-top: 20px;
  }

  .p1-i-img {
    width: 100%;
    margin-right: 0;
  }

  .p1-i-text-box1 {
    width: 100%;
    padding: 5px;
    margin-top: 20px;
  }

  .p1-i-text {
    padding: 20px 34px;
  }

  .p1-i-p1 p {
    font-size: 18px;
    padding-bottom: 20px;
    margin-bottom: 20px;
  }

  .p1-i-p1 p::after {
    width: 207px;
  }

  .p1-i-p2 p, .p1-i-p4 p {
    font-size: 13px;
  }

  .p1-i-text-box2 {
    width: 100%;
    padding: 5px;
    margin: 20px auto 0;
  }

  .p1-i-text2 {
    padding: 25px 22px;
    border: 1px solid #349CA0;
  }

  .p1-i-p3 p {
    font-size: 20px;
    letter-spacing: normal;
    padding-bottom: 30px;
    margin-bottom: 30px;
  }

  .p1-i-p3 p::after {
    width: 207px;
  }

  .p1-i-p4 {
    padding: 0 0;
  }

  .p1-i-p4 p {
    font-size: 13px;
  }

  .p1-j-container {
    padding: 30px 0;
  }

  .p1-j-title h2 {
    font-size: 32px;
  }

  .p1-j-title h2 span {
    font-size: 24px;
  }

  .p1-j-title p {
    font-size: 13px;
    margin: 20px 0;
  }

  .p1-j-img {
    background-size: 100% 30px;
  }

  .p1-j-img iframe {
    width: 335px;
    height: 185px;
  }

  .p1-k-container {
    max-width: 92%;
    margin: 0 auto;
    padding: 30px 0;
  }

  .p1-k-item {
    padding: 40px 15px;
  }

  .p1-k-title {
    padding: 0 30px;
  }

  .p1-k-title h2 {
    font-size: 32px;
  }

  .p1-k-title h2 span {
    font-size: 24px;
  }

  .p1-k-box {
    background-color: #fff;
    padding: 5px;
  }

  .p1-k-item2 {
    flex-direction: column;
    gap: 30px;
    margin-top: 0;
  }

  .p1-k-text-box {
    width: 100%;
  }

  .p1-k-p1 p {
    font-size: 18px;
    padding: 10px 0;
    margin-bottom: 20px;
  }

  .p1-k-p2 p {
    font-size: 13px;
    padding: 0 0;
    margin-bottom: 20px;
  }

  .p1-l-container {
    width: 92%;
    padding: 40px 0;
    margin: 0 auto;
  }

  .p1-l .p1-i-title p {
    font-size: 20px;
    background-size: 92px auto, 92px auto;
    padding: 16px 37px;
  }

  .p1-l-box {
    justify-content: center;
    gap: 0; /* さっきのまま */
    margin-top: 20px;
  }

  .p1-l-item {
    width: 100%;
    margin-top: 20px;
  }

  .p1-l-item:first-child {
    margin-top: 0;
  }

  .p1-l-img {
    display: none;
  }

  .p1-l-text-title {
    gap: 22px;
    padding: 10px 0 10px 12px;
  }

  .p1-l-text-title p:first-child {
    font-size: 24px;
  }

  .p1-l-text-title p:last-child {
    font-size: 16px;
    color: #fff;
    padding-left: 12px;
    border-left: 4px solid #EFC34E;
  }

  .p1-l-p {
    padding: 30px 20px;
  }

  .p1-l-p p {
    font-size: 13px;
  }

  .p1-m-container {
    width: 92%;
    padding: 30px 0;
    margin: 0 auto;
  }

  .p1-m-box {
    flex-direction: column;
    align-items: center;
    gap: 30px;
  }

  .p1-m-item {
    width: 100%;
    padding: 5px;
  }

  .p1-m-text-box {
    width: 100%;
    min-height: auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 20px 23px;
  }

  .p1-m-item .p1-m-text-box2 {
    width: 100%;
  }

  .p1-m-text h3 {
    font-size: 18px;
    padding-bottom: 10px;
    letter-spacing: normal;
  }

  .p1-m-text h3::after {
    width: 255px;
  }

  .p1-m-p {
    width: 100%;
  }

  .p1-m-p p {
    font-size: 13px;
    margin-top: 15px;
  }

  .p1-m-p p::before {
    width: 15px;
    height: 15px;
    margin-right: 10px;
    margin-top: 0.3em;
  }

  .p1-m-list {
    width: 100%;
  }

  .p1-m-list ul {
    margin-top: 15px;
  }

  .p1-m-list ul li {
    font-size: 13px;
    margin-left: 50px;
    margin-top: 15px;
    letter-spacing: normal;
  }

  .p1-m-list ul li::before {
    width: 10px;
    height: 10px;
    margin-right: 5px;
  }

  .p1-n-container {
    padding: 30px 0;
    margin: 0 auto;
  }

  .p1-n-item {
    width: 92%;
    margin: 20px auto 0;
  }

  .p1-n-q {
    font-size: 14px;
    padding: 20px 40px 20px 16px;
  }

  .p1-n-q span, .p1-n-a span {
    font-size: 20px;
    margin-right: 20px;
  }

  .p1-n-a-inner {
    display: flex;
    align-items: flex-start;
    font-size: 14px;
    padding: 0 10px 20px 20px;
  }

  .p1-n-a-inner p {
    margin-top: 5px;
  }

  .p1-n-icon {
    position: absolute;
    right: 10px;
    width: 20px;
    height: 20px;
  }

  .p1-o-container {
    width: 92%;
    padding: 30px 0;
    margin: 0 auto;
  }

  .p1-o-box {
    flex-direction: column;
    align-items: center;
    gap: 20px;
  }

  .p1-o-img {
    max-width: 430px;
    width: 100%;
    height: auto;
  }

  .p1-o-item {
    width: 100%;
  }

  .p1-o-h3 h3 {
    font-size: 24px;
    letter-spacing: 4px;
    white-space: nowrap;
  }

  .p1-o-h3 h3::after {
    width: auto;
    flex-grow: 1;
    margin-left: 5px;
    flex-shrink: 0;
  }

  .p1-o-p1 {
    margin: 20px 0;
  }

  .p1-o-p1 p {
    font-size: 18px;
    letter-spacing: normal;
  }

  .p1-o-p2 p {
    font-size: 13px;
    letter-spacing: 1px;
  }

  .p1-p-container {
    padding: 40px 0;
  }

  .p1-p-img {
    width: 335px;
    margin: 0 auto;
  }

}

@media screen and (max-width: 600px) {
  .footer-container {
    padding-top: 30px;
  }

  .footer-box {
    width: 92%;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    margin: 0 auto;
  }

  .footer-logo {
    width: 195px;
    margin: 0 auto;
  }

  .footer-p {
    text-align: center;
    margin: 20px 0;
  }

  .footer-p p {
    font-size: 14px;
  }

  .footer-tel a {
    font-size: 16px;
    padding: 15px 40px;
  }

  .footer-table {
    width: 100%;
  }

  .footer-table table {
    width: 100%;
  }

  .footer-table th,
  .footer-table td {
    padding: 12px 5px;
  }

  .footer-table th:first-child,
  .footer-table td:first-child {
    padding-left: 0;
    font-size: 12px;
  }

  .footer-table th {
    font-size: 12px;
  }

  .footer-table td {
    font-size: 16px;
  }

  .footer-p2 {
    font-size: 11px;
  }

  .footer-p2 p:first-child {
    margin-bottom: 5px;
  }

  .footer-p2 p span {
    font-size: 14px;
  }

  .footer-map {
    text-align: center;
    margin: 40px 0;
  }

  /* ここだけ 1400px 基準 */
  .footer-map iframe {
    width: 100%;
    height: 400px;
  }

  .copy-right {
    padding: 30px 0;
  }

  .copy-right p {
    font-size: 12px;
  }

}

@media screen and (max-width: 430px) {
  .p1-a-text {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .p1-a-p {
    height: 60px;
  }

  .p1-a-p::before {
    width: 25px;
    height: 25px;
    margin-left: 9px;
    margin-right: 9px;
  }

  .p1-a-p p {
    font-size: 14px;
  }

  .p1-c-item {
    flex-direction: column;
    align-items: center;
    background-image: url(../image/sp-back1.png);
    background-size: cover;
    padding: 0 4% 30px;
  }

  .p1-c .p1-c-item2 {
    background-image: url(../image/sp-back2.png);
    padding-top: min(2.69vw, 35px);
    padding-bottom: min(4.08vw, 53px);
    margin-top: min(3.08vw, 40px);
  }

  .p1-e {
    background-image: url(../image/sp-back3.png);
    background-size: 100% 390px;
    background-position: top;
    padding-top: 0;
  }

  .p1-g {
    background-image: url(../image/sp-back4.png);
  }

  .p1-l {
    background-image: url(../image/sp-back5.png);
  }

  .p1-m-text {
    width: 100%;
  }

}