.p-contact {
  position: relative;
  z-index: 1;
  margin-top: clamp(-195.6px, -11.9326500732vw, -130.4px);
  padding: clamp(84.8px, 7.7598828697vw, 127.2px) clamp(40px, 3.6603221083vw, 60px) clamp(72px, 6.588579795vw, 108px);
  overflow-x: clip;
  border-radius: 40px 50px 0 0;
  background: #ecf5fa;
}

.p-contact__cards {
  position: relative;
  display: grid;
  grid-template-columns: clamp(321.6px, 29.4289897511vw, 482.4px) clamp(24px, 2.196193265vw, 36px) clamp(321.6px, 29.4289897511vw, 482.4px) clamp(24px, 2.196193265vw, 36px) clamp(321.6px, 29.4289897511vw, 482.4px);
  align-content: start;
}

@media screen and (min-width: 768px) {
  .p-contact--two .p-contact__cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .p-contact--two .p-contact__card--mail {
    grid-column: 2;
  }
}
@media screen and (min-width: 1094px) {
  .p-contact--two .p-contact__cards {
    grid-template-columns: clamp(432px, 39.5314787701vw, 648px) clamp(432px, 39.5314787701vw, 648px);
    column-gap: clamp(48px, 4.39238653vw, 72px);
    justify-content: center;
  }
  .p-contact--two .p-contact__card {
    width: clamp(432px, 39.5314787701vw, 648px);
  }
  .p-contact--two .p-contact__card--mail {
    grid-column: 2;
  }
  .p-contact--two .p-contact__tel {
    min-width: min(clamp(280.8px, 25.6954612006vw, 421.2px), 100%);
  }
  .p-contact--two .p-contact__mailIcon {
    top: clamp(98.4px, 9.0043923865vw, 147.6px);
    left: clamp(308.8px, 28.2576866764vw, 463.2px);
    width: clamp(95.2px, 8.7115666179vw, 142.8px);
    height: clamp(95.2px, 8.7115666179vw, 142.8px);
  }
}
.p-contact__card {
  position: relative;
  align-self: stretch;
  width: clamp(321.6px, 29.4289897511vw, 482.4px);
  min-height: clamp(232px, 21.2298682284vw, 348px);
  padding: clamp(17.6px, 1.6105417277vw, 26.4px) clamp(24px, 2.196193265vw, 36px) clamp(28.8px, 2.635431918vw, 43.2px);
  border: 1px solid #d4d4d4;
  border-radius: 20px;
  background: #fff;
}

.p-contact__card--tel {
  grid-column: 1;
  grid-row: 1;
}

.p-contact__card--mobile {
  grid-column: 3;
  grid-row: 1;
}

.p-contact__card--mail {
  grid-column: 5;
  grid-row: 1;
}

.p-contact__head {
  position: relative;
  padding-bottom: clamp(12px, 1.0980966325vw, 18px);
  border-bottom: 1px solid #d4d4d4;
}

.p-contact__title {
  position: relative;
  margin-top: clamp(11.2px, 1.0248901903vw, 16.8px);
}

.p-contact__tel {
  position: relative;
  width: fit-content;
  min-width: min(clamp(252px, 23.0600292826vw, 378px), 100%);
  max-width: 100%;
  margin: clamp(25.6px, 2.3426061493vw, 38.4px) auto 0;
  padding-bottom: clamp(12.8px, 1.1713030747vw, 19.2px);
  border-bottom: 3px solid #84d0f3;
  text-align: center;
}

.p-contact__hours {
  position: relative;
  margin: clamp(2.4px, 0.2196193265vw, 3.6px) 0 0;
  text-align: center;
}

.p-contact__mailText {
  position: relative;
  width: clamp(249.6px, 22.8404099561vw, 374.4px);
  margin: clamp(35.2px, 3.2210834553vw, 52.8px) 0 0;
}

.p-contact__mailIcon {
  position: absolute;
  top: clamp(125.6px, 11.4934114202vw, 188.4px);
  left: clamp(246.4px, 22.5475841874vw, 369.6px);
  width: clamp(53.6px, 4.9048316252vw, 80.4px);
  height: clamp(53.6px, 4.9048316252vw, 80.4px);
  background: url("../images/mail-icon.svg") no-repeat center/contain;
  transition: transform 0.3s ease;
}
@media (hover: hover) and (pointer: fine) {
  .p-contact__mailIcon:hover {
    transform: scale(1.05);
  }
}

.p-contact__tel a {
  display: inline-block;
  transition: transform 0.3s ease;
}
@media (hover: hover) and (pointer: fine) {
  .p-contact__tel a:hover {
    transform: scale(1.03);
  }
}

