@charset "UTF-8";

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

html {
  scroll-behavior: smooth;
  scroll-padding-top: min(100px, 9.09vw);
}

body {
  margin: 0;
}

li {
  list-style: none;
}

h1, h2, h3, p, span, a, li, th, td {
  font-family: "Zen Old Mincho", serif;
}

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

a:hover {
  opacity: .8;
}


/* --- コンテナ設定 --- */
img {
  max-width: 100%;
  height: auto;
  border-style: none;
  display: block;
}

/* 消してる要素 */
.sp-br, .sp-blok, .sp-fixed-nav, .p5-a-img-box2.p5-a-img-box3 {
  display: none;
}

/* アニメーションの動き */
.fade-up {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s ease-out, transform 0.8s ease-out;
  /* 画面に入った時に動くためのトリガー */
}

/* 画面に入った時に付与するクラス */
.is-show {
  opacity: 1;
  transform: translateY(0);
}


/* ヘッダー */
.header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: min(160px, 11.85vw);
  background-color: transparent;
  z-index: 9999;
}

.header-inner {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  height: 100%;
  padding-right: min(68px, 5.04vw);
}

.header-logo img {
  width: min(489px, 36.22vw);
  height: auto;
}

.header-item {
  display: flex;
  align-items: center;
  gap: min(10px, 0.74vw);
}

.header-tel {
  width: min(267px, 19.78vw);
  height: auto;
}

.header-web,
.header-line {
  width: min(179px, 13.26vw);
  height: auto;
}

.header-text {
  display: flex;
  justify-content: flex-end;
  gap: min(10px, 0.74vw);
  padding-right: min(46px, 3.41vw);
  padding-top: min(15px, 1.11vw);
}

.header-text::before {
  content: "";
  display: block;
  width: min(26px, 1.93vw);
  height: min(26px, 1.93vw);
  background-image: url(../image/part3.png);
  background-size: contain;
  background-repeat: no-repeat;
}

.header-text p {
  font-size: min(16px, 1.19vw);
}

/* ハンバーガーボタン */
.menu-btn {
  position: relative;
  width: min(90px, 6.67vw);
  height: min(88px, 6.52vw);
  background-color: #623234;
  cursor: pointer;
  border: none;
  z-index: 1000;
}

.menu-btn span {
  position: absolute;
  left: min(27px, 2vw);
  width: min(36px, 2.67vw);
  height: min(3px, 0.22vw);
  background-color: #fff;
  transition: 0.3s;
}

/* ハンバーガー */
.menu-btn span:nth-child(1) { top: min(34px, 2.52vw); }
.menu-btn span:nth-child(2) { top: min(44px, 3.26vw); }
.menu-btn span:nth-child(3) { top: min(54px, 4vw); }

/* × */
.menu-btn.is-active span:nth-child(1) {
  top: min(41px, 3.04vw);
  transform: rotate(45deg);
}

.menu-btn.is-active span:nth-child(2) {
  opacity: 0;
}

.menu-btn.is-active span:nth-child(3) {
  top: min(41px, 3.04vw);
  transform: rotate(-45deg);
}

/* メニュー */
.header-nav {
  position: fixed;
  top: 0;
  right: min(-575px, -42.59vw);
  width: min(575px, 42.59vw);
  height: 100vh;
  display: flex;
  align-items: center;
  background: rgba(255, 255, 255, 0.9);
  transition: 0.4s;
  z-index: 999;
  padding-left: min(75px, 5.56vw);
}

.header-nav.is-active {
  right: 0;
}

.nav-list {
  display: flex;
  flex-direction: column;
}

.nav-list li {
  margin: min(15px, 1.11vw) 0;
}

.nav-list li a {
  display: flex;
  align-items: center;
  gap: min(20px, 1.48vw);
  color: #000;
  text-decoration: none;
  font-size: min(24px, 1.78vw);
}

.nav-list li a img {
  width: min(22px, 1.63vw);
  height: auto;
}


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

.main-v-video video {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: translate(-50%, -50%);
}

.p1-a {
  background-image: url(../image/top-back1.png);
  background-repeat: no-repeat;
  background-size: 100% auto;
  background-position: center bottom;
}

.p1-a-container {
  padding-top: min(90px, 6.67vw);
  padding-bottom: min(94px, 6.96vw);
}

.p1-a .h2-title h2 {
  font-size: min(36px, 2.67vw);
  color: #000;
}

.p1-a .h2-title h2 span {
  font-size: min(48px, 3.55vw);
  color: #819A50;
}

.p1-a .h2-title p {
  color: #F0E9E1;
}

