/* screen - index */

.index {
  background-color: var(--titlecolor);
  display: flex;
  flex-direction: column;
  min-height: 4372px;
  min-width: 1024px;
  overflow: hidden;
  width: 100%;
}

.index .header {
  background-color: var(--titlecolor);
  display: flex;
  flex-direction: column;
  gap: 9px;
  height: 93px;
  left: 0;
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 9;
}

.index .group-13 {
  display: flex;
  margin-left: 74px;
  margin-top: 23px;
  width: 879px;
}

.index .x1 {
  aspect-ratio: 2.68;
  height: 60px;
  width: 161px;
}

.index .frame-7 {
  align-items: center;
  display: inline-flex;
  gap: 15px;
  height: 22px;
  margin-left: 15px;
  margin-top: 19px;
  position: relative;
  width: 466px;
}

.index .frame {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 6px;
  position: relative;
  width: 69px;
}

.index .text-1 {
  align-items: center;
  align-self: stretch;
  display: flex;
  height: 6px;
  justify-content: center;
  letter-spacing: 1.20px;
  line-height: 25px;
  margin-top: -1.00px;
  position: relative;
  text-align: center;
  white-space: nowrap;
}

.index .concept {
  align-items: center;
  align-self: stretch;
  height: 10px;
  justify-content: center;
  letter-spacing: 1.30px;
  line-height: 25px;
  text-align: center;
  white-space: nowrap;
}

.index .frame-2 {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 6px;
  position: relative;
  width: 42px;
}

.index .text-15 {
  align-items: center;
  display: flex;
  height: 6px;
  justify-content: center;
  letter-spacing: 1.20px;
  line-height: 25px;
  margin-top: -1.00px;
  position: relative;
  text-align: center;
  white-space: nowrap;
  width: 42px;
}

.index .staff {
  align-items: center;
  height: 10px;
  justify-content: center;
  letter-spacing: 1.30px;
  line-height: 25px;
  text-align: center;
  white-space: nowrap;
  width: 42px;
}

.index .frame-3 {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 6px;
  position: relative;
  width: 103px;
}

.index .text-16 {
  align-items: center;
  align-self: stretch;
  display: flex;
  height: 6px;
  justify-content: center;
  letter-spacing: 0;
  line-height: 25px;
  margin-top: -1.00px;
  position: relative;
  text-align: center;
  white-space: nowrap;
}

.index .maintenance {
  align-items: center;
  height: 10px;
  justify-content: center;
  line-height: 25px;
  text-align: center;
  white-space: nowrap;
  width: 103px;
}

.index .span0-1 {
  letter-spacing: 0.17px;
}

.index .span1-1 {
  letter-spacing: 0;
}

.index .frame-4 {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 6px;
  position: relative;
  width: 50px;
}

.index .text-17 {
  align-items: center;
  display: flex;
  height: 6px;
  justify-content: center;
  letter-spacing: 1.20px;
  line-height: 25px;
  margin-top: -1.00px;
  position: relative;
  text-align: center;
  white-space: nowrap;
  width: 50px;
}

.index .place {
  width: 50px;
}

.index .frame-5 {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 6px;
  position: relative;
  width: 58px;
}

.index .text-18 {
  align-items: center;
  display: flex;
  height: 6px;
  justify-content: center;
  letter-spacing: 1.20px;
  line-height: 25px;
  margin-top: -1.00px;
  position: relative;
  text-align: center;
  white-space: nowrap;
  width: 58px;
}

.index .place-1 {
  width: 58px;
}

.index .place-2 {
  margin-left: -1.00px;
  margin-right: -1.00px;
  width: 71px;
}

.index .group-1 {
  border: 0.5px solid;
  border-color: var(--maincolor);
  border-radius: 10px;
  display: flex;
  height: 20px;
  margin-left: 16px;
  margin-top: 21px;
  width: 20px;
}

.index .tel_icon {
  height: 13px;
  margin-left: 5px;
  margin-top: 4px;
  position: relative;
  width: 10px;
}

.index .vector {
  height: 94.73%;
  left: 3.53%;
  position: absolute;
  top: 2.65%;
  width: 92.90%;
}

.index .phone {
  font-size: var(--font-size-xl);
  height: 25px;
  margin-left: -4px;
  margin-top: 19px;
  width: 182px;
}

.index .line-1 {
  width: 1024px;
}

.index .main {
  height: 383px;
  margin-top: 158px;
  position: relative;
  width: 945px;
  z-index: 8;
}

.index .main-1 {
  height: 383px;
  left: 0;
  position: absolute;
  top: 0;
  width: 866px;
}

.index .group-19 {
  height: 55px;
  position: absolute;
  right: 0;
  top: 162px;
  width: 485px;
}

.index .top {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  gap: 10px;
  position: absolute;
  right: 0;
  top: 0;
  width: 485px;
}

.index .rectangle-4 {
  align-self: stretch;
  height: 55px;
  position: relative;
  width: 100%;
}

.index .group-2 {
  display: flex;
  height: 10px;
  justify-content: flex-end;
  position: absolute;
  right: 63px;
  top: 22px;
  width: 388px;
}

.index .frame-34 {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  gap: 10px;
  height: 10px;
  position: relative;
  width: 388px;
}

.index .frame-32 {
  align-items: center;
  align-self: stretch;
  display: flex;
  flex: 0 0 auto;
  gap: 10px;
  justify-content: center;
  position: relative;
  width: 100%;
}

.index .text-13 {
  align-items: center;
  color: var(--titlecolor);
  display: flex;
  font-family: var(--font-family-inter);
  font-size: 24px;
  font-weight: 400;
  letter-spacing: 2.40px;
  line-height: 10px;
  margin-top: -1.00px;
  position: relative;
  white-space: nowrap;
  width: fit-content;
}

.index .concept-1 {
  align-items: flex-start;
  flex-direction: column;
  gap: 40px;
  height: 339px;
  margin-top: 100px;
  width: 866px;
  z-index: 7;
}

.index .title_pc {
  align-self: stretch;
  flex: 0 0 auto;
  width: 100%;
}

.index .frame-22 {
  align-items: flex-end;
  align-self: stretch;
  display: flex;
  flex: 0 0 auto;
  justify-content: space-between;
  position: relative;
  width: 100%;
}

