:root {
  --surface: #fff;
  --surface-variant: #f9f8f4;
  --on-surface: #333;
  --primary: #0065a8;
  --secondary: #009d5d;
  --primary-container: #409fdd;
  --secondary-container: #21d28a;
  --primary-container-light: #e0f5fa;
  --secondary-container-light: #caf6e4;
}
:root {
  --scale-2: min(100vw / 375 * 1, 2px);
  --scale-4: min(100vw / 375 * 2, 4px);
  --scale-8: min(100vw / 375 * 4, 8px);
  --scale-14: min(100vw / 375 * 12, 14px);
  --scale-16: min(100vw / 375 * 13, 16px);
  --scale-18: min(100vw / 375 * 14, 18px);
  --scale-22: min(100vw / 375 * 15, 22px);
  --scale-24: min(100vw / 375 * 16, 24px);
  --scale-28: min(100vw / 375 * 20, 28px);
  --scale-32: min(100vw / 375 * 24, 32px);
  --scale-40: min(100vw / 375 * 28, 40px);
  --scale-48: min(100vw / 375 * 40, 48px);
  --scale-56: min(100vw / 375 * 48, 56px);
  --scale-80: min(100vw / 375 * 56, 80px);
}

:root {
  --content-width-full: 100%;
  --content-width-m: 1080px;
  --content-width-s: 640px;
  --content-height-full: min(100vw / 375 * 667, 768px);
  --padding-inline: var(--scale-28, 28px);
  --padding-block: var(--scale-80, 80px);
  --heading-gap-to-next: var(--scale-48, 48px);
}

/* =======================
   Base Styles
======================= */
*,
*:before,
*:after {
  box-sizing: inherit;
}

body,
html {
  position: relative;
  color: var(--on-surface);
  line-height: 200%;
  box-sizing: border-box;
  font-size: var(--scale-18, 18px);
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-style: normal;
  overflow-x: hidden;
}
span {
  display: inline-block;
}

@media screen and (min-width: 960px) {
  .sp {
    display: none;
  }
}
@media not screen and (min-width: 960px) {
  .pc {
    display: none;
  }
}

/*============================
#mv
============================*/
section#mv {
  display: flex;
  height: var(--content-height-full, 768px);
  flex-direction: column;
  justify-content: center;
  align-items: center;
  align-self: stretch;
  background: url(../images/mv_a.jpg) no-repeat center center / auto 100%;
}
@media screen and (max-width: 1366px) {
  section#mv {
    background-position: left calc(0px - min(100vw / 375 * 440, 440px)) center;
  }
}

section#mv.b {
  background: url(../images/mv_b.jpg) no-repeat center center / auto 100%;
}
section#mv div.mv__container {
  flex: 1 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding-left: var(--padding-inline, 28px);
  padding-right: var(--padding-inline, 28px);
}
section#mv div.mv__container h1 {
  width: 100%;
  max-width: var(--content-width-s);
  height: auto;
}
section#mv div.mv__container h1 img {
  width: 100%;
}

figure.transition {
  width: 100%;
  transform: scaleX(1.05);
}
figure.transition img {
  width: 100%;
}
figure.transition.top img {
  vertical-align: super;
  margin-top: -1px;
}
/*============================
#about
============================*/
section#about {
  padding: var(--padding-block, 80px) var(--padding-inline, 28px);
  align-items: center;
  align-self: stretch;
}
section#about div.about__container {
  display: flex;
  max-width: var(--content-width-m, 1080px);
  align-items: flex-start;
  align-self: stretch;
  margin-inline: auto;
  gap: var(--heading-gap-to-next) 0;
}

section#about div.about__container div.about__body {
  flex: 0 1 min(100vw / 375 * 640, 640px);
  display: flex;
  flex-direction: column;
  gap: var(--heading-gap-to-next, 48px);
}
section#about div.about__container div.about__body div.about__heading {
  display: flex;
  max-width: var(--content-width-xs, 640px);
  flex-direction: column;
  align-items: flex-start;
  gap: var(--scale-16, 16px);
  align-self: stretch;
}
section#about div.about__container div.about__body div.about__heading h2 {
  align-self: stretch;
  color: var(--primary, #0065a8);
  font-family: "Noto Sans JP";
  font-size: min(100vw / 375 * 27, 40px);
  font-style: normal;
  font-weight: 700;
  line-height: 150%; /* 52px */
  letter-spacing: 0;
}
section#about div.about__container div.about__body div.paragraphs {
  display: flex;
  max-width: var(--content-width-xs, 640px);
  flex-direction: column;
  align-items: flex-start;
  gap: var(--scale-18, 18px);
  align-self: stretch;
}
section#about div.about__container div.about__body div.paragraphs p {
}
section#about div.about__container figure.about__image {
  flex: 1 1 auto;
  position: relative;
}
section#about div.about__container figure.about__image img {
  position: absolute;
  left: 0;
  top: 0;
  width: min(100vw / 960 * 300, 610px);
}

