@charset "utf-8";

* { box-sizing: border-box; }

html, body { margin: 0; padding: 0; }

body {
  background: #fff;
  color: #000;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  line-height: 1.6;
}

img { display: block; max-width: 100%; height: auto; }

a { color: #0099c8; text-decoration: underline; }

:root {
  --pc-bg-width: 100%;
  --pc-content-width: 1200px;
  --white-panel-width: 100%;
  --white-panel-alpha: .42;
}

.lp {
  position: relative;
  width: min(100%, var(--pc-bg-width));
  margin: 0 auto;
  overflow: hidden;
  background: #09c7e7;
}

.lp-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  background: url("../images/back.jpeg") top center / var(--pc-bg-width) auto no-repeat;
  pointer-events: none;
}

.mv, .intro, .overview, .footer {
  position: relative;
  z-index: 1;
  width: min(100%, var(--pc-content-width));
  margin-left: auto;
  margin-right: auto;
}

.mv {
width: 100%;
}


.mv { padding-top: 0; }

.mv__title { margin: 0; }

.mv__title img { width: 100%; }

.intro {
  padding: 60px 0 0;
  margin-top: 60px;
}

.intro::before,
.overview::before {
  content: "";
  position: absolute;
  z-index: -1;
  left: 50%;
  width: var(--white-panel-width);
  transform: translateX(-50%);
  background: rgba(255, 255, 255, var(--white-panel-alpha));
  pointer-events: none;
}

.intro::before { top: 0; bottom: 0; }

.overview::before { top: 0; bottom: clamp(70px, 4.3vw, 82px); }

.intro > *, .overview > * { position: relative; z-index: 1; }

.intro__image {
  width: var(--white-panel-width);
  margin: 0 auto;
}

.overview {
  padding: 0 0 clamp(70px, 4.3vw, 82px);
}

.overview__heading {
  width: var(--white-panel-width);
  margin: clamp(0px, -.4vw, 0px) auto clamp(28px, 1.8vw, 34px);
}

.overview__item {
  width: 86%;
  margin: 0 auto clamp(26px, 1.65vw, 32px);
}

.overview__item img { width: 100%; }

.overview__item--receipt { margin-bottom: clamp(18px, 1.15vw, 22px); }

.overview__note {
  margin: clamp(-6px, -.3vw, -3px) 0 clamp(16px, 1vw, 20px);
  padding-left: 1em;
  font-size: clamp(11px, .62vw, 12px);
  font-weight: 700;
  line-height: 1.4;
}

.access {
  width: 86%;
  margin: clamp(12px, .8vw, 15px) auto 0;
  padding-bottom: 80px;
}

.access__map {
  width: 100%;
  margin: 0 auto clamp(12px, .75vw, 15px);
}

.access__address {
  margin: 0 0 clamp(46px, 2.9vw, 56px);
  font-size: clamp(18px, 1.1vw, 21px);
  font-weight: 700;
  line-height: 1.35;
}

.access__logo {
  display: block;
  width: 44%;
  min-width: 260px;
  margin: 0 auto clamp(12px, .75vw, 15px);
}

.access__link {
  margin: 0;
  text-align: center;
  font-size: clamp(18px, 1.1vw, 21px);
  font-weight: 700;
}

.footer {
  width: min(100%, var(--pc-bg-width));
  max-width: none;
  padding: clamp(42px, 2.7vw, 52px) 4% clamp(60px, 1.9vw, 36px);
  background: linear-gradient(
    to bottom,
    #ffffff 0%,
    #fffef4 32%,
    #fff7b0 72%,
    #fff06a 100%
  );
  text-align: center;
}

.footer__sns {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: clamp(28px, 3vw, 58px);
  margin: 0 auto clamp(16px, 1vw, 20px);
}

.footer__sns-link {
  display: block;
  line-height: 1;
  transition: opacity .2s ease;
}

.footer__sns-link:hover {
  opacity: .75;
}

.footer__sns-link img {
  width: auto;
  height: clamp(58px, 4.8vw, 88px);
}

.footer__sns-link:nth-child(2) img {
  height: clamp(50px, 4.2vw, 76px);
}

.footer__copyright {
  display: inline-block;
  margin-bottom: 8px;
  font-size: clamp(13px, .9vw, 17px);
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}

.footer__caution {
  display: inline-block;
  margin: 0 auto;
  padding: 5px 24px;
  border: 3px solid #00a95f;
  border-radius: 999px;
  color: #000;
  background: #fff;
  font-size: clamp(12px, .72vw, 14px);
  font-weight: 700;
  line-height: 1.35;
  font-size: 20px;
}

.sp-only { display: none; }