.index .title {
  align-items: flex-end;
  display: flex;
  height: 21px;
  line-height: 25px;
  margin-top: -1.00px;
  position: relative;
  white-space: nowrap;
  width: 373px;
}

.index .span0 {
  letter-spacing: 2.02px;
}

.index .span1 {
  letter-spacing: 1.75px;
}

.index .text {
  align-items: center;
  display: flex;
  height: 12px;
  justify-content: flex-end;
  letter-spacing: 3.00px;
  line-height: 25px;
  position: relative;
  text-align: right;
  white-space: nowrap;
  width: 197px;
}

.index .line-2 {
  align-self: stretch;
  position: relative;
  width: 100%;
}

.index .group1 {
  align-items: flex-end;
  align-self: stretch;
  display: flex;
  gap: 26px;
  height: 258px;
  position: relative;
  width: 100%;
}

.index .frame-20 {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  gap: 30px;
  position: relative;
  width: 451px;
}

.index .ks-select {
  color: var(--black);
  font-family: var(--font-family-roboto);
  font-size: 30px;
  font-weight: 400;
  letter-spacing: 3.00px;
  line-height: 48px;
  margin-top: -1.00px;
  position: relative;
  width: fit-content;
}

.index .text-12 {
  align-self: stretch;
  color: var(--black);
  font-family: var(--font-family-inter);
  font-size: 16px;
  font-weight: 400;
  height: 111px;
  letter-spacing: 0;
  line-height: 30px;
  position: relative;
}

.index .x12-1 {
  aspect-ratio: 1.5;
  height: 258px;
  object-fit: cover;
  position: relative;
  width: 387px;
}

.index .staff-1 {
  align-items: flex-start;
  flex-direction: column;
  gap: 40px;
  height: 319px;
  margin-top: 100px;
  width: 866px;
  z-index: 6;
}

.index .concept-2 {
  align-items: flex-end;
  height: 21px;
  line-height: 25px;
  margin-top: -1.00px;
  white-space: nowrap;
  width: 373px;
}

.index .frame-27 {
  align-items: center;
  align-self: stretch;
  display: flex;
  flex: 0 0 auto;
  gap: 20px;
  position: relative;
  width: 100%;
}

.index .staff_pc {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  gap: 10px;
  position: relative;
  width: 201px;
}

.index .x7-1 {
  align-self: stretch;
  aspect-ratio: 1.5;
  object-fit: cover;
  position: relative;
  width: 100%;
}

.index .staffname {
  align-self: stretch;
  letter-spacing: 0;
  line-height: 25px;
  position: relative;
  text-align: center;
}

.index .text-2 {
  align-self: stretch;
  height: 59px;
  letter-spacing: 0;
  line-height: 20px;
  position: relative;
}

.index .maintenance-1 {
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 40px 26px;
  height: 339px;
  margin-top: 100px;
  width: 866px;
  z-index: 5;
}

.index .title_pc-1 {
  width: 866px;
}

.index .concept-3 {
  align-items: flex-end;
  height: 21px;
  line-height: 25px;
  margin-top: -1.00px;
  white-space: nowrap;
  width: 373px;
}

.index .text_label {
  align-self: stretch;
  color: var(--black);
  font-family: var(--font-family-inter);
  font-size: 16px;
  font-weight: 400;
  height: 111px;
  letter-spacing: 0;
  line-height: 30px;
  margin-top: -1.00px;
  position: relative;
}

.index .stock {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  gap: 40px;
  height: 310.86px;
  margin-top: 100px;
  position: relative;
  width: 866px;
  z-index: 4;
}

.index .concept-4 {
  align-items: flex-end;
  height: 21px;
  line-height: 25px;
  margin-top: -1.00px;
  white-space: nowrap;
  width: 373px;
}

.index .x2-1 {
  align-self: stretch;
  aspect-ratio: 3.77;
  position: relative;
  width: 100%;
}

.index .access {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  gap: 40px;
  height: 564.12px;
  margin-top: 100.0px;
  position: relative;
  width: 866px;
  z-index: 3;
}

.index .concept-5 {
  align-items: flex-end;
  height: 21px;
  line-height: 25px;
  margin-top: -1.00px;
  white-space: nowrap;
  width: 373px;
}

.index .map-1 {
  align-self: stretch;
  aspect-ratio: 1.79;
  position: relative;
  width: 100%;
}

.index .contact {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 40px;
  height: 965px;
  margin-top: 100px;
  position: relative;
  width: 866px;
  z-index: 2;
}

.index .concept-6 {
  align-items: flex-end;
  height: 21px;
  line-height: 25px;
  margin-top: -1.00px;
  white-space: nowrap;
  width: 373px;
}

.index .frame-37 {
  align-items: flex-start;
  align-self: stretch;
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  gap: 30px;
  position: relative;
  width: 100%;
}

.index .group {
  height: 40px;
  position: relative;
  width: 866px;
}

.index .text-3 {
  align-items: center;
  display: flex;
  height: 20px;
  left: 0;
  letter-spacing: 3.00px;
  line-height: 25px;
  position: absolute;
  top: 10px;
  white-space: nowrap;
  width: 167px;
}

.index .rectangle-5 {
  background-color: var(--titlecolor);
  border: 1px solid;
  border-color: var(--black-2);
  height: 40px;
  left: 164px;
  opacity: 0.2;
  position: absolute;
  top: 0;
  width: 700px;
}

.index .group-9 {
  height: 120px;
  margin-right: -2.00px;
  position: relative;
  width: 868px;
}

.index .text-4 {
  align-items: center;
  display: flex;
  height: 20px;
  left: 0;
  letter-spacing: 1.50px;
  line-height: 25px;
  position: absolute;
  top: 10px;
  white-space: nowrap;
  width: 167px;
}

.index .rectangle-5-1 {
  background-color: var(--titlecolor);
  border: 1px solid;
  border-color: var(--black-2);
  height: 120px;
  left: 164px;
  opacity: 0.2;
  position: absolute;
  top: 0;
  width: 700px;
}

.index .x3-1 {
  aspect-ratio: 1.57;
  height: 344px;
  object-fit: cover;
  position: relative;
  width: 540px;
}

.index .group-11 {
  background-color: var(--maincolor);
  border-radius: 10px;
  height: 60px;
  position: relative;
  width: 550px;
}