@media screen and (max-width: 960px) {
  section#about div.about__container {
    flex-direction: column-reverse;
    align-items: center;
  }
  section#about div.about__container figure.about__image img {
    position: relative;
    width: min(100vw / 375 * 280, 400px);
  }
}

/*============================
#lead
============================*/
section#lead {
  background: url(../images/lead_back.jpg) no-repeat center center / auto 100%;
  display: flex;
  flex-direction: column;
}
section#lead figure.transition {
}
section#lead figure.transition img {
}
section#lead div.lead__container {
  display: flex;
  padding: var(--scale-56, 56px) var(--padding-inline, 28px) 240px
    var(--padding-inline, 28px);
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: var(--scale-18, 18px);
  align-self: stretch;
  color: var(--surface, #fff);
  text-align: center;
  font-family: "Noto Sans JP";
  font-size: var(--scale-18, 18px);
  font-style: normal;
  font-weight: 500;
  line-height: 200%; /* 36px */
  letter-spacing: 0.9px;
  position: relative;
  max-width: var(--content-width-m, 1080px);
  margin-inline: auto;
  width: 100%;
}
section#lead div.lead__container p {
}
section#lead div.lead__container figure.lead__image {
  width: 200px;
  height: auto;
  flex-shrink: 0;
  position: absolute;
  bottom: calc(0px - var(--scale-56, 56px));
  right: 0px;
  z-index: 10;
}
section#lead div.lead__container figure.lead__image img {
  width: 100%;
}

@media screen and (max-width: 960px) {
  section#lead div.lead__container figure.lead__image {
    width: min(100vw / 375 * 120, 120px);
  }
  section#lead {
    background:
      linear-gradient(
        to bottom,
        rgba(29, 133, 254, 1) 40%,
        rgba(29, 133, 254, 0) 50%
      ),
      url(../images/lead_back_sp.jpg) no-repeat center center / cover;
  }
  section#lead div.lead__container {
    max-width: 640px;
  }
}

/*============================
#profile
============================*/
section#profile {
  display: flex;
  padding: var(--padding-block, 80px) var(--padding-inline, 28px);
  flex-direction: column;
  align-items: center;
  align-self: stretch;
}
section#profile div.profile__container {
  display: flex;
  max-width: var(--content-width-m, 1080px);
  align-items: flex-start;
  align-content: flex-start;
  gap: var(--scale-80, 80px);
  align-self: stretch;
  flex-wrap: wrap;
  margin-inline: auto;
  justify-content: center;
}
section#profile div.profile__container figure.profile__image {
  flex: 0 1 360px;
}
section#profile div.profile__container figure.profile__image img {
  width: 100%;
}
section#profile div.profile__container div.profile__body {
  display: flex;
  flex: 1 1 min(100vw / 1366 * 640, 640px);
  flex-direction: column;
  align-items: flex-start;
  gap: var(--heading-gap-to-next, 48px);
}
section#profile div.profile__container div.profile__body h2 {
  color: var(--primary, #0065a8);
  font-family: "Noto Sans JP";
  font-size: 28px;
  font-style: normal;
  font-weight: 700;
  line-height: 180%; /* 50.4px */
  letter-spacing: 5.6px;
}
section#profile div.profile__container div.profile__body p {
  color: var(--on-surface, #333);
  text-align: justify;
  font-family: "Noto Sans JP";
  font-size: var(--scale-16, 16px);
  font-style: normal;
  font-weight: 400;
  line-height: 200%; /* 32px */
  letter-spacing: 0.8px;
}