.p1-a-box {
  width: min(1280px, 94.81vw);
  display: flex;
  justify-content: space-between;
  position: relative;
  background-image: url(../image/part1.png), url(../image/part27.png), linear-gradient(to right, #8B99BA, #425176);
  background-repeat: no-repeat;
  background-size: min(284px, 21.04vw) auto, min(284px, 21.04vw) auto, cover;
  background-position: 
    left max(-20px, -1.48vw) top max(-13px, -0.96vw), 
    right bottom max(-20px, -1.48vw), 
    center;
  padding: min(92px, 6.81vw) min(50px, 3.70vw) min(80px, 5.93vw) min(100px, 7.41vw);
  border-radius: min(20px, 1.48vw);
  margin: min(30px, 2.22vw) auto 0;
}

.p1-a-item-box {
  background-color: #fff;
  border-radius: 9999px;
  padding: min(6px, 0.44vw);
  position: relative;
}

.p1-a-item-box::before {
  content: "";
  position: absolute;
  inset: min(6px, 0.44vw);
  border: 1px dashed #000;
  border-radius: 9999px;
  pointer-events: none;
}

.p1-a-item {
  width: min(577px, 42.7vw);
  text-align: center;
  padding-top: min(25px, 1.85vw);
  padding-bottom: min(20px, 1.48vw);
}

.p1-a-title h3 {
  font-size: min(32px, 2.37vw);
  font-weight: 500;
  display: flex;
  justify-content: center;
  letter-spacing: 0.10em;
}

.p1-a-title h3 span {
  position: relative;
  display: inline-block;
}

.p1-a-title h3 span::before {
  content: "●";
  position: absolute;
  top: max(-7px, -0.52vw);
  left: 50%;
  transform: translateX(-50%);
  font-size: min(4px, 0.3vw);
  color: #FBCC19;
}

.p1-a-p1 {
  width: min(460px, 34.07vw);
  margin: min(5px, 0.37vw) auto min(8px, 0.59vw);
}

.p1-a-p1 p {
  font-size: min(20px, 1.48vw);
  text-align: center;
  position: relative;
  margin: min(10px, 0.74vw) 0;
  color: #000;
}

.p1-a-p1 p::before {
  content: "";
  position: absolute;
  top: 60%;
  left: 0;
  width: calc(50% - min(120px, 8.89vw));
  height: 1px;
  background-color: #819A50;
  transform: translateY(-50%);
  box-shadow: 0 max(-5px, -0.37vw) 0 #819A50;
}

.p1-a-p1 p::after {
  content: "";
  position: absolute;
  top: 60%;
  right: 0;
  width: calc(50% - min(120px, 8.89vw));
  height: 1px;
  background-color: #819A50;
  transform: translateY(-50%);
  box-shadow: 0 max(-5px, -0.37vw) 0 #819A50;
}

.p1-a-text {
  width: min(460px, 34.07vw);
  background-color: #ECF4EA;
  padding: min(7px, 0.52vw) min(5px, 0.37vw);
  margin: 0 auto;
}

.p1-a-text p {
  font-size: min(15px, 1.11vw);
  line-height: 1.8;
}

.p1-a-list ul {
  width: min(522px, 38.67vw);
  display: flex;
  flex-direction: column;
  gap: min(8px, 0.59vw);
}

.p1-a-list ul li {
  display: flex;
  align-items: center;
  gap: min(20px, 1.48vw);
  background-color: #fff;
  padding: min(12px, 0.89vw) min(16px, 1.19vw);
}

.p1-a-list ul li:nth-of-type(1),
.p1-a-list ul li:nth-of-type(3) {
  border-right: min(4px, 0.3vw) solid #FBCC19;
}

.p1-a-list ul li:nth-of-type(2),
.p1-a-list ul li:nth-of-type(4) {
  border-right: min(4px, 0.3vw) solid #819A50;
}

.p1-a-list ul li img {
  width: min(24px, 1.78vw);
  height: auto;
}

.p1-a-list ul li p {
  font-size: min(20px, 1.48vw);
}

.p1-a-img {
  width: min(235px, 17.41vw);
  height: auto;
  position: absolute;
  bottom: 0;
  left: min(10px, 0.74vw);
  z-index: 5;
}

.p1-a-box2 {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: min(17px, 1.26vw);
  margin-top: min(53px, 3.93vw);
}

.p1-a-tel,
.p1-a-web {
  width: min(348px, 25.78vw);
  position: relative;
  padding: min(12px, 0.89vw) 0;
  border: min(3px, 0.22vw) solid #fff;
}

.p1-a-tel {
  background-color: #425176;
}

.p1-a-web {
  background-color: #819A50;
}

.p1-a-tel a,
.p1-a-web a {
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.p1-a-tel a span,
.p1-a-web a span {
  font-size: min(16px, 1.19vw);
  color: #fff;
}

.p1-a-tel a p,
.p1-a-web a p {
  font-size: min(36px, 2.67vw);
  color: #fff;
  display: flex;
  align-items: center;
  line-height: 1.2;
  margin: 0;
}

.p1-a-tel a p::before,
.p1-a-web a p::before {
  content: "";
  display: inline-block;
  margin-right: min(10px, 0.74vw);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  margin-top: min(5px, 0.37vw);
}

.p1-a-tel a p::before {
  width: min(24px, 1.78vw);
  height: min(24px, 1.78vw);
  background-image: url(../image/tel3.png);
}

.p1-a-web a p::before {
  width: min(19px, 1.41vw);
  height: min(19px, 1.41vw);
  background-image: url(../image/part31.png);
}

.p1-a-img2 {
  width: min(17px, 1.26vw);
  height: min(17px, 1.26vw);
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #fff;
  position: absolute;
  right: min(10px, 0.74vw);
  bottom: min(10px, 0.74vw);
  z-index: 5;
  border-radius: 50%;
}

.p1-b {
  background-image: url(../image/top-back2.png);
  background-repeat: no-repeat;
  background-size: 100% auto;
  background-position: center top;
  margin-top: max(-40px, -2.78vw);
}

.p1-b-contaoner {
  padding-top: min(120px, 8.33vw);
}

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

.p1-b-title h2 {
  font-size: min(96px, 6.67vw);
  font-weight: 500;
  color: #7F613E;
}

.p1-b-title p {
  font-size: min(40px, 2.78vw);
}

.p1-b-box-box {
  background-color: #819A50;
  background-image: url(../image/top-img2.png);
  background-repeat: no-repeat;
  background-size: auto 100%;
  background-position: right;
  padding: min(65px, 4.51vw) 0;
  margin-top: min(63px, 4.38vw);
}

.p1-b-box {
  width: min(1440px, 100vw);
  padding-left: min(80px, 5.56vw);
  margin: 0 auto;
}

.p1-b-list {
  width: min(726px, 50.42vw);
  background-color: #fff;
  padding: min(50px, 3.47vw) min(86px, 5.97vw) min(40px, 2.78vw) min(64px, 4.44vw);
  border-radius: min(20px, 1.39vw);
}

.p1-b-list ul {
  width: min(538px, 37.36vw);
  margin: 0 auto;
}

.p1-b-list ul li {
  display: flex;
  align-items: center;
  gap: min(12px, 0.83vw);
  padding: min(10px, 0.69vw) 0;
  border-bottom: 1px dashed #000;
}

.p1-b-list ul li img {
  width: min(23px, 1.60vw);
  height: auto;
}

.p1-b-list ul li p {
  font-size: min(20px, 1.39vw);
  letter-spacing: 0.03em;
}

.p1-b-text {
  margin-top: min(30px, 2.08vw);
}

.p1-b-text p {
  font-size: min(20px, 1.39vw);
  line-height: 1.4;
  letter-spacing: 0.03em;
}

.p1-c {
  background-image: url(../image/part28.png), url(../image/part2.png), url(../image/part29.png), linear-gradient(to right, #bcae7e 0%, #fff 30%, #fff 50%, #fff 70%, #bcae7e 100%);
  background-repeat: no-repeat;
  background-size: min(714px, 49.58vw) auto, min(432px, 30vw) auto, min(432px, 30vw) auto, cover;
  background-position: center top, right top, left min(35px, 2.43vw) bottom, center center;
}

.p1-c-container {
  padding-top: min(162px, 11.25vw);
  padding-bottom: min(90px, 5.63vw);
}

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

.p1-c-title h2 {
  font-size: min(32px, 2.22vw);
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.04em;
}

.p1-c-title h2 span {
  font-size: min(40px, 2.78vw);
  color: #425176;
  line-height: 2;
  letter-spacing: 0.04em;
}

.p1-c-text {
  text-align: center;
  margin: min(40px, 2.78vw) 0 min(50px, 3.47vw);
}

.p1-c-text p {
  font-size: min(16px, 1.11vw);
  line-height: 2;
  letter-spacing: 3%;
}

.p1-c-botan {
  width: min(485px, 33.68vw);
  margin: 0 auto;
}

.p1-d {
  background-color: #FBF5EC;
  background-image: url(../image/top-back4.png);
  background-repeat: no-repeat;
  background-size: 100% auto;
  background-position: center top min(90px, 6.25vw);
}

.p1-d-container {
  padding-top: min(93px, 6.46vw);
  padding-bottom: min(74px, 5.14vw);
}

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

.p1-d-title h2 {
  font-size: min(96px, 6.67vw);
  font-weight: 500;
  color: #819A50;
}

.p1-d-title p {
  font-size: min(40px, 2.78vw);
}

.p1-d-title p span {
  font-size: min(64px, 4.44vw);
  color: #FBCC19;
}

.p1-d .p1-d-title {
  padding-bottom: min(40px, 2.78vw);
}

.p1-d-box-box {
  width: min(1440px, 100vw);
  background-color: #DFECDC;
  padding: min(15px, 1vw);
  margin: min(110px, 7.64vw) auto 0;
}

.p1-d-box {
  display: flex;
  justify-content: center;
  gap: min(30px, 2.08vw);
  background-image: url(../image/top-back5.png);
  background-repeat: no-repeat;
  background-size: min(370px, 25.69vw) auto;
  background-position: bottom max(-16px, -1.19vw) right min(10px, 0.69vw);
  border: 1px solid #fff;
  padding-top: min(47px, 3.26vw);
}

.p1-d-img {
  width: min(624px, 43.33vw);
  margin-top: max(-96px, -6.67vw);
}

.p1-d-item {
  width: min(593px, 41.15vw);
}

.line-wrapper {
  display: flex;
  align-items: center;
  width: 100%;
}

.line-wrapper::before,
.line-wrapper::after {
  content: "";
  flex-grow: 1;
  height: min(2px, 0.14vw);
  background-color: #819A50;
}

.line-wrapper::before {
  margin-right: min(18px, 1.25vw);
}
.line-wrapper::after {
  margin-left: min(18px, 1.25vw);
}

.p1-d-p {
  width: min(89px, 6.59vw);
  height: min(89px, 6.59vw);
  display: flex;
  justify-content: center;
  align-items: center;
  background-image: url(../image/part5.png);
  background-repeat: no-repeat;
  background-size: 100% 100%;
  flex-shrink: 0;
  position: relative;
  z-index: 1;
}

.p1-d-p p:first-of-type {
  font-size: min(40px, 2.96vw);
  color: #fff;
  padding-bottom: min(10px, 0.74vw);
  position: relative;
  z-index: 2;
}

.p1-d-p p:first-of-type span {
  font-size: min(48px, 3.56vw);
}

.p1-d-p p:last-of-type {
  position: absolute;
  font-size: min(13px, 0.96vw);
  color: #84A47D;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 0;
  margin: 0;
}

.p1-d-h3 {
  text-align: center;
  margin: min(30px, 2.08vw) 0 min(37px, 2.57vw);
}

.p1-d-h3 h3 {
  font-size: min(32px, 2.22vw);
  font-weight: 500;
}

.p1-d-text {
  padding-bottom: min(70px, 4.86vw);
}

.p1-d-text p {
  font-size: min(16px, 1.11vw);
  line-height: 2;
  letter-spacing: 0.03em;
}

.p1-d-box.reverce {
  flex-direction: row-reverse;
  background-image: url(../image/top-back5.png);
  background-repeat: no-repeat;
  background-size: min(370px, 25.69vw) auto;
  background-position: bottom max(-16px, -1.11vw) left min(10px, 0.69vw);
}

.p1-d-box-box2 {
  width: min(1280px, 88.89vw);
  background-color: #fff;
  padding: min(15px, 1.04vw);
  margin: min(80px, 5.56vw) auto 0;
}

.p1-d-box-box2 .p1-d-box {
  background-image: url(../image/top-back6.png);
  background-repeat: no-repeat;
  background-size: min(370px, 25.69vw) auto;
  background-position: bottom min(10px, 0.69vw) right min(10px, 0.69vw);
  border: 1px solid #819A50;
}

.p1-d-img2 {
  width: min(522px, 36.25vw);
}

.p1-d-box2 {
  width: min(1280px, 94.81vw);
  background-image: url(../image/part10.png), url(../image/part11.png), url(../image/top-back7.png);
  background-repeat: no-repeat;
  background-size: min(284px, 21.04vw) auto, min(284px, 21.04vw) auto, cover;
  background-position: right max(-13px, -0.96vw) top max(-20px, -1.48vw), left bottom, center center;
  padding-top: min(108px, 8vw);
  padding-bottom: min(95px, 7.04vw);
  margin: min(80px, 5.93vw) auto 0;
}

.p1-d-box2 .h2-title h2 {
  color: #fff;
}

.p1-d-box2 .h2-title p {
  color: #425176;
}

.p1-d-text2 {
  text-align: center;
  margin-top: min(74px, 5.48vw);
}

.p1-d-text2 p {
  font-size: min(16px, 1.19vw);
  color: #fff;
  line-height: 2;
  letter-spacing: 0.03em;
}

.p1-e {
  background-image: url(../image/top-back8.png);
  background-repeat: no-repeat;
  background-size: min(1072px, 79.4vw) auto;
  background-position: right top
}

.p1-e-contianer {
  padding-top: min(100px, 7.4vw);
}

.p1-e-box-box {
  position: relative;
  background-image: url(../image/top-back6.png);
  background-repeat: no-repeat;
  background-size: min(441px, 32.6vw) auto;
  background-position: right bottom;
  padding-bottom: min(80px, 5.9vw);
}

.p1-e-box {
  width: min(1280px, 94.8vw); 
  display: flex;
  justify-content: flex-end;
  align-items: flex-start;
  gap: min(44px, 3.2vw);
  margin: 0 auto;
}

.p1-e-item {
  width: min(749px, 55.4vw);
  text-align: center;
}

.p1-e-title {
  background-color: #425176; 
  transform: skew(-20deg);
  display: inline-block;
  padding: min(10px, 0.7vw) min(56px, 4.1vw);
  margin-top: min(60px, 4.4vw);
}

.p1-e-title span {
  display: inline-block;
  transform: skew(20deg);
  font-size: min(32px, 2.3vw);
  color: #fff;
  line-height: 1.2;
  letter-spacing: 0.04em;
}

.p1-e-text {
  text-align: left;
  margin-top: min(28px, 2vw);
}

.p1-e-text p {
  font-size: min(16px, 1.18vw);
  line-height: 2;
  letter-spacing: 0.03em;
}

.p1-e-img-box {
  display: flex;
  margin-top: min(35px, 2.5vw);
}

.p1-e-img1 {
  width: min(402px, 29.7vw);
}

.p1-e-img2 {
  width: min(296px, 21.9vw);
  margin-top: min(94px, 6.9vw);
  margin-left: max(-42px, -3.1vw);
}

.p1-e-img-box2 {
  width: min(453px, 33.5vw);
  position: relative;
}

.p1-e-img3 {
  width: 100%;
}

.p1-e-img4 {
  width: min(218px, 16.15vw);
  position: absolute;
  left: min(22px, 1.63vw);
  bottom: min(22px, 1.63vw);
  z-index: 5;
}

.p1-e-p {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10;
  line-height: 0.9;
}

.p1-e-p p {
  font-size: min(96px, 6.67vw);
  color: #819A50;
  letter-spacing: 0.04em;
  writing-mode: vertical-rl;
  text-orientation: sideways;
  margin: 0;
}

.p1-e-box-box2 {
  background-color: #F0E9E1;
  padding: min(80px, 5.92vw) 0;
}

.p1-e-box2 {
  width: min(1280px, 94.81vw);
  height: min(343px, 25.4vw);
  display: flex;
  justify-content: space-between;
  margin: 0 auto;
}

.p1-e-item2 {
  width: min(586px, 43.4vw);
  background-color: #fff;
  padding: min(30px, 2.22vw) min(27px, 2vw) 0;
}

.p1-e-title2 {
  text-align: center;
  background-color: #425176;
  padding: min(5px, 0.37vw) 0;
}

.p1-e-box2 .p1-e-item2:nth-of-type(2) .p1-e-title2 {
  background-color: #819A50;  
}

.p1-e-title2 h3 {
  font-size: min(20px, 1.48vw);
  font-weight: 500;
  color: #fff;
  line-height: 2;
  letter-spacing: 0.03em;
}

.p1-e-list {
  margin-top: min(25px, 1.85vw);
}

.p1-e-list ul li {
  display: flex;
  align-items: center;
  font-size: min(16px, 1.18vw);
  line-height: 2;
  letter-spacing: 0.03em;
}

/* .p1-e-list ul li span {
  font-size: min(16px, 1.18vw);
  line-height: 2;
  letter-spacing: 0.03em;
  margin-right: min(5px, 0.37vw);
} */

.p1-e-botan {
  width: min(485px, 35.92vw);
  margin: min(80px, 5.92vw) auto;
}

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

.p1-f-container {
  padding-top: min(110px, 8.15vw);
  padding-bottom: min(50px, 3.7vw);
}

.h2-title h2 {
  color: #fff;
}

.h2-title p {
  color: rgba(255, 255, 255, 0.2);
}

.p1-f-box-box {
  width: min(957px, 70.89vw);
  background-color: rgba(66, 81, 118, 0.8);
  padding: min(12px, 0.89vw);
  margin: min(54px, 4vw) auto 0;
}

.p1-f-box {
  padding: min(30px, 2.22vw) min(34px, 2.52vw);
  border: 1px solid #fff;
}

.p1-f-title {
  display: flex;
  justify-content: center;
  align-items: center;
}

.p1-f-title h3 {
  font-size: min(24px, 1.78vw);
  font-weight: 400;
  color: #fff;
  padding-top: min(25px, 1.85vw);
}

.p1-f-title p {
  font-size: min(36px, 2.67vw);
  font-weight: 400;
  color: #fff;
  background-image: url(../image/top-back10.png);
  background-repeat: no-repeat;
  background-size: 100% 100%;
  padding: min(28px, 2.07vw) min(42px, 3.11vw) min(17px, 1.26vw) min(18px, 1.33vw);
}

.p1-f-title p span {
  font-size: min(32px, 2.37vw);
}

.p1-f-text {
  margin-top: min(17px, 1.26vw);
}

.p1-f-text p {
  font-size: min(16px, 1.18vw);
  color: #fff;
  line-height: 2;
  letter-spacing: 0.03em;
}

.p1-f-box2 {
  display: flex;
  justify-content: center;
  gap: min(26px, 1.93vw);
  margin-top: min(26px, 1.93vw);
}

.p1-f-link {
  width: min(283px, 20.96vw);
  height: min(283px, 20.96vw);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: min(32px, 2.37vw);
  background-image: url(../image/top-back12.png);
  background-repeat: no-repeat;
  background-size: 100% 100%;
}

.p1-f-box2 .p1-f-link:nth-of-type(1) img {
  width: min(69px, 5.11vw);
  height: auto;
}

.p1-f-box2 .p1-f-link:nth-of-type(2) img {
  width: min(76px, 5.63vw);
  height: auto;
}

.p1-f-box2 .p1-f-link:nth-of-type(3) img {
  width: min(69px, 5.11vw);
  height: auto;
}

.p1-f-box2 .p1-f-link:nth-of-type(4) img {
  width: min(96px, 7.11vw);
  height: auto;
}

.p1-f-link span {
  font-size: min(20px, 1.48vw);
  letter-spacing: 0.08em;
}

.p1-g {
  background-color: #CBBE8E;
  background-image: url(../image/part1.png), url(../image/part13.png);
  background-repeat: no-repeat;
  background-size: min(343px, 25.41vw) auto, min(432px, 32vw) auto;
  background-position: left bottom max(-20px, -1.48vw), right top max(-96px, -7.11vw);
}

.p1-g-container {
  padding-top: min(70px, 5.19vw);
  padding-bottom: min(80px, 5.93vw);
}

.p1-g-logo {
  width: min(402px, 29.78vw);
  margin: 0 auto;
}

.p1-g-box {
  width: min(1120px, 82.96vw);
  display: flex;
  justify-content: space-between;
  margin: min(55px, 4.07vw) auto 0;
}

.p1-g-item {
  width: min(542px, 40.15vw);
}

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

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

.p1-a-box2.p1-g-box2 {
  display: none;
}

.p1-g-link {
  display: flex;
  justify-content: center;
  gap: min(8px, 0.59vw);
  margin-top: min(13px, 0.96vw);
}

.p1-g-tel, .p1-g-web {
  width: min(267px, 19.78vw);
}

.p1-g-table {
  width: min(477px, 35.33vw);
}

.p1-g-table-inner {
  width: 100%;
  background-color: #836442;
  padding: min(18px, 1.33vw) min(26px, 1.93vw);
}

.p1-g-table table {
  width: 100%;
  border-collapse: collapse;
}

.p1-g-table th, 
.p1-g-table td {
  text-align: center;
  font-weight: 400;
  color: #fff;
}

.p1-g-table thead th {
  font-size: min(16px, 1.19vw);
  padding: min(10px, 0.74vw) min(5px, 0.37vw);
}

.p1-g-table th:first-child,
.p1-g-table td:first-child {
  width: min(120px, 8.89vw);
  text-align: center;
}

.p1-g-table tbody td {
  font-size: min(16px, 1.19vw);
  padding: min(10px, 0.74vw) 0;
}

.p1-g-table tbody tr:first-child td {
  border-top: 1px solid #fff;
}

.p1-g-notes {
  margin-top: min(12px, 0.89vw);
  font-size: min(16px, 1.19vw);
  line-height: 1.8;
}

.p1-g-notes p {
  margin: 0;
}

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

.p1-h-link {
  width: min(570px, 57vw);
  margin: 0 auto;
}


/* インプラント治療 */
.p2-a-contianer {
  padding-top: min(100px, 7.41vw);
}

.p2-a-box {
  width: min(1280px, 94.81vw);
  display: flex;
  justify-content: space-between;
  margin: min(60px, 4.44vw) auto 0;
}

.p2-a-item {
  width: min(656px, 48.59vw);
}

.p2-a-title {
  border-bottom: 1px solid #819A50;
}

.p2-a-title h3 {
  font-size: min(32px, 2.37vw);
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.04em;
}

.p2-a-text {
  margin-top: min(30px, 2.22vw);
}

.p2-a-text p {
  font-size: min(16px, 1.19vw);
  line-height: 2;
  letter-spacing: 0.03em;
}

.p2-a-img {
  width: min(609px, 45.11vw);
}

.p2-a-box.reverce {
  flex-direction: row-reverse;
}

.p2-b-container {
  padding-top: min(80px, 5.93vw);
}

.p2-b-box {
  width: min(1280px, 94.81vw);
  margin: 0 auto;
}

.p2-b-text {
  text-align: center;
  margin: min(30px, 2.22vw) 0 min(40px, 2.96vw);
}

.p2-b-text p {
  font-size: min(16px, 1.19vw);
  line-height: 2;
  letter-spacing: 0.04em;
}

.p2-b-item-box {
  display: flex;
  flex-wrap: wrap;
  gap: min(16px, 1.19vw);
  row-gap: min(24px, 1.78vw);
  margin-top: min(40px, 2.96vw);
  margin-bottom: min(66px, 4.89vw);
}

.p2-b-item {
  width: min(416px, 30.81vw);
}

.p2-b-p {
  width: 100%;
  height: min(88px, 6.52vw);
  text-align: center;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #658A5E;
}

.p2-b-item-box .p2-b-item:nth-of-type(2) .p2-b-p, 
.p2-b-item-box .p2-b-item:nth-of-type(4) .p2-b-p {
  background-color: #7D8F4C;
}

.p2-b-p p {
  font-size: min(24px, 1.78vw);
  color: #fff;
  line-height: 1.4;
  letter-spacing: 0.04em;
}

.p2-b-item-box2 {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  gap: min(16px, 1.19vw);
  row-gap: min(16px, 1.19vw);
  margin-top: min(40px, 2.96vw);
}

.p2-b-item2 {
  width: min(416px, 30.81vw);
  height: min(88px, 6.52vw);
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #FBF5EC;
  border-top: 1px solid #000;
  border-bottom: 1px solid #000;
}

.p2-b-p2 {
  text-align: center;
}

.p2-b-p2 p {
  font-size: min(24px, 1.78vw);
  color: #623234;
  line-height: 1.4;
  letter-spacing: 0.04em;
}

.p2-b-item-box3 {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  gap: min(16px, 1.19vw);
  margin-top: min(13px, 0.96vw);
}

.p2-b-item-box3 .p2-b-item2 {
  height: min(114px, 8.44vw);
}

.p2-e-container {
  padding-top: min(80px, 5.93vw);
}

.sub-title-box + .p2-e-box {
  margin-top: min(60px, 4.44vw);
}

.p2-e-box {
  width: min(1280px, 94.81vw);
  display: flex;
  justify-content: space-between;
  margin: min(30px, 2.22vw) auto 0;
}

.p2-e-item {
  width: min(814px, 60.3vw);
}

.p2-e-title {
  width: min(647px, 47.93vw);
  height: min(48px, 3.56vw);
  position: relative;
  display: flex;
  align-items: center;
  background-color: #425176;
  border-radius: 0 min(30px, 2.22vw) min(30px, 2.22vw) 0;
}

.p2-e-title::after {
  content: "";
  width: min(21px, 1.56vw);
  height: min(21px, 1.56vw);
  position: absolute;
  top: 0;
  left: 0;
  z-index: 5;
  background-color: #D2A706;
}

.p2-e-title h3 {
  font-size: min(20px, 1.48vw);
  font-weight: 500;
  color: #fff;
  letter-spacing: 0.04em;
  padding-left: min(40px, 2.96vw);
}

.p2-e-text {
  margin-top: min(23px, 1.7vw);
}

.p2-e-text p {
  font-size: min(16px, 1.19vw);
  line-height: 2;
  letter-spacing: 0.04em;
}

.p2-e-img {
  width: min(416px, 30.81vw);
}

.p2-f-text {
  width: min(1280px, 94.81vw);
  text-align: center;
  margin: min(30px, 2.22vw) auto min(40px, 2.96vw);
}

.p2-f-text p {
  font-size: min(16px, 1.19vw);
  line-height: 2;
  letter-spacing: 0.04em;  
}

.p2-g-container {
  padding-top: min(80px, 5.93vw);
}

.p2-g-box-box {
  background-color: #F0E9E1;
  margin-top: min(60px, 4.44vw);
}

.p2-g-box {
  padding-top: min(100px, 7.41vw);
  padding-bottom: min(80px, 5.93vw);
}

.p2-g-item {
  width: min(1280px, 94.81vw);
  background-color: #fff;
  position: relative;
  padding: min(82px, 6.07vw) min(45px, 3.33vw) min(56px, 4.15vw);
  border-radius: min(10px, 0.74vw);
  margin: 0 auto;
}

.p2-g-p {
  width: min(111px, 8.22vw);
  height: min(111px, 8.22vw);
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  top: max(-55px, -4.07vw); /* 半分外に出る設定も可変 */
  left: 50%;
  transform: translateX(-50%);
  background-color: #7E8F4C;
  border-radius: 50%;
  z-index: 1;
}

.p2-g-p p:first-of-type {
  font-size: min(48px, 3.56vw);
  color: #fff;
  padding-bottom: min(10px, 0.74vw);
  position: relative;
  z-index: 2;
}

.p2-g-p p:first-of-type span {
  font-size: min(64px, 4.74vw);
}

.p2-g-p p:last-of-type {
  position: absolute;
  font-size: min(20px, 1.48vw);
  color: rgba(255, 255, 255, 0.3);
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 0;
  margin: 0;
}

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

.p2-g-title h3 {
  font-size: min(24px, 1.78vw);
  font-weight: 500;
  color: #623234;
  letter-spacing: 0.04em;
}

.p2-g-text {
  margin-top: min(13px, 0.96vw);
}

.p2-g-text p {
  font-size: min(16px, 1.19vw);
  line-height: 2;
  letter-spacing: 0.04em;
}

.p2-g-img {
  width: min(50px, 3.7vw);
  margin: min(24px, 1.78vw) auto min(80px, 5.93vw);
}

.p2-h-container {
  padding-top: min(80px, 5.93vw);
  padding-bottom: min(120px, 8.89vw);
}

.p2-h-box {
  width: min(1280px, 94.81vw);
  margin: min(60px, 4.44vw) auto 0;
}

.faq-item {
  margin-bottom: min(24px, 1.78vw);
}

.faq-question {
  width: 100%;
  height: min(70px, 5.19vw);
  display: flex;
  align-items: center;
  padding: 0;
  background: none;
  border: none;
  outline: none;
  cursor: pointer;
  text-align: left;
  position: relative;
  background-color: #3F4F74;
  line-height: min(70px, 5.19vw);
  color: #fff;
  font-size: min(24px, 1.78vw);
  font-weight: 500;
  font-family: "Zen Old Mincho", serif;
  letter-spacing: 0.04em;
  gap: min(20px, 1.48vw);
}

.faq-question span {
  display: flex;
  justify-content: center;
  align-items: center;
  width: min(76px, 5.63vw);
  height: min(70px, 5.19vw);
  flex-shrink: 0;
  background-color: #BDAD70;
  color: #fff;
  font-size: min(24px, 1.78vw);
}

.faq-question::after {
  content: "+";
  position: absolute;
  right: min(20px, 1.48vw);
  top: 50%;
  transform: translateY(-50%);
  font-size: min(24px, 1.78vw);
  color: #fff;
}

.faq-question.is-active::after {
  content: "−";
}

.faq-answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease-out;
  background-color: #FCF7F0;
}

.faq-answer-content {
  padding: min(22px, 1.63vw) min(28px, 2.07vw);
}

.faq-answer-content p {
  font-size: min(16px, 1.19vw);
  line-height: 2;
  letter-spacing: 0.04em;
}


/* 補綴治療 */
.p3-a-container {
  padding-top: min(90px, 6.67vw);
}

.p3-a-box {
  width: min(1280px, 94.81vw);
  margin: min(32px, 2.37vw) auto 0;
}

.p3-a-text {
  text-align: center;
}

.p3-a-text p {
  font-size: min(16px, 1.19vw);
  line-height: 2;
  letter-spacing: 0.04em;
}

.p3-a-h3 {
  text-align: center;
  padding-bottom: min(20px, 1.48vw);
  border-bottom: 1px solid #819A50;
  margin-top: min(50px, 3.7vw);
}

.p3-a-h3 h3 {
  font-size: min(32px, 2.37vw);
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.04em;
}

.p3-a-p {
  text-align: center;
}

.p3-a-p p {
  font-size: min(16px, 1.19vw);
  line-height: 2;
  letter-spacing: 0.03em;
  padding-top: min(28px, 2.07vw);
}

.p3-a-img {
  width: min(609px, 45.11vw);
  margin: min(42px, 3.11vw) auto 0;
}

.p3-b .p2-e-item {
  width: min(705px, 52.22vw);
}

.p3-b .p3-b-box {
  width: min(1280px, 94.81vw);
  margin: min(30px, 2.22vw) auto 0;
}

.p3-b-box .p2-e-item {
  width: 100%;
}

.p3-b .p2-e-img {
  width: min(536px, 39.7vw);
}


/* 料金表 */
.p4-a-container {
  padding-top: min(100px, 7.41vw);
}

.p4-a-box {
  width: min(1280px, 94.81vw);
  margin: min(32px, 2.37vw) auto 0;
}

.p4-a-p {
  text-align: center;
}

.p4-a-p p {
  font-size: min(16px, 1.19vw);
  line-height: 2;
  letter-spacing: 0.04em;
}

.p4-a-item {
  margin-top: min(32px, 2.37vw);
}

.p4-a-table {
  width: 100%;
  margin-top: min(40px, 2.96vw);
}

.p4-a-table table {
  width: 100%;
  border-collapse: collapse;
}

.p4-a-table table tr th, 
.p4-a-table table tr td {
  text-align: left;
  font-size: min(20px, 1.48vw);
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.04em;
  padding: min(12px, 0.89vw) 0 min(12px, 0.89vw) min(10px, 0.74vw);
  border: 1px solid #000;
}

.p4-a-table table tr th {
  width: min(557px, 41.26vw);
  background-color: #F6F2ED;
}

.p4-b-container {
  width: min(1280px, 94.81vw);
  background-color: #658A5E;
  padding: min(12px, 0.89vw);
  margin: min(40px, 2.96vw) auto min(120px, 8.89vw);
}

.p4-b-box {
  padding: min(28px, 2.07vw) min(48px, 3.56vw) min(42px, 3.11vw);
  border: 1px solid #fff;
}

.p4-b-title {
  text-align: center;
  margin-top: min(8px, 0.59vw);
}

.p4-b-title h3 {
  font-size: min(24px, 1.78vw);
  font-weight: 500;
  color: #fff;
  line-height: 2;
  letter-spacing: 0.04em;
}

.p4-b-item {
  margin-bottom: min(16px, 1.19vw);
}

.p4-b-item span, 
.p4-b-item p {
  font-size: min(16px, 1.19vw);
  color: #fff;
  line-height: 2;
  letter-spacing: 0.04em;
}

.p4-b-botan {
  width: min(485px, 35.93vw);
  margin: 0 auto;
}


/* ドクター・スタッフ紹介 */
.p5-a-container {
  padding-top: min(100px, 7.41vw);
}

.p5-a-box {
  width: min(1280px, 94.81vw);
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin: min(67px, 4.96vw) auto min(60px, 4.44vw);
}

.p5-a-item {
  width: min(802px, 59.41vw);
}

.p5-a-text p {
  font-size: min(16px, 1.19vw);
  line-height: 2;
  letter-spacing: 0.03em;
}

.p5-a-title {
  padding: min(12px, 0.89vw) 0;
  border-bottom: 1px solid #819A50;
  margin-top: min(26px, 1.93vw);
}

.p5-a-title h3, 
.p5-a-p span {
  font-size: min(24px, 1.78vw);
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.03em;
}

.p5-a-p {
  width: min(750px, 55.56vw);
  margin-top: min(28px, 2.07vw);
}

.p5-a-p p {
  font-size: min(16px, 1.19vw);
  line-height: 2;
  letter-spacing: 0.03em; 
}

.p5-a-img-box {
  display: flex;
  margin-top: min(46px, 3.41vw);
}

.p5-a-img1 {
  width: min(296px, 21.93vw);
}

.p5-a-img2 {
  width: min(218px, 16.15vw);
  margin-top: min(70px, 5.19vw);
  margin-left: max(-32px, -2.37vw);
}

.p5-a-img-box2 {
  width: min(453px, 33.56vw);
  position: relative;
}

.p5-a-img3 {
  width: 100%;
}

.p5-a-img4 {
  width: min(218px, 16.15vw);
  position: absolute;
  bottom: max(-43px, -3.19vw);
  left: max(-86px, -6.37vw);
  z-index: 10;
}

.p5-b .p5-a-box {
  padding-right: min(74px, 5.48vw);
  margin-bottom: min(84px, 6.22vw);
}

.p5-b .p5-a-item {
  width: min(802px, 59.41vw);
}

.p5-b .p5-a-p {
  width: min(768px, 56.89vw);
}

.p5-a-img-box2 {
  width: min(340px, 25.19vw);
}

.p5-b .p5-a-img4 {
  width: min(163px, 12.07vw);
  position: absolute;
  bottom: max(-32px, -2.37vw);
  left: max(-64px, -4.74vw);
}

.p5-c .faq-answer-content p {
  line-height: 1.4;
}

.p5-d-container {
  padding-top: min(80px, 5.93vw);
  padding-bottom: min(150px, 11.11vw);
}

.p5-d-box {
  width: min(1280px, 94.81vw);
  display: grid;
  grid-template-columns: repeat(3, min(359px, 26.59vw));
  justify-content: center;
  column-gap: min(47px, 3.48vw);
  row-gap: min(66px, 4.89vw);
  margin: min(53px, 3.93vw) auto 0;
}

.p5-d-item {
  width: min(359px, 26.59vw);
  position: relative;
}

.p5-d-item:nth-child(7),
.p5-d-item:nth-child(8),
.p5-d-item:nth-child(9) {
  margin-top: min(64px, 4.74vw);
}

.p5-d-img1 {
  width: 100%;
  display: block;
}

.p5-d-img2 {
  width: min(163px, 12.07vw);
  position: absolute;
  bottom: max(-32px, -2.37vw);
  left: max(-20px, -1.48vw);
  z-index: 10;
}

.p5-d-text {
  position: absolute;
  bottom: max(-90px, -6.67vw);
  left: 0;
  z-index: 10;
}

.p5-d-text p {
  font-size: min(16px, 1.19vw);
  line-height: 1.4;
  letter-spacing: 0.03em;
}


/* 医院案内 */
.p6-a-container {
  padding-top: min(100px, 7.41vw);
}

.p6-a-box-box {
  background-color: #F0E9E1;
  margin-top: min(65px, 4.81vw);
}

.p6-a-box {
  width: min(1280px, 94.81vw);
  display: flex;
  justify-content: space-between;
  padding: min(84px, 6.22vw) 0;
  margin: 0 auto;
}

.p6-a-table {
  width: min(640px, 47.41vw);
}

.p6-a-table table {
  width: 100%;
  border-collapse: collapse;
}

.p6-a-table table th, 
.p6-a-table table td {
  text-align: left;
  font-size: min(16px, 1.19vw);
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.03em;
  padding: min(20px, 1.48vw) 0;
  border-bottom: 1px solid #000;
}

.p6-a-table table th {
  width: min(240px, 17.78vw);
  vertical-align: top;
}

.p6-a-img {
  width: min(541px, 40.07vw);
}

.p6-b-container {
  padding-top: min(80px, 5.93vw);
}

.p6-b-box {
  width: min(1280px, 94.81vw);
  position: relative;
  margin: min(65px, 4.81vw) auto 0;
}

.p6-b-item {
  width: 100%;
  height: min(464px, 34.37vw);
  overflow: hidden;
}

.p6-b-item iframe {
  width: 100%;
  height: min(950px, 70.37vw);
  margin-top: max(-200px, -14.81vw);
}

.p6-b-img {
  width: min(307px, 22.74vw);
  position: absolute;
  top: min(40px, 2.96vw);
  left: min(45px, 3.33vw);
  z-index: 10;
}

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

.p6-c-box {
  width: min(1280px, 94.81vw);
  margin: min(65px, 4.81vw) auto 0;
}

.p6-c-box iframe {
  width: 100%;
  height: min(484px, 35.85vw);
}

.p6-d-container {
  padding-top: min(80px, 5.93vw);
  padding-bottom: min(120px, 8.89vw);
}

.p6-d-box {
  width: min(1280px, 94.81vw);
  display: grid;
  grid-template-columns: repeat(3, min(416px, 30.81vw));
  column-gap: min(16px, 1.19vw);
  row-gap: min(40px, 2.96vw);
  margin: min(65px, 4.81vw) auto 0;
}

.p6-d-title {
  text-align: center;
  background-color: #658A5E;
  padding: min(27px, 2vw) 0;
}

.p6-d-title h3 {
  font-size: min(24px, 1.78vw);
  font-weight: 500;
  color: #fff;
  line-height: 1.4;
  letter-spacing: 0.04em;
}

.p6-d-text {
  margin-top: min(16px, 1.19vw);
}

.p6-d-text p {
  font-size: min(16px, 1.19vw);
  line-height: 1.4;
  letter-spacing: 0.03em;
}

.p6-d-box .p6-d-item:nth-of-type(2) .p6-d-title, 
.p6-d-box .p6-d-item:nth-of-type(5) .p6-d-title, 
.p6-d-box .p6-d-item:nth-of-type(7) .p6-d-title {
  background-color: #7D8F4C;
}



/* LINE予約の要素 */
.line-modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999;
  display: none;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.8);
  justify-content: center;
  align-items: center;
}

