
/*! kiso.css v1.2.2 | MIT License | https://github.com/tak-dcxi/kiso.css */
*,
:before,
:after {
  box-sizing: border-box;
}
:where(:root) {
  font-family: sans-serif;
  line-height: 1.5;
  text-spacing-trim: trim-start;
  text-autospace: normal;
  line-break: strict;
  overflow-wrap: anywhere;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scrollbar-gutter: stable;
  -webkit-tap-highlight-color: transparent;
}
:where(body) {
  min-block-size: 100dvb;
  margin: unset;
}
:where(h1, h2, h3, h4, h5, h6) {
  text-wrap: pretty;
}
:where(h1) {
  margin-block: 0.67em;
  font-size: 2em;
}
:where(h2, h3, h4, h5, h6) {
  margin-block: unset;
}
:where(search) {
  display: block flow;
}
:where(p, blockquote, figure, pre, address, ul, ol, dl, menu) {
  margin-block: unset;
}
:where(blockquote, figure) {
  margin-inline: unset;
}
:where(p:lang(en)) {
  text-wrap: pretty;
}
:where(address:lang(ja)) {
  font-style: unset;
}
:where(ul, ol, menu) {
  padding-inline-start: unset;
  list-style-type: '';
}
:where(dt) {
  font-weight: bolder;
}
:where(dd) {
  margin-inline-start: unset;
}
:where(pre) {
  text-spacing-trim: space-all;
  text-autospace: no-autospace;
}
:where(em:lang(ja)) {
  font-weight: bolder;
}
:where(:is(i, cite, em, dfn, var):lang(ja)) {
  font-style: unset;
}
:where(code, kbd, samp) {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,
    Liberation Mono, Courier New, monospace;
  font-feature-settings: initial;
  font-variation-settings: initial;
  font-size: unset;
  font-variant-ligatures: none;
}
:where(abbr[title]) {
  text-decoration-line: underline;
  text-decoration-style: dotted;
  cursor: help;
}
:where(time) {
  text-autospace: no-autospace;
}
@media (forced-colors: active) {
  :where(mark) {
    background-color: Highlight;
    color: HighlightText;
  }
}
@media print {
  :where(mark) {
    border-width: 1px;
    border-style: dotted;
  }
}
:where(a:any-link) {
  color: unset;
  text-decoration-line: unset;
  text-decoration-thickness: from-font;
}
:where(img, svg, picture, video, canvas, model, audio, iframe, embed, object) {
  block-size: auto;
  max-inline-size: 100%;
  vertical-align: bottom;
}
:where(iframe) {
  border: unset;
}
:where(table) {
  border-collapse: collapse;
}
:where(caption, th) {
  text-align: unset;
}
:where(caption) {
  text-wrap: pretty;
}
:where(button, input, select, textarea),
::file-selector-button {
  border-width: 1px;
  border-style: solid;
  border-color: unset;
  border-radius: unset;
  color: unset;
  font: unset;
  letter-spacing: unset;
  text-align: unset;
}
:where(input:is([type='radio' i], [type='checkbox' i])) {
  margin: unset;
}
:where(input[type='file' i]) {
  border: unset;
}
:where(input[type='search' i]) {
  -webkit-appearance: textfield;
}
@supports (-webkit-touch-callout: none) {
  :where(input[type='search' i]) {
    background-color: Canvas;
  }
}
:where(
    input:is(
        [type='tel' i],
        [type='url' i],
        [type='email' i],
        [type='number' i]
      ):not(:placeholder-shown)
  ) {
  direction: ltr;
}
:where(textarea) {
  margin-block: unset;
  resize: block;
}
:where(
    input:not([type='button' i], [type='submit' i], [type='reset' i]),
    textarea,
    [contenteditable]
  ) {
  text-autospace: no-autospace;
}
:where(
    button,
    input:is([type='button' i], [type='submit' i], [type='reset' i])
  ),
::file-selector-button {
  background-color: unset;
}
:where(
    button,
    input:is([type='button' i], [type='submit' i], [type='reset' i]),
    [role='tab' i],
    [role='button' i],
    [role='option' i]
  ),
::file-selector-button {
  touch-action: manipulation;
}
:where(
    button:enabled,
    label[for],
    select:enabled,
    input:is(
        [type='button' i],
        [type='submit' i],
        [type='reset' i],
        [type='radio' i],
        [type='checkbox' i]
      ):enabled,
    [role='tab' i],
    [role='button' i],
    [role='option' i]
  ),
