@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Krona+One&family=Noto+Sans+JP:wght@100..900&family=Zen+Kaku+Gothic+Antique:wght@400;500;700&display=swap");
@layer foundation, vendor, layout, component, project, page, utilities;
:root {
  --sans-serif: "Noto Sans JP", "ヒラギノ角ゴシック", "Hiragino Sans", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", sans-serif;
  --serif: "Noto Serif JP", serif;
  --en-sans: "Krona One", sans-serif;
  --en-serif: "", serif;
  --zenkaku: "Zen Kaku Gothic Antique", sans-serif;
  --base: #fff;
  --main: #000;
  --red01: #C30E23;
  --red02: #E31A19;
  --red03: #C30D23;
  --beige01: #EDE1BE;
  --brown01: #91623A;
  --gray01: #F5F5F5;
  --gray02: #707070;
  --orange01: #F04B0E;
  --blue01: #004092;
  --bule02: #031C3A;
  --yellow01: #FFF100;
}

@layer foundation {
  body,
  h1,
  h2,
  h3,
  h4,
  h5,
  h6,
  p,
  dl,
  dt,
  dd,
  ol,
  ul,
  figure {
    all: unset;
    display: revert;
  }
  body {
    line-height: 1;
  }
  ol,
  ul {
    list-style: none;
  }
  table {
    border-collapse: collapse;
    border-spacing: 0;
  }
  img {
    vertical-align: middle;
  }
}
@layer foundation {
  html {
    height: 100%;
    scroll-padding-top: 78px;
    scroll-behavior: smooth;
  }
  @media screen and (max-width: 767px) {
    html {
      scroll-padding-top: 55px;
    }
  }
  body {
    text-size-adjust: 100%;
    font-family: var(--sans-serif);
    font-size: 1rem;
    line-height: 1.7;
    min-width: 320px;
    color: var(--main);
    background: var(--base);
  }
  body.is-main-nav-expanded {
    overflow: hidden;
  }
  *,
  *::before,
  *::after {
    box-sizing: border-box;
  }
  :focus-visible {
    outline: 2px solid blue;
  }
  img,
  svg,
  iframe,
  video,
  picture {
    max-width: 100%;
  }
  img {
    letter-spacing: 0;
    font-size: 12px;
    height: auto;
  }
  @media screen and (max-width: 767px) {
    img {
      width: 100%;
    }
  }
  a {
    word-break: break-all;
  }
  @media screen and (min-width: 768px) {
    a[href^="tel:"] {
      display: inline-block;
      pointer-events: none;
    }
  }
  small {
    font-size: 80%;
  }
  address {
    font-style: normal;
  }
  button,
  input[type=button],
  input[type=submit] {
    cursor: pointer;
    font: inherit;
  }
  button,
  input,
  select,
  textarea {
    font: inherit;
    color: inherit;
  }
  label {
    cursor: pointer;
    display: inline-block;
  }
}
/*========================================
  サイト共通のフッター
========================================*/
@layer layout {
  .l-footer {
    padding: 55px 10px;
    color: var(--base);
    text-align: center;
  }
  @media screen and (max-width: 767px) {
    .l-footer {
      padding: 10.6666666667vw 20px 12vw;
    }
  }
  .l-footer.footer-root {
    background: var(--main);
  }
  .l-footer.footer-fukuoka {
    background: var(--red01);
  }
  .l-footer__kumamon-copy {
    margin-bottom: 30px;
    font-size: 1rem;
    display: block;
  }
  @media screen and (max-width: 767px) {
    .l-footer__kumamon-copy {
      margin-bottom: 6.6666666667vw;
    }
  }
  .l-footer__nav {
    display: flex;
    justify-content: center;
    gap: 10px 0;
  }
  @media screen and (max-width: 767px) {
    .l-footer__nav {
      flex-wrap: wrap;
      gap: 5px 0;
    }
  }
  .l-footer__nav-item {
    padding-right: 26px;
    position: relative;
  }
  .l-footer__nav-item:not(:last-child)::after {
    content: "／";
    position: absolute;
    right: 6px;
  }
  .l-footer__link {
    color: var(--base);
    text-decoration: none;
    position: relative;
  }
  .l-footer__link::before {
    background: var(--base);
    content: "";
    width: 100%;
    height: 1px;
    display: block;
    position: absolute;
    bottom: 0;
    left: 0;
    scale: 0 1;
    transition: 0.3s;
  }
  @media (hover: hover) {
    .l-footer__link:hover::before {
      scale: 1 1;
    }
  }
  .l-footer__copyright {
    margin-top: 20px;
    font-size: 1rem;
    display: block;
  }
  @media screen and (max-width: 767px) {
    .l-footer__copyright {
      margin-top: 28px;
    }
  }
}
/*========================================
  サイト共通のヘッダー
========================================*/
@layer layout {
  .l-header {
    width: 100%;
    padding: 15px 10px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0 3em;
    position: sticky;
    top: 0;
    z-index: 10;
  }
  @media screen and (max-width: 767px) {
    .l-header {
      padding: 10px;
    }
  }
  .l-header.header-root {
    background: var(--main);
    color: var(--base);
  }
  .l-header.header-fukuoka {
    background: var(--red01);
    color: var(--base);
  }
  @media screen and (min-width: 768px) {
    .l-header__ttl {
      width: 289px;
    }
  }
  .l-header__ttl a {
    font-size: 0.875rem;
    font-weight: 500;
    color: inherit;
    text-decoration: none;
    white-space: nowrap;
  }
  @media screen and (max-width: 767px) {
    .l-header__ttl a {
      font-size: 0.625rem;
    }
  }
  .l-header__ttl span {
    display: block;
  }
}
/*========================================
  メインコンテンツ
========================================*/
@layer layout {
  .l-main.main-fukuoka-top {
    overflow: hidden;
  }
}
/*========================================
  ヘッダーのナビゲーション（グローバルナビ）
========================================*/
@layer layout {
  @media (width <= 1200px) {
    .l-nav.is-expanded .l-nav__body {
      visibility: visible;
      right: 0;
    }
  }
  .l-nav__btn {
    position: relative;
    z-index: 100;
  }
  @media (1201px <= width) {
    .l-nav__btn {
      display: none;
    }
  }
  @media (width <= 1200px) {
    .l-nav__btn {
      -webkit-appearance: none;
      appearance: none;
      background: none;
      border: none;
      width: 48px;
      height: 48px;
      padding: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      position: absolute;
      right: 10px;
      top: 10px;
    }
  }
  @media screen and (max-width: 767px) {
    .l-nav__btn {
      right: 3px;
      top: 3px;
    }
  }
  .l-nav__btn svg {
    width: 26px;
    height: 21px;
  }
  .l-nav__btn[aria-expanded=true] .l-nav__line.is-1 {
    transform: translate(1px, 10px) rotate(45deg);
  }
  .l-nav__btn[aria-expanded=true] .l-nav__line.is-2 {
    opacity: 0;
  }
  .l-nav__btn[aria-expanded=true] .l-nav__line.is-3 {
    transform: translate(0, -7px) rotate(-45deg);
  }
  .l-nav__line {
    fill: var(--base);
    transition-property: opacity, transform;
    transition-duration: 0.25s;
  }
  .l-nav__line.is-1 {
    transform-origin: 12px 0;
  }
  .l-nav__line.is-3 {
    transform-origin: 12px 18px;
  }
  @media (width <= 1200px) {
    .l-nav__body {
      width: 300px;
      height: 100%;
      padding: 6em 2em;
      display: block;
      visibility: hidden;
      position: fixed;
      top: 0;
      right: -100%;
      overflow: auto;
      overscroll-behavior-y: contain;
      transition: 0.3s ease-in;
      z-index: 99;
    }
  }
  @media screen and (max-width: 767px) {
    .l-nav__body {
      width: 210px;
      padding: 6em 1.5em;
    }
  }
  @media (width <= 1200px) {
    .l-nav__body.nav-root {
      background: var(--main);
    }
  }
  .l-nav__body.nav-root .l-nav__link::before,
  .l-nav__body.nav-root .l-nav__sub-link::before {
    background: var(--base);
  }
  .l-nav__body.nav-root .l-nav__sub-list {
    background: var(--main);
    width: 100%;
  }
  @media (width <= 1200px) {
    .l-nav__body.nav-fukuoka {
      background: var(--red01);
    }
  }
  .l-nav__body.nav-fukuoka .l-nav__link::before,
  .l-nav__body.nav-fukuoka .l-nav__sub-link::before {
    background: var(--base);
  }
  .l-nav__body.nav-fukuoka .l-nav__sub-list {
    background: var(--red01);
    width: 100%;
  }
  @media (1201px <= width) {
    .l-nav__list {
      display: flex;
      gap: 0 60px;
    }
  }
  .l-nav__item {
    position: relative;
  }
  @media (width <= 1200px) {
    .l-nav__item:nth-child(n+2) {
      margin-top: 1em;
    }
  }
  @media (hover: hover) {
    .l-nav__item:hover .l-nav__sub-item {
      height: 40px;
      overflow: visible;
    }
  }
  .l-nav__link {
    font-size: 0.875rem;
    font-weight: 500;
    color: inherit;
    line-height: 1.4;
    text-decoration: none;
    display: block;
    position: relative;
  }
  @media (width <= 1200px) {
    .l-nav__link {
      padding: 0.5em;
    }
  }
  .l-nav__link::before {
    content: "";
    width: 100%;
    height: 1px;
    display: block;
    position: absolute;
    bottom: 0;
    left: 0;
    scale: 0 1;
    transition: 0.3s;
  }
  @media (hover: hover) {
    .l-nav__link:hover::before {
      scale: 1 1;
    }
  }
  @media (width <= 1200px) {
    .l-nav__link.no-link::before {
      display: none;
    }
  }
  @media (1201px <= width) {
    .l-nav__sub-list {
      width: 100%;
      position: absolute;
      top: 100%;
      left: 0;
    }
  }
  @media (1201px <= width) {
    .l-nav__sub-item {
      height: 0;
      display: flex;
      align-items: center;
      overflow: hidden;
      transition: 0.3s;
    }
  }
  @media (width <= 1200px) {
    .l-nav__sub-item {
      height: 40px;
      display: flex;
      align-items: center;
    }
  }
  .l-nav__sub-link {
    width: 100%;
    padding: 6px 10px;
    font-size: 0.875rem;
    font-weight: 500;
    color: inherit;
    text-decoration: none;
    display: block;
    position: relative;
  }
  .l-nav__sub-link::before {
    content: "";
    width: 100%;
    height: 1px;
    display: block;
    position: absolute;
    bottom: 0;
    left: 0;
    scale: 0 1;
    transition: 0.3s;
  }
  @media (hover: hover) {
    .l-nav__sub-link:hover::before {
      scale: 1 1;
    }
  }
}
@layer component {
  .c-btn {
    min-width: 100px;
    padding: 5px;
    text-align: center;
    text-decoration: none;
    display: inline-block;
    position: relative;
    transition: 0.3s;
    scale: 1;
  }
  @media (hover: hover) {
    .c-btn:hover {
      scale: 1.05;
    }
  }
  span.c-btn {
    pointer-events: none;
  }
  .c-btn__more {
    border-radius: 26px;
    width: 100%;
    padding: 15px 5px 15px 10px;
    line-height: 1;
  }
  .c-btn__more.more-red {
    background: var(--red01);
  }
  .c-btn__more.more-brown {
    background: var(--brown01);
  }
  @media screen and (max-width: 767px) {
    .c-btn__more {
      border-radius: 6.4vw;
      padding: 4vw 1.3333333333vw 4vw 2.6666666667vw;
    }
  }
  @media screen and (max-width: 767px) {
    .c-btn__more img {
      width: 38.1333333333vw;
    }
  }
  .c-btn__follow {
    background: var(--red01);
    border-radius: 30px;
    width: 466px;
    padding: 24px 5px;
  }
  @media screen and (max-width: 767px) {
    .c-btn__follow {
      border-radius: 8.2666666667vw;
      width: 100%;
      padding: 4.5333333333vw 5px;
    }
  }
  @media screen and (max-width: 767px) {
    .c-btn__follow img {
      width: 75.4666666667vw;
    }
  }
  .c-btn__red {
    background: var(--red01);
    border-radius: 30px;
    width: 100%;
    padding: 16px 15px;
    color: var(--base);
  }
  @media screen and (max-width: 767px) {
    .c-btn__red {
      border-radius: 30px;
      padding: 2.1333333333vw 3.4666666667vw;
    }
  }
  .c-btn__red.btn-arrow::after {
    background: url(../img/icon/icon-arrow-red-r.svg) no-repeat 0 0;
    background-size: contain;
    content: "";
    width: 25px;
    height: 25px;
    display: block;
    position: absolute;
    top: 50%;
    right: 15px;
    translate: 0 -50%;
  }
  @media screen and (max-width: 767px) {
    .c-btn__red.btn-arrow::after {
      width: 5.3333333333vw;
      height: 5.3333333333vw;
      right: 3.2vw;
    }
  }
  .c-btn__red.btn-arrow-w {
    border-radius: 40px;
    max-width: 268px;
    padding-left: 25px;
    font-size: 1.25rem;
    font-weight: 500;
  }
  @media screen and (max-width: 767px) {
    .c-btn__red.btn-arrow-w {
      padding-left: 5.3333333333vw;
      font-size: 1.125rem;
    }
  }
  .c-btn__red.btn-arrow-w::after {
    content: "▶";
    margin-left: 10px;
  }
  .c-btn__red.btn-middle {
    width: 180px;
    padding: 10px 15px;
  }
  @media screen and (max-width: 767px) {
    .c-btn__red.btn-middle {
      width: 40vw;
      max-width: 170px;
      padding: 10px;
      font-size: 0.875rem;
      line-height: 1.4;
    }
  }
  .c-btn__red.btn-small {
    width: 165px;
    padding: 10px;
  }
  @media screen and (max-width: 767px) {
    .c-btn__red.btn-small {
      width: 230px;
      line-height: 1.4;
    }
  }
  .c-btn__red-line {
    border: 6px solid var(--red01);
    border-radius: 40px;
    width: 100%;
    max-width: 268px;
    padding: 10px 18px 10px 28px;
    font-size: 1.25rem;
    font-weight: 500;
    color: var(--red01);
  }
  @media screen and (max-width: 767px) {
    .c-btn__red-line {
      border-width: 4px;
      border-radius: 30px;
      padding: 1.3333333333vw 3.4666666667vw 1.3333333333vw 5.3333333333vw;
      font-size: 1.125rem;
    }
  }
  .c-btn__red-line::after {
    content: "▶";
    margin-left: 10px;
  }
  .c-btn__yellow {
    background: var(--yellow01);
    border-radius: 30px;
    width: 100%;
    padding: 16px 15px;
  }
  @media screen and (max-width: 767px) {
    .c-btn__yellow {
      border-radius: 30px;
      padding: 2.1333333333vw 3.4666666667vw;
    }
  }
  .c-btn__yellow.btn-arrow {
    position: relative;
  }
  .c-btn__yellow.btn-arrow::after {
    background: url(../img/icon/icon-arrow-white-r.svg) no-repeat 0 0;
    background-size: contain;
    content: "";
    width: 25px;
    height: 25px;
    display: block;
    position: absolute;
    top: 50%;
    right: 15px;
    translate: 0 -50%;
  }
  @media screen and (max-width: 767px) {
    .c-btn__yellow.btn-arrow::after {
      width: 5.3333333333vw;
      height: 5.3333333333vw;
      right: 3.2vw;
    }
  }
  .c-btn__darkblue {
    background: var(--bule02);
    border-radius: 30px;
    width: 100%;
    padding: 16px 15px;
  }
  @media screen and (max-width: 767px) {
    .c-btn__darkblue {
      border-radius: 30px;
      padding: 2.1333333333vw 3.4666666667vw;
    }
  }
  .c-btn__darkblue.btn-arrow {
    position: relative;
  }
  .c-btn__darkblue.btn-arrow::after {
    background: url(../img/icon/icon-arrow-red-r.svg) no-repeat 0 0;
    background-size: contain;
    content: "";
    width: 25px;
    height: 25px;
    display: block;
    position: absolute;
    top: 50%;
    right: 15px;
    translate: 0 -50%;
  }
  @media screen and (max-width: 767px) {
    .c-btn__darkblue.btn-arrow::after {
      width: 5.3333333333vw;
      height: 5.3333333333vw;
      right: 3.2vw;
    }
  }
  .c-btn__orange {
    background: var(--orange01);
    border-radius: 20px;
    width: 100%;
    padding: 16px 10px;
    color: var(--base);
  }
  @media screen and (max-width: 767px) {
    .c-btn__orange {
      border-radius: 5.0666666667vw;
      padding: 4vw 10px;
    }
  }
  @media screen and (max-width: 767px) {
    .c-btn__orange .text-list {
      width: 46.1333333333vw;
    }
  }
  .c-btn__blue {
    background: var(--blue01);
    border-radius: 20px;
    width: 100%;
    padding: 16px 10px;
    color: var(--base);
  }
  @media screen and (max-width: 767px) {
    .c-btn__blue {
      border-radius: 5.0666666667vw;
      padding: 4vw 10px;
    }
  }
  .c-btn__blue.blue-square {
    border-radius: 0;
    padding: 35px 10px;
    font-size: 1.875rem;
    font-weight: 600;
  }
  @media screen and (max-width: 767px) {
    .c-btn__blue.blue-square {
      padding: 15px 10px;
      font-size: 1.125rem;
    }
  }
  @media screen and (max-width: 767px) {
    .c-btn__blue .text-shuzo {
      width: 54.1333333333vw;
    }
  }
  @media screen and (max-width: 767px) {
    .c-btn__blue .text-yatai {
      width: 69.0666666667vw;
    }
  }
  .c-btn__about {
    max-width: 600px;
    margin: 0 auto;
    display: block;
    transition: 0.3s;
    scale: 1;
  }
  @media (hover: hover) {
    .c-btn__about:hover {
      scale: 1.05;
    }
  }
  .c-btn__pagetop {
    -webkit-appearance: none;
    appearance: none;
    border: none;
    background: none;
    padding: 0;
  }
  .fukuoka .c-btn__contents {
    border: 7px solid var(--red03);
    border-radius: 30px;
    width: 500px;
    margin: 0 auto;
    padding: 20px 10px;
    display: block;
    position: relative;
    transition: 0.3s;
    scale: 1;
  }
  @media screen and (max-width: 767px) {
    .fukuoka .c-btn__contents {
      border-radius: 5.3333333333vw;
      width: 100%;
      padding: 2.1333333333vw 2.6666666667vw;
    }
  }
  .fukuoka .c-btn__contents::after {
    background: url(../img/bg/bg-people-02.png) no-repeat 0 0;
    background-size: contain;
    content: "";
    width: 79px;
    height: 75px;
    display: block;
    position: absolute;
    top: -20px;
    right: 7px;
  }
  @media screen and (max-width: 767px) {
    .fukuoka .c-btn__contents::after {
      width: 14.4vw;
      height: 13.6vw;
      top: -4.5333333333vw;
      right: 0.2666666667vw;
    }
  }
  @media (hover: hover) {
    .fukuoka .c-btn__contents:hover {
      scale: 1.05;
    }
  }
  @media screen and (max-width: 767px) {
    .fukuoka .c-btn__contents img {
      width: 44.8vw;
    }
  }
}
@layer component {
  .c-container, .c-container--xs, .c-container--s, .c-container--m, .c-container--full {
    width: 100%;
    margin-right: auto;
    margin-left: auto;
  }
  .c-container--full {
    max-width: 1300px;
    padding-right: 10px;
    padding-left: 10px;
  }
  @media screen and (max-width: 767px) {
    .c-container--full {
      padding-right: 20px;
      padding-left: 20px;
    }
  }
  .c-container--m {
    max-width: 1180px;
    padding-right: 10px;
    padding-left: 10px;
  }
  @media screen and (max-width: 767px) {
    .c-container--m {
      padding-right: 20px;
      padding-left: 20px;
    }
  }
  .c-container--s {
    max-width: 1020px;
    padding-right: 10px;
    padding-left: 10px;
  }
  @media screen and (max-width: 767px) {
    .c-container--s {
      padding-right: 20px;
      padding-left: 20px;
    }
  }
  .c-container--xs {
    max-width: 820px;
    padding-right: 10px;
    padding-left: 10px;
  }
  @media screen and (max-width: 767px) {
    .c-container--xs {
      padding-right: 20px;
      padding-left: 20px;
    }
  }
}
@layer project {
  .p-bg__arc-red {
    background: url(../img/bg/bg-red-top.webp) no-repeat 50% 0, url(../img/bg/bg-red-bottom.webp) no-repeat 50% 100%;
    background-size: 2800px 826px, 2800px 796px;
  }
  @media (width >= 2800px) {
    .p-bg__arc-red {
      background-size: 100% 826px, 100% 796px;
    }
  }
  .p-bg__arc-orange {
    background: url(../img/bg/bg-orange-top.webp) no-repeat 50% 0, url(../img/bg/bg-orange-bottom.webp) no-repeat 50% 100%;
    background-size: 2800px 794px, 2800px 824px;
  }
  @media (width >= 2800px) {
    .p-bg__arc-orange {
      background-size: 100% 826px, 100% 796px;
    }
  }
  .p-bg-white {
    background-color: var(--base);
  }
  .p-bg-beige {
    background-color: var(--beige01);
  }
  .p-bg-gray {
    background-color: var(--gray01);
  }
  .p-bg-blue {
    background-color: var(--blue01);
  }
}
@layer project {
  .p-breadcrumb {
    margin-top: 40px;
    margin-bottom: 17px;
  }
  @media screen and (max-width: 767px) {
    .p-breadcrumb {
      margin-top: 15px;
      margin-bottom: 15px;
    }
  }
  .p-breadcrumb ol {
    display: flex;
    flex-wrap: wrap;
  }
  .p-breadcrumb ol li {
    font-size: 0.875rem;
    position: relative;
  }
  .p-breadcrumb ol li:not(:last-child)::after {
    content: "＞";
  }
  .p-breadcrumb ol a {
    color: inherit;
    text-decoration: none;
  }
  @media (hover: hover) {
    .p-breadcrumb ol a:hover {
      text-decoration: underline;
    }
  }
}
@layer project {
  .p-hero.hero-home {
    margin: 50px 0 60px;
    text-align: center;
  }
  @media screen and (max-width: 767px) {
    .p-hero.hero-home {
      margin: 8vw 0 10.6666666667vw;
      padding: 0 20px;
    }
  }
  .p-hero.hero-fukuoka {
    background: var(--red01);
    padding: 16px 0 88px;
    text-align: center;
  }
  @media screen and (max-width: 767px) {
    .p-hero.hero-fukuoka {
      padding: 2.6666666667vw 0 16.2666666667vw;
    }
  }
  @media screen and (max-width: 767px) {
    .p-hero.hero-fukuoka .p-hero__inner {
      padding-left: 0;
      padding-right: 0;
    }
  }
  .p-hero.hero-fukuoka .p-hero__logo,
  .p-hero.hero-fukuoka .p-hero__date,
  .p-hero.hero-fukuoka .p-hero__kumamon {
    line-height: 1;
  }
  @media screen and (max-width: 767px) {
    .p-hero.hero-fukuoka .p-hero__logo,
    .p-hero.hero-fukuoka .p-hero__date,
    .p-hero.hero-fukuoka .p-hero__kumamon {
      width: 104%;
      margin-left: -2%;
    }
  }
  @media screen and (max-width: 767px) {
    .p-hero.hero-fukuoka .p-hero__kumamon {
      margin-top: -1px;
    }
  }
  .p-hero.hero-fukuoka .p-hero__text-01 {
    margin: 42px auto 58px;
  }
  @media screen and (max-width: 767px) {
    .p-hero.hero-fukuoka .p-hero__text-01 {
      width: 88.8vw;
      margin: 11.2vw auto 8.8vw;
    }
  }
  .p-hero.hero-fukuoka .p-hero__text-02 {
    font-weight: 500;
    color: var(--base);
    line-height: 1.5;
  }
  .p-hero.hero-fukuoka .p-hero__link {
    margin-top: 75px;
    display: flex;
    justify-content: space-between;
    gap: 0 30px;
  }
  @media screen and (max-width: 767px) {
    .p-hero.hero-fukuoka .p-hero__link {
      margin-top: 45px;
      flex-wrap: wrap;
      justify-content: center;
      gap: 7.7333333333vw 0;
    }
  }
  .p-hero.hero-fukuoka .p-hero__link li {
    width: 360px;
    min-width: 220px;
  }
  @media screen and (max-width: 767px) {
    .p-hero.hero-fukuoka .p-hero__link li {
      width: 92vw;
    }
  }
  .p-hero.hero-fukuoka .p-hero__link a {
    display: block;
    transition: 0.3s;
    scale: 1;
  }
  @media (hover: hover) {
    .p-hero.hero-fukuoka .p-hero__link a:hover {
      scale: 1.05;
    }
  }
}
@layer project {
  .p-ttl__h1 {
    font-family: var(--zenkaku);
    font-size: 2.5rem;
    font-weight: 600;
    line-height: 1.4;
  }
  @media screen and (max-width: 767px) {
    .p-ttl__h1 {
      font-size: 1.625rem;
    }
  }
  .p-ttl__en-jp {
    text-align: center;
  }
  .p-ttl__en-jp.ttl-cafe-bg {
    background: url(../img/top/bg-cafe-ttl.png) no-repeat 50% 0;
    background-size: contain;
    width: 214px;
    height: 113px;
    margin: 0 auto;
    padding-top: 75px;
  }
  @media screen and (min-width: 768px) {
    .p-ttl__en-jp.ttl-news-article .ttl-en {
      margin-bottom: 25px;
    }
  }
  @media screen and (min-width: 768px) {
    .p-ttl__en-jp.ttl-news-article .ttl-jp {
      font-size: 1.125rem;
    }
  }
  .p-ttl__en-jp span {
    display: block;
  }
  .p-ttl__en-jp .ttl-en {
    margin-bottom: 15px;
  }
  @media screen and (max-width: 767px) {
    .p-ttl__en-jp .ttl-en {
      margin: 0 auto 15px;
    }
    .p-ttl__en-jp .ttl-en.ttl-contents {
      width: 234px;
    }
    .p-ttl__en-jp .ttl-en.ttl-cafe {
      width: 120px;
    }
    .p-ttl__en-jp .ttl-en.ttl-event {
      width: 168px;
    }
    .p-ttl__en-jp .ttl-en.ttl-yatai {
      width: 296px;
    }
    .p-ttl__en-jp .ttl-en.ttl-news {
      width: 120px;
    }
  }
  .p-ttl__en-jp .ttl-jp {
    font-weight: 600;
  }
  .p-ttl__ellipse {
    border: 1px solid var(--main);
    border-radius: 30px;
    min-width: 114px;
    padding: 15px;
    font-size: 1.25rem;
    font-weight: 500;
    line-height: 1.2;
    text-align: center;
    display: inline-block;
  }
  .p-ttl__ellipse-orange {
    background: var(--orange01);
    border-radius: 24px;
    padding: 9px 10px;
    font-size: 1.125rem;
    font-weight: bold;
    color: var(--base);
    text-align: center;
    display: inline-block;
  }
  .p-ttl__ellipse-red {
    background: var(--red01);
    border-radius: 30px;
    min-width: 176px;
    padding: 10px 5px;
    color: var(--base);
    display: inline-block;
  }
  .p-ttl__icon-01 {
    font-family: var(--zenkaku);
    font-size: 2.5rem;
    font-weight: 600;
    line-height: 1.4;
  }
  @media screen and (max-width: 767px) {
    .p-ttl__icon-01 {
      font-size: 1.625rem;
    }
  }
  .p-ttl__icon-01 span {
    position: relative;
  }
  .p-ttl__icon-01 .ttl-bottle {
    padding-right: 67px;
  }
  @media screen and (max-width: 767px) {
    .p-ttl__icon-01 .ttl-bottle {
      padding-right: 48px;
    }
  }
  .p-ttl__icon-01 .ttl-bottle::after {
    background: url(../img/icon/icon-bottle-right.png) no-repeat 0 0;
    background-size: contain;
    content: "";
    width: 45px;
    height: 90px;
    display: block;
    position: absolute;
    top: -33px;
    right: 0;
  }
  @media screen and (max-width: 767px) {
    .p-ttl__icon-01 .ttl-bottle::after {
      width: 30px;
      height: 60px;
      top: -20px;
    }
  }
  .p-ttl__icon-01 .ttl-cow {
    padding-right: 156px;
  }
  @media screen and (max-width: 767px) {
    .p-ttl__icon-01 .ttl-cow {
      padding-right: 106px;
    }
  }
  .p-ttl__icon-01 .ttl-cow::after {
    background: url(../img/icon/icon-cow.png) no-repeat 0 0;
    background-size: contain;
    content: "";
    width: 123px;
    height: 80px;
    display: block;
    position: absolute;
    top: -28px;
    right: 0;
  }
  @media screen and (max-width: 767px) {
    .p-ttl__icon-01 .ttl-cow::after {
      width: 82px;
      height: 53px;
      top: -11px;
    }
  }
  .p-ttl__icon-01 .ttl-chicken {
    padding-right: 100px;
  }
  @media screen and (max-width: 767px) {
    .p-ttl__icon-01 .ttl-chicken {
      padding-right: 78px;
    }
  }
  .p-ttl__icon-01 .ttl-chicken::after {
    background: url(../img/icon/icon-chicken.png) no-repeat 0 0;
    background-size: contain;
    content: "";
    width: 69px;
    height: 103px;
    display: block;
    position: absolute;
    top: -38px;
    right: 0;
  }
  @media screen and (max-width: 767px) {
    .p-ttl__icon-01 .ttl-chicken::after {
      width: 47px;
      height: 69px;
      top: -26px;
    }
  }
  .p-ttl__icon-01 .ttl-shrimp {
    padding-right: 110px;
  }
  @media screen and (max-width: 767px) {
    .p-ttl__icon-01 .ttl-shrimp {
      padding-right: 70px;
    }
  }
  .p-ttl__icon-01 .ttl-shrimp::after {
    background: url(../img/icon/icon-shrimp.png) no-repeat 0 0;
    background-size: contain;
    content: "";
    width: 94px;
    height: 69px;
    display: block;
    position: absolute;
    top: -21px;
    right: 0;
  }
  @media screen and (max-width: 767px) {
    .p-ttl__icon-01 .ttl-shrimp::after {
      width: 63px;
      height: 47px;
      top: -15px;
    }
  }
  .p-ttl__icon-02 {
    text-align: center;
  }
  .p-ttl__icon-02 .ttl-inner {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: 0 5px;
  }
  @media screen and (max-width: 767px) {
    .p-ttl__icon-02 .ttl-inner {
      gap: 0;
    }
  }
  .p-ttl__icon-02 .ttl-inner::before, .p-ttl__icon-02 .ttl-inner::after {
    content: "";
    display: block;
  }
  .p-ttl__icon-02 .ttl-inner::before {
    background: url(../img/bg/bg-people-05.png) no-repeat 0 0;
    background-size: contain;
    width: 84px;
    height: 85px;
  }
  @media screen and (max-width: 767px) {
    .p-ttl__icon-02 .ttl-inner::before {
      width: 59px;
      height: 60px;
    }
  }
  .p-ttl__icon-02 .ttl-inner::after {
    background: url(../../../assets/img/icon/icon-bottle-right.png) no-repeat 0 0;
    background-size: contain;
    width: 45px;
    height: 90px;
  }
  @media screen and (max-width: 767px) {
    .p-ttl__icon-02 .ttl-inner::after {
      width: 33px;
      height: 65px;
    }
  }
  .p-ttl__icon-02 .ttl-text {
    font-size: 1.875rem;
    font-weight: 500;
    line-height: 1.3;
  }
  @media screen and (max-width: 767px) {
    .p-ttl__icon-02 .ttl-text {
      font-size: 1.375rem;
      line-height: 1.4;
    }
  }
}
@layer project {
  .p-text-br {
    display: block;
  }
  @media screen and (min-width: 768px) {
    .p-text-br-pc {
      display: block;
    }
  }
  @media screen and (max-width: 767px) {
    .p-text-br-sp {
      display: block;
    }
  }
  .p-text__red {
    color: var(--red02);
  }
  .p-text__white {
    color: var(--base);
  }
  .p-text__orange {
    color: var(--orange01);
  }
  .p-text-notes-small {
    font-size: 0.875rem;
  }
  .p-text-link {
    text-align: center;
  }
  .p-text-link a {
    font-weight: 500;
    color: var(--main);
    line-height: 1.5;
    text-decoration: none;
  }
  @media (hover: hover) {
    .p-text-link a:hover span {
      text-decoration: none;
    }
  }
  .p-text-link span {
    text-decoration: underline;
    text-underline-offset: 3px;
  }
  .p-text-500 {
    font-weight: 500;
  }
}
@layer project {
  .p-list__circle > li {
    padding-left: 1em;
    position: relative;
  }
  .p-list__circle > li:nth-child(n+2) {
    margin-top: 8px;
  }
  .p-list__circle > li::before {
    content: "●";
    width: 1em;
    display: block;
    position: absolute;
    top: 0;
    left: 0;
  }
  .p-list__circle > li .p-list__num {
    margin: 8px 0 0 1em;
  }
  .p-list__num {
    list-style: decimal;
  }
  .p-list__num > li:nth-child(n+2) {
    margin-top: 8px;
  }
}
@layer project {
  .p-contact {
    padding: 70px 10px;
    color: var(--base);
    text-align: center;
  }
  @media screen and (max-width: 767px) {
    .p-contact {
      padding: 15.4666666667vw 20px 20.5333333333vw;
    }
  }
  .p-contact.contact-roop {
    background: var(--main);
  }
  .p-contact.contact-fukuoka {
    background: var(--red01);
  }
  .p-contact__box-01 {
    font-size: 1.125rem;
    font-weight: 500;
    line-height: 2;
  }
  .p-contact__box-01:nth-child(n+2) {
    margin-top: 40px;
  }
  @media screen and (max-width: 767px) {
    .p-contact__box-01:nth-child(n+2) {
      margin-top: 10.1333333333vw;
    }
  }
  .p-contact__box-02 {
    margin-top: 35px;
  }
  @media screen and (max-width: 767px) {
    .p-contact__box-02 {
      margin-top: 9.3333333333vw;
    }
  }
  @media screen and (max-width: 767px) {
    .p-contact__text-01 span {
      display: block;
    }
  }
  @media screen and (min-width: 768px) {
    .p-contact__text-01 span:first-child {
      margin-right: 1em;
    }
  }
  @media screen and (min-width: 768px) {
    .p-contact__address span {
      margin-right: 0.5em;
    }
  }
  @media screen and (max-width: 767px) {
    .p-contact__address span {
      display: block;
    }
  }
  .p-contact__list li {
    padding-left: 1em;
    display: inline-block;
    position: relative;
  }
  @media screen and (max-width: 767px) {
    .p-contact__list li {
      display: inline;
    }
  }
  .p-contact__list li::before {
    content: "●";
    width: 1em;
    display: block;
    position: absolute;
    top: 0;
    left: 0;
  }
}
@layer project {
  .p-bnr {
    width: 730px;
    margin: 40px auto 35px;
    text-align: center;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    justify-content: center;
    gap: 0 84px;
  }
  @media screen and (max-width: 767px) {
    .p-bnr {
      width: calc(100% - 40px);
      margin: 10.1333333333vw auto 12.8vw;
      padding: 0 20px;
      grid-template-columns: 1fr;
      gap: 32px 0;
    }
  }
  .p-bnr__text {
    margin-bottom: 25px;
  }
  @media screen and (max-width: 767px) {
    .p-bnr__text {
      margin-bottom: 20px;
    }
  }
  .p-bnr__pict {
    width: 298px;
    height: 170px;
    margin: 0 auto;
    display: block;
    transition: 0.3s;
    scale: 1;
    position: relative;
  }
  .p-bnr__pict::after {
    background: var(--main);
    content: "";
    width: 100%;
    height: 100%;
    display: block;
    position: absolute;
    top: 4px;
    left: 4px;
  }
  @media screen and (max-width: 767px) {
    .p-bnr__pict::after {
      top: 7px;
      left: 4px;
    }
  }
  @media (hover: hover) {
    .p-bnr__pict:hover {
      scale: 1.05;
    }
  }
  .p-bnr__pict img {
    position: relative;
    z-index: 1;
  }
}
@layer project {
  .p-place {
    text-align: center;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0 5%;
  }
  @media screen and (max-width: 767px) {
    .p-place {
      grid-template-columns: 1fr;
      gap: 16vw 0;
    }
  }
  @media screen and (min-width: 768px) {
    .p-place__item {
      display: grid;
      grid-template-rows: subgrid;
      grid-row: span 3;
      row-gap: 20px;
    }
  }
  @media screen and (max-width: 767px) {
    .p-place__item {
      width: 70%;
      margin: 0 auto;
    }
  }
  .p-place__item .item-date {
    line-height: 1;
  }
  @media screen and (max-width: 767px) {
    .p-place__item .item-date {
      width: 80%;
      margin: 5.3333333333vw auto 0;
    }
  }
  @media screen and (max-width: 767px) {
    .p-place__item .item-link {
      margin-top: 5.3333333333vw;
    }
  }
  .p-place__item .item-link img {
    width: auto;
    height: 21px;
    padding-right: 15px;
    vertical-align: -5px;
  }
  @media screen and (max-width: 767px) {
    .p-place__item .item-link img {
      height: 4.8vw;
      padding-right: 4vw;
      vertical-align: -1.0666666667vw;
    }
  }
}
@layer project {
  .p-sns__inner {
    max-width: 750px;
    margin: 0 auto 40px;
    padding: 0 10px;
    text-align: center;
  }
  @media screen and (max-width: 767px) {
    .p-sns__inner {
      margin-bottom: 8.8vw;
      padding: 0 20px;
    }
  }
  .p-sns__account {
    font-size: 1.625rem;
    font-weight: 600;
    line-height: 1.4;
  }
  @media screen and (max-width: 767px) {
    .p-sns__account {
      font-size: 3.7333333333vw;
    }
  }
  .p-sns__account a {
    color: inherit;
    text-decoration: none;
  }
  @media (hover: hover) {
    .p-sns__account a:hover {
      text-decoration: underline;
    }
  }
  .p-sns__account .text-X {
    margin: 0 0.3em;
  }
  .p-sns__account .text-small {
    font-size: 1.25rem;
  }
  @media screen and (max-width: 767px) {
    .p-sns__account .text-small {
      font-size: 2.6666666667vw;
    }
  }
  .p-sns__ttl {
    margin: 25px 0 45px;
  }
  @media screen and (max-width: 767px) {
    .p-sns__ttl {
      width: 100%;
      margin: 3.4666666667vw 0 6.4vw;
    }
  }
  .fukuoka .p-sns__ttl {
    margin: 25px 0 20px;
  }
  @media screen and (max-width: 767px) {
    .fukuoka .p-sns__ttl {
      margin: 3.4666666667vw 0 3.7333333333vw;
    }
  }
  .p-sns__date {
    margin: 10px 0 45px;
  }
  @media screen and (max-width: 767px) {
    .p-sns__date {
      width: 65.3333333333vw;
      margin: 1.3333333333vw auto 6.4vw;
    }
  }
  .p-sns__text-01 {
    font-size: 1.875rem;
    font-weight: 600;
    letter-spacing: 0.05em;
  }
  @media screen and (max-width: 767px) {
    .p-sns__text-01 {
      font-size: 4.2666666667vw;
    }
  }
  .p-sns__text-02 {
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.5;
  }
  @media screen and (max-width: 767px) {
    .p-sns__text-02 {
      font-size: 3.2vw;
      line-height: 1.6;
    }
  }
  .p-sns__text-02 .text-large {
    margin: 0 0.2em;
    vertical-align: 7px;
  }
  @media screen and (max-width: 767px) {
    .p-sns__text-02 .text-large {
      vertical-align: 0.8vw;
    }
  }
  @media screen and (max-width: 767px) {
    .p-sns__text-02 .text-large img {
      width: 6.1333333333vw;
    }
  }
  .p-sns__text-03 {
    margin: 38px 0 60px;
  }
  @media screen and (max-width: 767px) {
    .p-sns__text-03 {
      width: calc(100% + 16px);
      margin: 6.1333333333vw -8px 10.6666666667vw;
    }
  }
  .p-sns__text-04 {
    font-size: 0.875rem;
    line-height: 2;
  }
  .p-sns__text-04 a {
    color: inherit;
    text-decoration: none;
  }
  @media (hover: hover) {
    .p-sns__text-04 a:hover {
      text-decoration: underline;
    }
  }
  .p-sns__btn {
    margin-top: 60px;
  }
  @media screen and (max-width: 767px) {
    .p-sns__btn {
      margin-top: 6.9333333333vw;
    }
  }
  .p-sns__contents {
    padding: 38px 10px 90px;
  }
  @media screen and (max-width: 767px) {
    .p-sns__contents {
      padding: 11.2vw 20px 13.8666666667vw;
    }
  }
  .p-sns__summary {
    max-width: 624px;
    margin: 0 auto;
    text-align: center;
  }
  @media screen and (max-width: 767px) {
    .p-sns__summary {
      width: 100%;
      max-width: none;
    }
  }
  .p-sns__summary div:nth-child(n+2) {
    margin-top: 25px;
  }
  @media screen and (max-width: 767px) {
    .p-sns__summary div:nth-child(n+2) {
      margin-top: 4.8vw;
    }
  }
  .p-sns__summary dd {
    margin-top: 25px;
    font-size: 0.875rem;
  }
  @media screen and (max-width: 767px) {
    .p-sns__summary dd {
      margin-top: 6.6666666667vw;
      text-align: left;
    }
  }
  .p-sns__summary dd a {
    color: inherit;
    text-decoration: none;
  }
  @media (hover: hover) {
    .p-sns__summary dd a:hover {
      text-decoration: underline;
    }
  }
  .p-sns__summary ul,
  .p-sns__summary ol {
    text-align: left;
  }
}
@layer utilities {
  @media screen and (max-width: 767px) {
    .u-hidden-ltSP {
      display: none;
    }
  }
  @media screen and (max-width: 991px) {
    .u-hidden-ltTAB {
      display: none;
    }
  }
  @media screen and (min-width: 768px) {
    .u-hidden-gtTAB {
      display: none;
    }
  }
  @media screen and (min-width: 992px) {
    .u-hidden-gtPC {
      display: none;
    }
  }
}
@layer utilities {
  .screen-reader-text,
  .u-screen-reader {
    clip: rect(1px, 1px, 1px, 1px);
    height: 1px;
    overflow: hidden;
    position: absolute;
    width: 1px;
    word-wrap: normal;
  }
}
@layer utilities {
  .u-ta-left {
    text-align: left;
  }
  .u-ta-center {
    text-align: center;
  }
  .u-ta-right {
    text-align: right;
  }
  @media screen and (max-width: 767px) {
    .u-SP-ta-left {
      text-align: left;
    }
    .u-SP-ta-center {
      text-align: center;
    }
    .u-SP-ta-right {
      text-align: right;
    }
  }
}