/*============================
#schedule
============================*/
section#schedule {
  display: flex;
  flex-direction: column;
  gap: var(--heading-gap-to-next, 48px);
  align-self: stretch;
  background: var(--primary-container-light, #e0f5fa);
}
section#schedule figure.transition.top {
}
section#schedule figure.transition.top img {
}
section#schedule div.schedule__container {
  display: flex;
  padding: var(--padding-block, 80px) var(--padding-inline, 28px);
  flex-direction: column;
  gap: var(--heading-gap-to-next, 48px);
  align-self: stretch;
}
section#schedule div.schedule__container h2 {
  width: 100%;
  max-width: 720px;
  margin-inline: auto;
}
section#schedule div.schedule__container h2 img {
  width: 100%;
}
section#schedule div.schedule__container div.schedule__units {
  display: flex;
  max-width: var(--content-width-m, 1080px);
  flex-direction: column;
  align-self: stretch;
  margin-inline: auto;
}
section#schedule div.schedule__container div.schedule__units div.units__unit {
  display: flex;
  max-width: var(--content-width-m, 1080px);
  padding: var(--scale-40, 40px) var(--scale-40, 40px) var(--scale-24, 24px)
    var(--scale-40, 40px);
  flex-direction: column;
  align-items: center;
  gap: var(--scale-24, 24px);
  align-self: stretch;
  border-radius: var(--scale-16, 16px);
  background: var(--surface, #fff);
}
section#schedule
  div.schedule__container
  div.schedule__units
  div.units__unit
  div.unit__body {
  display: flex;
  align-items: flex-start;
  gap: var(--scale-56, 56px);
  flex-wrap: wrap;
}