iframe {
    width: 100%;
    height: 480px;
}




.footer__inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 55px 40px 30px;
}

.footer__sns {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 70px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.footer__sns-item {
  width: 150px;
}

.footer__sns-item a {
  display: block;
  color: #222;
  text-decoration: none;
}

.footer__sns-label {
  display: inline-block;
  margin-bottom: 20px;
  color: #222;
  font-size: 36px;
  font-weight: 400;
  line-height: 1;
  text-decoration: underline;
  text-underline-offset: 6px;
}

.footer__sns-item img {
  display: block;
  width: 140px;
  height: auto;
  margin: 0 auto;
}

.footer__sns-item--line img {
  width: 145px;
}

.footer__sns-item--youtube {
  width: 220px;
}

.footer__sns-item--youtube img {
  width: 220px;
}

.footer__copyright {
  margin: 35px 0 0;
  color: #222;
  font-size: 20px;
  line-height: 1;
  font-weight: normal;
}

/* マウスオーバー時 */
.footer__sns-item a:hover .footer__sns-label {
  color: #00b050;
}

.footer__sns-item a:hover img {
  opacity: 0.8;
  transform: translateY(-3px);
}

/* クリック時 */
.footer__sns-item a:active .footer__sns-label {
  color: #ff5a00;
}

.footer__sns-item a:active img {
  transform: translateY(0);
}

/* キーボード操作時 */
.footer__sns-item a:focus-visible .footer__sns-label {
  color: #00b050;
}

/* ハッピーロード大山ロゴ・リンクの効果 */

.access__logo {

  transition: opacity 0.25s ease, transform 0.25s ease;

}

.access__logo:hover {

  opacity: 0.85;

  transform: translateY(-3px);

}

.access__logo:active {

  transform: translateY(0);

}

.access__link a {

  color: #0099c8;

  transition: color 0.25s ease;

}

.access__link a:hover {

  color: #00b050;

}

.access__link a:active {

  color: #ff5a00;

}

.access__link a:focus-visible {

  color: #00b050;

}

@media (max-width: 768px) {
  :root {
    --pc-bg-width: 100vw;
    --pc-content-width: 100vw;
    --white-panel-width: 92%;
  }

  .lp { width: 100%; }

  .lp-bg { background-size: 100% auto; }

.lp-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    background: url(../images/back_sp.jpeg) top center / var(--pc-bg-width) auto no-repeat;
    pointer-events: none;
}



  .intro { padding-top: 20px; }


.intro {
    margin-top: 20px;
}


  .overview { padding-bottom: 30px; }

  .overview::before { bottom: 30px; }

  .overview__heading {
    width: 84%;
    margin-bottom: 14px;
  }

  .overview__item,
  .access {
    width: 82%;
  }

  .overview__item { margin-bottom: 15px; }

  .overview__note { font-size: 12px; }

  .access__address {
    margin-bottom: 26px;
    font-size: clamp(14px, 3.2vw, 15px);
  }

.access {
    padding-bottom: 40px;
}


  .access__logo {
    width: 58%;
    min-width: 0;
  }

  .access__link { font-size: clamp(13px, 3.5vw, 16px); }

  .footer {
    padding-top: 20px;
  }

  .footer__sns {
    gap: 18px;
    max-width: none;
    margin-bottom: 14px;
  }

  .footer__sns-link img {
    height: 42px;
  }

  .footer__sns-link:nth-child(2) img {
    height: 36px;
  }

  .footer__copyright {
    position: static;
    transform: none;
    font-size: 10px;
  }

  .footer__caution {
    max-width: 92%;
    padding: 3px 10px;
    border-width: 2px;
    font-size: clamp(9px, 2.4vw, 11px);
  }
  
  iframe {
    width: 100%;
    height: 360px;
}


@media (max-width: 768px) {
  .footer__inner {
    padding: 35px 15px 24px;
  }

  .footer__sns {
    flex-wrap: wrap;
    gap: 28px 18px;
  }

  .footer__sns-item {
    width: calc(33.333% - 12px);
  }

  .footer__sns-item--line,
  .footer__sns-item--youtube {
    width: calc(50% - 12px);
  }

  .footer__sns-label {
    margin-bottom: 10px;
    font-size: 20px;
    text-underline-offset: 4px;
  }

  .footer__sns-item img {
    width: 80px;
  }

  .footer__sns-item--line img {
    width: 82px;
  }

  .footer__sns-item--youtube img {
    width: 130px;
  }

  .footer__copyright {
    margin-top: 28px;
    font-size: 20px;
    font-weight: normal;
  }

  .footer__caution {
    padding: 10px;
    font-size: 13px;
    white-space: normal;
  }
}


}