@media screen and (min-width: 1367px) {
  .p-contact {
    padding: clamp(84.8px, 7.7598828697vw, 127.2px) 0 clamp(72px, 6.588579795vw, 108px);
  }
  .p-contact__cards {
    justify-content: center;
  }
}
@media screen and (max-width: 1093px) {
  .p-contact {
    margin-top: clamp(-60px, -3.6603221083vw, -40px);
    padding: clamp(108.8px, 9.9560761347vw, 163.2px) clamp(16px, 1.4641288433vw, 24px) clamp(64px, 5.8565153734vw, 96px);
    overflow: visible;
  }
  .p-contact__cards {
    align-content: normal;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: clamp(24px, 2.196193265vw, 36px);
    row-gap: clamp(32px, 2.9282576867vw, 48px);
  }
  .p-contact__card {
    position: relative;
    top: auto;
    left: auto;
    width: auto;
    height: auto;
    min-height: clamp(232px, 21.2298682284vw, 348px);
    padding: clamp(17.6px, 1.6105417277vw, 26.4px) clamp(24px, 2.196193265vw, 36px) clamp(25.6px, 2.3426061493vw, 38.4px);
  }
  .p-contact__card--tel {
    grid-column: 1;
    grid-row: 1;
  }
  .p-contact__card--mobile {
    grid-column: 2;
    grid-row: 1;
  }
  .p-contact__card--mail {
    grid-column: 3;
    grid-row: 1;
  }
  .p-contact__head,
  .p-contact__title,
  .p-contact__tel,
  .p-contact__hours,
  .p-contact__mailText {
    position: relative;
    top: auto;
    left: auto;
  }
  .p-contact__head {
    padding-bottom: clamp(11.2px, 1.0248901903vw, 16.8px);
  }
  .p-contact__title {
    margin-top: clamp(11.2px, 1.0248901903vw, 16.8px);
  }
  .p-contact__tel {
    max-width: 100%;
    margin: clamp(19.2px, 1.756954612vw, 28.8px) auto 0;
    padding-bottom: clamp(11.2px, 1.0248901903vw, 16.8px);
  }
  .p-contact__hours {
    margin-top: clamp(3.2px, 0.2928257687vw, 4.8px);
  }
  .p-contact__mailText {
    width: auto;
    max-width: 340px;
    margin-top: clamp(25.6px, 2.3426061493vw, 38.4px);
  }
}
@media screen and (max-width: 1093px) {
  .p-contact__cards {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-auto-rows: 1fr;
    gap: clamp(22.4px, 2.0497803807vw, 33.6px);
    justify-items: center;
  }
  .p-contact__card,
  .p-contact__card--tel,
  .p-contact__card--mobile,
  .p-contact__card--mail {
    grid-column: 1;
    grid-row: auto;
    align-self: stretch;
    width: 100%;
    max-width: 767px;
    margin-inline: auto;
    padding-inline: clamp(8px, 6vw, 48px);
  }
  .p-contact__card--mail .p-contact__body {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, auto) auto minmax(0, 1fr);
    align-items: center;
  }
  .p-contact__card--mail .p-contact__title {
    grid-row: 1;
    grid-column: 1/-1;
  }
  .p-contact__mailText {
    grid-row: 2;
    grid-column: 2;
  }
  .p-contact__mailIcon {
    position: relative;
    top: auto;
    right: auto;
    left: auto;
    grid-row: 2;
    grid-column: 3;
    width: 100px;
    height: 100px;
    margin: clamp(25.6px, 2.3426061493vw, 38.4px) 0 0 clamp(19.2px, 1.756954612vw, 28.8px);
  }
  .p-contact__mailIcon::after {
    top: 28px;
    left: 23px;
    width: 47px;
    height: 36px;
  }
}
@media screen and (max-width: 767px) {
  .p-contact {
    padding: clamp(51.2px, 4.6852122987vw, 76.8px) clamp(16px, 1.4641288433vw, 24px) clamp(64px, 5.8565153734vw, 96px);
  }
}
@media screen and (max-width: 767px) {
  .p-contact__card {
    min-height: 0;
    padding-block: clamp(16px, 1.4641288433vw, 24px);
  }
  .p-contact__mailText {
    width: auto;
  }
}
@media screen and (max-width: 320px) {
  .p-contact__mailIcon {
    width: 64px;
    height: 64px;
  }
  .p-contact__mailIcon::after {
    top: 18px;
    left: 15px;
    width: 30px;
    height: 23px;
  }
}
.p-footer {
  padding: 0 clamp(40px, 3.6603221083vw, 60px);
  background: #ecf5fa;
}