.index .text-9 {
  align-items: center;
  color: var(--titlecolor);
  display: flex;
  font-family: var(--font-family-outfit);
  font-size: 18px;
  font-weight: 500;
  height: 33.33%;
  justify-content: center;
  left: 15.82%;
  letter-spacing: 1.80px;
  line-height: 25px;
  position: absolute;
  text-align: center;
  top: 33.33%;
  white-space: nowrap;
  width: 68.55%;
}

.index .footer::-webkit-scrollbar {
  display: none;
  width: 0;
}

.index .footer {
  align-items: center;
  background-color: #d9d9d94c;
  display: flex;
  flex-wrap: nowrap;
  gap: 10px;
  height: 295px;
  justify-content: center;
  margin-top: 110.0px;
  overflow-x: scroll;
  padding: 71px 149px;
  position: relative;
  width: 1023px;
  z-index: 1;
}

.index .frame-44 {
  align-items: flex-end;
  display: flex;
  gap: 120px;
  height: 153px;
  position: relative;
  width: 725px;
}

.index .frame-42 {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 25px;
  position: relative;
  width: 308px;
}

.index .rogo-1 {
  align-self: stretch;
  aspect-ratio: 2.99;
  object-fit: cover;
  position: relative;
  width: 100%;
}

.index .text-1-1 {
  align-self: stretch;
  color: var(--black);
  font-family: var(--font-family-poppins);
  font-size: var(--font-size-xl);
  font-weight: 600;
  letter-spacing: 2.50px;
  line-height: 25px;
  position: relative;
  text-align: center;
}

.index .frame-43 {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  gap: 20px;
  position: relative;
  width: 297px;
}

.index .group-12 {
  height: 27px;
  position: relative;
  width: 289px;
}

.index .group-5 {
  border: 0.5px solid;
  border-color: var(--maincolor);
  border-radius: 13.5px;
  display: flex;
  height: 27px;
  left: 0;
  position: absolute;
  top: 0;
  width: 27px;
}

.index .tel_icon-1 {
  height: 17.55px;
  margin-left: 6.8px;
  margin-top: 5.4px;
  position: relative;
  width: 13.5px;
}

.index .phone-1 {
  font-size: 35px;
  left: 32px;
  position: absolute;
  top: 2px;
}

.index .text-2-1 {
  align-self: stretch;
  color: transparent;
  font-family: var(--font-family-poppins);
  font-size: var(--font-size-m);
  font-weight: 400;
  letter-spacing: 0;
  line-height: 15px;
  position: relative;
}

.index .span {
  line-height: 25px;
}

.index .span6 {
  color: var(--black);
  font-size: 11px;
  line-height: 20px;
}

.index .concept-7 {
  display: flex;
  position: relative;
}

.index .line {
  height: 1px;
  object-fit: cover;
}

.index .maintenance-2 {
  display: flex;
  position: relative;
}

.index .phone-2 {
  color: var(--black);
  font-family: var(--font-family-poppins);
  font-weight: 400;
  letter-spacing: 0;
  line-height: 25px;
  text-align: center;
  white-space: nowrap;
}

.index .place-3 {
  align-items: center;
  display: flex;
  height: 10px;
  justify-content: center;
  letter-spacing: 1.30px;
  line-height: 25px;
  position: relative;
  text-align: center;
  white-space: nowrap;
}

.index .staff-2 {
  display: flex;
  position: relative;
}

.index .title_pc-2 {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  gap: 20px;
  position: relative;
}

/* screen - sp */

.sp {
  background-color: var(--titlecolor);
  display: flex;
  flex-direction: column;
  min-height: 4587px;
  min-width: 393px;
  overflow: hidden;
  width: 100%;
}

.sp .header-1 {
  background-color: var(--titlecolor);
  display: flex;
  height: 70px;
  left: 0;
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 9;
}

.sp .group-18 {
  height: 59px;
  margin-top: 11px;
  position: relative;
  width: 100%;
}

.sp .line-2-3 {
  left: 0;
  position: absolute;
  top: 58px;
  width: 100%;
}

.sp .x1-1 {
  aspect-ratio: 2.27;
  height: 48px;
  left: 25px;
  position: absolute;
  top: 0;
  width: 109px;
}

.sp .group-14 {
  display: flex;
  height: 25px;
  left: auto;
  right: 64px;
  position: absolute;
  top: 17px;
  width: 167px;
}

.sp .group-15 {
  display: flex;
  gap: 3px;
  width: 169px;
}

.sp .group-1-1 {
  border: 0.5px solid;
  border-color: var(--maincolor);
  border-radius: 9px;
  display: flex;
  height: 18px;
  margin-top: 4px;
  width: 18px;
}

.sp .tel_icon-2 {
  height: 11.7px;
  margin-left: 4.5px;
  margin-top: 3.6px;
  position: relative;
  width: 9px;
}

.sp .vector-1 {
  height: 94.73%;
  left: 3.53%;
  position: absolute;
  top: 2.65%;
  width: 92.90%;
}

.sp .phone-2 {
  font-size: var(--font-size-l);
  height: 25px;
  width: 146px;
}

.sp .frame-51 {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  gap: 8px;
  left: 351px;
  position: absolute;
  top: 22px;
  width: 20px;
}

.sp .line-3 {
  margin-top: -1.00px;
}

.sp .line-5 {
  margin-bottom: -1.00px;
}

.sp .main-2 {
  background-image: url(../img/main1@2x.png);
  background-position: 50% 50%;
  background-size: cover;
  display: flex;
  height: 233px;
  margin-top: 120px;
  width: 350px;
  z-index: 8;
}

.sp .group-2-1 {
  box-shadow: 0px 0px 3.5px #ffffff;
  display: flex;
  margin-left: 69px;
  margin-top: 85px;
  width: 212px;
}

.sp .frame-32-1 {
  align-items: center;
  display: flex;
  gap: 10px;
  height: 64px;
  justify-content: center;
  position: relative;
  width: 212px;
}

.sp .text-33 {
  color: transparent;
  font-family: var(--font-family-inter);
  font-size: 24px;
  font-weight: 400;
  letter-spacing: 2.40px;
  line-height: 32px;
  margin-top: -1.00px;
  position: relative;
  text-align: center;
  text-shadow: 0px 4px 4px #ffffff;
  width: fit-content;
}

.sp .span0-3 {
  color: var(--maincolor);
  letter-spacing: 0.58px;
}

.sp .span-1 {
  color: var(--black);
  letter-spacing: 0.58px;
}

