:root {
  --font-family-base: "Noto Sans JP", sans-serif;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  font-size: 16px;
}

body {
  font-family: var(--font-family-base);
}

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

a {
  text-decoration: none;
  color: inherit;
}

ul {
  list-style: none;
}

/* ==========================================================
   Header / Hero (TOP)
========================================================== */

.hero {
  position: relative;
  width: 100%;
  overflow: hidden;
}

.hero__bg {
  position: absolute;
  left: 0;
  right: 0;
  top: -1px;
  z-index: 0;
  width: 100%;
  height: calc(100% + 2px); /* 前後セクションとの継ぎ目の端数px隙間を背景のみで吸収する */
  object-fit: cover;
}

/* コンテンツは1920px相当で中央配置し、1920pxを超える幅では背景のみ伸ばす */
.hero__content {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1920px;
  margin: 0 auto;
  aspect-ratio: 1920.46 / 1614.44;
  container-type: inline-size;
}

.hero__title {
  position: absolute;
  left: 14.1851%;
  top: 2.9098%;
  width: 71.5828%;
  height: 59.0768%;
}

.hero__tagline {
  position: absolute;
  left: 77.0058%;
  top: 5.4982%;
  width: 4.2996%;
  height: 24.5432%;
}

.hero__date {
  position: absolute;
  left: 31.8153%;
  top: 60.4680%;
  width: 36.3455%;
  text-align: center;
  color: #fff;
  white-space: nowrap;
  line-height: normal;
}

.hero__date-lg {
  font-size: calc(76.194 / 1920.46 * 100cqw);
  font-weight: 700;
}

.hero__date-sm {
  font-size: calc(51.356 / 1920.46 * 100cqw);
  font-weight: 700;
}

.hero__place {
  position: absolute;
  left: 41.6025%;
  top: 65.8186%;
  width: 16.6106%;
  font-size: calc(26.539 / 1920.46 * 100cqw);
  font-weight: 400;
  color: #fff;
  white-space: nowrap;
  line-height: normal;
}

.hero__banner {
  position: absolute;
  top: 69.0330%;
  width: 32.4922%;
  height: 17.0808%;
}

.hero__banner img {
  width: 100%;
  height: 100%;
}

.hero__banner--left {
  left: 18.2842%;
  width: 32.1173%;
}

.hero__banner--right {
  left: 50.7389%;
}

/* nav はFigma上でも背景バーが画面幅いっぱいに広がるため、
   heroの内側から100vw幅で全幅に張り出させる */
.nav {
  position: absolute;
  top: 91.3010%;
  height: 8.6371%;
  left: 50%;
  width: 100vw;
  margin-left: -50vw;
}

.nav__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.nav__list {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(4 / 1920.46 * 100cqw);
  width: 100%;
  max-width: 1920px;
  height: 100%;
  margin: 0 auto;
}

.nav__link {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc(201.118 / 1920.46 * 100cqw);
}

.nav__icon {
  width: 100%;
  height: auto;
}

.nav__label {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #fff;
  font-weight: 400;
  font-size: calc(22.229 / 1920.46 * 100cqw);
  line-height: calc(25.2 / 1920.46 * 100cqw);
}

/* ハンバーガーメニュー（768px以下でのみ表示。Figma未定義のためレスポンシブ専用ファイルで表示切替） */
.nav-toggle {
  display: none;
}

.mobile-nav {
  display: none;
}

/* ==========================================================
   sec1: 趣旨文 + 連動プログラムロゴ
========================================================== */

.sec1 {
  position: relative;
  width: 100%;
  overflow: hidden;
}

.sec1__bg {
  position: absolute;
  left: 0;
  right: 0;
  top: -1px;
  z-index: 0;
  width: 100%;
  height: calc(100% + 2px);
  object-fit: cover;
}

.sec1__content {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1920px;
  margin: 0 auto;
  aspect-ratio: 1920.24 / 904.32;
  container-type: inline-size;
}

.sec1__lead {
  position: absolute;
  left: 27.0393%;
  top: 7.2743%;
  width: 45.9318%;
  font-size: calc(23.739 / 1920.24 * 100cqw);
  line-height: calc(50 / 1920.24 * 100cqw);
  font-weight: 700;
  color: #172c58;
  text-align: center;
}

.sec1__badges {
  position: absolute;
  left: 24.8521%;
  top: 63.5597%;
  width: 50.3096%;
  height: 25.0838%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(84 / 1920.24 * 100cqw);
}

.sec1__badges img {
  height: 100%;
  width: auto;
}

/* ==========================================================
   sec2: 開催概要
========================================================== */

.sec2 {
  position: relative;
  width: 100%;
  overflow: hidden;
}

.sec2__bg {
  position: absolute;
  left: 0;
  right: 0;
  top: -1px;
  z-index: 0;
  width: 100%;
  height: calc(100% + 2px);
  object-fit: cover;
}

.sec2__line {
  position: absolute;
  z-index: 1;
  left: 0.6885%;
  top: 0;
  width: 98.6377%;
  height: auto;
  object-fit: contain;
}

.sec2__content {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1920px;
  margin: 0 auto;
  aspect-ratio: 1920.24 / 1115.52;
  container-type: inline-size;
}

.sec2__card-shadow,
.sec2__card {
  position: absolute;
  left: 18.2555%;
  width: 63.4755%;
  height: 75.1110%;
}

.sec2__card-shadow {
  top: 14.5%;
  background: rgba(255, 255, 255, 0.5);
  transform: rotate(-5deg);
}

.sec2__card {
  top: 14.3593%;
  background: #fff;
}

.sec2__title {
  position: absolute;
  left: 26.1540%;
  top: 19.5303%;
  width: 48.1711%;
  height: 10.2194%;
}

.sec2__about {
  position: absolute;
  left: 43.1728%;
  top: 31.0531%;
  width: 13.4581%;
  height: 5.4535%;
}

.sec2__label,
.sec2__value {
  position: absolute;
  color: #036eb8;
  white-space: nowrap;
}

.sec2__label {
  font-weight: 400;
  font-size: calc(22.549 / 1920.24 * 100cqw);
  display: flex;
  align-items: center;
  justify-content: center;
  border: calc(2 / 1920.24 * 100cqw) solid #036eb8;
  border-radius: calc(14 / 1920.24 * 100cqw);
}