.p-footer__inner {
  padding: clamp(92px, 8.4187408492vw, 138px) clamp(48px, 4.39238653vw, 72px) clamp(20.8px, 1.9033674963vw, 31.2px);
  border-radius: 20px 20px 0 0;
  background: #0072be;
}

.p-footer__head {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}

.p-footer__brand {
  display: flex;
  align-items: center;
  width: 381px;
  max-width: 100%;
  min-height: 64px;
  padding: 0 clamp(12px, 1.0980966325vw, 18px);
  border-radius: 6px;
  background: #fff;
  transition: transform 0.3s ease;
}
@media (hover: hover) and (pointer: fine) {
  .p-footer__brand:hover {
    transform: scale(1.05);
  }
}

.p-footer__logo {
  flex-shrink: 0;
  display: block;
  width: 337px;
  max-width: 100%;
  height: auto;
}

.p-footer__nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  width: clamp(497.6px, 45.5344070278vw, 746.4px);
  margin-top: clamp(16px, 1.4641288433vw, 24px);
  margin-left: auto;
  margin-right: clamp(2.4px, 0.2196193265vw, 3.6px);
}

.p-footer__navItem {
  position: relative;
}
.p-footer__navItem::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -4px;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: center;
  transition: transform 0.3s ease;
}
@media (hover: hover) and (pointer: fine) {
  .p-footer__navItem:hover::after {
    transform: scaleX(1);
  }
}

.p-footer__info {
  margin-top: clamp(20px, 1.8301610542vw, 30px);
}

.p-footer__mail {
  margin-top: clamp(8px, 0.7320644217vw, 12px);
}

.p-footer__line {
  position: relative;
  display: block;
  width: clamp(220.8px, 20.2049780381vw, 331.2px);
  max-width: 100%;
  height: clamp(168px, 15.3733528551vw, 252px);
  margin-top: clamp(12px, 1.0980966325vw, 18px);
  border-radius: 6px;
  background: #ecf5fa;
  box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
  transition: transform 0.3s ease;
}
@media (hover: hover) and (pointer: fine) {
  .p-footer__line:hover {
    transform: scale(1.03);
  }
}

.p-footer__lineHead {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
  height: clamp(43.2px, 3.953147877vw, 64.8px);
  border-radius: 6px 6px 0 0;
  background: #00a0e9;
}

.p-footer__lineHead::before {
  content: "";
  flex-shrink: 0;
  width: clamp(23.2px, 2.1229868228vw, 34.8px);
  height: clamp(29.6px, 2.7086383602vw, 44.4px);
  margin-left: clamp(12px, 1.0980966325vw, 18px);
  background: #fff;
  -webkit-mask-image: url("../images/line-mark.svg");
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: contain;
  mask-image: url("../images/line-mark.svg");
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
}

.p-footer__lineHeadText {
  margin-left: clamp(6.4px, 0.5856515373vw, 9.6px);
}

.p-footer__lineQr {
  position: absolute;
  top: clamp(49.6px, 4.5387994143vw, 74.4px);
  left: clamp(12px, 1.0980966325vw, 18px);
  width: clamp(108px, 9.8828696925vw, 162px);
  height: clamp(108px, 9.8828696925vw, 162px);
  border-radius: 10px;
  background: #fff;
}

.p-footer__lineQrImage {
  position: absolute;
  top: clamp(4.8px, 0.439238653vw, 7.2px);
  left: clamp(4.8px, 0.439238653vw, 7.2px);
  display: block;
  width: clamp(98.4px, 9.0043923865vw, 147.6px);
  height: clamp(98.4px, 9.0043923865vw, 147.6px);
}

.p-footer__lineBalloon {
  position: absolute;
  top: clamp(-3.6px, -0.2196193265vw, -2.4px);
  left: clamp(132.8px, 12.1522693997vw, 199.2px);
  width: clamp(84.8px, 7.7598828697vw, 127.2px);
  height: clamp(71.2px, 6.5153733529vw, 106.8px);
  background: url("../images/line-balloon.svg") no-repeat center/contain;
  filter: drop-shadow(0 4px 4px rgba(0, 0, 0, 0.25));
}

.p-footer__lineBalloonTop {
  position: absolute;
  top: clamp(13.6px, 1.2445095168vw, 20.4px);
  left: clamp(10.4px, 0.9516837482vw, 15.6px);
}

.p-footer__lineBalloonBottom {
  position: absolute;
  top: clamp(32.8px, 3.0014641288vw, 49.2px);
  left: clamp(10.4px, 0.9516837482vw, 15.6px);
}