.sp .span2 {
  color: var(--subcolor1);
  letter-spacing: 0.58px;
}

.sp .concept-7 {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  gap: 40px;
  height: 557px;
  margin-top: 58px;
  position: relative;
  width: 360px;
  z-index: 7;
}

.sp .title_sp-1 {
  flex: 0 0 auto;
  width: 349px;
}

.sp .group-16 {
  height: 25px;
  margin-right: -4.00px;
  position: relative;
  width: 353px;
}

.sp .title-1 {
  align-items: flex-end;
  display: flex;
  height: 21px;
  left: 0;
  line-height: 25px;
  position: absolute;
  top: 0;
  white-space: nowrap;
  width: 243px;
}

.sp .span0-2 {
  letter-spacing: 1.60px;
}

.sp .span1-2 {
  letter-spacing: 1.12px;
}

.sp .text-5 {
  align-items: center;
  display: flex;
  height: 12px;
  justify-content: flex-end;
  left: 152px;
  letter-spacing: 2.40px;
  line-height: 25px;
  position: absolute;
  text-align: right;
  bottom: 0.5rem;
  white-space: nowrap;
  width: 197px;
}

.sp .line-2-1 {
  margin-right: -1.00px;
  position: relative;
  width: 350px;
}

.sp .frame-1 {
  align-items: flex-start;
  align-self: stretch;
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  gap: 25px;
  position: relative;
  width: 100%;
  min-width: 90vw;
}

.sp .ks-select-1 {
  align-self: stretch;
  color: var(--black);
  font-family: var(--font-family-roboto);
  font-size: 1.5rem;
  font-weight: 400;
  height: 70px;
  letter-spacing: 1.30px;
  line-height: 40px;
  margin-top: -1.00px;
  position: relative;
}

.sp .text-32 {
  color: var(--black);
  font-family: var(--font-family-inter);
  font-size: 14px;
  font-weight: 400;
  height: 124px;
  letter-spacing: 0;
  line-height: 25px;
  position: relative;
  width: 350px;
}

.sp .x12-1-1 {
  aspect-ratio: 1.5;
  height: 233px;
  object-fit: cover;
  position: relative;
  width: 350px;
}

.sp .staff-2 {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  gap: 40px;
  height: 676px;
  margin-top: 60px;
  position: relative;
  width: 360px;
  z-index: 6;
}

.sp .frame-53 {
  align-items: flex-start;
  display: inline-flex;
  flex: 0 0 auto;
  flex-direction: column;
  gap: 15px;
  position: relative;
}

.sp .group-16-1 {
  margin-right: -3.00px;
}

.sp .concept-8 {
  align-items: flex-end;
  display: flex;
  height: 21px;
  left: 0;
  line-height: 25px;
  position: absolute;
  top: 0;
  white-space: nowrap;
  width: 243px;
}

.sp .line-2-2 {
  position: relative;
  width: 350px;
}

.sp .frame-6 {
  align-items: flex-start;
  align-self: stretch;
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  gap: 20px;
  position: relative;
  width: 100%;
}

.sp .staff_sp {
  align-items: center;
  align-self: stretch;
  display: flex;
  flex: 0 0 auto;
  gap: 15px;
  position: relative;
  width: 100%;
}

.sp .x7-1-1 {
  height: 134px;
  position: relative;
  width: 180px;
}

.sp .frame-56 {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  gap: 15px;
  position: relative;
  width: 155px;
}

.sp .frame-54 {
  align-items: flex-start;
  display: flex;
  height: 25px;
  position: relative;
  width: 60px;
}

.sp .frame-55 {
  align-items: flex-start;
  align-self: stretch;
  display: flex;
  height: 94px;
  position: relative;
  width: 100%;
}

.sp .text-6 {
  letter-spacing: 0;
  line-height: 20px;
  margin-top: -1.00px;
  position: relative;
  width: 155px;
}

.sp .staffname-2 {
  margin-right: -60.00px;
}

.sp .staffname-3 {
  margin-right: -40.00px;
}

.sp .maintenance-2 {
  align-items: flex-end;
  display: flex;
  flex-direction: column;
  gap: 40px;
  height: 462px;
  margin-top: 60px;
  position: relative;
  width: 350px;
  z-index: 5;
}

.sp .frame-87 {
  align-items: flex-start;
  align-self: stretch;
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  gap: 40px;
  position: relative;
  width: 100%;
}

.sp .title_sp {
  align-self: stretch;
  flex: 0 0 auto;
  width: 100%;
}

.sp .concept-9 {
  align-items: flex-end;
  display: flex;
  height: 21px;
  left: 0;
  line-height: 25px;
  position: absolute;
  top: 0;
  white-space: nowrap;
  width: 243px;
}

.sp .span0-4 {
  letter-spacing: 2.72px;
}

.sp .span1-3 {
  letter-spacing: 0.92px;
}

.sp .text_label-1 {
  align-items: center;
  display: flex;
  height: 12px;
  justify-content: flex-end;
  left: 152px;
  letter-spacing: 1.20px;
  line-height: 25px;
  position: absolute;
  text-align: right;
  bottom:0.5rem;
  white-space: nowrap;
  width: 197px;
}

.sp .text-29 {
  color: var(--black);
  font-family: var(--font-family-inter);
  font-size: 14px;
  font-weight: 400;
  height: 124px;
  letter-spacing: 0;
  line-height: 25px;
  margin-top: -1.00px;
  position: relative;
  width: 350px;
}

.sp .x12-2 {
  aspect-ratio: 1.5;
  height: 233px;
  position: relative;
  width: 350px;
}

.sp .stock-1 {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  gap: 40px;
  height: 472px;
  margin-top: 60px;
  position: relative;
  width: calc(100vw - 2px);
  max-width: 369px;
  z-index: 4;
}

.sp .concept-10 {
  align-items: flex-end;
  display: flex;
  height: 21px;
  left: 0;
  line-height: 25px;
  position: absolute;
  top: 0;
  white-space: nowrap;
  width: 243px;
}

.sp .frame-6-item {
  align-self: stretch;
  aspect-ratio: 1.87;
  position: relative;
  width: 100%;
}

.sp .access-1 {
  display: flex;
  flex-direction: column;
  gap: 40px;
  height: 276px;
  margin-top: 60px;
  width: 350px;
  z-index: 3;
}