.line-modal-overlay.is-active {
  display: flex;
}

body.no-scroll {
  overflow: hidden;
}

.line-modal-content {
  position: relative;
  width: min(436px, 43.6vw);
  text-align: center;
  background: #fff;
}

.line-modal-close {
  position: absolute;
  top: 0;
  right: 0;
  display: flex;
  width: min(45px, 4.5vw);
  height: min(38px, 3.8vw);
  font-size: min(28px, 2.8vw);
  font-weight: 500;
  color: #fff;
  cursor: pointer;
  background: #000;
  align-items: center;
  justify-content: center;
}

.line-modal-close:hover {
  opacity: .7;
}

.modal-header-bar {
  height: min(38px, 3.8vw);
  background-color: #6d8e00;
}

.line-modal-inner {
  padding: min(25px, 2.5vw) min(25px, 2.5vw) min(15px, 1.5vw);
}

.modal-info {
  font-family: "Noto Sans JP", sans-serif;
  font-size: min(16px, 1.6vw);
  font-weight: bold;
}

.red-text {
  font-weight: bold;
  color: red;
}

.step-box {
  width: min(100px, 10vw);
  padding: min(5px, 0.5vw) 0;
  margin: min(20px, 2vw) auto min(10px, 1vw);
  font-size: min(20px, 2vw);
  font-weight: bold;
  color: #fff;
  background: #84b300;
}