section#schedule
  div.schedule__container
  div.schedule__units
  div.units__unit:nth-of-type(2n)
  div.unit__body {
  flex-direction: row-reverse;
}
section#schedule
  div.schedule__container
  div.schedule__units
  div.units__unit
  div.unit__body
  div.slick {
  flex: 1 1 min(100vw / 960 * 400, 400px);
  width: min(100vw / 960 * 400, 400px);
}
section#schedule
  div.schedule__container
  div.schedule__units
  div.units__unit
  div.unit__body
  div.slick
  div.slick-list {
  border-radius: var(--scale-16, 16px);
  box-shadow: var(--scale-16, 16px) var(--scale-16, 16px) 0px 0px
    var(--primary-container-light, #e0f5fa);
}

section#schedule
  div.schedule__container
  div.schedule__units
  div.units__unit:nth-of-type(2n)
  div.unit__body
  div.slick
  div.slick-list {
  box-shadow: var(--scale-16, 16px) var(--scale-16, 16px) 0px 0px
    var(--secondary-container-light, #caf6e4);
}

section#schedule
  div.schedule__container
  div.schedule__units
  div.units__unit
  div.unit__body
  div.slick
  .slick-dots {
  bottom: -40px;
}

section#schedule
  div.schedule__container
  div.schedule__units
  div.units__unit
  div.unit__body
  div.slick
  div
  img {
  width: 100%;
  aspect-ratio: 400/240;
  object-fit: cover;
}
section#schedule
  div.schedule__container
  div.schedule__units
  div.units__unit
  div.unit__body
  div.unit__text {
  flex: 1 1 min(100vw / 960 * 320, 544px);

  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--scale-16, 16px);
}
section#schedule
  div.schedule__container
  div.schedule__units
  div.units__unit
  div.unit__body
  div.unit__text
  div.text__access {
  display: flex;
  align-items: flex-start;
  gap: var(--scale-8, 8px);
  align-self: stretch;
}
section#schedule
  div.schedule__container
  div.schedule__units
  div.units__unit
  div.unit__body
  div.unit__text
  div.text__access
  img {
  height: 24px;
  aspect-ratio: 1/1;
}
section#schedule
  div.schedule__container
  div.schedule__units
  div.units__unit
  div.unit__body
  div.unit__text
  div.text__access
  p {
  flex: 1 0 0;
  color: var(--on-surface, #333);
  text-align: justify;
  font-family: "Noto Sans JP";
  font-size: var(--scale-16, 16px);
  font-style: normal;
  font-weight: 500;
  line-height: 130%; /* 20.8px */
}
section#schedule
  div.schedule__container
  div.schedule__units
  div.units__unit
  div.unit__body
  div.unit__text
  div.text__heading {
  display: flex;
  align-items: flex-start;
  gap: var(--scale-16, 16px);
  align-self: stretch;
}
section#schedule
  div.schedule__container
  div.schedule__units
  div.units__unit
  div.unit__body
  div.unit__text
  div.text__heading
  div.heading__time {
  display: flex;
  padding: var(--scale-8, 8px) var(--scale-16, 16px);
  justify-content: center;
  align-items: center;
  border-radius: 1000px;
  background: var(--primary-container-light, #e0f5fa);
  color: var(--primary, #0065a8);
  font-family: "Noto Sans JP";
  font-size: var(--scale-22, 22px);
  font-style: normal;
  font-weight: 700;
  line-height: 100%; /* 22px */
}

section#schedule
  div.schedule__container
  div.schedule__units
  div.units__unit:nth-of-type(2n)
  div.unit__body
  div.unit__text
  div.text__heading
  div.heading__time {
  background: var(--secondary-container-light, #caf6e4);
  color: var(--secondary, #009d5d);
}
section#schedule
  div.schedule__container
  div.schedule__units
  div.units__unit
  div.unit__body
  div.unit__text
  div.text__heading
  h3 {
  color: var(--primary, #0065a8);
  font-family: "Noto Sans JP";
  font-size: var(--scale-28, 28px);
  font-style: normal;
  font-weight: 700;
  line-height: 150%; /* 42px */
  letter-spacing: 1.12px;
  flex: 1 0 0;
}

section#schedule
  div.schedule__container
  div.schedule__units
  div.units__unit:nth-of-type(2n)
  div.unit__body
  div.unit__text
  div.text__heading
  h3 {
  color: var(--secondary, #009d5d);
}
section#schedule
  div.schedule__container
  div.schedule__units
  div.units__unit
  div.unit__body
  div.unit__text
  div.text__description {
}
section#schedule
  div.schedule__container
  div.schedule__units
  div.units__unit
  div.unit__body
  div.unit__text
  div.text__comment {
  display: flex;
  align-items: flex-start;
  gap: var(--scale-24, 24px);
  align-self: stretch;
}
section#schedule
  div.schedule__container
  div.schedule__units
  div.units__unit
  div.unit__body
  div.unit__text
  div.text__comment
  figure {
  flex: 1 1 80px;
}
section#schedule
  div.schedule__container
  div.schedule__units
  div.units__unit
  div.unit__body
  div.unit__text
  div.text__comment
  figure
  img {
  width: 100%;
}
section#schedule
  div.schedule__container
  div.schedule__units
  div.units__unit
  div.unit__body
  div.unit__text
  div.text__comment
  p {
  position: relative;
  display: flex;
  padding: var(--scale-16, 16px);
  justify-content: center;
  align-items: center;
  flex: 1 1 448px;
  border-radius: var(--scale-8, 8px);
  background: var(--primary-container, #409fdd);
  color: var(--surface, #fff);
  text-align: justify;
  font-family: "Noto Sans JP";
  font-size: var(--scale-18, 18px);
  font-style: normal;
  font-weight: 700;
  line-height: 150%; /* 27px */
}

section#schedule
  div.schedule__container
  div.schedule__units
  div.units__unit:nth-of-type(2n)
  div.unit__body
  div.unit__text
  div.text__comment
  p {
  background: var(--secondary-container, #21d28a);
}
section#schedule
  div.schedule__container
  div.schedule__units
  div.units__unit
  div.unit__body
  div.unit__text
  div.text__comment
  p:before {
  content: "";
  position: absolute;
  left: 0;
  top: 1em;
  transform: translateX(-100%);
  border-top: 6px solid transparent;
  border-bottom: 6px solid transparent;
  border-right: 8px solid var(--primary-container, #409fdd);
}
section#schedule
  div.schedule__container
  div.schedule__units
  div.units__unit:nth-of-type(2n)
  div.unit__body
  div.unit__text
  div.text__comment
  p:before {
  border-right: 8px solid var(--secondary-container, #21d28a);
}
section#schedule
  div.schedule__container
  div.schedule__units
  div.units__unit
  div.unit__link {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  align-self: stretch;
}
section#schedule
  div.schedule__container
  div.schedule__units
  div.units__unit
  div.unit__link
  a {
  display: flex;
  align-items: center;
  gap: var(--scale-16, 16px);
  color: var(--primary, #0065a8);
  text-align: right;
  font-family: "Noto Sans JP";
  font-size: var(--scale-16, 16px);
  font-style: normal;
  font-weight: 700;
  line-height: 130%; /* 20.8px */
  letter-spacing: 0.8px;
}

section#schedule
  div.schedule__container
  div.schedule__units
  div.units__unit:nth-of-type(2n)
  div.unit__link
  a {
  color: var(--secondary, #009d5d);
}
section#schedule
  div.schedule__container
  div.schedule__units
  div.units__unit
  div.unit__link
  a
  img {
  width: var(--scale-48, 48px);
  aspect-ratio: 1/1;
}
section#schedule
  div.schedule__container
  div.schedule__units
  figure.units__transition {
  margin-inline: auto;
  width: min(100vw / 375 * 3, 4px);
}
section#schedule
  div.schedule__container
  div.schedule__units
  figure.units__transition
  img {
  width: 100%;
}

/*============================
#hotel
============================*/
section#hotel {
  display: flex;
  padding: var(--padding-block, 80px) var(--padding-inline, 28px);
  flex-direction: column;
  align-items: center;
  gap: var(--heading-gap-to-next, 48px);
  align-self: stretch;
}
section#hotel h2 {
  width: 100%;
  max-width: 500px;
  margin-inline: auto;
}
section#hotel h2 img {
  width: 100%;
}
section#hotel div.hotel__units {
  display: flex;
  max-width: 1240px;
  justify-content: center;
  align-items: stretch;
  align-content: flex-start;
  gap: 24px var(--scale-24, 24px);
  align-self: stretch;
  margin-inline: auto;
}

@media screen and (max-width: 1200px) {
  section#hotel div.hotel__units {
    flex-direction: column;
  }
}

section#hotel div.hotel__units div.hotel__unit {
  display: flex;
  padding: var(--scale-16, 16px);
  flex-direction: column;
  align-items: center;
  gap: var(--scale-14, 14px);
  flex: 1 1 0;
  width: 100%;
  border-radius: var(--scale-16, 16px);
  background: var(--primary-container, #409fdd);
}

section#hotel div.hotel__units div.hotel__unit:nth-of-type(2n) {
  background: #40c5dd;
}

section#hotel div.hotel__units div.hotel__unit:nth-of-type(3n) {
  background: var(--secondary-container, #21d28a);
}
section#hotel div.hotel__units div.hotel__unit h3 {
  color: var(--surface, #fff);
  text-align: center;
  font-family: "Noto Sans JP";
  font-size: var(--scale-18, 18px);
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
section#hotel div.hotel__units div.hotel__unit div.slick {
  width: min(100vw / 375 * 309, 320px);
  flex: 1 1 0;
  aspect-ratio: 16 / 9;
}
section#hotel div.hotel__units div.hotel__unit div.slick div {
  border-radius: var(--scale-8, 8px);
}
section#hotel div.hotel__units div.hotel__unit div.slick div img {
  object-fit: cover;
  aspect-ratio: 16 / 9;
  width: 100%;
}
section#hotel div.hotel__units div.hotel__unit div.unit__description {
  align-self: stretch;
  color: var(--surface, #fff);
  font-family: "Noto Sans JP";
  font-size: var(--scale-14, 14px);
  font-style: normal;
  font-weight: 700;
  line-height: 170%; /* 23.8px */
}
section#hotel div.hotel__units div.hotel__unit div.unit__link {
  width: 100%;
}
section#hotel div.hotel__units div.hotel__unit div.unit__link a {
  display: flex;
  align-items: center;
  gap: var(--scale-4, 4px);
  flex: 1 0 0;
  width: 100%;
}
section#hotel
  div.hotel__units
  div.hotel__unit
  div.unit__link
  a
  div.link__address {
  display: flex;
  align-items: center;
  gap: var(--scale-4, 4px);
  flex: 1 0 0;
  color: var(--surface, #fff);
  font-family: "Noto Sans JP";
  font-size: var(--scale-14, 14px);
  font-style: normal;
  font-weight: 700;
  line-height: 170%; /* 23.8px */
}
section#hotel
  div.hotel__units
  div.hotel__unit
  div.unit__link
  a
  div.link__address
  img {
  height: 24px;
  aspect-ratio: 1/1;
}
section#hotel
  div.hotel__units
  div.hotel__unit
  div.unit__link
  a
  img.link__arrow {
}

/*============================
#map
============================*/
section#map {
  background: var(--surface-variant, #f9f8f4);
}

section#map figure.transition.top {
}
section#map figure.transition.top img {
}
section#map div.map__container {
  padding: var(--padding-block, 80px) var(--padding-inline, 28px);
  display: flex;
  flex-direction: column;
  gap: var(--heading-gap-to-next, 48px);
  align-self: stretch;
}
section#map div.map__container h2 {
  width: 100%;
  max-width: 440px;
  margin-inline: auto;
}
section#map div.map__container h2 img {
  width: 100%;
}
section#map div.map__container div.map__body {
}