.sp .frame-18 {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  gap: 40px;
  height: 40px;
  position: relative;
  width: 350px;
}

.sp .group-17 {
  height: 40px;
  position: relative;
  width: 350px;
}

.sp .title_sp-2 {
  height: 40px;
  width: 350px;
}

.sp .concept-11 {
  align-items: flex-end;
  display: flex;
  height: 21px;
  left: 0;
  line-height: 25px;
  position: absolute;
  top: 0;
  white-space: nowrap;
  width: 243px;
}

.sp .frame-17 {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  gap: 40px;
  height: 196px;
  position: relative;
  width: 350px;
}

.sp .map-1-1 {
  align-self: stretch;
  height: 196px;
  position: relative;
  width: 100%;
}

.sp .contact-1 {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  gap: 40px;
  height: 933px;
  margin-top: 60px;
  position: relative;
  width: 369px;
  z-index: 2;
}

.sp .frame-77 {
  align-items: center;
  align-self: stretch;
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  gap: 40px;
  position: relative;
  width: 100%;
}

.sp .concept-12 {
  align-items: flex-end;
  display: flex;
  height: 21px;
  left: 0;
  line-height: 25px;
  position: absolute;
  top: 0;
  white-space: nowrap;
  width: 243px;
}

.sp .frame-76 {
  align-items: center;
  display: inline-flex;
  flex: 0 0 auto;
  gap: 40px;
  position: relative;
}

.sp .frame-75 {
  align-items: flex-end;
  display: flex;
  flex-direction: column;
  gap: 30px;
  position: relative;
  width: 351px;
}

.sp .frame-72 {
  align-items: flex-start;
  align-self: stretch;
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  gap: 10px;
  position: relative;
  width: 100%;
}

.sp .frame-8 {
  align-items: flex-start;
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  gap: 10px;
  position: relative;
  width: 350px;
}

.sp .text-2-2 {
  align-items: center;
  align-self: stretch;
  display: flex;
  height: 20px;
  letter-spacing: 3.00px;
  line-height: 25px;
  margin-top: -1.00px;
  position: relative;
  white-space: nowrap;
}

.sp .rectangle-5-2 {
  height: 40px;
}

.sp .text-27 {
  align-items: center;
  align-self: stretch;
  display: flex;
  height: 20px;
  letter-spacing: 1.50px;
  line-height: 25px;
  position: relative;
  white-space: nowrap;
}

.sp .rectangle-5-3 {
  height: 120px;
}

.sp .x3-1-1 {
  align-self: stretch;
  aspect-ratio: 1.57;
  object-fit: cover;
  position: relative;
  width: 100%;
}

.sp .frame-74 {
  align-items: center;
  align-self: stretch;
  display: flex;
  gap: 10px;
  height: 50px;
  justify-content: center;
  padding: 15px 35px;
  position: relative;
  width: 100%;
}

.sp .rectangle-6 {
  background-color: var(--maincolor);
  border-radius: 10px;
  height: 100%;
  left: calc(50.00% - 174px);
  position: absolute;
  top: 0;
  width: 350px;
}

.sp .text-28 {
  align-items: center;
  color: var(--titlecolor);
  display: flex;
  font-family: var(--font-family-outfit);
  font-size: var(--font-size-m);
  font-weight: 500;
  height: 20px;
  justify-content: center;
  letter-spacing: 1.50px;
  line-height: 25px;
  margin-top: -1.00px;
  position: relative;
  text-align: center;
  white-space: nowrap;
  width: 279px;
}

.sp .footer-1 {
  align-items: flex-start;
  background-color: #d9d9d94c;
  display: flex;
  flex-direction: column;
  gap: 10px;
  height: 400px;
  margin-top: 100px;
  padding: 60px 48px 96px;
  position: relative;
  width: 394px;
  z-index: 1;
}

.sp .frame-82 {
  align-items: center;
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  gap: 25px;
  margin-bottom: -28.00px;
  position: relative;
  width: 297px;
}

.sp .frame-79 {
  align-items: center;
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  gap: 10px;
  position: relative;
  width: 209px;
}

.sp .rogo-1-1 {
  align-self: stretch;
  aspect-ratio: 2.99;
  object-fit: cover;
  position: relative;
  width: 100%;
}

.sp .text-20 {
  align-self: stretch;
  color: var(--black);
  font-family: var(--font-family-poppins);
  font-size: var(--font-size-m);
  font-weight: 600;
  letter-spacing: 1.50px;
  line-height: 25px;
  position: relative;
  text-align: center;
}

.sp .frame-81 {
  align-items: center;
  align-self: stretch;
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  gap: 20px;
  position: relative;
  width: 100%;
}

.sp .group-12-1 {
  height: 27px;
  position: relative;
  width: 289px;
}

.sp .group-5-1 {
  border: 0.5px solid;
  border-color: var(--maincolor);
  border-radius: 13.5px;
  display: flex;
  height: 27px;
  left: 0;
  position: absolute;
  top: 0;
  width: 27px;
}

.sp .tel_icon-3 {
  height: 17.55px;
  margin-left: 6.8px;
  margin-top: 5.4px;
  position: relative;
  width: 13.5px;
}

.sp .phone-3 {
  font-size: 35px;
  left: 32px;
  position: absolute;
  top: 2px;
}

.sp .frame-80 {
  align-items: center;
  align-self: stretch;
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  position: relative;
  width: 100%;
}

.sp .text-21 {
  align-self: stretch;
  color: transparent;
  font-family: var(--font-family-poppins);
  font-size: var(--font-size-m);
  font-weight: 400;
  letter-spacing: 0;
  line-height: 25px;
  margin-top: -1.00px;
  position: relative;
}

.sp .text-22 {
  align-self: stretch;
  color: var(--black);
  font-family: var(--font-family-poppins);
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 20px;
  position: relative;
}

.sp .group-16-3 {
  height: 25px;
  position: relative;
  width: 353px;
}

.sp .line {
  height: 2px;
  margin-left: -1.00px;
  margin-right: -1.00px;
  position: relative;
  width: 22px;
}

.sp .line-2 {
  height: 1px;
  object-fit: cover;
}

.sp .phone {
  color: var(--black);
  font-family: var(--font-family-poppins);
  font-weight: 400;
  letter-spacing: 0;
  line-height: 25px;
  text-align: center;
  white-space: nowrap;
}