.sec2__label--date { left: 25.1125%; top: 40.7501%; width: 7.1814%; height: 5.4903%; letter-spacing: calc(6.7647 / 1920.24 * 100cqw); }
.sec2__label--time { left: 25.1320%; top: 48.3408%; width: 7.1814%; height: 10.5416%; }
.sec2__label--place { left: 25.1320%; top: 60.8294%; width: 7.1814%; height: 7.7292%; }
.sec2__label--fee { left: 25.1125%; top: 70.9861%; width: 7.1814%; height: 5.4903%; letter-spacing: calc(6.7647 / 1920.24 * 100cqw); }
.sec2__label--org { left: 25.1320%; top: 78.5970%; width: 7.1814%; height: 5.4903%; }

.sec2__num-lg {
  font-weight: 700;
  font-size: calc(58.408 / 1920.24 * 100cqw);
}

.sec2__num-sm {
  font-weight: 700;
  font-size: calc(39.368 / 1920.24 * 100cqw);
}

.sec2__num-md {
  font-weight: 700;
  font-size: calc(50.065 / 1920.24 * 100cqw);
}

.sec2__unit {
  font-weight: 700;
  font-size: calc(35.784 / 1920.24 * 100cqw);
}

.sec2__value--date { left: 33.7929%; top: 40.0861%; }
.sec2__value--822 { left: 33.7929%; top: 47.2904%; }
.sec2__value--grp822 { left: 44.4799%; top: 47.8315%; }
.sec2__value--823 { left: 33.7929%; top: 52.7919%; }
.sec2__value--grp823 { left: 44.4799%; top: 53.2634%; }

.sec2__value--place {
  left: 33.9949%;
  top: 61.4597%;
  font-weight: 700;
  font-size: calc(35.279 / 1920.24 * 100cqw);
}

.sec2__value--addr {
  left: 33.9949%;
  top: 65.7330%;
  font-weight: 400;
  font-size: calc(25.158 / 1920.24 * 100cqw);
}

.sec2__value--fee {
  left: 33.9949%;
  top: 71.5921%;
  font-weight: 400;
  font-size: calc(35.279 / 1920.24 * 100cqw);
}

.sec2__value--org {
  left: 33.9949%;
  top: 80.1346%;
  font-weight: 400;
  font-size: calc(25.158 / 1920.24 * 100cqw);
}

.sec2__map-btn {
  position: absolute;
  left: 59.9999%;
  top: 63.9476%;
  width: 15.3356%;
  height: 5.0405%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #036eb8;
  border-radius: 999px;
  color: #fff;
  font-weight: 700;
  font-size: calc(20.696 / 1920.24 * 100cqw);
  white-space: nowrap;
}

/* ==========================================================
   sec3: ステージコンテンツ
========================================================== */

.sec3 {
  position: relative;
  width: 100%;
  overflow: hidden;
}

.sec3__bg {
  position: absolute;
  left: 0;
  right: 0;
  top: -1px;
  z-index: 0;
  width: 100%;
  height: calc(100% + 2px);
  object-fit: cover;
}

.sec3__line {
  position: absolute;
  z-index: 1;
  left: 0.6885%;
  top: 0;
  width: 98.6377%;
  height: auto;
  object-fit: contain;
}

.sec3__content {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1920px;
  margin: 0 auto;
  container-type: inline-size;
  padding-top: calc(107 / 1920.24 * 100cqw);
  padding-bottom: calc(83.56 / 1920.24 * 100cqw);
}

.sec3__title-block {
  position: relative;
  width: calc(1025.49 / 1920.24 * 100%);
  aspect-ratio: 1025.49 / 236.84;
  margin: 0 auto calc(57.16 / 1920.24 * 100cqw);
}

.sec3__title-caption {
  position: absolute;
  left: 41.452%;
  top: 0.310%;
  width: 16.383%;
  height: 14.356%;
  text-align: center;
  color: #213059;
  font-weight: 700;
  font-size: calc(27.953 / 1920.24 * 100cqw);
  white-space: nowrap;
}

.sec3__title-logo {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 72.617%;
}

.sec3__title-sub {
  position: absolute;
  left: 23.111%;
  top: 75.586%;
  width: 53.523%;
  height: 24.42%;
}

.sec3__grid {
  position: relative;
  width: calc(1222.48 / 1920.24 * 100%);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: calc(45.52 / 1920.24 * 100cqw);
  row-gap: calc(36.04 / 1920.24 * 100cqw);
}

.event-card--wide {
  grid-column: 1 / -1;
}

/* --- イベントカード共通 --- */

.event-card {
  position: relative;
  aspect-ratio: 588.48 / 750.96;
}

.event-card.event-card--wide {
  aspect-ratio: 1219.92 / 750.72;
}