.code-area {
  position: relative;
  display: flex;
  margin: min(15px, 1.5vw) 0 min(20px, 2vw);
  padding-left: min(85px, 8.5vw);
  align-items: center;
  justify-content: center;
  gap: min(12px, 1.2vw);
}

.code-number {
  font-family: "Noto Sans JP", sans-serif;
  font-size: min(32px, 3.2vw);
  font-weight: bold;
  letter-spacing: 0.05em;
}

.copy-container {
  position: relative;
  display: flex;
  align-items: center;
}

.copy-img {
  width: min(85px, 8.5vw);
  height: auto;
  cursor: pointer;
  transition: transform 0.2s;
}

.copy-img:hover {
  transform: scale(1.05);
}

.copy-message {
  position: absolute;
  top: min(-85px, -8.5vw);
  left: 50%;
  z-index: 10;
  display: none;
  width: min(200px, 20vw);
  padding: min(10px, 1vw) 0;
  font-family: "Noto Sans JP", sans-serif;
  font-size: min(15px, 1.5vw);
  color: #fff;
  text-align: center;
  white-space: nowrap;
  background: #ee878e;
  border-radius: min(4px, 0.4vw);
  transform: translateX(-50%);
  align-items: center;
  justify-content: center;
  gap: min(10px, 1vw);
}