.sp .rectangle-5 {
  align-self: stretch;
  background-color: var(--titlecolor);
  border: 1px solid;
  border-color: var(--black-2);
  opacity: 0.2;
  position: relative;
  width: 100%;
}

.sp .staffname {
  letter-spacing: 0;
  line-height: 25px;
  margin-top: -1.00px;
  position: relative;
  white-space: nowrap;
  width: fit-content;
}

.sp .title_sp-3 {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  gap: 15px;
  position: relative;
}

/* ページ内アンカー：固定ヘッダー分を id 付き要素に直接指定（scroll-margin は対象要素に効く） */
@media screen and (max-width: 1023px) {
  #concept,
  #staff,
  #maintenance,
  #stock,
  #access,
  #contact {
    scroll-margin-top: 108px;
  }
}

@media screen and (min-width: 1024px) {
  #concept,
  #staff,
  #maintenance,
  #stock,
  #access,
  #contact {
    scroll-margin-top: 110px;
  }
}

/* source 順は KV→在庫→共通→SP だが、flex order で PC は KV→共通→在庫 / SP は ヘッダー+KV→共通→在庫 に整列 */
.page-main {
  display: flex;
  flex-direction: column;
  width: 100%;
}

.page-main > .index--pc-kv,
.page-main > .sp--upper {
  order: 1;
}

.page-main > .sections-unified {
  order: 2;
}

.page-main > .index--pc-rest,
.page-main > .sp--lower {
  order: 3;
}

/* PC: ヘッダー+KV / 在庫以下のみ。SP: ヘッダー+KV+コピー / 在庫以下のみ。コンセプト〜メンテは .sections-unified で共通 */
@media screen and (max-width: 1023px) {
  .screen.index.index--pc-kv,
  .screen.index.index--pc-rest {
    display: none !important;
  }
}

@media screen and (min-width: 1024px) {
  .screen.sp.sp--upper,
  .screen.sp.sp--lower {
    display: none !important;
  }
}

.screen.index.sections-unified {
  display: flex !important;
  flex-direction: column;
  min-width: 0 !important;
  min-height: 0 !important;
  overflow-x: clip;
}

/* 分割後も .index の min-height:4372px が付くと KV〜コンセプトの間に巨大な空きになる */
.screen.index.index--pc-kv,
.screen.index.index--pc-rest {
  min-height: 0 !important;
}

/* 共通ブロック先頭のコンセプト：従来 100px は MV 直下では空き過ぎ */
.sections-unified .concept-1 {
  margin-top: clamp(28px, 4vw, 48px);
}

.sp.sp--upper,
.sp.sp--lower {
  min-height: 0 !important;
}

/* スタッフ：従来どおり PC＝上に画像・下に文章のカードを4列／スマホ＝カード縦並びで各カードは画像左・文章右 */
@media screen and (min-width: 1024px) {
  .sections-unified .frame-27.staff-unified-grid {
    align-items: flex-start;
    align-self: stretch;
    display: flex;
    flex: 0 0 auto;
    flex-wrap: nowrap;
    gap: 20px;
    justify-content: space-between;
    position: relative;
    width: 100%;
  }

  .sections-unified .staff-unified {
    align-items: flex-start;
    display: flex;
    flex-direction: column;
    gap: 10px;
    position: relative;
    width: 201px;
    flex: 0 0 auto;
  }

  .sections-unified .staff-unified .staff-unified__photo,
  .sections-unified .staff-unified .x7-1 {
    align-self: stretch;
    aspect-ratio: 1.5;
    object-fit: cover;
    width: 100% !important;
    max-width: none;
    height: auto;
  }

  .sections-unified .staff-unified__body {
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-self: stretch;
    width: 100%;
  }

  .sections-unified .staff-unified .staffname {
    text-align: center !important;
  }

  .sections-unified .staff-unified .text-2 {
    height: auto !important;
  }
}

@media screen and (max-width: 1023px) {
  .sections-unified .frame-27.staff-unified-grid {
    align-items: flex-start;
    align-self: stretch;
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 20px;
    width: 100%;
  }

  .sections-unified .staff-unified {
    align-items: center;
    display: flex;
    flex-direction: row;
    gap: 15px;
    width: 100%;
    max-width: 100%;
  }

  .sections-unified .staff-unified .staff-unified__photo,
  .sections-unified .staff-unified .x7-1 {
    flex-shrink: 0;
    width: 180px !important;
    max-width: 46%;
    height: 134px;
    aspect-ratio: 180 / 134;
    object-fit: cover;
    align-self: flex-start;
  }

  .sections-unified .staff-unified__body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
  }

  .sections-unified .staff-unified .staffname {
    text-align: left !important;
    font-size: 20px;
    line-height: 25px;
  }

  .sections-unified .staff-unified .text-2 {
    height: auto !important;
    line-height: 20px;
  }
}

/* メンテナンス：「画像 | 文章」を2列グリッド（1行目に2セル） */
.sections-unified .maintenance-1 {
  height: auto !important;
}

.sections-unified .staff-1 {
  height: auto !important;
}

.sections-unified .maintenance-unified-columns {
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  grid-auto-flow: row;
  align-items: stretch;
  gap: clamp(10px, 2.5vw, 28px);
  width: 100%;
}

.sections-unified .maintenance-unified-col {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: clamp(8px, 2vw, 16px);
  min-width: 0;
}

.sections-unified .maintenance-unified-col .frame-20 {
  flex: 1 1 0;
  min-width: 0;
  width: auto !important;
}

.sections-unified .maintenance-unified-col .text_label {
  height: auto !important;
  font-size: clamp(11px, 2.8vw, 16px);
  line-height: 1.45;
}

.sections-unified .maintenance-unified-col .maintenance-unified__photo,
.sections-unified .maintenance-unified-col .x12-1 {
  flex: 0 0 auto;
  width: clamp(80px, 26vw, 200px) !important;
  max-width: 48%;
  height: auto;
  aspect-ratio: 1.5;
  object-fit: cover;
  align-self: flex-start;
}