/*============================
#googleMap
============================*/
section#map div.map__container div.map__body div#googleMap {
  width: 100%;
  max-width: 880px;
  aspect-ratio: 880/520;
  border-radius: var(--scale-16, 16px);
  margin-inline: auto;
}

/*============================
#message
============================*/
section#message {
  background: url(../images/message_back.jpg) no-repeat center center / auto
    100%;
  display: flex;
  flex-direction: column;
}
section#message figure.transition.top {
}
section#message figure.transition.top img {
}
section#message div.message__container {
  display: flex;
  height: min(100vw / 375 * 240, 480px);
  justify-content: center;
  align-items: center;
  padding-left: var(--padding-inline, 28px);
  padding-right: var(--padding-inline, 28px);
}
section#message div.message__container h2 {
  transform: translateY(100%);
  width: min(100vw / 375 * 312, 860px);
}
section#message div.message__container h2 img {
  width: 100%;
}

/*============================
#gallery
============================*/
section#gallery {
  background: var(--primary-container-light, #e0f5fa);
}
section#gallery div.gallery__track {
  overflow: hidden;
}
section#gallery div.gallery__track div.gallery__container {
  display: flex;
  width: max-content;
  animation: galleryScroll 80s linear infinite;

  padding: var(--scale-40, 40px) 0px;
  justify-content: center;
  align-items: flex-start;
  gap: var(--scale-40, 40px);
  align-self: stretch;
}
section#gallery div.gallery__track div.gallery__container figure {
  width: min(100vw / 375 * 160, 240px);
  transition: transform 0.3s ease-in-out;
}
section#gallery div.gallery__track div.gallery__container figure:hover {
  transform: scale(2);
  z-index: 10;
}
section#gallery
  div.gallery__track
  div.gallery__container
  figure:nth-of-type(2n)
  img {
  transform: translateY(5%);
}
section#gallery
  div.gallery__track
  div.gallery__container
  figure:nth-of-type(3n)
  img {
  transform: translateY(-5%);
}