.copy-message[style*="display: block"] {
  display: flex !important;
}

.copy-msg-icon {
  width: min(20px, 2vw);
  height: auto;
  /* filter: brightness(0) invert(1); */
}

.copy-message span {
  display: inline-block;
  font-weight: bold;
  line-height: 1.4;
  text-align: center;
}

/* .copy-message::after {
  position: absolute;
  top: 100%;
  left: 50%;
  content: "";
  border: min(8px, 0.8vw) solid transparent;
  border-top-color: #ee878e;
  transform: translateX(-50%);
} */

.qr-code {
  width: min(150px, 15vw);
  margin: 0 auto;
}

.qr-code img {
  width: 100%;
  height: auto;
}

.qr-desc {
  font-family: "Noto Sans JP", sans-serif;
  font-size: min(16px, 1.6vw);
}

.qr-desc2 {
  font-family: "Noto Sans JP", sans-serif;
  font-size: min(12px, 1.2vw);
  line-height: 1.5;
  color: #707070;
}

.line-add-btn {
  display: block;
  width: min(150px, 15vw);
  margin: min(20px, 2vw) auto min(10px, 1vw);
  font-weight: bold;
  color: #fff;
  text-decoration: none;
  background: #00b900;
  border-radius: min(5px, 0.5vw);
}

.line-add-btn img {
  display: block;
  width: 100%;
  height: auto;
}

.move-text {
  margin-top: min(5px, 0.5vw);
  font-family: "Noto Sans JP", sans-serif;
  font-size: min(16px, 1.6vw);
  font-weight: bold;
}





/* 下層共通トップ 1200で可変 */
.sub-v {
  width: 100%;
  height: min(408px, 34vw);
  background-image: url(../image/sub-back.png);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
}

.sub-v-vontainer {
  padding-top: min(234px, 19.5vw);
}

.sub-v-title {
  text-align: center;
}

.sub-v-title h1 {
  font-size: min(40px, 3.33vw);
  font-weight: 500;
  letter-spacing: 0.08em;
}

.sub-v-title p {
  font-size: min(24px, 2vw);
  font-weight: 500;
  color: #819A50;
  letter-spacing: 0.08em;
  text-shadow: 1px 1px 0 #fff, -1px 1px 0 #fff, 1px -1px 0 #fff, -1px -1px 0 #fff;
}



/* 下層共通タイトル 1350で可変 */
.sub-title-box {
  width: min(1280px, 94.81vw);
  margin: 0 auto;
}

.sub-title-img {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: min(20px, 1.48vw);
  width: 100%;
  margin: 0 auto;
}

.sub-title-img::before,
.sub-title-img::after {
  content: "";
  height: 1px;
  flex: 1;
  background-color: #819A50;
}

.sub-title-img img {
  width: min(54px, 4vw);
  height: auto;
}

.sub-title {
  text-align: center;
  padding-bottom: min(20px, 1.48vw);
  border-bottom: 1px solid #819A50;
}

.sub-title h2 {
  font-size: min(36px, 2.67vw);
  font-weight: 500;
  color: #7F613E;
  letter-spacing: 0.04em;
}


/* 下層共通タイトル２ 1350で可変 */
.sub-title-box2 {
  width: min(1280px, 94.81vw);
  background-color: #C4B781;
  padding-top: min(10px, 0.74vw);
  margin: 0 auto;
}

.sub-title2 {
  text-align: center;
  padding: min(10px, 0.74vw) 0;
  border-top: 1px solid #fff;
}

.sub-title2 h3 {
  font-size: min(32px, 2.37vw);
  font-weight: 500;
  color: #fff;
  line-height: 2;
  letter-spacing: 0.04em;
}





/* メイン共通タイトル */
.h2-title {
  text-align: center;
  position: relative;
}

.h2-title h2 {
  position: relative;
  z-index: 2;
  font-size: min(40px, 2.96vw);
  font-weight: 500;
}

.h2-title p {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: min(96px, 7.11vw);
  z-index: 1;
  white-space: nowrap;
}


/* フッター */
.footer-map {
  position: relative;
  width: 100%;
  height: min(414px, 34.5vw);
  margin-right: calc(50% - 50vw);
  margin-left: calc(50% - 50vw);
  overflow: hidden; 
}

.footer-map iframe {
  width: 100%;
  height: min(800px, 66.67vw);
  margin-top: max(-170px, -14.17vw);
  border: 0;
}

.map-overlay-img {
  position: absolute;
  top: min(40px, 3.33vw);
  left: min(80px, 6.67vw);
  z-index: 15;
}

.map-overlay-img img {
  width: min(307px, 25.58vw);
  height: auto;
  display: block;
}

.copy-right {
  text-align: center;
  background-color: #819A50;
  padding: min(15px, 1.25vw) 0;
}

.copy-right p {
  font-size: min(15px, 1.25vw);
  color: #fff;
}

/* トップに戻る */
.page-top {
  position: fixed;
  right: min(89px, 6.59vw);
  bottom: min(92px, 6.81vw);
  z-index: 100;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.5s, visibility 0.5s, transform 0.3s;
}

.page-top.is-show {
  opacity: 1;
  visibility: visible;
}

.page-top a {
  display: block;
  width: min(72px, 5.33vw);
  height: auto;
}

.page-top img {
  width: 100%;
  height: auto;
}