@media screen and (max-width: 1023px) {
  .screen.index.sections-unified {
    padding-left: clamp(12px, 4vw, 24px);
    padding-right: clamp(12px, 4vw, 24px);
    box-sizing: border-box;
  }

  .sections-unified .concept-1,
  .sections-unified .staff-1 {
    width: 100% !important;
    max-width: min(360px, calc(100% - 32px));
    margin-left: auto;
    margin-right: auto;
    height: auto !important;
  }

  /* メンテは2列のため横幅を広げる（360px だと1列に潰れやすい） */
  .sections-unified .maintenance-1 {
    width: 100% !important;
    max-width: calc(100% - 32px) !important;
    margin-left: auto;
    margin-right: auto;
    height: auto !important;
  }

  .sections-unified .concept-1 {
    margin-top: 0;
  }

  .sections-unified .staff-1,
  .sections-unified .maintenance-1 {
    margin-top: 3.5rem;
  }

  .sections-unified .group1 {
    flex-direction: column;
    align-items: stretch;
    height: auto !important;
    gap: 25px;
  }

  .sections-unified .concept-1 .frame-20 {
    width: 100% !important;
    max-width: 100%;
  }

  .sections-unified .ks-select {
    font-size: 1.5rem;
    letter-spacing: 1.3px;
    line-height: 40px;
  }

  .sections-unified .text-12 {
    height: auto !important;
    font-size: 14px;
    line-height: 25px;
  }

  .sections-unified .concept-1 .x12-1 {
    width: 100%;
    max-width: 350px;
    height: auto;
    aspect-ratio: 1.5;
    align-self: center;
  }

  .sections-unified .maintenance-1 .title_pc-1 {
    width: 100% !important;
  }

  .sections-unified .text_label {
    height: auto !important;
  }

  .sections-unified .title .span0,
  .sections-unified .concept-2 .span0,
  .sections-unified .concept-3 .span0 {
    font-size: 40px !important;
    line-height: 1.2;
  }

  .sections-unified .title .span1,
  .sections-unified .concept-2 .span1,
  .sections-unified .concept-3 .span1 {
    font-size: 20px !important;
  }

  .sections-unified .text {
    font-size: 12px;
    letter-spacing: 2.4px;
  }
}

/* PC: Anima の固定 margin-left / width より後に読み込み、中央寄せで上書き（Tailwind 単体では詳細度負けするため） */
@media screen and (min-width: 1024px) {
  .index .group-13 {
    margin-left: auto;
    margin-right: auto;
    width: 100%;
    max-width: 1280px;
    box-sizing: border-box;
    padding-left: clamp(32px, 5vw, 80px);
    padding-right: clamp(32px, 5vw, 80px);
  }

  .index .line-1 {
    width: 100%;
    max-width: 100%;
    align-self: stretch;
  }

  .index .main {
    margin-left: auto;
    margin-right: auto;
    width: 100%;
    max-width: 1280px;
    box-sizing: border-box;
    padding-left: clamp(32px, 5vw, 80px);
    padding-right: clamp(32px, 5vw, 80px);
  }

  .index .concept-1,
  .index .staff-1,
  .index .maintenance-1,
  .index .stock,
  .index .access,
  .index .contact {
    margin-left: auto;
    margin-right: auto;
    width: 100%;
    max-width: 920px;
    box-sizing: border-box;
    padding-left: clamp(12px, 2vw, 24px);
    padding-right: clamp(12px, 2vw, 24px);
  }

  /* 見出し帯を STOCK 等と同じコンテナ幅に（866px 固定を上書き） */
  .index .title_pc-1,
  .index .title_pc.title_pc-2 {
    width: 100% !important;
    max-width: 100%;
    box-sizing: border-box;
  }

  .screen.index.sections-unified {
    width: 100%;
    max-width: 920px;
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
  }

  .index .footer {
    margin-left: auto;
    margin-right: auto;
    width: 100%;
    max-width: 1280px;
    padding-top: 71px;
    padding-bottom: 71px;
    padding-left: clamp(32px, 5vw, 80px);
    padding-right: clamp(32px, 5vw, 80px);
    box-sizing: border-box;
  }

  /* maintenance が縦積みにならないよう、PCでは横並びを優先 */
  .index .maintenance-1 {
    flex-wrap: wrap;
    align-items: flex-start;
  }

  .index .maintenance-1 .title_pc-1 {
    flex: 0 0 100%;
    width: 100%;
  }

  .index .maintenance-1 .frame-20 {
    flex: 1 1 0;
    min-width: 0;
  }

  .index .maintenance-1 .x12-1 {
    width: min(387px, 45%);
    height: auto;
    flex: 0 0 auto;
  }
}

/* 外部フォーム・地図 iframe（PC / SP 共通） */
.map-embed-wrap {
  position: relative;
  width: 100%;
  align-self: stretch;
  overflow: hidden;
  border: 0;
}

/* アクセス地図：iframe 表示に合わせ上下の無駄を抑えるため高さを確保 */
.map-embed-wrap--pc {
  height: 640px;
  min-height: 640px;
}

.map-embed-wrap--sp {
  height: 500px;
  min-height: 520px;
  max-width: 100%;
}

/*
 * SP Google マップ：cqw + transform:scale() は、中身が absolute のみのラッパー幅が
 * 誤って狭く解決され（画面の半分程度）、地図が小さく見えることがある。
 * アスペクト比ボックス + iframe を 100% 充填で親幅いっぱいに表示する。
 */
.sp .map-embed-wrap--sp {
  position: relative;
  width: 100%;
  max-width: 100%;
  aspect-ratio: 932 / 598;
  height: auto;
  min-height: 0;
  overflow: hidden;
}

.sp .map-embed-wrap--sp .map-embed-iframe--google-sp {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  max-width: none;
  border: 0;
  transform: none;
}

.map-embed-iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.index .access {
  height: auto;
}

.sp .access-1 {
  height: auto;
}

/* SP アクセス：見出しは STOCK 等と同じ最大幅、地図 iframe は画面横幅いっぱい */
@media screen and (max-width: 1023px) {
  .sp .access-1 {
    width: 100% !important;
    max-width: 100% !important;
  }

  .sp .access-1 > .frame-18 {
    width: min(360px, calc(100% - 32px));
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
  }

  /* flex 子の min-width:auto で地図列が中途半端な幅に縮むのを防ぐ */
  .sp .access-1 > .frame-17--embed {
    width: 100% !important;
    max-width: 100%;
    align-self: stretch;
    min-width: 0;
  }
}

.mailform-embed-wrap {
  width: 100%;
  max-width: 100%;
  align-self: stretch;
}

.mailform-embed-wrap--pc .mailform-embed-iframe {
  display: block;
  width: 100%;
  min-height: 1620px;
  height: 1620px;
  border: 0;
}