section#gallery div.gallery__track div.gallery__container figure img {
  width: 100%;
}

section#gallery figure.transition {
}
section#gallery figure.transition img {
}
/* === アニメーション定義 === */
@keyframes galleryScroll {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}

/*============================
#link
============================*/
section#link {
  display: flex;
  padding: var(--padding-block, 80px) var(--padding-inline, 28px);
  flex-direction: column;
  align-items: center;
  align-self: stretch;
  gap: var(--heading-gap-to-next, 48px);
}
section#link h2 {
  width: 100%;
  max-width: min(100vw / 375 * 85, 114px);
}
section#link h2 img {
  width: 100%;
}
section#link div.link__body {
  display: flex;
  align-items: flex-start;
  align-content: flex-start;
  gap: min(100vw / 375 * 10, 40px);
  align-self: stretch;
  flex-wrap: wrap;
  max-width: var(--content-width-m, 1080px);
  margin-inline: auto;
}
section#link div.link__body a {
  flex: 1 1 min(100vw / 375 * 160, 320px);
}
section#link div.link__body a img {
  width: 100%;
}
section#link div.link__sns {
}
section#link div.link__sns a {
  width: 30px;
  display: block;
}
section#link div.link__sns a img {
  width: 100%;
}

footer {
  display: flex;
  padding: var(--scale-16, 16px) var(--padding-inline, 28px);
  justify-content: center;
  align-items: center;
  align-self: stretch;
  background: var(--primary, #0065a8);
  color: var(--surface, #fff);
  text-align: center;
  font-family: "Noto Sans JP";
  font-size: var(--scale-14, 14px);
  font-style: normal;
  font-weight: 700;
  line-height: 180%; /* 25.2px */
  letter-spacing: 2.24px;
}