@media screen and (max-width: 767px) {
  /* 全体 */
  .sp-br, .sp-blok {
    display: block;
  }

  .pc-blok {
    display: none;
  }

  body {
    margin-bottom: 61px;
  }

  /* ヘッダー */
  .header {
    height: 77px;
  }

  .header-inner {
    align-items: center;
    padding-right: 13px;
  }

  .header-logo img {
    width: 237px;
    height: auto;
  }

  .header-item {
    gap: 0;
  }

  .header-tel {
    display: none;
  }

  .header-web,
  .header-line {
    display: none;
  }

  .header-text {
    display: none;
  }

  /* ハンバーガーボタン */
  .menu-btn {
    position: relative;
    width: 58px;
    height: 57px;
    background-color: #623234;
    cursor: pointer;
    border: none;
    z-index: 1000;
  }

  .menu-btn span {
    position: absolute;
    left: 18px;
    width: 22px;
    height: 2px;
    background-color: #fff;
    transition: 0.3s;
  }

  .menu-btn span:nth-child(1) {
    top: 20px;
  }

  .menu-btn span:nth-child(2) {
    top: 28px;
  }

  .menu-btn span:nth-child(3) {
    top: 36px;
  }

  .menu-btn.is-active span:nth-child(1) {
    top: 28px;
    transform: rotate(45deg);
  }

  .menu-btn.is-active span:nth-child(2) {
    opacity: 0;
  }

  .menu-btn.is-active span:nth-child(3) {
    top: 28px;
    transform: rotate(-45deg);
  }

  /* メニュー */
  .header-nav {
    position: fixed;
    top: 0;
    right: -100%;
    width: 100%;
    height: 100vh;
    display: flex;
    align-items: center;
    background: rgba(255, 255, 255, 0.9);
    transition: 0.4s;
    z-index: 999;
    padding-left: 30px;
  }

  .nav-list li {
    margin: 15px 0;
  }

  .nav-list li a {
    display: flex;
    align-items: center;
    gap: 20px;
    color: #000;
    text-decoration: none;
    font-size: 16px;
  }

  .nav-list li a img {
    width: 16px;
    height: auto;
  }


  /* トップ */
  .main-v {
    height: 540px;
  }

  .p1-a-container {
    padding-top: 50px;
    padding-bottom: 27px;
  }

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

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

  .p1-a-box {
    width: 92%;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    position: relative;
    background-image: url(../image/part1.png), url(../image/part27.png), linear-gradient(to right, #8B99BA, #425176);
    background-repeat: no-repeat;
    background-size: 149px auto, 149px auto, cover;
    background-position: 
      left -4% top 0, 
      right -2% bottom -2%, 
      center;
    padding: 90px 16px 30px;
    border-radius: 20px;
    margin: 20px auto 0;
  }

  .p1-a-item-container {
    position: relative;
  }

  .p1-a-item-box {
    z-index: 2;
    padding: 6px;
  }

  .p1-a-item-box::before {
    content: "";
    position: absolute;
    inset: 6px;
    border: 1px dashed #000;
    border-radius: 9999px;
    pointer-events: none;
  }

  .p1-a-item {
    width: 317px;
    padding-top: 15px;
    padding-bottom: 20px;
  }

  .p1-a-title h3 {
    font-size: 20px;
  }

  .p1-a-title h3 span::before {
    content: "●";
    position: absolute;
    top: -7px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 4px;
    color: #FBCC19;
  }

  .p1-a-p1 {
    width: 260px;
    margin: 5px auto 8px;
  }

  .p1-a-p1 p {
    font-size: 12px;
    text-align: center;
    position: relative;
    margin: 0;
    color: #000;
  }

  .p1-a-p1 p::before {
    content: "";
    position: absolute;
    top: 70%;
    left: 0;
    width: calc(50% - 70px);
    height: 1px;
    background-color: #819A50;
    transform: translateY(-50%);
    box-shadow: 0 -3px 0 #819A50;
  }

  .p1-a-p1 p::after {
    content: "";
    position: absolute;
    top: 70%;
    right: 0;
    width: calc(50% - 70px);
    height: 1px;
    background-color: #819A50;
    transform: translateY(-50%);
    box-shadow: 0 -3px 0 #819A50;
  }

  .p1-a-text {
    width: 260px;
    text-align: left;
    display: flex;
    gap: 15px;
    background-color: #ECF4EA;
    padding: 7px 5px;
    margin: 0 auto;
  }

  .p1-a-text p {
    font-size: 10px;
    line-height: normal;
  }

  .p1-a-list ul {
    width: 321px;
    gap: 5px;
  }

  .p1-a-list ul li {
    gap: 10px;
    background-color: #fff;
    padding: 10px 0 10px 16px;
  }

  .p1-a-list ul li:nth-of-type(1),
  .p1-a-list ul li:nth-of-type(3) {
    border-right: none;
  }

  .p1-a-list ul li:nth-of-type(2),
  .p1-a-list ul li:nth-of-type(4) {
    border-right: none;
  }

  .p1-a-list ul li img {
    width: 24px;
    height: auto;
  }

  .p1-a-list ul li p {
    font-size: 12px;
  }

  .p1-a-img {
    width: 144px;
    height: auto;
    position: absolute;
    bottom: auto;
    top: -120px;
    left: -20px;
    z-index: 1;
  }

  .p1-a-box2 {
    gap: 12px;
    margin-top: 14px;
  }

  .p1-a-tel,
  .p1-a-web {
    width: 155px;
    padding: 9px 0;
  }

  .p1-a-tel a span,
  .p1-a-web a span {
    font-size: 10px;
  }

  .p1-a-tel a p,
  .p1-a-web a p {
    font-size: 16px;
  }

  .p1-a-tel a p::before,
  .p1-a-web a p::before {
    margin-right: 3px;
    margin-top: 0;
  }

  .p1-a-tel a p::before {
    width: 16px;
    height: 15px;
  }

  .p1-a-web a p::before {
    width: 13px;
    height: 13px;
    margin-right: 7px;
  }

  .p1-a-img2 {
    width: 13px;
    height: 13px;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #fff;
    position: absolute;
    right: 4px;
    bottom: 4px;
    z-index: 5;
    border-radius: 50%;
  }

  .p1-a-img2 img {
    width: 8px;
    height: 8px;
  }

  .p1-b {
    background-image: url(../image/top-back2.png);
    background-repeat: no-repeat;
    background-size: 100% auto;
    background-position: center top 50px;
    margin-top: 0;
  }

  .p1-b-contaoner {
    padding-top: 50px;
  }

  .p1-b-title h2 {
    font-size: 40px;
  }

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

  .p1-b-box-box {
    background-color: transparent;
    background-image: none;
    background-position: right;
    padding: 0;
    margin-top: 50px;
  }

  .p1-b-box {
    width: 100%;
    padding-left: 0;
  }

  .p1-b-img {
    max-width: 500px;
    width: 100%;
    margin: 0 auto;
  }

  .p1-b-list-box {
    background-color: #819A50;
    padding: 25px 0;
  }

  .p1-b-list {
    width: 92%;
    padding: 12px 8px 27px;
    border-radius: 20px;
    margin: 0 auto;
  }

  .p1-b-list ul {
    width: 100%;
  }

  .p1-b-list ul li {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 13px 0;
    border-bottom: 1px dashed #000;
  }

  .p1-b-list ul li img {
    width: 22px;
    height: auto;
  }

  .p1-b-list ul li p {
    font-size: 15px;
    line-height: 1.4;
    letter-spacing: 0.03em;
  }

  .p1-b-text {
    margin-top: 14px;
  }

  .p1-b-text p {
    font-size: 15px;
    line-height: 1.4;
    letter-spacing: 0.03em;
  }

  .p1-c {
    background-image: url(../image/part28.png), url(../image/part2.png), url(../image/part29.png), linear-gradient(to right, #bcae7e 0%, #fff 30%, #fff 50%, #fff 70%, #bcae7e 100%);
    background-repeat: no-repeat;
    background-size: 320px auto, 232px auto, 271px auto, cover;
    background-position: center top, right top 23px, left bottom -26px, center center;
  }

  .p1-c-container {
    padding-top: 79px;
    padding-bottom: 50px;
  }

  .p1-c-title h2 {
    font-size: 16px;
    line-height: 1.4;
  }

  .p1-c-title h2 span {
    font-size: 20px;
    line-height: 1.4;
  }

  .p1-c-text {
    width: 92%;
    text-align: left;
    margin: 23px auto 0;
  }

  .p1-c-text p {
    font-size: 15px;
    line-height: 1.4;
    letter-spacing: normal;
  }

  .p1-c-botan {
    width: 349px;
    margin: 80px auto 0;
  }

  .p1-d {
    background-color: #FBF5EC;
    background-image: url(../image/top-back4.png);
    background-repeat: no-repeat;
    background-size: 100% auto;
    background-position: center top 90px;
  }

  .p1-d-container {
    padding-top: 56px;
    padding-bottom: 43px;
  }

  .p1-d-title h2 {
    font-size: 40px;
    font-weight: 500;
  }

  .p1-d-title p {
    font-size: 20px;
  }

  .p1-d-title p span {
    font-size: 32px;
  }

  .p1-d .p1-d-title {
    padding-bottom: 0;
  }

  .p1-d-box-box {
    width: 100%;
    padding: 15px 13px;
    margin: 25px auto 0;
  }

  .p1-d-box-box.first {
    background-image: url(../image/part29.png);
    background-repeat: no-repeat;
    background-size: 189px auto;
    background-position: bottom -10px right;
  }

  .p1-d-box-box.second {
    background-image: url(../image/part29.png);
    background-repeat: no-repeat;
    background-size: 189px auto;
    background-position: bottom 34px left -15px;
  }

  .p1-d-box {
    flex-direction: column-reverse;
    align-items: center;
    gap: 25px;
    background-image: none;
    border: 1px solid #fff;
    padding: 15px 14px 65px;
  }

  .p1-d-img {
    max-width: 400px;
    width: 100%;
    margin-top: 0;
  }

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

  .line-wrapper::before,
  .line-wrapper::after {
    content: "";
    flex-grow: 1;
    height: 2px;
    background-color: #819A50;
  }

  .line-wrapper::before {
    margin-right: 9px;
  }
  .line-wrapper::after {
    margin-left: 9px;
  }

  .p1-d-p {
    width: 48px;
    height: 48px;
    display: flex;
    justify-content: center;
    align-items: center;
    background-image: url(../image/part5.png);
    background-repeat: no-repeat;
    background-size: 100% 100%;
    flex-shrink: 0;
    position: relative;
    z-index: 1;
  }

  .p1-d-p p:first-of-type {
    font-size: 20px;
    color: #fff;
    padding-bottom: 5px;
    position: relative;
    z-index: 2;
  }

  .p1-d-p p:first-of-type span {
    font-size: 24px;
  }

  .p1-d-p p:last-of-type {
    position: absolute;
    font-size: 10px;
    color: #84A47D;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 0;
    margin: 0;
  }

  .p1-d-h3 {
    text-align: center;
    margin: 15px;
  }

  .p1-d-h3 h3 {
    font-size: 20px;
  }

  .p1-d-text {
    padding-bottom: 0;
  }

  .p1-d-text p {
    font-size: 16px;
    line-height: 1.4;
    letter-spacing: 0.03em;
  }

  .p1-d-box.reverce {
    flex-direction: column-reverse;
    background-image: none;
  }

  .p1-d-box-box2 {
    width: 100%;
    background-color: #fff;
    padding: 15px 13px;
    margin: 36px auto 0;
  }

  .p1-d-box-box2 .p1-d-box {
    background-image: none;
    border: 1px solid #819A50;
  }

  .p1-d-img2 {
    max-width: 400px;
    width: 100%;
  }

  .p1-d-box-box3 {
    width: 100%;
    padding: 0 13px;
  }

  .p1-d-box2 {
    width: 100%;
    background-image: url(../image/top-back7.png);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center center;
    padding: 50px 14px 38px;
    margin: 36px auto 0;
  }

  .p1-d-box2 .h2-title h2 {
    color: #fff;
  }

  .p1-d-box2 .h2-title p {
    color: #425176;
  }

  .p1-d-text2 {
    text-align: left;
    margin-top: 30px;
  }

  .p1-d-text2 p {
    font-size: 16px;
    color: #fff;
    line-height: 1.4;
    letter-spacing: 0.03em;
  }

  .p1-e {
    background-image: url(../image/part33.png);
    background-repeat: no-repeat;
    background-size: 85% auto;
    background-position: right top
  }

  .p1-e-contianer {
    padding-top: 30px;
  }

  .p1-e-box-box {
    position: relative;
    background-image: url(../image/top-back6.png);
    background-repeat: no-repeat;
    background-size: 267px auto;
    background-position: right bottom 210px;
    padding-bottom: 72px;
  }

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

  .p1-e-item {
    width: 100%;
    text-align: left;
  }

  .p1-e-title {
    background-color: #425176; 
    transform: skew(-20deg);
    display: inline-block;
    padding: 8px 56px;
    margin-top: 0;
  }

  .p1-e-title span {
    display: inline-block;
    transform: skew(20deg);
    font-size: 20px;
    color: #fff;
    line-height: normal;
    letter-spacing: 0.04em;
  }

  .p1-e-text {
    text-align: left;
    margin-top: 28px;
  }

  .p1-e-text p {
    font-size: 16px;
    line-height: 1.4;
    letter-spacing: 0.03em;
  }

  .p1-e-img-box {
    display: flex;
    justify-content: center;
    margin: 60px auto 0;
  }

  .p1-e-img1 {
    width: 185px;
  }

  .p1-e-img2 {
    width: 136px;
    margin-top: 46px;
    margin-left: -19px;
  }

  .p1-e-img-box2 {
    width: 240px;
    position: relative;
    margin: 10px auto 0;
  }

  .p1-e-img3 {
    width: 100%;
  }

  .p1-e-img4 {
    width: 156px;
    position: absolute;
    left: -40px;
    bottom: -47px;
    z-index: 5;
  }

  .p1-e-p {
    position: absolute;
    top: auto;
    bottom: 50px;
    left: 0;
    z-index: 10;
    line-height: 0.9;
  }

  .p1-e-p p {
    font-size: 46px;
    color: #819A50;
    letter-spacing: 0.04em;
    writing-mode: vertical-rl;
    text-orientation: sideways;
    margin: 0;
  }

  .p1-e-box-box2 {
    background-color: #F0E9E1;
    padding: 32px 0;
  }

  .p1-e-box2 {
    width: 92%;
    height: auto;
    flex-direction: column;
    align-items: center;
    gap: 23px;
    margin: 0 auto;
  }

  .p1-e-item2 {
    width: 100%;
    height: auto;
    background-color: #fff;
    padding: 18px 19px;
  }

  .p1-e-title2 {
    text-align: center;
    background-color: #425176;
    padding: 12px 0;
  }

  .p1-e-box2 .p1-e-item2:nth-of-type(2) .p1-e-title2 {
    background-color: #819A50;  
  }

  .p1-e-title2 h3 {
    font-size: 15px;
    font-weight: 500;
    color: #fff;
    line-height: 2;
    letter-spacing: 0.03em;
  }

  .p1-e-list {
    margin-top: 6px;
  }

  .p1-e-list ul li {
    display: flex;
    align-items: center;
    font-size: 15px;
    line-height: 2;
    letter-spacing: normal;
  }

  /* .p1-e-list ul li span {
    font-size: 15px;
    line-height: 2;
    letter-spacing: normal;
    margin-right: 5px;
  } */

  .p1-e-botan {
    width: 349px;
    margin: 40px auto;
  }

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

  .p1-f-container {
    padding-top: 40px;
    padding-bottom: 40px;
  }

  .h2-title h2 {
    color: #fff;
  }

  .h2-title p {
    color: rgba(255, 255, 255, 0.2);
  }

  .p1-f-box-box {
    width: 92%;
    background-color: rgba(66, 81, 118, 0.8);
    padding: 10px;
    margin: 10px auto 0;
  }

  .p1-f-box {
    padding: 30px 0 50px;
    border: 1px solid #fff;
  }

  .p1-f-title {
    flex-direction: column;
    align-items: center;
  }

  .p1-f-title h3 {
    font-size: 20px;
    font-weight: 400;
    color: #fff;
    position: relative;
    z-index: 5;
    padding-top: 0;
    margin-bottom: -20px;
  }

  .p1-f-title p {
    font-size: 32px;
    font-weight: 400;
    color: #fff;
    background-image: url(../image/top-back10.png);
    background-repeat: no-repeat;
    background-size: 100% 100%;
    padding: 15px 23px 9px 10px;
  }

  .p1-f-title p span {
    font-size: 32px;
  }

  .p1-f-text {
    padding: 0 9px;
    margin-top: 15px;
  }

  .p1-f-text p {
    font-size: 16px;
    color: #fff;
    line-height: 1.4;
    letter-spacing: 0.03em;
  }

  .p1-f-box2 {
    width: 332px;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 19px 5px;
    margin: 25px auto 0;
  }

  .p1-f-link {
    width: 163px;
    height: 163px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: min(32px, 2.37vw);
    background-image: url(../image/part35.png);
    background-repeat: no-repeat;
    background-size: 100% 100%;
    padding: 0 11px;
  }

  .p1-f-box2 .p1-f-link:nth-of-type(1) img {
    width: 39px;
    height: auto;
  }

  .p1-f-box2 .p1-f-link:nth-of-type(2) img {
    width: 43px;
    height: auto;
  }

  .p1-f-box2 .p1-f-link:nth-of-type(3) img {
    width: 39px;
    height: auto;
  }

  .p1-f-box2 .p1-f-link:nth-of-type(4) img {
    width: 55px;
    height: auto;
  }

  .p1-f-link span {
    text-align: center;
    font-size: 20px;
    letter-spacing: 0.08em;
  }

  .p1-g {
    background-color: #CBBE8E;
    background-image: url(../image/part1.png), url(../image/part13.png);
    background-repeat: no-repeat;
    background-size: 107px auto, 107px auto;
    background-position: left -20px bottom, right top;
  }

  .p1-g-container {
    padding-top: 50px;
    padding-bottom: 70px;
  }

  .p1-g-logo {
    width: 246px;
    margin: 0 auto;
  }

  .p1-g-box {
    width: 92%;
    flex-direction: column;
    align-items: center;
    margin: 0 auto;
  }

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

  .p1-g-p {
    display: none;
  }

  .p1-a-box2.p1-g-box2 {
    display: flex;
  }

  .p1-g-link {
    display: none;
  }

  .p1-g-table {
    width: 349px;
    margin-top: 30px;
  }

  .p1-g-table-inner {
    width: 100%;
    background-color: #836442;
    padding: 12px 10px;
  }

  .p1-g-table table {
    width: 100%;
    border-collapse: collapse;
  }

  .p1-g-table th, 
  .p1-g-table td {
    text-align: center;
    font-weight: 400;
    color: #fff;
  }

  .p1-g-table thead th {
    font-size: 16px;
    padding: 10px 5px;
  }

  .p1-g-table th:first-child,
  .p1-g-table td:first-child {
    width: 109px;
    text-align: center;
  }

  .p1-g-table tbody td {
    font-size: 16px;
    padding: 10px 0;
  }

  .p1-g-table tbody tr:first-child td {
    border-top: 1px solid #fff;
  }

  .p1-g-notes {
    margin-top: 12px;
    font-size: 16px;
    line-height: 1.8;
  }

  .p1-g-notes p {
    margin: 0;
  }

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

  .p1-h-link {
    max-width: 400px;
    width: 100%;
    margin: 0 auto;
  }


  /* インプラント治療 */
  .p2-a-contianer {
    padding-top: 50px;
  }

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

  .p2-a-item {
    width: 100%;
  }

  .p2-a-title {
    border-bottom: 1px solid #819A50;
  }

  .p2-a-title h3 {
    font-size: 20px;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: normal;
  }

  .p2-a-text {
    margin-top: 20px;
  }

  .p2-a-text p {
    font-size: 15px;
    line-height: 1.4;
    letter-spacing: 0.03em;
  }

  .p2-a-img {
    max-width: 400px;
    width: 100%;
  }

  .p2-a-box.reverce {
    flex-direction: column;
    align-items: center;
  }

  .p2-b-container {
    padding-top: 40px;
  }

  .p2-b-box {
    width: 92%;
    margin: 0 auto;
  }

  .p2-b-text {
    text-align: left;
    margin: 20px auto 30px;
  }

  .p2-b-text p {
    font-size: 15px;
    line-height: 1.4;
    letter-spacing: 0.04em;
  }

  .p2-b-item-box {
    flex-direction: column;
    align-items: center;
    gap: 20px;
    margin-top: 30px;
    margin-bottom: 40px;
  }

  .p2-b-item {
    max-width: 400px;
    width: 100%;
  }

  .p2-b-p {
    width: 100%;
    height: 50px;
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #658A5E;
  }

  .p2-b-item-box .p2-b-item:nth-of-type(2) .p2-b-p, 
  .p2-b-item-box .p2-b-item:nth-of-type(4) .p2-b-p {
    background-color: #7D8F4C;
  }

  .p2-b-p p {
    font-size: 16px;
    color: #fff;
    line-height: 1.4;
    letter-spacing: 0.04em;
  }

  .p2-b-item-box2 {
    max-width: 400px;
    width: 100%;
    flex-direction: column;
    gap: 15px;
    margin: 20px auto 0;
  }

  .p2-b-item2 {
    width: 100%;
    height: 50px;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #FBF5EC;
    border-top: 1px solid #000;
    border-bottom: 1px solid #000;
  }

  .p2-b-p2 {
    text-align: center;
  }

  .p2-b-p2 p {
    font-size: 16px;
    color: #623234;
    line-height: 1.4;
    letter-spacing: 0.04em;
  }

  .p2-b-item-box3 {
    max-width: 400px;
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
    margin: 15px auto 0;
  }

  .p2-b-item-box3 .p2-b-item2 {
    height: 70px;
  }

  .p2-e-container {
    padding-top: 40px;
  }

  .sub-title-box + .p2-e-box {
    margin-top: 50px;
  }

  .p2-e-box {
    width: 92%;
    flex-direction: column;
    align-items: center;
    margin: 30px auto 0;
  }

  .p2-e-item {
    width: 100%;
  }

  .p2-e-title {
    width: 100%;
    height: 40px;
    position: relative;
    display: flex;
    align-items: center;
    background-color: #425176;
    border-radius: 0 30px 30px 0;
  }

  .p2-e-title::after {
    content: "";
    width: 15px;
    height: 15px;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 5;
    background-color: #D2A706;
  }

  .p2-e-title h3 {
    font-size: 16px;
    font-weight: 500;
    color: #fff;
    letter-spacing: 0.04em;
    padding-left: 20px;
  }

  .p2-e-text {
    margin-top: 20px;
  }

  .p2-e-text p {
    font-size: 15px;
    line-height: 1.4;
    letter-spacing: 0.04em;
  }

  .p2-e-img {
    max-width: 400px;
    width: 100%;
    margin-top: 20px;
  }

  .p2-f-text {
    width: 92%;
    text-align: left;
    margin: 20px auto;
  }

  .p2-f-text p {
    font-size: 15px;
    line-height: 1.4;
    letter-spacing: 0.04em;  
  }

  .p2-g-container {
    padding-top: 40px;
  }

  .p2-g-box-box {
    background-color: #F0E9E1;
    margin-top: 40px;
  }

  .p2-g-box {
    padding-top: min(100px, 7.41vw);
    padding-bottom: min(80px, 5.93vw);
  }

  .p2-g-item {
    width: 92%;
    background-color: #fff;
    position: relative;
    padding: 35px 25px 30px;
    border-radius: 10px;
    margin: 0 auto;
  }

  .p2-g-p {
    width: 60px;
    height: 60px;
    display: flex;
    justify-content: center;
    align-items: center;
    position: absolute;
    top: -30px; /* 半分外に出る設定も可変 */
    left: 50%;
    transform: translateX(-50%);
    background-color: #7E8F4C;
    border-radius: 50%;
    z-index: 1;
  }

  .p2-g-p p:first-of-type {
    font-size: 27px;
    color: #fff;
    padding-bottom: 5px;
    position: relative;
    z-index: 2;
  }

  .p2-g-p p:first-of-type span {
    font-size: 36px;
  }

  .p2-g-p p:last-of-type {
    position: absolute;
    font-size: 16px;
    color: rgba(255, 255, 255, 0.3);
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 0;
    margin: 0;
  }

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

  .p2-g-title h3 {
    font-size: 18px;
    font-weight: 500;
    color: #623234;
    letter-spacing: 0.04em;
  }

  .p2-g-text {
    margin-top: 13px;
  }

  .p2-g-text p {
    font-size: 15px;
    line-height: 1.4;
    letter-spacing: 0.04em;
  }

  .p2-g-img {
    width: 28px;
    margin: 13px auto 45px;
  }

  .p2-h-container {
    padding-top: 40px;
    padding-bottom: 60px;
  }

  .p2-h-box {
    width: 92%;
    margin: 30px auto 0;
  }

  .faq-item {
    margin-bottom: 20px;
  }

  .faq-question {
    width: 100%;
    height: 45px;
    display: flex;
    align-items: center;
    padding: 0;
    background: none;
    border: none;
    outline: none;
    cursor: pointer;
    text-align: left;
    position: relative;
    background-color: #3F4F74;
    line-height: 1.3;
    color: #fff;
    font-size: 16px;
    font-weight: 500;
    font-family: "Zen Old Mincho", serif;
    letter-spacing: normal;
    gap: 15px;
  }

  .faq-question span {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 42px;
    height: 45px;
    flex-shrink: 0;
    background-color: #BDAD70;
    color: #fff;
    font-size: 18px;
  }

  .faq-question::after {
    content: "+";
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 20px;
    color: #fff;
  }

  .faq-question.is-active::after {
    content: "−";
  }

  .faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease-out;
    background-color: #FCF7F0;
  }

  .faq-answer-content {
    padding: 10px 15px;
  }

  .faq-answer-content p {
    font-size: 15px;
    line-height: 1.4;
    letter-spacing: 0.04em;
  }


  /* 補綴治療 */
  .p3-a-container {
    padding-top: 45px;
  }

  .p3-a-box {
    width: 92%;
    margin: 30px auto 0;
  }

  .p3-a-text {
    text-align: left;
  }

  .p3-a-text p {
    font-size: 15px;
    line-height: 1.4;
    letter-spacing: 0.04em;
  }

  .p3-a-h3 {
    text-align: center;
    padding-bottom: 10px;
    border-bottom: 1px solid #819A50;
    margin-top: 30px;
  }

  .p3-a-h3 h3 {
    font-size: 20px;
    font-weight: 500;
    line-height: 2;
    letter-spacing: 0.04em;
  }

  .p3-a-p {
    text-align: left;
  }

  .p3-a-p p {
    font-size: 15px;
    line-height: 1.4;
    letter-spacing: 0.03em;
    padding-top: min(28px, 2.07vw);
  }

  .p3-a-img {
    max-width: 400px;
    width: 100%;
    margin: 30px auto 0;
  }

  .p3-b .p2-e-item {
    width: 100%;
  }

  .p3-b .p3-b-box {
    width: 92%;
    margin: 20px auto 0;
  }

  .p3-b-box .p2-e-item {
    width: 100%;
  }

  .p3-b .p2-e-img {
    max-width: 400px;
    width: 100%;
  }


  /* 料金表 */
  .p4-a-container {
    padding-top: 50px;
  }

  .p4-a-box {
    width: 92%;
    margin: 30px auto 0;
  }

  .p4-a-p {
    text-align: left;
  }

  .p4-a-p p {
    font-size: 15px;
    line-height: 1.4;
    letter-spacing: 0.04em;
  }

  .p4-a-item {
    margin-top: 20px;
  }

  .p4-a-table {
    width: 100%;
    margin-top: 30px;
  }

  .p4-a-table table {
    border-right: 1px solid #000;
    border-bottom: 1px solid #000;
    border-collapse: collapse;
  }

  .p4-a-table table tr th, 
  .p4-a-table table tr td {
    display: block;
    text-align: left;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: 0.04em;
    padding: 12px 0 12px 10px;
    border: none;
    border-top: 1px solid #000;
    border-left: 1px solid #000;
  }

  .p4-a-table table tr th {
    width: 100%;
    background-color: #F6F2ED;
  }

  .p4-b-container {
    width: 92%;
    background-color: #658A5E;
    padding: 12px;
    margin: 20px auto 60px;
  }

  .p4-b-box {
    padding: 15px;
    border: 1px solid #fff;
  }

  .p4-b-title {
    text-align: center;
    margin-top: 0;
  }

  .p4-b-title h3 {
    font-size: 20px;
    font-weight: 500;
    color: #fff;
    line-height: 2;
    letter-spacing: 0.04em;
  }

  .p4-b-item {
    margin-bottom: 16px;
  }

  .p4-b-item span, 
  .p4-b-item p {
    font-size: 15px;
    color: #fff;
    line-height: 1.4;
    letter-spacing: 0.04em;
  }

  .p4-b-botan {
    max-width: 300px;
    width: 100%;
    margin: 0 auto;
  }


  /* ドクター・スタッフ紹介 */
  .p5-a-container {
    padding-top: 50px;
  }

  .p5-a-box {
    width: 92%;
    flex-direction: column;
    align-items: center;
    margin: 30px auto;
  }

  .p5-a-item {
    width: 100%;
  }

  .p5-a-text p {
    font-size: 15px;
    line-height: 1.4;
    letter-spacing: 0.03em;
  }

  .p5-a-title {
    padding: 12px 0;
    border-bottom: 1px solid #819A50;
    margin-top: 20px;
  }

  .p5-a-title h3, 
  .p5-a-p span {
    font-size: 18px;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: 0.03em;
  }

  .p5-a-p {
    width: 100%;
    margin-top: 20px;
  }

  .p5-a-p p {
    font-size: 15px;
    line-height: 1.4;
    letter-spacing: 0.03em; 
  }

  .p5-a-img-box {
    display: flex;
    justify-content: center;
    margin-top: 30px;
  }

  .p5-a-img1 {
    width: 184px;
  }

  .p5-a-img2 {
    width: 135px;
    margin-top: 46px;
    margin-left: -19px;
  }

  .p5-a-img-box2.p5-a-img-box4 {
    display: none;
  }

  .p5-a-img-box2.p5-a-img-box3 {
    width: 240px;
    display: block;
    margin: 20px auto 60px;
  }

  .p5-a-img3 {
    width: 100%;
  }

  .p5-a-img4 {
    width: 156px;
    position: absolute;
    left: -40px;
    bottom: -47px;
    z-index: 5;
  }

  .p5-b .p5-a-box {
    padding-right: 0;
    margin-bottom: 40px;
  }

  .p5-b .p5-a-item {
    width: 100%;
  }

  .p5-b .p5-a-p {
    width: 100%;
  }

  .p5-a-img-box2 {
    width: 240px;
    display: block;
    margin: 20px auto 60px;
  }

  .p5-b .p5-a-img4 {
    width: 156px;
    position: absolute;
    left: -40px;
    bottom: -47px;
    z-index: 5;
  }

  .p5-c .faq-answer-content p {
    line-height: 1.4;
  }

  .p5-d-container {
    padding-top: 0;
    padding-bottom: 70px;
  }

  .p5-d-box {
    width: 92%;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr));
    justify-content: center;
    column-gap: 20px;
    row-gap: 40px;
    margin: 30px auto 0;
    align-items: start;
  }

  .p5-d-item {
    width: 100%;
    max-width: 300px;
    margin: 0 auto;
    position: relative;
  }

  .p5-d-item:nth-child(4) {
    margin-bottom: 70px; 
  }

  .p5-d-img1 {
    width: 100%;
    display: block;
  }

  .p5-d-img2 {
    width: 130px;
    position: absolute;
    bottom: -32px;
    left: -20px;
    z-index: 10;
  }

  .p5-d-text {
    position: absolute;
    bottom: -80px;
    left: 0;
    z-index: 10;
    width: 100%;
  }

  .p5-d-text p {
    font-size: 15px;
    line-height: 1.4;
    letter-spacing: 0.03em;
    margin: 0;
  }

  .p5-d-item:nth-child(4) .p5-d-text {
    left: 0; 
  }


  /* 医院案内 */
  .p6-a-container {
    padding-top: 50px;
  }

  .p6-a-box-box {
    background-color: #F0E9E1;
    margin-top: 30px;
  }

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

  .p6-a-table {
    width: 100%;
  }

  .p6-a-table table {
    width: 100%;
    border-collapse: collapse;
  }

  .p6-a-table table th, 
  .p6-a-table table td {
    text-align: left;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: normal;
    padding: 10px 0;
    border-bottom: 1px solid #000;
  }

  .p6-a-table table th {
    width: 70px;
    vertical-align: top;
  }

  .p6-a-img {
    max-width: 400px;
    width: 100%;
  }

  .p6-b-container {
    padding-top: 40px;
  }

  .p6-b-box {
    width: 92%;
    position: relative;
    margin: 30px auto 0;
  }

  .p6-b-item {
    width: 100%;
    height: 265px;
    overflow: hidden;
  }

  .p6-b-item iframe {
    width: 100%;
    height: 600px;
    margin-top: -150px;
  }

  .p6-b-img {
    width: 240px;
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 10;
  }

  .p6-c-container {
    padding-top: 40px;
  }

  .p6-c-box {
    width: 92%;
    margin: 30px auto 0;
  }

  .p6-c-box iframe {
    width: 100%;
    height: 265px;
  }

  .p6-d-container {
    padding-top: 40px;
    padding-bottom: 60px;
  }

  .p6-d-box {
    width: 92%;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(320px, 100%), 1fr));
    column-gap: 16px;
    row-gap: 30px;
    margin: 65px auto 0;
    justify-content: center;
  }

  .p6-d-item {
    width: 100%;
    max-width: 320px;
    margin: 0 auto;
  }

  .p6-d-title {
    text-align: center;
    background-color: #658A5E;
    padding: 10px 0;
  }

  .p6-d-title h3 {
    font-size: 20px;
    font-weight: 500;
    color: #fff;
    line-height: 1.4;
    letter-spacing: 0.04em;
  }

  .p6-d-text {
    margin-top: 16px;
  }

  .p6-d-text p {
    font-size: 15px;
    line-height: 1.4;
    letter-spacing: 0.03em;
  }

  /* 特定のアイテムの背景色変更 */
  .p6-d-box .p6-d-item:nth-of-type(2) .p6-d-title, 
  .p6-d-box .p6-d-item:nth-of-type(5) .p6-d-title, 
  .p6-d-box .p6-d-item:nth-of-type(7) .p6-d-title {
    background-color: #7D8F4C;
  }


  /* LINE予約の要素 */
  .line-modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 9999;
    display: none;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.8);
    justify-content: center;
    align-items: center;
  }

  .line-modal-overlay.is-active {
    display: flex;
  }

  body.no-scroll {
    overflow: hidden;
  }

  .line-modal-content {
    position: relative;
    width: 92%;
    text-align: center;
    background: #fff;
  }

  .line-modal-close {
    position: absolute;
    top: 0;
    right: 0;
    display: flex;
    width: 45px;
    height: 38px;
    font-size: 28px;
    font-weight: 500;
    color: #fff;
    cursor: pointer;
    background: #000;
    align-items: center;
    justify-content: center;
  }

  .line-modal-close:hover {
    opacity: .7;
  }

  .modal-header-bar {
    height: 38px;
    background-color: #6d8e00;
  }

  .line-modal-inner {
    padding: 25px 25px 15px;
  }

  .modal-info {
    font-family: "Noto Sans JP", sans-serif;
    font-size: 16px;
    font-weight: bold;
  }

  .red-text {
    font-weight: bold;
    color: red;
  }

  .step-box {
    width: 100px;
    padding: 5px 0;
    margin: 20px auto 10px;
    font-size: 16px;
    font-weight: bold;
    color: #fff;
    background: #84b300;
  }

  .code-area {
    position: relative;
    display: flex;
    margin: 0;
    padding-left: 85px;
    align-items: center;
    justify-content: center;
    gap: 12px;
  }

  .code-number {
    font-family: "Noto Sans JP", sans-serif;
    font-size: 20px;
    font-weight: bold;
    letter-spacing: 0.05em;
  }

  .copy-container {
    position: relative;
    display: flex;
    align-items: center;
  }

  .copy-img {
    width: 75px;
    height: auto;
    cursor: pointer;
    transition: transform 0.2s;
  }

  .copy-img:hover {
    transform: scale(1.05);
  }

  .copy-message {
    position: absolute;
    left: 20%;
    top: -80px; 
    z-index: 100;
    display: none;
    width: 200px;
    padding: 10px 0;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 15px;
    color: #fff;
    text-align: center;
    white-space: nowrap;
    background: #ee878e;
    border-radius: 4px;
    align-items: center;
    justify-content: center;
    gap: 10px;
  }

  /* JSで表示される際のスタイル */
  .copy-message[style*="display: block"] {
    display: flex !important;
  }

  .copy-msg-icon {
    width: 20px;
    height: auto;
    /* filter: brightness(0) invert(1); */
  }

  .copy-message span {
    display: inline-block;
    font-weight: bold;
    line-height: 1.4;
    text-align: center;
  }

  .qr-code {
    display: none;
  }

  .qr-desc {
    display: none;
  }

  .qr-desc2 {
    display: none;
  }

  .line-add-btn {
    display: block;
    width: 150px;
    margin: 20px auto 10px;
    font-weight: bold;
    color: #fff;
    text-decoration: none;
    background: #00b900;
    border-radius: 5px;
  }

  .line-add-btn img {
    display: block;
    width: 100%;
    height: auto;
  }

  .move-text {
    margin-top: 5px;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 16px;
    font-weight: bold;
  }



  /* 下層共通トップ 1200で可変 */
  .sub-v {
    width: 100%;
    height: 260px;
    background-image: url(../image/sub-back.png);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center center;
  }

  .sub-v-vontainer {
    padding-top: 130px;
  }

  .sub-v-title {
    text-align: center;
  }

  .sub-v-title h1 {
    font-size: 30px;
    font-weight: 500;
    letter-spacing: 0.08em;
  }

  .sub-v-title p {
    font-size: 20px;
    font-weight: 500;
    color: #819A50;
    letter-spacing: 0.08em;
    text-shadow: 1px 1px 0 #fff, -1px 1px 0 #fff, 1px -1px 0 #fff, -1px -1px 0 #fff;
  }




  /* 下層共通タイトル 1350で可変 */
  .sub-title-box {
    width: 92%;
    margin: 0 auto;
  }

  .sub-title-img {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    margin: 0 auto;
  }

  .sub-title-img::before,
  .sub-title-img::after {
    content: "";
    height: 1px;
    flex: 1;
    background-color: #819A50;
  }

  .sub-title-img img {
    width: 30px;
    height: auto;
  }

  .sub-title {
    text-align: center;
    padding-bottom: 10px;
    border-bottom: 1px solid #819A50;
  }

  .sub-title h2 {
    font-size: 20px;
    font-weight: 500;
    color: #7F613E;
    letter-spacing: 0.04em;
  }


  /* 下層共通タイトル２ 1350で可変 */
  .sub-title-box2 {
    width: 100%;
    background-color: #C4B781;
    padding-top: 6px;
    margin: 0 auto;
  }

  .sub-title2 {
    text-align: center;
    padding: 6px 0;
    border-top: 1px solid #fff;
  }

  .sub-title2 h3 {
    font-size: 20px;
    font-weight: 500;
    color: #fff;
    line-height: 2;
    letter-spacing: 0.04em;
  }





  /* メイン共通タイトル */
  .h2-title h2 {
    font-size: 20px;
  }

  .h2-title p {
    font-size: 36px;
  }



  /* フッター */
  .footer-map {
    position: relative;
    width: 100%;
    height: 265px;
    margin-right: calc(50% - 50vw);
    margin-left: calc(50% - 50vw);
    overflow: hidden; 
  }

  .footer-map iframe {
    width: 100%;
    height: 600px;
    margin-top: -150px;
    border: 0;
  }

  .map-overlay-img {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 15;
  }

  .map-overlay-img img {
    width: 240px;
    height: auto;
    display: block;
  }

  .copy-right {
    text-align: center;
    background-color: #819A50;
    padding: 14px 0;
  }

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

  /* トップに戻る */
  .page-top {
    position: fixed;
    right: 10px;
    bottom: 106px;
    z-index: 100;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.5s, visibility 0.5s, transform 0.3s;
  }

  .page-top.is-show {
    opacity: 1;
    visibility: visible;
  }

  .page-top a {
    display: block;
    width: 72px;
    height: auto;
  }

  .page-top img {
    width: 100%;
    height: auto;
  }

  .sp-fixed-nav {
    display: block;
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 61px;
    z-index: 9999;
    box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);
  }

  .sp-fixed-nav ul {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
    height: 100%;
  }

  .sp-fixed-nav li {
    height: 100%;
    border: 3px solid #fff;
  }

  .sp-fixed-nav li:last-child {
    border-right: none;
  }

  /* 幅の指定 40% / 30% / 30% */
  .nav-item-40 { 
    width: 40%;
    background-color: #425176;
  }

  .nav-item-40 a p {
    display: flex;
    align-items: center;
  }

  .nav-item-40 a p::before {
    content: "";
    display: inline-block;
    margin-right: 5px;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    width: 16px;
    height: 15px;
    background-image: url(../image/tel3.png);
  }

  .nav-item-30 { 
    width: 30%;
    background-color: #819A50;
  }

  .nav-item-30.nav-item-30-2 { 
    width: 30%;
    background-color: #06C755;
  }

  .sp-fixed-nav a {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    text-decoration: none;
    color: #fff;
  }

  .sp-fixed-nav a span {
    font-size: 10px;
  }

  .sp-fixed-nav a p {
    font-size: 16px;
  }

  .nav-item-img {
    width: 17px;
    height: 17px;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #fff;
    border-radius: 50%;
    margin-top: 5px;
  }

  .nav-item-img img {
    width: 6px;
    height: auto;
  }



} 


@media screen and (max-width: 430px) {
  /* トップ */
  .p1-a {
    background-image: url(../image/sp-top-back3.png);
    background-repeat: no-repeat;
    background-size: 100% auto;
    background-position: center bottom;
  }

  .p1-d-box2 {
    width: 100%;
    background-image: url(../image/sp-top-back1.png);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center center;
  }


}