.event-card__border {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.event-card__inner {
  position: absolute;
  z-index: 1;
  left: 3.7384%;
  top: 2.9296%;
  width: 92.4086%;
  height: 94.0347%;
  background: linear-gradient(
    to bottom,
    #80cbd3 20.6623%,
    #87ced5 22.6819%,
    #abdde2 33.7367%,
    #cae9ec 45.3230%,
    #e1f2f4 57.4407%,
    #f2f9fa 70.4088%,
    #fbfdfd 84.7588%,
    #fff 103.148%
  );
}

.event-card__photo {
  position: absolute;
  z-index: 2;
  overflow: hidden;
  border-radius: calc(16.928 / 1920.24 * 100cqw);
}

.event-card__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.event-card__title {
  position: absolute;
  z-index: 2;
  color: #172c58;
  font-weight: 700;
  font-size: calc(41.282 / 1920.24 * 100cqw);
  white-space: nowrap;
}

.event-card__subtitle {
  position: absolute;
  z-index: 2;
  color: #172c58;
  font-weight: 400;
  font-size: calc(25.404 / 1920.24 * 100cqw);
  white-space: nowrap;
}

.event-card__desc {
  position: absolute;
  z-index: 2;
  color: #231815;
  font-weight: 400;
  font-size: calc(21.893 / 1920.24 * 100cqw);
  line-height: calc(30 / 1920.24 * 100cqw);
  letter-spacing: calc(-1.7514 / 1920.24 * 100cqw);
}

.event-card__date {
  position: absolute;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 0;
  background: #036eb8;
  color: #fff;
  white-space: nowrap;
  left: 7.6348%;
  width: 84.9574%;
  height: 5.3078%;
  padding-left: calc(10.894 / 1920.24 * 100cqw);
}

.event-card__date-day {
  display: inline-flex;
  align-items: baseline;
  flex-shrink: 0;
  width: calc(124 / 1920.24 * 100cqw);
  margin-right: calc(18.415 / 1920.24 * 100cqw);
  line-height: 1;
}

.event-card__num-lg {
  font-weight: 700;
  font-size: calc(39.813 / 1920.24 * 100cqw);
  line-height: 1;
  transform: translateY(-6%);
}

.event-card__num-sm {
  font-weight: 700;
  font-size: calc(26.835 / 1920.24 * 100cqw);
  line-height: 1;
  transform: translateY(-6%);
}

.event-card__num-md {
  font-weight: 700;
  font-size: calc(32.059 / 1920.24 * 100cqw);
  line-height: 1;
  transform: translateY(-6%);
}

.event-card__date-times {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: calc(4 / 1920.24 * 100cqw);
}

.event-card__date-time-row {
  display: inline-flex;
  align-items: baseline;
  line-height: 1;
}

/* --- card1: アイヌ古式舞踊 --- */
.card1__photo { left: 5.2357%; top: 3.9732%; width: 89.5527%; height: 42.4178%; }
.card1__title { left: 7.5610%; top: 48.4427%; }
.card1__subtitle { left: 6.3134%; top: 56.1901%; }
.card1__desc { left: 7.6468%; top: 61.2549%; width: 85.8143%; }
.card1__date-sat { top: 88.2475%; }

/* --- card6: アイヌ古式舞踊（旭川チカップニ アイヌ民族文化保存会）（仮：PDF資料からの暫定値。Figma確定後に差し替え） --- */
.event-card.card6 { grid-row: 1; grid-column: 2 / 3; }

.card6__namebox {
  position: absolute;
  z-index: 2;
  overflow: hidden;
  left: 5.2357%;
  top: 3.9732%;
  width: 89.5527%;
  height: 42.4178%;
  border-radius: calc(16.928 / 1920.24 * 100cqw);
}

.card6__namebox img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.card6__title { left: 7.5610%; top: 48.4427%; }
.card6__subtitle { left: 6.3134%; top: 56.1901%; }
.card6__desc { left: 7.6468%; top: 61.2549%; width: 85.8143%; }
.card6__date-sun {
  top: 88.2475%;
  background: #d70051;
}

/* --- card2: 上川アイヌ特別演舞 --- */
.event-card.card2 { grid-row: 2; grid-column: 1 / 2; }
.card2__photo { left: 4.9746%; top: 3.9732%; width: 89.5528%; height: 42.4178%; }
.card2__title1 { left: 7.2998%; top: 48.9098%; font-size: calc(35.69 / 1920.24 * 100cqw); }
.card2__title2 { left: 7.2998%; top: 54.7383%; }
.card2__subtitle { left: 6.0524%; top: 62.8479%; }
.card2__desc { left: 7.1370%; top: 67.9131%; width: 85.8143%; }
.card2__date-sat { top: 87.8875%; }

/* --- card3: トンコリライブ --- */
.event-card.card3 { grid-row: 2; grid-column: 2 / 3; }
.card3__photo { left: 5.2678%; top: 3.9093%; width: 89.5527%; height: 42.4178%; }
.card3__title1 { left: 6.7785%; top: 47.3945%; }
.card3__title2 { left: 6.7785%; top: 53.7096%; }
.card3__subtitle { left: 6.8231%; top: 60.5426%; }
.card3__desc { left: 7.6468%; top: 65.5161%; width: 85.8143%; }
.card3__date-sat { top: 81.9789%; }
.card3__date-sun { top: 88.2475%; background: #d70051; }

/* --- card4: YOSAKOIソーラン演舞（仮：card5のwideレイアウトを流用した暫定値。Figma確定後に差し替え） --- */
/* 写真が縦長でなくなった分、枠の高さも中身に合わせて縮小（card5より低いaspect-ratio） */
.event-card.event-card--wide.card4 {
  aspect-ratio: 1219.92 / 453.14;
}

/* 枠画像(card5用アセット流用)は元の縦横比と大きく異なるため、
   cover表示だと上下の線がクロップされて消える。fillで全体を収める暫定対応 */
.event-card.event-card--wide.card4 .event-card__border {
  object-fit: fill;
}

.card4__inner {
  left: 1.8034%;
  top: 2.9305%;
  width: 96.3358%;
  height: 94.0648%;
}

.card4__photo {
  position: absolute;
  z-index: 2;
  overflow: hidden;
  border-radius: calc(16.928 / 1920.24 * 100cqw);
  left: 2.6896%;
  top: 13.4590%;
  width: 38.9198%;
  height: 73.0960%;
}

.card4__label {
  position: absolute;
  z-index: 2;
  width: 55%;
  color: #172c58;
  font-weight: 700;
  font-size: calc(38.867 / 1920.24 * 100cqw);
  left: 43.5331%;
  top: 13.4590%;
}

.card4__subtitle {
  position: absolute;
  z-index: 2;
  left: 40.5038%;
  top: 23.6850%;
  width: 48.1179%;
  color: #172c58;
  font-weight: 700;
  font-size: calc(41.041 / 1920.24 * 100cqw);
}

.card4__desc {
  position: absolute;
  z-index: 2;
  left: 43.7734%;
  top: 41.3100%;
  width: 51.3968%;
  color: #231815;
  font-weight: 400;
  font-size: calc(21.893 / 1920.24 * 100cqw);
  line-height: 1.4;
  letter-spacing: calc(-1.7514 / 1920.24 * 100cqw);
}

.card4__date {
  position: absolute;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 0;
  left: 44.0559%;
  top: 77.7440%;
  width: 22.8085%;
  height: 8.7950%;
  padding-left: calc(10.894 / 1920.24 * 100cqw);
  background: #036eb8;
  color: #fff;
  white-space: nowrap;
}

/* --- card5: STVラジオ公開収録 --- */
.card5__inner {
  left: 1.8034%;
  top: 2.9305%;
  width: 96.3358%;
  height: 94.0648%;
}

.card5__photo {
  left: 2.6896%;
  top: 4.3795%;
  width: 38.9198%;
  height: 91.4480%;
}

.card5__label {
  position: absolute;
  z-index: 2;
  width: 55%;
  color: #172c58;
  font-weight: 700;
  font-size: calc(38.867 / 1920.24 * 100cqw);
  left: 43.5331%;
}

.card5__label1 { top: 5.1880%; }
.card5__label2 { top: 18.0886%; }

.card5__subtitle {
  position: absolute;
  z-index: 2;
  left: 40.5038%;
  top: 11.3571%;
  width: 48.1179%;
  color: #172c58;
  font-weight: 700;
  font-size: calc(41.041 / 1920.24 * 100cqw);
}

.card5__desc {
  position: absolute;
  z-index: 2;
  left: 43.7734%;
  top: 29.9712%;
  width: 51.3968%;
  color: #231815;
  font-weight: 400;
  font-size: calc(21.893 / 1920.24 * 100cqw);
  line-height: 1.4;
  letter-spacing: calc(-1.7514 / 1920.24 * 100cqw);
}

.card5__personality {
  position: absolute;
  z-index: 2;
  left: 42.7021%;
  width: 57%;
  top: 21.9996%;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: calc(12 / 1920.24 * 100cqw);
}

.card5__personality-role {
  color: #172c58;
  font-size: calc(32 / 1920.24 * 100cqw);
}

.card5__personality-name {
  color: #172c58;
  font-weight: 700;
  font-size: calc(32 / 1920.24 * 100cqw);
}

.card5__date {
  position: absolute;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 0;
  left: 44.0559%;
  top: 51.0255%;
  width: 22.8085%;
  height: 5.3092%;
  padding-left: calc(10.894 / 1920.24 * 100cqw);
  background: #036eb8;
  color: #fff;
  white-space: nowrap;
}

.card5__staff,
.card5__host-block,
.card5__guest-block,
.card5__bio-row,
.card5__bio-text,
.card5__guest-row,
.card5__guest-text {
  display: contents;
}

.card5__host-role {
  position: absolute;
  z-index: 2;
  left: 56.7956%;
  width: 42%;
  top: 60.7170%;
  color: #172c58;
  font-size: calc(17.133 / 1920.24 * 100cqw);
}

.card5__bio-name {
  position: absolute;
  z-index: 2;
  left: 58.3073%;
  width: 40%;
  top: 63.8910%;
  color: #172c58;
  font-size: calc(31.145 / 1920.24 * 100cqw);
}

.card5__bio-kana {
  position: absolute;
  z-index: 2;
  left: 56.6370%;
  width: 42%;
  top: 69.1937%;
  color: #172c58;
  font-size: calc(19.135 / 1920.24 * 100cqw);
}

.card5__bio-photo {
  position: absolute;
  z-index: 2;
  left: 43.8212%;
  top: 60.7622%;
  width: 13.2086%;
  height: 34.1132%;
  overflow: hidden;
  border-radius: calc(23.588 / 1920.24 * 100cqw);
}

.card5__bio-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.card5__bio-desc {
  position: absolute;
  z-index: 2;
  left: 58.2825%;
  top: 73.6626%;
  width: 18.3619%;
  color: #231815;
  font-weight: 400;
  font-size: calc(15.878 / 1920.24 * 100cqw);
  line-height: normal;
}

.card5__guest-role {
  position: absolute;
  z-index: 2;
  left: 77.2793%;
  width: 21%;
  top: 84.7543%;
  color: #172c58;
  font-size: calc(13.258 / 1920.24 * 100cqw);
}

.card5__guest-photo {
  position: absolute;
  z-index: 2;
  left: 78.0405%;
  top: 48.9798%;
  width: 17.1245%;
  height: 34.7456%;
  background: #c9caca;
  border-radius: calc(19.2998 / 1920.24 * 100cqw);
  overflow: hidden;
}

.card5__guest-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.card5__guest-org {
  position: absolute;
  z-index: 2;
  left: 78.3884%;
  width: 20%;
  top: 87.6573%;
  color: #172c58;
  font-size: calc(14.807 / 1920.24 * 100cqw);
}

.card5__guest-name {
  position: absolute;
  z-index: 2;
  left: 78.3884%;
  width: 20%;
  top: 90.2912%;
  color: #172c58;
  font-size: calc(24.1 / 1920.24 * 100cqw);
}

/* ==========================================================
   sec4: アイヌ文化体験コーナー
========================================================== */

.sec4 {
  position: relative;
  width: 100%;
  overflow: hidden;
}

.sec4__bg {
  position: absolute;
  left: 0;
  right: 0;
  top: -1px;
  z-index: 0;
  width: 100%;
  height: calc(100% + 2px);
  object-fit: cover;
}

.sec4__line {
  position: absolute;
  z-index: 1;
  left: 0.6885%;
  top: 0;
  width: 98.6377%;
  height: auto;
  object-fit: contain;
}

.sec4__content {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1920px;
  margin: 0 auto;
  aspect-ratio: 1920.24 / 3872.0962;
  container-type: inline-size;
}

.sec4__base {
  position: absolute;
  left: 18.2350%;
  top: 6.3624%;
  width: 63.5397%;
  height: 79.6182%;
  background: #fff;
}

.sec4__title {
  position: absolute;
  left: 32.0387%;
  top: 3.5123%;
  width: 35.9580%;
  height: 1.5743%;
}

/* --- 体験ボックス共通 ---
   ラッパーdivは display:contents とし、子要素の絶対配置の基準を
   .sec4__content のままにする（ラッパー自体はボックスを生成しない） */

.sec4-box {
  display: contents;
}

.sec4-box__title {
  position: absolute;
  z-index: 2;
  color: #172c58;
  font-weight: 700;
  font-size: calc(32 / 1920.24 * 100cqw);
  white-space: nowrap;
}

.sec4-box__subtitle {
  position: absolute;
  z-index: 2;
  color: #172c58;
  font-weight: 400;
  font-size: calc(21 / 1920.24 * 100cqw);
  white-space: nowrap;
}

.sec4-box__desc {
  position: absolute;
  z-index: 2;
  color: #231815;
  font-weight: 400;
  font-size: calc(22.229 / 1920.24 * 100cqw);
  line-height: calc(31 / 1920.24 * 100cqw);
}

.sec4-box__photo {
  position: absolute;
  z-index: 2;
  overflow: hidden;
  border-radius: calc(16.928 / 1920.24 * 100cqw);
}

.sec4-box__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.sec4-box__date {
  position: absolute;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 0;
  background: #036eb8;
  color: #fff;
  white-space: nowrap;
  height: 1.0292%;
  padding-left: calc(10.894 / 1920.24 * 100cqw);
}

.sec4-box__date .event-card__date-day {
  margin-right: calc(18.415 / 1920.24 * 100cqw);
}

.sec4-box__badge {
  position: absolute;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #f6cb6e;
}

.sec4-box__badge span {
  color: #e60012;
  font-weight: 700;
  font-size: calc(29.378 / 1920.24 * 100cqw);
  white-space: nowrap;
}

.sec4-box__yoyaku {
  position: absolute;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(8 / 1920.24 * 100cqw);
  background: #231815;
  color: #fff;
  white-space: nowrap;
  font-weight: 700;
  font-size: calc(22.229 / 1920.24 * 100cqw);
}

.sec4-box__yoyaku em {
  color: #fff100;
  font-style: normal;
}

/* --- 位置指定（Figma座標そのまま） --- */

.sec4__box1-box { left: 20.4488%; top: 7.7143%; width: 27.9451%; height: 17.0591%; }
.sec4__box1-title { left: 20.9404%; top: 7.7143%; }
.sec4__box1-subtitle { left: 20.4488%; top: 9.0167%; }
.sec4__box1-photo { left: 20.9494%; top: 10.3748%; width: 27.4445%; height: 8.2266%; }
.sec4__box1-desc { left: 21.0505%; top: 18.9303%; width: 27.3403%; }
.sec4__box1-date { left: 20.9630%; top: 22.3599%; width: 27.4174%; height: auto; align-items: flex-start; padding-top: calc(6 / 1920.24 * 100cqw); padding-bottom: calc(6 / 1920.24 * 100cqw); }
.sec4__box1-badge { left: 44.3410%; top: 7.8855%; width: 4.0394%; height: 2.0032%; }
.sec4__box2-box { left: 51.1460%; top: 7.7143%; width: 28.0602%; height: 16.9973%; }
.sec4__box2-title { left: 51.6375%; top: 7.7143%; font-size: calc(32 / 1920.24 * 100cqw); }
.sec4__box2-subtitle { left: 51.1460%; top: 9.0167%; }
.sec4__box2-photo { left: 51.6466%; top: 10.3748%; width: 27.4445%; height: 8.2266%; }
.sec4__box2-desc { left: 51.7758%; top: 18.9303%; width: 27.3403%; }
.sec4__box2-date { left: 51.6602%; top: 22.3599%; width: 27.4174%; }
.sec4__box2-yoyaku { left: 51.6717%; top: 23.6823%; width: 27.4174%; height: 1.0293%; }
.sec4__box2-badge { left: 75.1669%; top: 7.8855%; width: 4.0394%; height: 2.0032%; }
.sec4__box3-box { left: 20.4488%; top: 26.5672%; width: 28.0461%; height: 17.1010%; }
.sec4__box3-title { left: 20.9404%; top: 26.5672%; }
.sec4__box3-subtitle { left: 20.4488%; top: 27.8697%; }
.sec4__box3-photo_a { left: 20.9494%; top: 29.2279%; width: 13.5863%; height: 8.2266%; }
.sec4__box3-photo_b { left: 34.7869%; top: 29.2279%; width: 13.5863%; height: 8.2266%; }
.sec4__box3-desc { left: 21.1547%; top: 37.8090%; width: 27.3403%; }
.sec4__box3-credit { left: 21.1547%; top: 40.4173%; width: 27.3403%; color: #172C58; }
.sec4__box3-date_sat { left: 20.9630%; top: 42.0134%; width: 27.4174%; }
.sec4__box3-date_sun { left: 20.9630%; top: 43.2291%; width: 27.4174%; background: #d70051; }
.sec4__box3-badge { left: 44.3410%; top: 26.5941%; width: 4.0394%; height: 2.0032%; }
.sec4__box4-box { left: 51.1461%; top: 26.5672%; width: 28.5381%; height: 17.1010%; }
.sec4__box4-title1 { left: 51.6375%; top: 26.5672%; }
.sec4__box4-title2 { left: 51.6375%; top: 27.6280%; }
.sec4__box4-subtitle { left: 51.1461%; top: 28.9952%; width: 28.5381%; }
.sec4__box4-photo { left: 51.6466%; top: 30.2030%; width: 27.4445%; height: 8.2266%; }
.sec4__box4-desc { left: 51.7758%; top: 38.6096%; width: 27.3403%; }
.sec4__box4-date_sat { left: 51.6602%; top: 42.0134%; width: 27.4174%; }
.sec4__box4-date_sun { left: 51.6602%; top: 43.2291%; width: 27.4174%; background: #d70051; }
.sec4__box4-badge { left: 75.1669%; top: 26.5941%; width: 4.0394%; height: 2.0032%; }
.sec4__box5-box { left: 20.3942%; top: 45.5827%; width: 27.9862%; height: 18.8035%; }
.sec4__box5-title1 { left: 20.9404%; top: 45.5827%; }
.sec4__box5-title2 { left: 20.9404%; top: 46.6435%; }
.sec4__box5-subtitle { left: 20.3942%; top: 48.0229%; }
.sec4__box5-photo { left: 20.8948%; top: 48.9535%; width: 27.4445%; height: 8.5152%; background: #B5B5B6; }
.sec4__box5-photo img { width: 70%; margin: 0 auto; display: block; object-position: center bottom; }
.sec4__box5-desc { left: 20.9464%; top: 57.6690%; width: 27.3403%; }
.sec4__box5-date_sat { left: 20.9630%; top: 61.9309%; width: 27.4174%; }
.sec4__box5-date_sun { left: 20.9630%; top: 63.1466%; width: 27.4174%; background: #d70051; }
.sec4__box5-credit { left: 21.1044%; top: 61.1070%; width: 16.7167%; color: #172C58; line-height: normal; }
.sec4__box5-badge { left: 44.3410%; top: 46.8196%; width: 4.0394%; height: 2.0032%; }
.sec4__box6-box { left: 51.2007%; top: 45.6648%; width: 28.0056%; height: 18.7214%; }
.sec4__box6-title1 { left: 51.6375%; top: 45.6648%; }
.sec4__box6-title2 { left: 51.6375%; top: 46.7256%; }
.sec4__box6-subtitle { left: 51.2007%; top: 48.0229%; }
.sec4__box6-photo { left: 51.6466%; top: 49.0790%; width: 27.4445%; height: 8.2266%; }
.sec4__box6-desc { left: 51.7758%; top: 57.6690%; width: 27.3403%; }
.sec4__box6-date_sat { left: 51.6602%; top: 61.9309%; width: 27.4174%; }
.sec4__box6-date_sun { left: 51.6602%; top: 63.1466%; width: 27.4174%; background: #d70051; }
.sec4__box6-credit { left: 51.6922%; top: 61.1070%; width: 16.7167%; color: #172C58; line-height: normal; }
.sec4__box6-ainote { position: absolute; z-index: 2; left: 63.0762%; top: 56.5937%; width: 15.5189%; color: #fff; font-size: calc(15.878/1920.24*100cqw); white-space: nowrap; }
.sec4__box6-badge { left: 75.1669%; top: 46.8196%; width: 4.0394%; height: 2.0032%; }
.sec4__box7-box { left: 20.4488%; top: 65.9783%; width: 27.9451%; height: 17.2650%; }
.sec4__box7-title { left: 20.9404%; top: 65.9783%; }
.sec4__box7-subtitle { left: 20.4488%; top: 67.4448%; }
.sec4__box7-photo { left: 20.9494%; top: 68.8029%; width: 27.4445%; height: 8.2266%; }
.sec4__box7-desc { left: 21.0505%; top: 77.3741%; width: 27.3403%; letter-spacing: calc(-0.4446 / 1920.24 * 100cqw); }
.sec4__box7-date_sat { left: 20.9630%; top: 80.7879%; width: 27.4174%; }
.sec4__box7-date_sun { left: 20.9630%; top: 82.0037%; width: 27.4174%; background: #d70051; }
.sec4__box7-badge { left: 44.3410%; top: 66.2685%; width: 4.0394%; height: 2.0032%; }

.sec4__box8-box { position: absolute; z-index: 1; left: 50.1025%; top: 65.3547%; width: 30.5879%; height: 20.1200%; background: #c4e7eb; border-radius: calc(32.581/1920.24*100cqw); }
.sec4__box8-line1, .sec4__box8-line2, .sec4__box8-line3, .sec4__box8-line4 {
  position: absolute; z-index: 2; color: #601986; font-weight: 700; font-size: calc(32.141/1920.24*100cqw); white-space: nowrap;
}
.sec4__box8-line1 { left: 51.8086%; top: 65.6374%; }
.sec4__box8-line2 { left: 51.8086%; top: 66.7045%; }
.sec4__box8-line3 { left: 50.5648%; top: 67.7288%; font-size: calc(45.93/1920.24*100cqw); }
.sec4__box8-line3b { left: 68.6968%; top: 68.0270%; }
.sec4__box8-line4 { left: 51.8086%; top: 69.1949%; }
.sec4__box8-badge { left: 74.9289%; top: 66.2685%; width: 4.0394%; height: 2.0032%; }
.sec4__box8-photo { left: 51.6466%; top: 72.2651%; width: 27.4445%; height: 6.9928%; }
.sec4__box8-caption { left: 51.8800%; top: 79.6468%; width: 27.3403%; }
.sec4__box8-date_sat { left: 51.6602%; top: 82.4547%; width: 27.4174%; }
.sec4__box8-date_sun { left: 51.6602%; top: 83.6705%; width: 27.4174%; background: #d70051; }
.sec4__box8-vrlabel {
  position: absolute; z-index: 2; left: 51.6742%; top: 70.4101%; width: 27.4445%; height: 1.5320%;
  display: flex; align-items: center; justify-content: center;
  background: #601986; color: #f6cb6e; font-weight: 700; font-size: calc(25/1920.24*100cqw); white-space: nowrap;
  border-radius: 999px;
}

/* --- 焚き火コーナー --- */

.sec4__takibi {
  position: absolute;
  z-index: 1;
  left: 18.2350%;
  top: 86.8131%;
  width: 63.5397%;
  height: 7.8411%;
  background: #fef0df;
  border-radius: calc(51.516 / 1920.24 * 100cqw);
}

.sec4__takibi-title {
  position: absolute;
  z-index: 2;
  left: 20.9223%;
  top: 87.3318%;
  color: #844622;
  font-weight: 700;
  font-size: calc(55.947 / 1920.24 * 100cqw);
  white-space: nowrap;
}

.sec4__takibi-desc {
  position: absolute;
  z-index: 2;
  left: 21.0505%;
  top: 89.2023%;
  width: 37.6515%;
  color: #231815;
  font-weight: 400;
  font-size: calc(22.229 / 1920.24 * 100cqw);
  line-height: calc(31 / 1920.24 * 100cqw);
}

.sec4__takibi-date {
  position: absolute;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 0;
  left: 59.8352%;
  width: 19.0264%;
  height: 0.9435%;
  background: #036eb8;
  color: #fff;
  white-space: nowrap;
  padding-left: calc(10.894 / 1920.24 * 100cqw);
}

.sec4__takibi-date--sat { top: 87.3313%; }
.sec4__takibi-date--sun { top: 88.4534%; background: #d70051; }

.sec4__takibi-note {
  position: absolute;
  z-index: 2;
  left: 59.7441%;
  top: 89.7062%;
  width: 17.0812%;
  color: #231815;
  font-weight: 400;
  font-size: calc(15.184 / 1920.24 * 100cqw);
  white-space: nowrap;
}

.sec4__takibi-illust {
  position: absolute;
  z-index: 2;
  left: 60.4815%;
  top: 90.4225%;
  width: 18.3399%;
  height: 3.7231%;
}

/* ==========================================================
   sec5: グルメ・お酒
========================================================== */

.sec5 {
  position: relative;
  width: 100%;
  overflow: hidden;
}

.sec5__bg {
  position: absolute;
  left: 0;
  right: 0;
  top: -1px;
  z-index: 0;
  width: 100%;
  height: calc(100% + 2px);
  object-fit: cover;
}

.sec5__line { position: absolute; z-index: 1; left:0.6885%; top:0; width:98.6377%; height:auto; object-fit: contain; }

.sec5__content {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1920px;
  margin: 0 auto;
  aspect-ratio: 1920.24 / 2184.0564;
  container-type: inline-size;
}

.sec5__subtitle { position: absolute; left:40.6835%; top:6.3185%; width:18.6352%; height:2.6922%; }
.sec5__title { position: absolute; left:18.9663%; top:11.6313%; width:36.7133%; height:4.3296%; }

.sec5__intro {
  position: absolute;
  z-index: 2;
  left: 19.2339%;
  top: 16.7376%;
  width: 36.2975%;
  color: #231815;
  font-weight: 400;
  font-size: calc(27.279 / 1920.24 * 100cqw);
  line-height: normal;
}

.sec5__date {
  position: absolute;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 0;
  width: 23.7603%;
  height: 1.8244%;
  background: #036eb8;
  color: #fff;
  white-space: nowrap;
  padding-left: calc(10.894 / 1920.24 * 100cqw);
}

.sec5__date--sat { left: 57.7778%; top: 15.6391%; }
.sec5__date--sun { left: 57.7778%; top: 17.7944%; background: #d70051; }

/* --- 出店カード共通 --- */

.gourmet-box {
  display: contents;
}

.gourmet-box__card {
  position: absolute;
  background: #fff;
  border-radius: calc(31.251 / 1920.24 * 100cqw);
}

.gourmet-box__photo {
  position: absolute;
  z-index: 2;
  overflow: hidden;
  border-radius: calc(16.928 / 1920.24 * 100cqw);
}

.gourmet-box__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.gourmet-box__title {
  position: absolute;
  z-index: 2;
  color: #844622;
  font-weight: 700;
  font-size: calc(32.332 / 1920.24 * 100cqw);
  white-space: nowrap;
}

.gourmet-box__subtitle {
  position: absolute;
  z-index: 2;
  color: #231815;
  font-weight: 400;
  font-size: calc(18 / 1920.24 * 100cqw);
  line-height: calc(24 / 1920.24 * 100cqw);
}

.sec5__box1 { left:18.2350%; top:22.0755%; width:20.3665%; height:17.3526%; }
.sec5__box2 { left:39.8217%; top:22.0755%; width:20.3665%; height:17.3526%; }
.sec5__box3 { left:61.4083%; top:22.0755%; width:20.3665%; height:17.3526%; }
.sec5__box4 { left:18.2350%; top:40.3725%; width:20.3665%; height:17.3526%; }
.sec5__box5 { left:39.8217%; top:40.3725%; width:20.3665%; height:17.3526%; }
.sec5__box6 { left:61.4083%; top:40.3725%; width:20.3665%; height:17.3526%; }
.sec5__box7 { left:18.2350%; top:58.6695%; width:20.3665%; height:17.3526%; }
.sec5__box8 { left:39.8217%; top:58.6695%; width:20.3665%; height:17.3526%; }
.sec5__box9 { left:61.4083%; top:58.6695%; width:20.3665%; height:17.3526%; }
.sec5__box10 { left:18.2350%; top:76.9664%; width:20.3665%; height:17.3526%; }

.sec5__box1-photo { left:19.1920%; top:22.8920%; width:18.4939%; height:11.1873%; }
.sec5__box2-photo { left:40.7994%; top:22.8920%; width:18.4939%; height:11.1873%; }
.sec5__box3-photo { left:62.2248%; top:22.8920%; width:18.4939%; height:11.1873%; }
.sec5__box4-photo { left:19.2626%; top:41.0380%; width:18.4939%; height:11.1873%; }
.sec5__box5-photo { left:40.7244%; top:41.0380%; width:18.4939%; height:11.1873%; }
.sec5__box6-photo { left:62.1862%; top:41.0380%; width:18.4939%; height:11.1873%; }
.sec5__box7-photo { left:19.1920%; top:59.3899%; width:18.4939%; height:11.1873%; }
.sec5__box8-photo { left:40.7994%; top:59.3899%; width:18.4939%; height:11.1873%; }
.sec5__box9-photo { left:62.2976%; top:59.3899%; width:18.4939%; height:11.1873%; }
.sec5__box10-photo { left:19.3013%; top:77.7349%; width:18.4939%; height:11.1873%; }

.sec5__box1-title { left:19.3780%; top:34.4397%; }
.sec5__box1-subtitle { left:19.4604%; top:36.7523%; }
.sec5__box2-title { left:40.9855%; top:34.4397%; }
.sec5__box2-subtitle { left:41.0679%; top:36.7523%; }
.sec5__box3-title { left:62.4108%; top:34.4397%; }
.sec5__box3-subtitle { left:62.4932%; top:36.7523%; }
.sec5__box4-title { left:19.4486%; top:52.5857%; }
.sec5__box4-subtitle { left:19.5310%; top:54.8983%; }
.sec5__box5-title { left:40.9104%; top:52.5857%; }
.sec5__box5-subtitle { left:40.9928%; top:54.8983%; }
.sec5__box6-title { left:62.3722%; top:52.5857%; }
.sec5__box6-subtitle { left:62.4545%; top:54.6421%; }
.sec5__box7-title { left:19.3780%; top:70.9377%; }
.sec5__box7-subtitle { left:19.4604%; top:73.2501%; }
.sec5__box8-title { left:40.9855%; top:70.9377%; }
.sec5__box8-subtitle { left:41.0679%; top:73.2501%; }
.sec5__box9-title { left:62.4837%; top:70.9377%; }
.sec5__box9-subtitle { left:62.5660%; top:73.2501%; }
.sec5__box10-title { left:19.4872%; top:89.6031%; }
.sec5__box10-subtitle { left:19.5696%; top:91.9793%; }

/* --- 旭川観光社交組合バー --- */

.sec5__osaka-bar {
  position: absolute;
  left: 39.8217%;
  top: 76.9664%;
  width: 41.9237%;
  height: 5.4524%;
  border: calc(6.351 / 1920.24 * 100cqw) solid #fff;
  border-radius: calc(22.509 / 1920.24 * 100cqw);
}

.sec5__osaka-group {
  display: contents;
}

.sec5__osaka-title {
  position: absolute;
  z-index: 2;
  left: 41.8048%;
  top: 77.8966%;
  color: #844622;
  font-weight: 700;
  font-size: calc(32.332 / 1920.24 * 100cqw);
  white-space: nowrap;
}

.sec5__osaka-desc {
  position: absolute;
  z-index: 2;
  left: 56.3436%;
  top: 78.1586%;
  color: #231815;
  font-weight: 400;
  font-size: calc(26.61 / 1920.24 * 100cqw);
  white-space: nowrap;
}

.sec5__osaka-credit {
  position: absolute;
  z-index: 2;
  left: 51.7554%;
  top: 80.0279%;
  color: #231815;
  font-weight: 400;
  font-size: calc(25.068 / 1920.24 * 100cqw);
  white-space: nowrap;
}

/* --- きょくめしブロガー紹介 --- */

.sec5__blogger-photo {
  position: absolute;
  z-index: 2;
  left: 40.3147%;
  top: 83.2197%;
  width: 13.6391%;
  height: 11.0295%;
  overflow: hidden;
}

.sec5__blogger-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.sec5__blogger-logo {
  position: absolute;
  left: 56.0975%;
  top: 83.3261%;
  width: 17.1928%;
  height: 3.4306%;
}

.sec5__blogger-desc {
  position: absolute;
  z-index: 2;
  left: 55.9207%;
  top: 87.2624%;
  width: 22.8617%;
  color: #231815;
  font-weight: 400;
  font-size: calc(22.229 / 1920.24 * 100cqw);
  line-height: calc(31 / 1920.24 * 100cqw);
}

/* ==========================================================
   sec6: イベントスケジュール
========================================================== */

.sec6 {
  position: relative;
  width: 100%;
  overflow: hidden;
}

.sec6__bg {
  position: absolute;
  left: 0;
  right: 0;
  top: -1px;
  z-index: 0;
  width: 100%;
  height: calc(100% + 2px);
  object-fit: cover;
}

.sec6__line {
  position: absolute;
  z-index: 1;
  left: 0.6885%;
  top: 0;
  width: 98.6377%;
  height: auto;
  object-fit: contain;
}

.sec6__content {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1920px;
  margin: 0 auto;
  container-type: inline-size;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: calc(220 / 1920.24 * 100cqw) 0 calc(90 / 1920.24 * 100cqw);
  box-sizing: border-box;
}

.sec6__title {
  width: 30.9711%;
  height: auto;
  margin-bottom: calc(40 / 1920.24 * 100cqw);
}

.sec6__date {
  font-weight: 700;
  white-space: nowrap;
  margin-bottom: calc(8 / 1920.24 * 100cqw);
}

.sec6__date--sat { color: #036eb8; }
.sec6__date--sun { color: #d70051; }

.sec6__num-lg { font-size: calc(68.049 / 1920.24 * 100cqw); }
.sec6__num-sm { font-size: calc(45.866 / 1920.24 * 100cqw); }

.sec6__time {
  margin-left: calc(24 / 1920.24 * 100cqw);
  font-size: calc(44 / 1920.24 * 100cqw);
  font-weight: 700;
}

.sec6__schedule {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.sec6__schedule-img {
  width: 63.5397%;
  height: auto;
  object-fit: contain;
  display: block;
  margin: 0 auto calc(20 / 1920.24 * 100cqw);
}

.sec6__caution {
  width: 63.5397%;
  color: #231815;
  font-weight: 700;
  font-size: calc(21.085 / 1920.24 * 100cqw);
  white-space: normal;
  text-align: left;
}

.sec6__caution--1 { margin-top: calc(16 / 1920.24 * 100cqw); }

/* ==========================================================
   footer
========================================================== */

.footer {
  position: relative;
  width: 100%;
  overflow: hidden;
}

.footer__content {
  position: relative;
  width: 100%;
  max-width: 1920px;
  margin: 0 auto;
  aspect-ratio: 1920.24 / 1889.7021;
  container-type: inline-size;
}

.footer__map {
  position: absolute;
  left: 0.0115%;
  top: 0%;
  width: 100%;
  height: 26.1996%;
  box-sizing: border-box;
  border-top: calc(1.6 / 1920.24 * 100cqw) solid #074f63;
  border-bottom: calc(1.6 / 1920.24 * 100cqw) solid #074f63;
  overflow: hidden;
}

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

.footer__contact-place,
.footer__contact-addr,
.footer__contact-heading,
.footer__contact-org,
.footer__contact-tel,
.footer__contact-mail,
.footer__contact-note {
  position: absolute;
  left: 18.2866%;
  color: #231815;
  font-weight: 700;
  white-space: nowrap;
}

.footer__contact-group,
.footer__contact-text,
.footer__contact-icons {
  display: contents;
}

.footer__contact-place { top: 27.9196%; font-size: calc(24.243 / 1920.24 * 100cqw); }
.footer__contact-addr { top: 29.8747%; font-size: calc(24.243 / 1920.24 * 100cqw); }

.footer__contact-heading {
  top: 35.8764%;
  color: #074f63;
  font-weight: 700;
  font-size: calc(33.65 / 1920.24 * 100cqw);
}

.footer__contact-org { top: 39.3769%; color: #074f63; font-size: calc(24.716 / 1920.24 * 100cqw); }
.footer__contact-tel { top: 41.3940%; color: #074f63; font-size: calc(24.716 / 1920.24 * 100cqw); }
.footer__contact-mail { top: 43.4111%; color: #074f63; font-size: calc(24.716 / 1920.24 * 100cqw); }
.footer__contact-note {
  top: 45.4737%;
  color: #074f63;
  font-size: calc(17.544 / 1920.24 * 100cqw);
  white-space: normal;
  width: 51.4519%;
}

.footer__contact-facebook,
.footer__contact-insta {
  position: absolute;
  display: block;
}

.footer__contact-facebook { left: 75.4817%; top: 37.6074%; width: 4.8527%; height: 4.9311%; }
.footer__contact-insta { left: 68.6121%; top: 37.6184%; width: 4.8881%; height: 4.9671%; }
.footer__contact-facebook img,
.footer__contact-insta img { width: 100%; height: 100%; }

.footer__line {
  position: absolute;
  left: 0.6885%;
  top: 49.4392%;
  width: 98.6377%;
  height: 2.5655%;
  object-fit: contain;
}

.footer__renkei-title {
  position: absolute;
  left: 37.6630%;
  top: 53.7010%;
  width: 24.7365%;
  color: #074f63;
  font-weight: 700;
  font-size: calc(26.166 / 1920.24 * 100cqw);
  text-align: center;
  white-space: nowrap;
}

.footer__renkei-banner {
  position: absolute;
  top: 57.2711%;
  width: 33.8958%;
  height: 18.8347%;
  display: block;
}

.footer__renkei-banner img { width: 100%; height: 100%; }
.footer__renkei-banner--left { left: 15.2700%; }
.footer__renkei-banner--right { left: 50.8655%; width: 33.8833%; }

.footer__other-bg {
  position: absolute;
  left: 0.0115%;
  top: 81.4114%;
  width: 99.9875%;
  height: 11.5203%;
  background: #f7f8f8;
}

.footer__other-group,
.footer__other-row {
  display: contents;
}

.footer__other-title {
  position: absolute;
  z-index: 1;
  left: 41.8292%;
  top: 79.0108%;
  width: 16.3521%;
  color: #074f63;
  font-weight: 700;
  font-size: calc(26.166 / 1920.24 * 100cqw);
  text-align: center;
  white-space: nowrap;
}

.footer__other-jhlogo,
.footer__other-kamuylogo {
  position: absolute;
  z-index: 1;
}

.footer__other-jhlogo { left: 17.3482%; top: 82.4449%; width: 3.5943%; height: 8.8807%; }
.footer__other-kamuylogo { left: 22.7837%; top: 82.7343%; width: 6.3348%; height: 9.1025%; }

.footer__other-text {
  position: absolute;
  z-index: 1;
  left: 33.1042%;
  top: 85.9630%;
  width: 51.7644%;
  color: #231815;
  font-weight: 400;
  font-size: calc(37.626 / 1920.24 * 100cqw);
  white-space: nowrap;
}

.footer__divider {
  position: absolute;
  left: 0.7784%;
  top: 97.3510%;
  width: 98.4541%;
  border: none;
  border-top: calc(0.8 / 1920.24 * 100cqw) solid #004860;
}

.footer__copyright {
  position: absolute;
  left: 43.5117%;
  top: 98.1237%;
  width: 13.3978%;
  height: 1.0821%;
}

.footer__copyright img { width: 100%; height: 100%; }