.mailform-embed-wrap--sp .mailform-embed-iframe {
  display: block;
  width: 100%;
  /* 埋め込みフォームの実寸に合わせる（スクロールは iframe 内） */
  min-height: 1540px;
  height: 1540px;
  border: 0;
}

.index .contact {
  height: auto;
  align-items: stretch;
}

.sp .contact-1 {
  height: auto;
}

.sp .frame-17--embed {
  height: auto;
  width: 100%;
  max-width: 100%;
}

/* =========================
 * Main visual (PC/SP) custom
 * ========================= */

.kv {
  position: relative;
  width: 100%;
  overflow: hidden;
  border-radius: 6px;
  background: #0b2c6d;
  /* 画像未配置時の保険 */
}

/* PC */
.index .kv--pc {
  height: 383px;
  width: min(980px, 100%);
  margin-left: auto;
  margin-right: auto;
}

.index .main {
  height: auto;
}

.index .kv__grid {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(2, 1fr);
  gap: 10px;
  padding: 10px;
  background-color: #fff;
  box-sizing: border-box;
}

.index .kv__tile {
  background-image: none;
  background-size: cover;
  background-position: 50% 50%;
  border-radius: 6px;
  transform: translate3d(0, 0, 0);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.12);
  opacity: 0;
  transition: opacity 2200ms ease-in-out;
  will-change: opacity;
}

.index .kv__tile.is-visible {
  opacity: 1;
}

.index .kv__copy--pc {
  position: absolute;
  right: 0px;
  top: 50%;
  transform: translateY(-50%);
  width: min(485px, 58%);
  height: auto;
  z-index: 2;
  filter: drop-shadow(0 12px 24px rgba(0, 0, 0, 0.18));
}

/* SP */
.sp .kv--sp {
  height: 233px;
  width: 100%;
  background-color: #fff;
}

.sp .kv__bg--sp {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 2200ms ease-in-out;
  transform: scale(1.02);
}

.sp .kv__bg--sp.is-visible {
  opacity: 1;
}

.sp .kv__copy--sp {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: min(180px, 82%);
  width: 228px;
  height: auto;
  z-index: 2;
  filter: drop-shadow(0 10px 22px rgba(0, 0, 0, 0.18));
}

.sp .kv__copy--sp2 {
  position: relative;
  width: calc(100% - 100px);
  max-width: 248px;
  top: -26px;
  z-index: 8;
}
.sp .kv__copy--sp2div {
  width: 393px;
  text-align: right;
  margin: 0 auto;
}
/* 既存のSPメイン背景を無効化 */
.sp .main-2 {
  background-image: none;
  width: min(393px, 100%);
  max-width: 100%;
  margin-right: auto;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

@media (prefers-reduced-motion: reduce) {
  .index .kv__tile {
    transition: none !important;
    opacity: 1 !important;
  }

  .sp .kv__bg--sp {
    transition: none !important;
    opacity: 1 !important;
  }
}

/* 右下の「上へ戻る」ボタン（PC / SP 共通） */
.scroll-top-btn {
  position: fixed;
  right: 18px;
  bottom: 18px;
  width: 48px;
  height: 48px;
  border: 0;
  border-radius: 999px;
  background: rgba(11, 44, 109, 0.84);
  color: #fff;
  cursor: pointer;
  z-index: 30;
  display: grid;
  place-items: center;
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity 220ms ease, transform 220ms ease, visibility 220ms ease;
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.2);
}

.scroll-top-btn.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.scroll-top-btn:hover {
  background: rgba(11, 44, 109, 0.95);
}

.scroll-top-btn__chevron {
  width: 12px;
  height: 12px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(-45deg);
  margin-top: 4px;
}

@media screen and (min-width: 1024px) {
  .scroll-top-btn {
    right: 28px;
    bottom: 24px;
  }
}

/* 共通フッター（PC/SPはCSSでレスポンシブ切替） */
.site-footer {
  width: 100%;
  background-color: #d9d9d94c;
  box-sizing: border-box;
}

.site-footer__inner {
  margin: 0 auto;
  width: min(1280px, 100%);
  box-sizing: border-box;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 120px;
  padding: 71px clamp(32px, 5vw, 80px);
}

.site-footer__brand {
  width: 308px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 25px;
}

.site-footer__logo {
  width: 100%;
  height: auto;
  object-fit: cover;
}

.site-footer__company {
  color: var(--black);
  font-family: var(--font-family-poppins);
  font-size: var(--font-size-xl);
  font-weight: 600;
  letter-spacing: 2.5px;
  line-height: 25px;
  text-align: center;
}

.site-footer__content {
  width: 297px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.site-footer__phone-link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: inherit;
  text-decoration: none;
  width: fit-content;
}

.site-footer__phone-number {
  color: var(--black);
  font-family: var(--font-family-poppins);
  font-size: 35px;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1;
}

.site-footer__info {
  color: transparent;
  font-family: var(--font-family-poppins);
  font-size: var(--font-size-m);
  font-weight: 400;
  letter-spacing: 0;
}

.site-footer__row {
  display: grid;
  grid-template-columns: 5.6em 1fr;
  align-items: start;
  column-gap: 0.8em;
  margin-bottom: 2px;
}

.site-footer__note {
  color: var(--black);
  font-size: 11px;
  line-height: 20px;
  margin-top: 6px;
}

.site-footer__copyright {
  margin: 0;
  padding: 0 clamp(32px, 5vw, 80px) 40px;
  text-align: center;
  font-size: 12px;
  line-height: 1.5;
  color: var(--black);
  font-family: var(--font-family-poppins), sans-serif;
  letter-spacing: 0.06em;
}

@media screen and (max-width: 1023px) {
  .site-footer__copyright {
    padding: 8px 24px 48px;
    font-size: 11px;
  }

  .site-footer__inner {
    width: min(394px, 100%);
    padding: 60px 48px 96px;
    gap: 25px;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
  }

  .site-footer__brand {
    width: 209px;
    gap: 10px;
  }

  .site-footer__company {
    font-size: var(--font-size-m);
    letter-spacing: 1.5px;
  }

  .site-footer__content {
    width: 297px;
    align-items: center;
  }

  .site-footer__phone-number {
    font-size: 35px;
  }

  .site-footer__info {
    width: 100%;
  }
}