:where(:enabled)::file-selector-button {
  cursor: pointer;
}
:where(fieldset) {
  min-inline-size: 0;
  margin-inline: unset;
  padding: unset;
  border: unset;
}
:where(legend) {
  padding-inline: unset;
}
:where(progress) {
  vertical-align: unset;
}
::placeholder {
  opacity: unset;
}
:where(summary) {
  list-style-type: '';
  cursor: pointer;
}
:where(summary)::-webkit-details-marker {
  display: none;
}
:where(dialog, [popover]) {
  overscroll-behavior-block: contain;
  padding: unset;
  border: unset;
}
:where(dialog:not([open], [popover]), [popover]:not(:popover-open)) {
  display: none !important;
}
:where(dialog) {
  max-inline-size: unset;
  max-block-size: unset;
}
:where(dialog)::backdrop {
  background-color: #0000004d;
}
:where([popover]) {
  margin: unset;
}
:where(:focus-visible) {
  outline-offset: 3px;
}
[tabindex='-1']:focus {
  outline: none !important;
}
:where(:disabled, [aria-disabled='true' i]) {
  cursor: default;
}
[hidden]:not([hidden='until-found' i]) {
  display: none !important;
}
html {
  scroll-behavior: smooth;
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}
@property --color-main-dark-blue {
  syntax: '<color>';
  inherits: false;
  initial-value: #004098;
}
@property --color-gray {
  syntax: '<color>';
  inherits: false;
  initial-value: #585757;
}
@property --color-gray-dark {
  syntax: '<color>';
  inherits: false;
  initial-value: #4d4d4d;
}
@property --color-gray-light {
  syntax: '<color>';
  inherits: false;
  initial-value: #8f8f8f;
}
@property --color-gray-super-light {
  syntax: '<color>';
  inherits: false;
  initial-value: #eaeaea;
}
@property --color-main-yellow {
  syntax: '<color>';
  inherits: false;
  initial-value: #ffff62;
}
@property --color-shadow-yellow {
  syntax: '<color>';
  inherits: false;
  initial-value: #d9bb07;
}
@property --color-light-yellow {
  syntax: '<color>';
  inherits: false;
  initial-value: #ffffc7;
}
@property --color-main-pink {
  syntax: '<color>';
  inherits: false;
  initial-value: #e85a9a;
}
@property --color-shadow-pink {
  syntax: '<color>';
  inherits: false;
  initial-value: #d8327d;
}
@property --color-pure-white {
  syntax: '<color>';
  inherits: false;
  initial-value: #fff;
}
@property --color-pure-black {
  syntax: '<color>';
  inherits: false;
  initial-value: #000;
}
@property --alpha-07 {
  syntax: '<number>';
  inherits: false;
  initial-value: 0.7;
}
@property --transition-time {
  syntax: '<time>';
  inherits: false;
  initial-value: 0.3s;
}
@property --font-noto-sans-jp {
  syntax: '*';
  inherits: false;
  initial-value: 'Noto Sans JP', sans-serif;
}
@property --font-weight-bold {
  syntax: '<number>';
  inherits: false;
  initial-value: 700;
}
@property --font-weight-medium {
  syntax: '<number>';
  inherits: false;
  initial-value: 500;
}
@property --font-weight-thin {
  syntax: '<number>';
  inherits: false;
  initial-value: 300;
}
@property --leading-tight {
  syntax: '<number>';
  inherits: false;
  initial-value: 1.25;
}
@property --leading-normal {
  syntax: '<number>';
  inherits: false;
  initial-value: 1.5;
}
@property --leading-relaxed {
  syntax: '<number>';
  inherits: false;
  initial-value: 1.75;
}
@property --rounded-md {
  syntax: '<length>';
  inherits: false;
  initial-value: 6px;
}
@property --content-padding-inline {
  syntax: '<length>';
  inherits: false;
  initial-value: 20px;
}
@property --content-padding-inline-md {
  syntax: '<length>';
  inherits: false;
  initial-value: 28px;
}
@property --z-index-topmost {
  syntax: '<number>';
  inherits: false;
  initial-value: 999;
}
@property --tablet-viewport-min {
  syntax: '<number>';
  inherits: false;
  initial-value: 750;
}
@property --tablet-viewport-max {
  syntax: '<number>';
  inherits: false;
  initial-value: 1024;
}
:root {
  background-color: var(--color-pure-white);
  color: var(--color-main-dark-blue);
}
:root:lang(en) {
  font-kerning: normal;
}
:root:lang(ja) {
  font-kerning: none;
}
*,
:before,
:after {
  --clamp-root-font-size: 16;
  --clamp-slope: calc(
    (var(--clamp-max) - var(--clamp-min)) /
      (var(--clamp-viewport-max) - var(--clamp-viewport-min))
  );
  --clamp-y-axis-intersection: calc(
    var(--clamp-min) - (var(--clamp-slope) * var(--clamp-viewport-min))
  );
  --clamp-preffered-value: calc(
    var(--clamp-y-axis-intersection) * (1rem / var(--clamp-root-font-size)) +
      (var(--clamp-slope) * 100vi)
  );
  --clamp: clamp(
    calc(var(--clamp-min) * (1rem / var(--clamp-root-font-size))),
    var(--clamp-preffered-value),
    calc(var(--clamp-max) * (1rem / var(--clamp-root-font-size)))
  );
  font-size: var(--clamp);
}
body {
  font-family: var(--font-noto-sans-jp);
  --clamp-viewport-min: 375;
  --clamp-viewport-max: 1024;
  --clamp-min: 14;
  --clamp-max: 16;
  min-block-size: 100svb;
}
.foo {
  --clamp-min: 20;
  --clamp-max: 24;
}
.mobile-visible {
  display: block;
}
@media (min-width: 750px) {
  .mobile-visible {
    display: none;
  }
}
.pc-visible {
  display: block;
}
@media (max-width: 749px) {
  .pc-visible {
    display: none;
  }
}
.container {
  max-inline-size: 100%;
  margin-inline: auto;
  padding-inline: var(--content-padding-inline-md);
}
@media (min-width: 750px) {
  .container {
    max-inline-size: calc(1024px + var(--content-padding-inline) * 2);
    padding-inline: var(--content-padding-inline);
  }
}
.main {
  background-color: var(--color-main-yellow);
  position: relative;
}
@media (min-width: 376px) and (max-width: 749px) {
  body:has(.main) {
    overflow-x: hidden;
    width: 100vw;
  }
}
.lead-text {
  font-weight: var(--font-weight-medium);
  color: var(--color-pure-black);
  line-height: var(--leading-relaxed);
  --clamp-min: 16;
  --clamp-max: 18;
}
.appeal-text {
  font-feature-settings: 'palt' on;
  font-weight: var(--font-weight-bold);
  color: var(--color-main-dark-blue);
  line-height: var(--leading-relaxed);
  --clamp-min: 18;
  --clamp-max: 22;
}
.border-box {
  border: 7px solid var(--color-pure-white);
  box-shadow: 0 10px
    color-mix(in srgb, var(--color-shadow-yellow) 70%, transparent);
}
.border-box.--yellow {
  border: 7px solid var(--color-main-yellow);
}
:has(.bg-pink) .border-box {
  border: 7px solid var(--color-pure-white);
  box-shadow: 0 10px 0 var(--color-shadow-pink);
}
:has(.bg-white) .border-box {
  border: 7px solid var(--color-pure-white);
  box-shadow: 0 10px 0 var(--color-gray-super-light);
}
@media (any-hover: hover) {
  .border-box:hover {
    border-color: var(--color-main-pink);
  }
  :has(.bg-pink) .border-box:hover {
    border-color: var(--color-main-yellow);
  }
}
.bg-cloud {
  position: absolute;
  inset-block-end: 0;
  inset-inline-start: 0;
  pointer-events: none;
  inline-size: 105px;
  block-size: 54px;
}
.bg-cloud img {
  inline-size: 100%;
}
@media (min-width: 750px) {
  .bg-cloud {
    inline-size: 489px;
    block-size: 134px;
  }
}
.bg-cloud-right-side {
  position: absolute;
  bottom: 75px;
  right: -26px;
  inline-size: 106px;
  block-size: 92px;
  pointer-events: none;
}
.bg-cloud-right-side img {
  inline-size: 100%;
}
.bg-dots-right-side {
  position: absolute;
  bottom: 0;
  right: 18px;
  inline-size: 20px;
  block-size: 54px;
  pointer-events: none;
}
.bg-dots-right-side img {
  inline-size: 100%;
}
.header {
  position: fixed;
  inset-block-start: 0;
  inset-inline-start: 0;
  inline-size: 100%;
  background-color: var(--color-pure-white);
  z-index: var(--z-index-topmost);
}
.header-container {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.header-container.container {
  padding-inline: 10px;
  padding-block: 14px;
  max-inline-size: 100%;
}
@media (min-width: 750px) {
  .header-container.container {
    max-inline-size: calc(1024px + var(--content-padding-inline) * 2);
    padding-block: 18px;
    padding-inline: var(--content-padding-inline);
  }
}
.header-logo-list {
  display: grid;
  grid-template-columns: 52px 60px 52px 54px;
  gap: 10px;
}
.header-logo-item {
  display: flex;
  align-items: center;
}
@media (min-width: 750px) {
  .header-logo-list {
    grid-template-columns: 98px 112px 98px 102px;
    gap: 30px;
  }
}
@media (min-width: 750px) and (max-width: 1023px) {
  .header-logo-list {
    grid-template-columns: clamp(
        74px,
        calc(74px + 24px * (100vw - 750px) / 274px),
        98px
      ) clamp(84px, calc(84px + 28px * (100vw - 750px) / 274px), 112px) clamp(
        74px,
        calc(74px + 24px * (100vw - 750px) / 274px),
        98px
      ) clamp(77px, calc(77px + 25px * (100vw - 750px) / 274px), 102px);
    gap: clamp(22px, calc(22px + 8px * (100vw - 750px) / 274px), 30px);
  }
}
.header-logo-link {
  display: flex;
  justify-content: center;
  align-items: center;
  transition: opacity var(--transition-time);
}
.header-logo-link.--fudosan {
  width: 81px;
}
@media (min-width: 750px) {
  .header-logo-link.--fudosan {
    width: 208px;
  }
}
@media (min-width: 750px) and (max-width: 1023px) {
  .header-logo-link.--fudosan {
    width: clamp(156px, calc(156px + 52px * (100vw - 750px) / 274px), 208px);
  }
}
@media (any-hover: hover) {
  .header-logo-link:hover {
    opacity: var(--alpha-07);
  }
}
.footer {
  position: sticky;
  inset-block-start: 100%;
  background-color: var(--color-pure-white);
  border-block-start: 3px solid var(--color-main-dark-blue);
}
.footer-logos {
  padding-block: 40px;
  padding-inline: 20px;
}
@media (min-width: 750px) {
  .footer-logos {
    padding-block: 36px;
  }
}
@media (min-width: 750px) and (max-width: 1023px) {
  .footer-logos {
    padding-block: clamp(
      27px,
      calc(27px + 9px * (100vw - 750px) / 274px),
      36px
    );
  }
}
.footer-logo-list {
  gap: 22px 20px;
  max-inline-size: 320px;
  margin-inline: auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
}
@media (min-width: 750px) {
  .footer-logo-list {
    gap: 24px 36px;
    max-inline-size: 858px;
  }
}
@media (min-width: 750px) and (max-width: 1023px) {
  .footer-logo-list {
    gap: clamp(18px, calc(18px + 6px * (100vw - 750px) / 274px), 24px)
      clamp(27px, calc(27px + 9px * (100vw - 750px) / 274px), 36px);
    max-inline-size: clamp(
      644px,
      calc(644px + 214px * (100vw - 750px) / 274px),
      858px
    );
  }
}
.footer-nav {
  background-color: var(--color-gray);
  color: var(--color-pure-white);
  padding-block: 28px;
  padding-inline: 20px;
  text-align: center;
}
@media (min-width: 750px) {
  .footer-nav {
    padding-block: 32px;
  }
}
@media (min-width: 750px) and (max-width: 1023px) {
  .footer-nav {
    padding-block: clamp(
      24px,
      calc(24px + 8px * (100vw - 750px) / 274px),
      32px
    );
  }
}
.footer-nav-item {
  line-height: 1;
}
@media (max-width: 749px) {
  .footer-nav-list + .footer-nav-list {
    margin-block-start: 12px;
  }
  .footer-nav-item + .footer-nav-item {
    margin-block-start: 12px;
  }
}
.footer-nav-link {
  display: block;
  font-size: 9px;
  font-weight: var(--font-weight-thin);
}
@media (min-width: 750px) {
  .footer-nav {
    padding-block: 44px;
  }
  .footer-nav-list {
    display: flex;
    justify-content: center;
    align-items: center;
  }
  .footer-nav-list + .footer-nav-list {
    margin-block-start: 8px;
  }
  .footer-nav-item {
    border-inline-start: 1px solid;
    padding-inline: 0.5em;
  }
  .footer-nav-item:last-child {
    border-inline-end: 1px solid;
  }
  .footer-nav-link {
    font-size: 12px;
  }
}
.footer-bottom {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding-block: 32px;
}
.footer-bottom-link {
  display: block;
  transition: opacity var(--transition-time);
  inline-size: 247px;
  padding: 12px;
}
@media (min-width: 750px) {
  .footer-bottom-link {
    padding: 16px 15px;
  }
  .footer-bottom {
    gap: 16px;
  }
}
@media (any-hover: hover) {
  .footer-bottom-link:hover {
    opacity: var(--alpha-07);
  }
}
.footer-copyright {
  font-size: 9px;
  line-height: 2;
  color: var(--color-pure-black);
  text-align: center;
  color: var(--color-gray-light);
}
@media (min-width: 750px) {
  .footer-bottom {
    padding-block: 12px;
    padding-inline: 120px 80px;
    max-inline-size: 1440px;
    margin-inline: auto;
    flex-direction: row-reverse;
    justify-content: space-between;
    align-items: center;
  }
  .footer-bottom-link {
    inline-size: 285px;
  }
  .footer-copyright {
    font-size: 11px;
  }
}
@keyframes fadeInBounce {
  0% {
    opacity: 0;
    -webkit-transform: scale(0.3);
    -ms-transform: scale(0.3);
    transform: scale(0.3);
  }
  50% {
    opacity: 1;
    -webkit-transform: scale(1.05);
    -ms-transform: scale(1.05);
    transform: scale(1.05);
  }
  70% {
    -webkit-transform: scale(0.9);
    -ms-transform: scale(0.9);
    transform: scale(0.9);
  }
  to {
    -webkit-transform: scale(1);
    -ms-transform: scale(1);
    transform: scale(1);
  }
}
@keyframes fadeInBounceWidthTranslate {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-50%) scale(0.3);
    -ms-transform: translateX(-50%) scale(0.3);
    transform: translate(-50%) scale(0.3);
    transform-origin: center center;
  }
  50% {
    opacity: 1;
    -webkit-transform: translateX(-50%) scale(1.05);
    -ms-transform: translateX(-50%) scale(1.05);
    transform: translate(-50%) scale(1.05);
    transform-origin: center center;
  }
  70% {
    -webkit-transform: translateX(-50%) scale(0.9);
    -ms-transform: translateX(-50%) scale(0.9);
    transform: translate(-50%) scale(0.9);
    transform-origin: center center;
  }
  to {
    -webkit-transform: translateX(-50%) scale(1);
    -ms-transform: translateX(-50%) scale(1);
    transform: translate(-50%) scale(1);
    transform-origin: center center;
  }
}
.fv-title {
  animation: fadeInBounce 0.5s ease-out;
  animation-fill-mode: both;
}
.fv-container:before {
  animation: fadeInBounce 0.6s ease-out 0.5s;
  animation-fill-mode: both;
}
.teaser-contents-title.scroll-hidden {
  opacity: 0;
  transform: scale(0.3);
}
.teaser-contents-title.scroll-animate {
  animation: fadeInBounce 0.5s ease-out;
  animation-fill-mode: both;
}
.teaser-contents.scroll-hidden:before {
  opacity: 0;
  transform: translate(-50%) scale(0.3);
}
.teaser-contents.scroll-animate:before {
  animation: fadeInBounceWidthTranslate 0.5s ease-out;
  animation-fill-mode: both;
}
.fv {
  position: relative;
  padding-block-start: 46px;
}
.fv:after {
  content: '';
  position: absolute;
  width: 100%;
  height: 20px;
  inset-block-end: 0;
  inset-inline: 0;
  background: linear-gradient(180deg, #fff0, #ffff62);
  z-index: 1;
}
.fv-container {
  padding-block-start: 12.27vw;
  height: 142.4vw;
  overflow: hidden;
  position: relative;
  z-index: 1;
}
.fv-container:before {
  position: absolute;
  content: '';
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: -1;
  max-inline-size: 1440px;
  margin-inline: auto;
  background: url(/area/g/funfunfes2025/teaser/img/index/bg_fv_sm.png) no-repeat
    center center / cover;
}
.fv-title {
  text-align: center;
  padding-inline: 10px;
  max-inline-size: 83.2vw;
  margin-inline: auto;
}
@media (min-width: 750px) {
  .fv {
    padding-block-start: 74px;
  }
  .fv-title {
    max-inline-size: 700px;
  }
  .fv-container {
    height: 601px;
    padding-block-start: 40px;
  }
  .fv-container:before {
    background: url(/area/g/funfunfes2025/teaser/img/index/bg_fv.png) no-repeat center
      center / cover;
  }
}
@media (min-width: 1441px)  {
  .fv-container {
    height: 41.736111vw;
    padding-block-start: 2.777778vw;
  }
  .fv-title {
    width: 100%;
    max-inline-size: 100%;
    img {
      width: calc(700 / 1440 * 100vw);
    }
  }
  .fv-container::before {
    max-inline-size: 100%;
    background: url(/area/g/funfunfes2025/teaser/img/index/bg_fv.png) no-repeat center center / cover;
  }
}
.teaser-contents {
  padding-block: 60px 10px;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.teaser-contents:before {
  position: absolute;
  content: '';
  inset-block-start: 0;
  inset-inline-start: 50%;
  transform: translate(-50%);
  inline-size: 490px;
  block-size: 445px;
  pointer-events: none;
  background: url(/area/g/funfunfes2025/teaser/img/index/bg_contents_sm.png)
    no-repeat top center / 100% auto;
}
.teaser-contents-title {
  max-inline-size: 320px;
  margin-inline: auto;
  margin-block-end: 24px;
}
.teaser-contents-list {
  position: relative;
  display: grid;
  gap: 20px;
  margin-block: 30px 32px;
}
.teaser-contents-link {
  display: block;
  pointer-events: none;
}
.teaser-contents-link img {
  inline-size: 100%;
  object-fit: cover;
  object-position: center;
}
.is-firefox .teaser-contents-link {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.is-firefox .teaser-contents-link img {
  object-fit: cover;
  object-position: center;
  margin: 0;
  padding: 0;
  flex-shrink: 0;
}
@media (min-width: 750px) {
  .teaser-contents {
    padding-block: 70px 0;
  }
  .teaser-contents:before {
    inline-size: 1389px;
    block-size: 358px;
    background: url(/area/g/funfunfes2025/teaser/img/index/bg_contents.png) no-repeat
      center center / cover;
  }
  .teaser-contents-title {
    max-inline-size: 862px;
    margin-block-end: 40px;
  }
  .teaser-contents-list {
    margin-block: 64px 56px;
    grid-template-columns: repeat(2, 1fr);
    gap: 44px;
  }
  .teaser-contents-link {
    max-inline-size: 490px;
    margin-inline: auto;
  }
}
.page-top {
  position: sticky;
  bottom: 0;
  right: 10px;
  padding-block-end: 20px;
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--transition-time), visibility var(--transition-time);
  z-index: 1;
}
.page-top.is-visible {
  opacity: 1;
  visibility: visible;
}
.page-top-link {
  display: block;
  inline-size: 40px;
  aspect-ratio: 1 / 1;
  background-color: var(--color-pure-black);
  border-radius: 50%;
  margin-inline: auto 10px;
}
.page-top-link circle {
  transition: fill 0.3s;
  fill: var(--color-pure-black);
}
@media (min-width: 750px) {
  .page-top {
    bottom: 0;
    right: 30px;
    padding-block-end: 50px;
  }
  .page-top-link {
    inline-size: 60px;
    margin-inline: auto 30px;
  }
}
@media (any-hover: hover) {
  .page-top-link:hover circle {
    fill: var(--color-gray-dark);
  }
}
.otoku {
  position: relative;
  margin-block: 32px 40px;
}
.otoku:before {
  position: absolute;
  content: '';
  top: 24px;
  left: 50%;
  transform: translate(-50%);
  inline-size: 351px;
  block-size: 46px;
  background: url(/area/g/funfunfes2025/teaser/img/index/bg_otoku-title_sm.png)
    no-repeat center center / 100% auto;
  z-index: 1;
}
.otoku:after {
  position: absolute;
  content: '';
  top: 192px;
  left: 50%;
  transform: translate(-50%);
  inline-size: 1129px;
  block-size: 336px;
  background: url(/area/g/funfunfes2025/teaser/img/index/bg_otoku-banner.png)
    no-repeat center center / 100% auto;
  pointer-events: none;
}
@media (max-width: 749px) {
  .otoku:after {
    top: 54px;
    left: calc(50% - 10px);
    inline-size: 487px;
    block-size: 505px;
    background: url(/area/g/funfunfes2025/teaser/img/index/bg_otoku_sm.png) no-repeat
      center center / 100% auto;
  }
}
.otoku-title {
  position: relative;
  margin-block-end: 24px;
  z-index: 1;
}
.otoku-title-text {
  font-weight: var(--font-weight-bold);
  --clamp-min: 15;
  --clamp-max: 20;
  color: var(--color-main-dark-blue);
  text-align: center;
  margin-block-end: 8px;
}
.otoku-title-img {
  width: 198px;
  margin-inline: auto;
}
.otoku-column-list {
  position: relative;
  z-index: 1;
  margin-block-end: 30px;
}
.otoku-banner-wrap {
  position: relative;
}
.tag {
  display: block;
  position: relative;
  margin-inline: auto;
  margin-block-end: 18px;
}
.tag img {
  inline-size: 182px;
}
@media (min-width: 750px) {
  .tag img {
    inline-size: 233px;
  }
}
.otoku-banner-link.-large {
  max-inline-size: 490px;
  margin-inline: auto;
}
@media (max-width: 749px) {
  .banner-list .otoku-banner-link.-large {
    inline-size: auto;
  }
}
@media (min-width: 750px) {
  .banner-list {
    display: flex;
    align-items: center;
    justify-content: center;
    inline-size: 800px;
    margin-inline: auto;
    margin-block-start: 20px;
  }
}
.otoku-banner-link {
  display: inline-block;
  height: 100%;
}
@media (min-width: 750px) {
  .otoku-banner-link {
    transition: opacity var(--transition-time);
  }
}
@media (any-hover: hover) {
  .banner-list-item .otoku-banner-link:hover {
    opacity: var(--alpha-07);
  }
}
.otoku-banner-link img {
  width: 100%;
  height: auto;
}
@media (min-width: 750px) {
  .otoku {
    margin-block: 56px 60px;
  }
  .otoku:before {
    top: 4px;
    inline-size: 911px;
    block-size: 89px;
    left: 50%;
    background: url(/area/g/funfunfes2025/teaser/img/index/bg_otoku-title.png)
      no-repeat center center / 100% auto;
  }
  .otoku-title {
    margin-block-end: 30px;
  }
  .otoku-title-img {
    width: 365px;
  }
  .otoku-title-text {
    margin-block-end: 20px;
  }
  .otoku-column-list {
    margin-block: 20px 34px;
  }
}
.banner-heading {
  margin-block-start: 24px;
  margin-inline: auto;
  inline-size: 320px;
  position: relative;
  z-index: 1;
}
@media (min-width: 750px) {
  .banner-heading {
    margin-block-start: 50px;
    inline-size: 650px;
  }
}
.banner-list-wrap {
  margin-block-start: 8px;
  position: relative;
  z-index: 1;
  display: flex;
  max-inline-size: 820px;
  aspect-ratio: 820 / 414;
  margin-inline: auto;
}
@media (min-width: 750px) {
  .banner-list-wrap {
    margin-block-start: 24px;
  }
}
.banner-list-bg {
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: 0;
  width: 100%;
}
.banner-list {
  position: absolute;
  inset-block-end: calc(40 / 375 * 100%);
  inset-inline-start: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  gap: 5px;
  transform: translateX(-6px);
}
@media (min-width: 750px) {
  .banner-list {
    gap: 12px;
    transform: translateX(-2px);
  }
}
.banner-list-item {
  max-inline-size: 43.54%; /*357px ÷ 820px × 100 = 43.536585…% ≒ 43.54% */
}