.p-footer__line::after {
  content: "";
  position: absolute;
  top: clamp(68.8px, 6.2957540264vw, 103.2px);
  left: clamp(134.4px, 12.298682284vw, 201.6px);
  width: clamp(78.4px, 7.1742313324vw, 117.6px);
  height: clamp(90.4px, 8.2723279649vw, 135.6px);
  pointer-events: none;
  background: url("../images/line-phone.svg") no-repeat center/contain;
}

.p-footer__copyright {
  margin-top: clamp(96px, 8.78477306vw, 144px);
  text-align: center;
}

.p-footer__copyright p {
  display: inline-block;
}

.p-pageTop {
  position: fixed;
  right: clamp(72px, 6.588579795vw, 108px);
  bottom: clamp(32px, 2.9282576867vw, 48px);
  z-index: 80;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: clamp(81.6px, 7.467057101vw, 122.4px);
  height: clamp(81.6px, 7.467057101vw, 122.4px);
  padding-top: clamp(8px, 0.7320644217vw, 12px);
  border-radius: 50%;
  background: #95d2ed;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease;
}

.p-pageTop.is-visible {
  opacity: 1;
  visibility: visible;
}

@media (hover: hover) and (pointer: fine) {
  .p-pageTop.is-visible:hover {
    transform: scale(1.05);
  }
  .p-pageTop.is-visible:hover::before {
    transform: translateY(-3px);
  }
}

.p-pageTop::before {
  content: "";
  width: 8px;
  height: 7px;
  background: #fff;
  transition: transform 0.3s ease;
  -webkit-mask-image: url("../images/arrow-up.svg");
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: contain;
  mask-image: url("../images/arrow-up.svg");
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
}

.p-pageTop__label {
  margin-top: clamp(16.8px, 1.5373352855vw, 25.2px);
  text-align: center;
}

@media screen and (min-width: 1367px) {
  .p-footer {
    padding-inline: clamp(50px, 3.6603%, 96px);
  }
  .p-footer__inner {
    padding-inline: calc((100% - clamp(916.8px, 83.8945827233vw, 1375.2px)) / 2);
  }
}
@media screen and (max-width: 1093px) {
  .p-pageTop {
    right: clamp(16px, 1.4641288433vw, 24px);
    bottom: clamp(16px, 1.4641288433vw, 24px);
  }
  .p-footer {
    padding: 0 clamp(16px, 1.4641288433vw, 24px);
  }
}
@media screen and (max-width: 1093px) {
  .p-footer__inner {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: start;
    column-gap: clamp(25.6px, 2.3426061493vw, 38.4px);
    row-gap: clamp(44.8px, 4.0995607613vw, 67.2px);
    padding: clamp(64px, 5.8565153734vw, 96px) clamp(40px, 3.6603221083vw, 60px) clamp(25.6px, 2.3426061493vw, 38.4px);
  }
  .p-footer__head {
    display: contents;
  }
  .p-footer__brand {
    grid-row: 1;
    grid-column: 1/-1;
    justify-self: center;
    width: 381px;
    max-width: 100%;
  }
  .p-footer__info {
    grid-row: 2;
    grid-column: 1;
    margin-top: 0;
  }
  .p-footer__nav {
    grid-row: 2;
    grid-column: 2;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(12.8px, 1.1713030747vw, 19.2px) clamp(9.6px, 0.878477306vw, 14.4px);
    width: 100%;
    margin: 0;
  }
  .p-footer__line {
    grid-row: 3;
    grid-column: 1/-1;
    justify-self: center;
    margin-top: 0;
  }
  .p-footer__copyright {
    grid-row: 4;
    grid-column: 1/-1;
    margin-top: clamp(32px, 2.9282576867vw, 48px);
  }
  .p-footer__navItem {
    text-align: center;
  }
}
@media screen and (max-width: 767px) {
  .p-footer__line {
    grid-row: 4;
  }
  .p-footer__copyright {
    grid-row: 5;
    margin-top: clamp(32px, 2.9282576867vw, 48px);
  }
  .p-footer__inner {
    padding: clamp(38.4px, 3.513909224vw, 57.6px) clamp(16px, 1.4641288433vw, 24px) clamp(19.2px, 1.756954612vw, 28.8px);
  }
  .p-footer__brand {
    width: 381px;
    max-width: 100%;
    min-height: 58px;
    height: auto;
  }
  .p-footer__inner {
    grid-template-columns: minmax(0, 1fr);
  }
  .p-footer__info {
    grid-row: 2;
    grid-column: 1/-1;
    text-align: center;
  }
  .p-footer__nav {
    grid-row: 3;
    grid-column: 1/-1;
    gap: clamp(12.8px, 1.1713030747vw, 19.2px) clamp(6.4px, 0.5856515373vw, 9.6px);
  }
}
