/*
Theme Name: ichariba
Theme URI: https://example.com
Author: kt
Description: いちゃりばテーマ
Version: 1.0
*/

:root {
        --orange: #f26b1d;
        --orange-dark: #d9530f;
        --navy: #0f3b73;
        --navy-deep: #09284d;
        --sky: #1ea7c6;
        --turquoise: #4cc9c0;
        --cream: #fffaf2;
        --beige: #f6efe4;
        --brown: #5f3b22;
        --text: #222;
        --text-light: #666;
        --line: #e7ddcf;
        --shadow: 0 12px 32px rgba(0, 0, 0, 0.12);
        --radius: 22px;
        --radius-sm: 14px;
        --max: 1200px;
      }

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

      html {
        scroll-behavior: smooth;
      }

      body {
        font-family: "Noto Sans JP", sans-serif;
        color: var(--text);
        background:
          radial-gradient(
            circle at top left,
            rgba(242, 107, 29, 0.1),
            transparent 28%
          ),
          radial-gradient(
            circle at right center,
            rgba(76, 201, 192, 0.12),
            transparent 24%
          ),
          #fff;
        line-height: 1.7;
      }

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

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

      ul {
        list-style: none;
      }

      .container {
        width: 90%;
        margin: 0 auto;
      }

      .section {
        padding: 88px 0;
        position: relative;
      }

      .section-head {
        text-align: center;
        margin-bottom: 42px;
      }

      .section-head .en {
        display: inline-block;
        font-family: "Josefin Sans", sans-serif;
        font-size: 14px;
        letter-spacing: 0.16em;
        font-weight: 700;
        color: var(--orange);
        margin-bottom: 10px;
        text-transform: uppercase;
      }

      .section-head h2 {
        font-size: clamp(28px, 3.2vw, 46px);
        line-height: 1.25;
        font-weight: 900;
        letter-spacing: 0.02em;
      }

      .section-head p {
        margin-top: 14px;
        color: var(--text-light);
        font-size: 15px;
      }

      .btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 10px;
        min-height: 52px;
        padding: 0 26px;
        border-radius: 999px;
        font-weight: 800;
        font-size: 15px;
        transition: 0.25s ease;
        border: none;
        cursor: pointer;
        box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
      }

      .btn:hover {
        transform: translateY(-2px);
      }

      .btn-orange {
        background: linear-gradient(
          135deg,
          #ff8a3d 0%,
          var(--orange) 55%,
          var(--orange-dark) 100%
        );
        color: #fff;
      }

      .btn-blue {
        background: linear-gradient(
          135deg,
          #2b6fcb 0%,
          var(--navy) 58%,
          var(--navy-deep) 100%
        );
        color: #fff;
      }

      .btn-outline {
        background: #fff;
        color: var(--navy);
        border: 1px solid rgba(15, 59, 115, 0.18);
        box-shadow: none;
      }

/* =========================
   TOP HERO NAV
========================= */

.top-hero-nav {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 100;
  width: 100%;
  padding: 0;
}



.top-hero-nav__inner {
  position: fixed;
  width: 100%;
  max-width: none;
  height: 100px;
  margin: 0;
  padding: 0 clamp(46px, 10vw, 170px) 0 clamp(170px, 30vw, 400px);
  display: flex;
  align-items: center;
  background: rgba(255, 252, 244, 0.96);
  box-shadow:
    0 10px 28px rgba(0, 64, 90, 0.14),
    inset 0 0 0 1px rgba(255, 255, 255, 0.75);
  box-sizing: border-box;
  pointer-events: auto;
  gap: clamp(18px, 2.2vw, 34px);
}

/* =========================
   TOP HEADER FIXED
   header2用
========================= */

.top-hero-nav.js-logo-scroll-nav {
  position: fixed ;
  left: 0;
  top: 0;
  z-index: 9999;
  width: 100%;
  padding: 0;
  pointer-events: none;
}

/* メニュー */

.top-hero-nav__menu {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  width: 100%;
  gap: clamp(22px, 3.8vw, 48px);
  transform: none;
}

.top-hero-nav__menu a {
  display: grid;
  flex: 0 0 auto;
  gap: 3px;
  min-width: max-content;
  padding: 0 4px;
  color: #111;
  text-decoration: none;
  text-align: center;
  white-space: nowrap;
  font-weight: 800;
  line-height: 1.2;
}

.top-hero-nav__menu a span {
  font-size: clamp(11px, 1.22vw, 16px);
}

.top-hero-nav__menu a small {
  font-size: clamp(8.5px, 0.9vw, 14px);
}

/* 花画像共通 */
.top-hero-nav__brand,
.top-hero-nav__deco {
  position: absolute;
  display: block;
  height: auto;
  z-index: 3;
  pointer-events: none;
  user-select: none;
}

.top-hero-nav__deco--left img,
.top-hero-nav__deco--right img {
  display: block;
  width: 100%;
  height: auto;
}

/* 赤い花・青い花 */
.top-hero-nav__deco--left {
  position: absolute;
  z-index: 130;
  top: 20px;
  width: clamp(42px, 5.2vw, 100px);
}

.top-hero-nav__deco--left img {
  display: block;
  width: 100%;
  height: auto;
}

/* 1440px〜1919px：縮小時は285px、広がるほど650pxへ近づく */
@media (min-width: 1440px) and (max-width: 1919px) {
  .top-hero-nav__deco--left {
    left: calc(230px + (100vw - 1440px) * 0.7604);
  }
}

/* 1920px以上：フルサイズは650px固定 */
@media (min-width: 1920px) {
  .top-hero-nav__deco--left {
    left: 650px;
  }
}

/* ノートPC：ロゴに被らない位置まで左へ逃がす */
@media (max-width: 1439px) and (min-width: 768px) {
  .top-hero-nav__deco--left {
    left: 19%;
  }
}

/* 右の花：nav-flower.png */
.top-hero-nav__brand {
  position: absolute;
  right: clamp(28px, 3vw, 70px);
  top: clamp(38px, 3.2vw, 44px);
  z-index: 130;

  width: clamp(42px, 6vw, 100px);
}

.top-hero-nav__deco--leaf {
  right: 0;
  top: 38px;
  width: 26px;
}

/* HEROロゴがメニューに少し重なる想定 */
.top-hero__logo {
  z-index: 40;
}


/* いちゃりば縦ロゴ：ナビ枠基準で固定 */
.top-hero-nav__main-logo {
  position: absolute;
  left: 5%;
  top: 90%;
  transform: translateY(-14%);
  z-index: 50;
  width: clamp(115px, 16.5vw, 200px);
  margin: 0;
  pointer-events: auto;
  filter: drop-shadow(2px 4px 6px rgba(255, 255, 255, 0.9)) drop-shadow(0 3px 8px rgba(255, 255, 255, 1));
}

.top-hero-nav__main-logo a,
.top-hero-nav__main-logo img {
  display: block;
}

.top-hero-nav__main-logo img {
  width: 100%;
  height: auto;
}

/* =========================
   TABLET
========================= */


/* @media (min-width: 1440px) {
.top-hero-nav__menu {
gap: clamp(24px, 5.6vw, 72px);
  }
} */

@media (max-width: 1320px) {
  .top-hero-nav__menu {
    gap: 24px;
  }

  .top-hero-nav__deco--red {
    left: 205px;
  }

  .top-hero-nav__deco--blue {
    left: 245px;
  }
}

/* =========================
   SP
========================= */

@media (max-width: 767px) {
  /* ナビ自体は残す */
  .top-hero-nav {
    display: block;
    top: 12px;
    pointer-events: none;
  }

  /* 白いメニュー背景は消す */
  .top-hero-nav__inner {
    width: auto;
    height: auto;
    padding: 0;
    background: transparent;
    box-shadow: none;
    border-radius: 0;
  }

  /* メニュー文字は非表示 */
  .top-hero-nav__menu {
    display: none;
  }

  /* 花画像も不要なら非表示 */
  .top-hero-nav__brand,
  .top-hero-nav__deco {
    display: none;
  }

  /* いちゃりばロゴだけ表示 */
  .top-hero-nav__main-logo {
    display: block;
    position: absolute;
    left: 25px;
    top: 45px;
    width: 135px;
    margin: 0;
    z-index: 50;
    pointer-events: auto;
  }

  .top-hero-nav__main-logo img {
    display: block;
    width: 65%;
    height: auto;
    transform: translateY(-10%);
  }
}

/* =========================
   SP HAMBURGER MENU
========================= */

/* PCでは非表示 */
.sp-hero-menu {
  display: none;
}

@media (max-width: 767px) {
  .sp-hero-menu {
    display: block;
    position: fixed;
    right: 16px;
    top: 18px;
    z-index: 9999;
  }

  .sp-hero-menu__toggle {
    position: fixed;
    right: 16px;
    top: 18px;
    z-index: 10001;
    width: 54px;
    height: 54px;
    padding: 0;
    border: none;
    border-radius: 50%;
    background: linear-gradient(135deg, #ff9a45 0%, #ff5a1d 100%);
    box-shadow: 0 8px 18px rgba(0, 40, 70, 0.22);
    cursor: pointer;
  }

  .sp-hero-menu__toggle span {
    position: absolute;
    left: 15px;
    width: 24px;
    height: 2px;
    background: #fff;
    border-radius: 999px;
    transition: 0.25s ease;
  }

  .sp-hero-menu__toggle span:nth-child(1) {
    top: 18px;
  }

  .sp-hero-menu__toggle span:nth-child(2) {
    top: 26px;
  }

  .sp-hero-menu__toggle span:nth-child(3) {
    top: 34px;
  }

  .sp-hero-menu.is-open .sp-hero-menu__toggle span:nth-child(1) {
    top: 26px;
    transform: rotate(45deg);
  }

  .sp-hero-menu.is-open .sp-hero-menu__toggle span:nth-child(2) {
    opacity: 0;
  }

  .sp-hero-menu.is-open .sp-hero-menu__toggle span:nth-child(3) {
    top: 26px;
    transform: rotate(-45deg);
  }

  /* 画面いっぱいメニュー */
  .sp-hero-menu__panel {
    position: fixed;
    inset: 0;
    z-index: 10000;

    display: grid;
    grid-template-columns: 34% 1fr;
    column-gap: 18px;
    align-items: center;
    place-content: center;

    width: 100vw;
    height: 100svh;
    padding: 42px 24px 34px;
    background: linear-gradient(
      160deg,
      #35d6c7 0%,
      #00b7c7 45%,
      #008fc3 100%);
    box-sizing: border-box;
    overflow: hidden;

    transform: translateX(100%);
    transition: transform 0.32s ease;
  }

  /* 開いた状態 */
  .sp-hero-menu.is-open .sp-hero-menu__panel {
    transform: translateX(0);
  }

  .sp-hero-menu__head {
    grid-column: 1;
    margin: 0;
    align-self: center;
    padding-top: 0;
    transform: translateY(-60px);
  }

  .sp-hero-menu__head p {
    display: none;
  }

  .sp-hero-menu__head img {
    display: block;
    width: 115px;
    max-width: 100%;
    height: auto;
    filter: drop-shadow(2px 4px 6px rgba(0, 0, 0, 0.25));
  }

  .sp-hero-menu__list {
    align-self: center;
    grid-column: 2;
    margin: 0;
    padding: 0;
    width: 100%;
  }

  .sp-hero-menu__list li {
    position: relative;
    margin: 0 0 10px;
  }

  .sp-hero-menu__list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    width: 14px;
    height: 1px;
    background: rgba(255, 255, 255, 0.75);
  }

  .sp-hero-menu__list a {
    display: grid;
    grid-template-columns: 102px 1fr;
    align-items: center;
    min-height: 42px;
    padding: 0 0 0 28px;
    color: #fff;
    text-decoration: none;
    box-sizing: border-box;
  }

  .sp-hero-menu__list span {
    font-size: 15px;
    line-height: 1.2;
    font-weight: 900;
    letter-spacing: -0.02em;
  }

  .sp-hero-menu__list small {
    font-size: 9px;
    line-height: 1.2;
    font-family: Arial, sans-serif;
    font-weight: 800;
  }

  /* 1つ目だけ丸枠 */
  .sp-hero-menu__list li.is-current a {
    min-height: 48px;
    padding-left: 28px;
    border: 1px solid rgba(255, 255, 255, 0.85);
    border-radius: 999px;
    background: rgba(0, 83, 150, 0.45);
  }

  .sp-hero-menu__list li.is-current::before {
    display: none;
  }

  html.is-sp-menu-open,
  body.is-sp-menu-open {
  overflow: hidden;
  height: 100%;
}
}

      /* =========================
   OKINAWA SEA GRAPE MENU
========================= */
      .sea-menu-wrap {
        position: fixed;
        top: 22px;
        right: 22px;
        z-index: 1200;
      }

      .sea-menu-toggle {
        position: relative;
        width: 98px;
        height: 98px;
        border: none;
        border-radius: 999px;
        cursor: pointer;
        background:
          radial-gradient(
            circle at 30% 30%,
            rgb(255 218 197 / 95%),
            rgb(255 162 81 / 72%) 35%,
            rgb(213 50 50 / 38%) 70% 70%,
            rgb(255 5 5 / 18%) 100%
          ),
          linear-gradient(135deg, rgb(255 94 0 / 92%), #fb6800);
        box-shadow:
          0 18px 40px rgba(0, 0, 0, 0.18),
          inset 0 2px 10px rgb(255 15 15 / 45%),
          inset 0 -12px 24px rgb(255 255 255 / 22%);
        display: grid;
        place-items: center;
        overflow: visible;
        transition:
          transform 0.35s ease,
          box-shadow 0.35s ease;
        backdrop-filter: blur(8px);
      }

      .sea-menu-toggle:hover {
        transform: translateY(-2px) scale(1.02);
        box-shadow:
          0 24px 48px rgba(0, 0, 0, 0.2),
          inset 0 2px 10px rgba(255, 255, 255, 0.45),
          inset 0 -12px 24px rgba(5, 73, 57, 0.22);
      }

      .sea-menu-toggle::before {
        content: "";
        position: absolute;
        inset: -10px;
        border-radius: 999px;
        background:
          radial-gradient(
            circle at 20% 30%,
            rgba(123, 255, 214, 0.35),
            transparent 28%
          ),
          radial-gradient(
            circle at 80% 70%,
            rgba(255, 255, 255, 0.18),
            transparent 30%
          );
        filter: blur(10px);
        z-index: -1;
        pointer-events: none;
      }

      .sea-menu-toggle__label {
        position: absolute;
        top: 45%;
        left: 50%;
        transform: translateX(-50%);
        font-family: "Josefin Sans", sans-serif;
        font-size: 11px;
        font-weight: 700;
        letter-spacing: 0.18em;
        color: #effff8;
        text-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);
      }

      .sea-menu-toggle__icon {
        position: relative;
        width: 54px;
        height: 38px;
        display: grid;
        gap: 8px;
        align-content: center;
        margin-top: 8px;
      }

      .sea-line {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: space-between;
        height: 8px;
        transition:
          transform 0.35s ease,
          opacity 0.35s ease;
        transform-origin: center;
      }

      .sea-line::before {
        content: "";
        position: absolute;
        left: 4px;
        right: 4px;
        top: 50%;
        height: 3px;
        transform: translateY(-50%);
        border-radius: 999px;
        background: linear-gradient(
          90deg,
          rgba(208, 255, 235, 0.95),
          rgba(133, 242, 198, 0.95)
        );
        box-shadow: 0 0 8px rgba(232, 255, 245, 0.35);
      }

      .sea-line i {
        position: relative;
        display: block;
        width: 8px;
        height: 8px;
        border-radius: 999px;
        background: radial-gradient(
          circle at 30% 30%,
          #ffffff 0%,
          #bff6de 36%,
          #5ed0a5 70%,
          #23906f 100%
        );
        box-shadow:
          0 1px 3px rgba(0, 0, 0, 0.16),
          inset 0 1px 2px rgba(255, 255, 255, 0.6);
        z-index: 1;
        transition:
          transform 0.35s ease,
          opacity 0.35s ease;
      }

      .sea-menu-panel {
        position: absolute;
        top: 116px;
        right: 0;
        width: 20vw;
        opacity: 0;
        visibility: hidden;
        transform: translateY(-12px) scale(0.96);
        transform-origin: top right;
        transition:
          opacity 0.38s ease,
          visibility 0.38s ease,
          transform 0.42s cubic-bezier(0.2, 0.8, 0.2, 1);
        pointer-events: none;
      }

      .sea-menu-panel.is-open {
        opacity: 1;
        visibility: visible;
        transform: translateY(0) scale(1);
        pointer-events: auto;
      }

      .sea-menu-panel__inner {
        position: relative;
        padding: 24px 22px 22px;
        border-radius: 5px;
        background: #00327d;
        box-shadow:
          0 26px 60px rgba(0, 0, 0, 0.24),
          inset 0 1px 0 rgba(255, 255, 255, 0.16);
        overflow: hidden;
      }

      .sea-menu-panel__inner::after {
        content: "";
        position: absolute;
        inset: 0;
        background:
          radial-gradient(
            circle at 15% 14%,
            rgba(255, 255, 255, 0.18),
            transparent 14%
          ),
          radial-gradient(
            circle at 82% 22%,
            rgba(255, 255, 255, 0.12),
            transparent 12%
          ),
          radial-gradient(
            circle at 70% 86%,
            rgba(255, 255, 255, 0.08),
            transparent 12%
          );
        pointer-events: none;
      }

      .sea-menu-brand {
        display: inline-flex;
        flex-direction: column;
        gap: 4px;
        margin-bottom: 18px;
      }

      .sea-menu-brand__sub {
        font-size: 11px;
        color: rgba(255, 255, 255, 0.76);
        letter-spacing: 0.08em;
      }

      .sea-menu-brand__main {
        font-family: "Josefin Sans", sans-serif;
        font-size: 36px;
        font-weight: 700;
        color: #ffffff;
        line-height: 1;
      }

      .sea-menu-links {
        display: grid;
        gap: 14px;
      }

      .sea-link {
        position: relative;
        min-height: 76px;
        display: flex;
        align-items: center;
        gap: 12px;
        padding: 12px 14px 12px 26px;
        border-radius: 999px;
        transition:
          transform 0.3s ease,
          background 0.3s ease;
      }

      .sea-link:hover {
        transform: translateX(-4px);
      }

      .sea-link__stem {
        position: absolute;
        left: 12px;
        top: 50%;
        width: 20px;
        height: 1px;
        transform: translateY(-50%);
        background: #fff;
      }

      .sea-link__bubble {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 54px;
        padding: 0 22px;
        font-weight: 900;
        white-space: nowrap;
      }

      .sea-link__bubble--small {
        min-height: 42px;
        padding: 0 16px;
        font-size: 12px;
        font-weight: 800;
      }

      .sea-link--orange .sea-link__bubble {
        color: #fff;
      }

      .sea-link--yellow .sea-link__bubble {
        color: #fff;
      }

      .sea-link--blue .sea-link__bubble {
        color: #fff;
      }

      .sea-link--green .sea-link__bubble {
        color: #fff;
      }

      .sea-link--sky .sea-link__bubble {
        color: #fff;
      }

      .sea-menu-cta {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 12px;
        margin-top: 18px;
      }

      body.menu-open {
        overflow: hidden;
      }

      body.menu-open .sea-menu-toggle {
        background:
          radial-gradient(
            circle at 30% 30%,
            rgba(255, 255, 255, 0.95),
            rgba(255, 255, 255, 0.7) 35%,
            rgba(255, 255, 255, 0.36) 70%,
            rgba(255, 255, 255, 0.18) 100%
          ),
          linear-gradient(
            135deg,
            rgba(255, 143, 74, 0.95),
            rgba(242, 107, 29, 0.95)
          );
      }

      body.menu-open .sea-line--1 {
        transform: translateY(11px) rotate(45deg);
      }

      body.menu-open .sea-line--2 {
        opacity: 0;
      }

      body.menu-open .sea-line--3 {
        transform: translateY(-11px) rotate(-45deg);
      }

      body.menu-open .sea-line i {
        transform: scale(1.08);
      }

      @media (max-width: 768px) {
        .sea-menu-wrap {
          top: 14px;
          right: 14px;
        }

        .sea-menu-toggle {
          width: 82px;
          height: 82px;
        }

        .sea-menu-toggle__label {
          top: 36px;
          font-size: 10px;
        }

        .sea-menu-toggle__icon {
          width: 46px;
          height: 34px;
          gap: 7px;
          margin-top: 7px;
        }

        .sea-menu-panel {
          top: 96px;
          width: min(92vw, 390px);
        }

        .sea-menu-panel__inner {
          padding: 22px 16px 16px;
          border-radius: 5px;
        }

        .sea-menu-brand__main {
          font-size: 30px;
        }

        .sea-menu-links {
          gap: 12px;
        }

        .sea-link {
          min-height: 68px;
          padding: 10px 10px 10px 22px;
          gap: 8px;
          flex-wrap: wrap;
          justify-content: flex-start;
          border-radius: 5px;
        }

        .sea-link__stem {
          width: 12px;
          left: 10px;
        }

        .sea-link__bubble {
          min-height: 48px;
          padding: 0 16px;
          font-size: 14px;
        }

        .sea-link__bubble--small {
          min-height: 36px;
          font-size: 11px;
          padding: 0 12px;
        }

        .sea-menu-cta {
          grid-template-columns: 1fr;
        }
      }

/* =========================
   TOP HERO
========================= */

.top-hero {
  position: relative;
  width: 100vw;
  min-height: 100vh;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  background: #fff;
  overflow: visible;
}

/* Group5背景画像エリア：90vh */
.top-hero__bg {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 90vh;
  z-index: 0;
  overflow: hidden;
}

.top-hero__bg img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

/* 中身も背景画像に合わせて90vh */
.top-hero__content {
  position: relative;
  z-index: 30;
  width: 100%;
  height: 90vh;
  min-height: 640px;
  margin: 0 auto;

  padding-left: 60px;
  padding-right: 60px;
  box-sizing: border-box;
}


/* キャッチコピー */
.top-hero__copy {
  position: absolute;

  /* 画面中央を基準に、少し左・少し下 */
  left: 36%;
  top: 60%;
  transform: translate(-58%, -50%);

  z-index: 5;
  margin: 0;

  color: #fff;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(50px, 4.5vw, 60px);
  line-height: 1.8;
  font-weight: 400;
  letter-spacing: 0.28em;
  text-align: left;

  text-shadow:
    0 2px 8px rgba(0, 70, 100, 0.45),
    0 0 18px rgba(0, 100, 140, 0.25);
  filter: drop-shadow(2px 4px 2px black);
}

/* =========================
   HERO COPY：ノートPC調整
========================= */

@media (max-width: 1366px) and (min-width: 768px) {
  .top-hero__copy {
    left: 38%;
    top: 60%;
    transform: translate(-48%, -50%);
    word-break: keep-all;
    letter-spacing: 0.22em;
    line-height: 1.75;
  }
}

/* 丸画像 */
.top-hero__circle {
  position: absolute;
  overflow: hidden;
  border-radius: 50%;
}

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

/* ラフテー */
.top-hero__circle--rafute {
  left: 150px;
  bottom: -165px;
  width: 330px;
  height: 330px;
  z-index: 3;
}

/* 乾杯 */
.top-hero__circle--drink {
  left: 420px;
  bottom: -40px;
  width: 220px;
  height: 220px;
  z-index: 4;
}

@media (max-width: 1366px) {
  .top-hero__content {
    width: min(960px, calc(100% - 64px));
  }

  .top-hero__circle--rafute {
    left: 20px;
    bottom: -60px;
    width: 280px;
    height: 280px;
  }

  .top-hero__circle--drink {
    left: 270px;
    bottom: 55px;
    width: 190px;
    height: 190px;
  }
}

/* NEWSカード */
.top-hero__news-title {
  margin-bottom: 12px;
  color: #ff6b21;
  font-size: 18px;
  font-weight: 900;
  letter-spacing: 0.06em;
}

.top-hero__news-link {
  display: grid;
  grid-template-columns: 90px 1fr auto;
  align-items: center;
  gap: 18px;
  color: #666;
  text-decoration: none;
  font-size: 13px;
}

.top-hero__news-link time {
  font-weight: 800;
}

.top-hero__news-link span {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.top-hero__news-link em {
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  color: #fff;
  font-style: normal;
  background: #ff6b21;
  border-radius: 50%;
}

/* NEWSは100vhのtop-hero全体基準 */
.top-hero__news {
  position: absolute;
  right: clamp(16px, 4vw, 72px);
  bottom: 36px;
  z-index: 30;

  width: clamp(300px, 34vw, 430px);
  min-height: 130px;
  padding: 22px 28px;

  color: #111;
  background: #fff;
  border-radius: 12px;
  box-sizing: border-box;
  box-shadow: 0 12px 30px rgba(0, 55, 80, 0.18);
}

.top-hero__shisa {
  position: absolute;
  right: 20px;
  top: -60px;
  z-index: 11;
  width: 165px;
  height: auto;
  pointer-events: none;
}
/* =========================
   TABLET BASE
========================= */

@media (max-width: 1024px) and (min-width: 768px) {
  .top-hero {
    min-height: 100vh;
  }

  .top-hero__bg {
    height: 86vh;
    min-height: 620px;
  }

  .top-hero__content {
    width: calc(100% - 56px);
    height: 86vh;
    min-height: 620px;
  }
}

/* SP */
@media (max-width: 767px) {
  .top-hero {
    min-height: 640px;
    margin-bottom: 36px;
  }

  .top-hero__bg {
    height: 70vh;
    min-height: 0;
  }

  .top-hero__content {
    height: 70vh;
    min-height: 0;
  }

  .top-hero__logo {
    left: 7%;
    top: 12%;
    width: 110px;
  }

  .top-hero__copy {
    left: 50%;
    top: 42%;
    transform: translateX(-50%);
    width: max-content;
    max-width: calc(100% - 40px);
    font-size: 28px;
    line-height: 1.8;
    letter-spacing: 0.18em;
    text-align: center;
  }

  .top-hero__circle--rafute {
    left: -3%;
    bottom: 110px;
    width: 160px;
    height: 160px;
  }

  .top-hero__circle--drink {
    left: 40%;
    bottom: 170px;
    width: 110px;
    height: 110px;
  }

  .top-hero__news {
    right: 16px;
    left: 16px;
    bottom: 18px;
    width: auto;
    min-height: 78px;
    padding: 16px 18px;
  }

  .top-hero__news-link {
    grid-template-columns: 78px 1fr auto;
    gap: 10px;
    font-size: 12px;
  }
  .top-hero__shisa {
    right: 20px;
    top: -58px;
    width: 100px;
  }
}

/* =========================================
   TOP HERO TABLET
========================================= */
@media (max-width: 1100px) {
  /* .top-hero {
    min-height: 680px;
  } */

  .top-hero__content {
    min-height: 680px;
  }

  .top-hero__logo {
    left: 6%;
    top: 12%;
    width: 130px;
  }

}

@media (max-width: 767px) {
  .top-hero__news {
    left: 50%;
    right: auto;
    bottom: 18px;
    transform: translateX(-50%);

    width: 90%;
    max-width: 420px;
    min-height: 108px;
    padding: 16px 18px;

    box-sizing: border-box;
    z-index: 35;
  }
    .top-hero__shisa {
    position: absolute;
    right: 12px;
    top: -42px;
    width: 110px;
    height: auto;
    z-index: 5;
  }
}

      /* =========================================
   MOBILE
========================================= */
      @media (max-width: 767px) {
        .ichariba-hero {
          min-height: auto;
        }

        .ichariba-hero__bg {
          display: block;
        }

        .ichariba-hero__bg-left,
        .ichariba-hero__bg-right {
          position: absolute;
          inset: 0;
          width: 100%;
          height: 100%;
        }

        /* スマホでは左右画像を重ねて破綻防止 */
        .ichariba-hero__bg-left {
          z-index: 0;
        }

        .ichariba-hero__bg-right {
          z-index: 0;
          opacity: 0.55;
          mix-blend-mode: screen;
        }

        .ichariba-hero__bg-left img {
          object-position: 28% center;
          transform: scale(1.06);
        }

        .ichariba-hero__bg-right img {
          object-position: 72% center;
          transform: scale(1.08);
        }

        .ichariba-hero::before {
          display: none;
        }

        .ichariba-hero::after {
          width: 145%;
          height: 68px;
        }

        .ichariba-hero__inner {
          min-height: 620px;
          padding: 18px 16px 76px;
        }

        .ichariba-hero__top-buttons {
          justify-content: center;
          gap: 10px;
          margin-bottom: 28px;
          flex-wrap: wrap;
        }

        .ichariba-btn {
          min-height: 42px;
          padding: 0 18px;
          font-size: 13px;
        }

        .ichariba-btn--large {
          min-height: 48px;
          padding: 0 22px;
          font-size: 15px;
          width: 100%;
          max-width: 290px;
        }

        .ichariba-hero__content {
          margin-top: 72px;
          max-width: 100%;
        }

        .ichariba-hero__catch-mini {
          font-size: 22px;
          margin-bottom: 8px;
        }

        .ichariba-hero__title-logo {
          font-size: clamp(42px, 14vw, 64px);
        }

        .ichariba-hero__lead {
          font-size: clamp(34px, 10vw, 50px);
          line-height: 1.22;
        }

        .ichariba-hero__sub {
          margin-top: 14px;
          font-size: 14px;
          line-height: 1.8;
          letter-spacing: 0.02em;
          padding: 0 8px;
        }

        .ichariba-hero__bottom-buttons {
          margin-top: 24px;
          gap: 10px;
          flex-direction: column;
          align-items: center;
        }

        .ichariba-hero__deco {
          right: 10px;
          bottom: 68px;
          width: 86px;
          opacity: 0.9;
        }
      }

      /* 極小端末 */
      @media (max-width: 420px) {
        .ichariba-hero__inner {
          min-height: 580px;
          padding-bottom: 64px;
        }

        .ichariba-hero__content {
          margin-top: 62px;
        }

        .ichariba-hero__lead {
          font-size: 30px;
        }

        .ichariba-hero__sub {
          font-size: 13px;
        }
      }
      .hero {
        position: relative;
        overflow: hidden;
      }

      .hero-wave {
        position: absolute;
        left: 0;
        bottom: -1px;
        width: 100%;
        line-height: 0;
        z-index: 10;
      }

      .hero-wave svg {
        display: block;
        width: 100%;
        height: 80px;
      }

      .hero-wave path {
        fill: #ffffff; /* NEWSセクションの背景色に合わせる */
      }

      /* ===== ヒーローCTA 修正版 ===== */
      .hero {
        position: relative;
      }

      .hero-cta {
        position: absolute;
        top: 26px;
        right: 170px; /* MENUボタン分しっかり左へ逃がす */
        display: flex;
        flex-direction: row;
        align-items: center;
        gap: 14px;
        z-index: 20;
      }

      .cta-btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 210px;
        height: 58px;
        padding: 0 24px;
        border-radius: 999px;
        font-size: 15px;
        font-weight: 700;
        line-height: 1;
        text-decoration: none;
        text-align: center;
        white-space: nowrap;
        box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
        transition:
          transform 0.3s ease,
          box-shadow 0.3s ease,
          opacity 0.3s ease;
      }

      .cta-reserve {
        background: linear-gradient(135deg, #ff9a4d 0%, #ff7b2f 100%);
        color: #fff;
      }

      .cta-business {
        background: linear-gradient(135deg, #2f6dff 0%, #1f4fc2 100%);
        color: #fff;
      }

      .cta-btn:hover {
        transform: translateY(-2px);
        box-shadow: 0 12px 30px rgba(0, 0, 0, 0.24);
      }

      @media (max-width: 1200px) {
        .hero-cta {
          top: 24px;
          right: 155px;
          gap: 10px;
        }

        .cta-btn {
          min-width: 180px;
          height: 50px;
          font-size: 13px;
          padding: 0 18px;
        }
      }

      @media (max-width: 768px) {
        .hero-cta {
          top: 78px; /* MENUの下へ逃がす */
          right: 14px;
          gap: 8px;
          flex-wrap: wrap;
          justify-content: flex-end;
        }

        .cta-btn {
          min-width: auto;
          height: 40px;
          padding: 0 14px;
          font-size: 11px;
        }
      }


/* =========================
   NEWS
========================= */

/* NEWS全体を見本画像の横長帯に近づける */
.news-strip {
  position: relative;
  padding: 16px 0 !important;
  overflow: hidden;
  background:
    radial-gradient(circle at 12% 28%, rgba(139, 82, 32, 0.12) 0 2px, transparent 3px),
    radial-gradient(circle at 78% 72%, rgba(139, 82, 32, 0.10) 0 2px, transparent 3px),
    linear-gradient(90deg, #edc996 0%, #f7deb4 28%, #f5d8a8 66%, #edc48c 100%) !important;
  border-top: 4px solid #063649;
  border-bottom: 4px solid #063649;
}

/* 既存の大きな花背景を消す */
.news-strip::before,
.news-strip::after {
  content: "" !important;
  font-size: 0 !important;
}

/* 外枠 */
.news-strip__inner {
  width: min(calc(100% - 32px), var(--max));
  margin: 0 auto;
  display: grid;
  gap: 18px;
  align-items: center;
  padding: 0;
}

/* 左タイトル */
.news-title-block {
  position: relative;
  display: grid !important;
  grid-template-columns: 78px 1fr !important;
  gap: 14px !important;
  align-items: center !important;
  padding: 0 !important;
  text-align: left !important;
}

.news-title-block__eyebrow,
.news-title-block__lead {
  display: none !important;
}

.news-title-row {
  position: relative;
  display: block !important;
  margin: 0 !important;
}

/* NEWSを「お知らせ NEWS」の札にする */
.news-title {
  position: relative;
  width: 138px !important;
  min-height: 74px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 5px !important;
  color: transparent !important;
  font-size: 0 !important;
  line-height: 1 !important;
  background:
    linear-gradient(180deg, rgba(255, 250, 231, 0.96) 0%, rgba(244, 221, 180, 0.98) 100%);
  border: 2px solid rgba(90, 52, 22, 0.42);
  border-radius: 3px;
  box-shadow:
    0 8px 15px rgba(94, 53, 19, 0.16),
    inset 0 0 0 1px rgba(255, 255, 255, 0.55);
  transform: rotate(-2.5deg);
}

.news-title::before {
  content: "お知らせ";
  color: #251609;
  font-size: 24px;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.news-title::after {
  content: "NEWS";
  color: #251609;
  font-family: "Josefin Sans", sans-serif;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.08em;
}


/* 中央＋右ボタン */
.news-panel {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 36px;
  width: 100%;
  padding: 0;
  background: transparent;
  border: none;
  box-shadow: none;
  top: auto;
}


.news-panel::before,
.news-panel::after {
  display: none ;
}

/* ニュース一覧の白い箱 */
.news-list {
  display: grid;
  gap: 0;
  width: 810px;
  max-width: 810px;
  flex: 0 1 810px;
  padding: 12px 22px;
  background: rgba(255, 246, 225, 0.58);
  border-radius: 5px;
  box-shadow:
    inset 0 0 0 1px rgba(135, 83, 38, 0.12),
    0 2px 8px rgba(110, 60, 22, 0.06);
}

/* ここが崩れ対策の本体 */
.news-item {
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr);
  align-items: center;
  gap: 22px;
  min-height: 30px;
  padding: 0;
  color: #3b2411;
  text-decoration: none;
  border-bottom: 1px solid rgba(126, 76, 33, 0.22);
  writing-mode: horizontal-tb;
}

.news-item:last-child {
  border-bottom: none;
}

.news-item:hover {
  transform: none;
}
.news-date {
  display: block;
  color: #df4d24;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.04em;
  white-space: nowrap;
}

.news-text {
  display: block;
  min-width: 0;
  overflow: hidden;
  color: #432714;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.03em;
  line-height: 1.5;
  white-space: nowrap;
  text-overflow: ellipsis;
}


.news-item:hover .news-text {
  color: #d33a18;
}

/* 参考画像ではNEWと矢印は不要 */
.news-badge,
.news-arrow {
  display: none;
}

/* View Moreを右側に独立配置 */
.news-more {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  margin-top: 0;
  align-self: center;
}

.news-more-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 160px;
  height: 48px;
  padding: 0 18px;
  color: #2a180b;
  text-decoration: none;
  font-size: 0;
  font-weight: 900;
  letter-spacing: 0.04em;
  background: rgba(255, 248, 229, 0.78);
  border: 2px solid rgba(47, 67, 58, 0.68);
  border-radius: 999px;
  box-shadow:
    0 5px 0 rgba(117, 72, 32, 0.13),
    inset 0 0 0 1px rgba(255, 255, 255, 0.55);
  transition: transform 0.2s ease, background 0.2s ease;
}

.news-more-btn::before {
  content: "お知らせ一覧へ";
  color: #2a180b;
  font-size: 14px;
  font-weight: 900;
}

.news-more-btn::after {
  content: "▶";
  margin-left: 10px;
  color: #2a180b;
  font-size: 10px;
  transform: translateY(1px);
}

.news-more-btn span,
.news-more-btn .arrow {
  display: none;
}

.news-more-btn:hover {
  background: rgba(255, 252, 240, 0.96);
  color: #2a180b;
  transform: translateY(-2px);
}


/* スマホ */
@media (max-width: 991px) {
  .news-strip__inner {
    width: min(720px, calc(100% - 32px)) !important;
    grid-template-columns: 1fr !important;
    gap: 18px !important;
  }

  .news-title-block {
    justify-content: center !important;
  }

  .news-panel {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
    width: 90%;
  }

  .news-more {
    justify-content: center !important;
  }
    .news-shisa {
    width: 90px;
    opacity: 0.85;
  }
}

/* =========================
   NEWS SP版レイアウト修正
========================= */
@media (max-width: 767px) {
  .news-strip {
    padding: 24px 0 32px;
    overflow: hidden;
  }

  .news-strip__inner {
    width: calc(100% - 28px);
    margin: 0 auto;
    padding-left: 0;
    padding-right: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 18px;
  }

  .news-title-block {
    position: relative;
    z-index: 3;
    width: 100%;
    display: flex;
    justify-content: center;
    margin: 0 0 15px;
    padding: 0;
    text-align: center;
  }

  .news-title-row {
    width: auto;
    margin: 0;
  }

  .news-title {
    margin: 0 auto;
  }

  .news-panel {
    position: relative;
    z-index: 2;
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
    top: auto;
  }

  .news-list {
    width: 100%;
    max-width: none;
    margin: 0 auto;
    padding: 10px 14px;
  }

  .news-item {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 8px;
    min-height: 36px;
    padding: 0;
  }

  .news-date {
    font-size: 12px;
    line-height: 1.4;
    white-space: nowrap;
  }

  .news-text {
    min-width: 0;
    font-size: 13px;
    line-height: 1.4;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .news-more {
    position: relative;
    z-index: 3;
    display: flex;
    justify-content: center;
    width: 100%;
    margin-top: 0;
  }

  .news-more-btn {
    min-width: 160px;
    height: 44px;
  }

  .news-shisa {
    z-index: 1;
    bottom: 12px;
    opacity: 1;
  }

  .news-shisa--left {
    left: 18px;
  }

  .news-shisa--right {
    right: 18px;
  }
}


/* =========================
   TOP BRIDGE / 事業導線
========================= */

.top-bridge {
  position: relative;
  overflow: hidden;
  padding: 60px 0 86px;
  background: linear-gradient(
    180deg,
    rgba(215, 247, 250, 0.96) 0%,
    rgba(197, 239, 242, 0.96) 100%
  );
}

/* 下部の花・葉の装飾画像 */
.top-bridge::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -2px;
  height: 180px;
  z-index: 0;
  pointer-events: none;
  background-image: url("imgs/Rectangle17.png");
  background-repeat: repeat-x;
  background-position: center bottom;
  background-size: auto 420px;
}
.top-bridge .container {
  position: relative;
  z-index: 1;
}

.top-bridge__title {
  margin: 0 0 34px;
  color: #071827;
  font-size: clamp(24px, 2.4vw, 32px);
  line-height: 1.35;
  font-weight: 950;
  text-align: center;
  letter-spacing: 0.03em;
}

.top-bridge__cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 32px;
  width: min(1040px, 100%);
  margin: 0 auto;
}

.top-bridge-card {
  position: relative;
  min-height: 225px;
  overflow: hidden;
  border-radius: 3px;
}

.top-bridge-card__link {
  position: relative;
  display: block;
  min-height: 225px;
  height: 100%;
  color: inherit;
  text-decoration: none;
  overflow: hidden;
}

.top-bridge-card__image {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center bottom;
}

/* 文字化け対策：文字ではなくCSS三角形で矢印 */
.top-bridge-card__button::after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  margin-left: 28px;
  border-top: 5px solid transparent;
  border-bottom: 5px solid transparent;
  border-left: 7px solid #fff;
}

.top-bridge-card__body {
  position: relative;
  z-index: 2;
  width: 100%;
  min-height: 220px;
  padding: 18px 28px 16px;
  box-sizing: border-box;
  color: #fff;

}

.top-bridge-card__body h3 {
  margin: 0 0 18px;
  color: navy;
  font-size: clamp(22px, 2.2vw, 26px);
  line-height: 1.25;
  font-weight: 400;
  letter-spacing: 0.04em;
  font-family: "Mochiy Pop One";
  text-shadow: 0 4px 4px #FFF;

}

.top-bridge-card__body p {
  margin: 0;
  color: #071827;
  font-size: 14px;
  line-height: 1.8;
  font-weight: 400;
  font-family: "Mochiy Pop One";
  text-shadow: 0 4px 4px #FFF;
}

/* オレンジボタン */
.top-bridge-card__button {
  position: absolute;
  right: 15px;
  bottom: 15px;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 190px;
  height: 44px;
  padding: 0 24px;
  color: #fff;
  font-size: 13px;
  font-weight: 950;
  letter-spacing: 0.04em;
  background: linear-gradient(180deg, #ff8a35 0%, #f25b19 100%);
  border-radius: 999px;
  box-shadow: 0 8px 20px rgba(229, 79, 18, 0.28);
}

.top-bridge-card__link:hover .top-bridge-card__image {
  transform: scale(1.04);
}

/* =========================
   TABLET
========================= */

@media (max-width: 991px) {
  .top-bridge {
    padding: 44px 0 82px;
  }

  .top-bridge::after {
    height: 105px;
    background-size: auto 105px;
  }

  .top-bridge__cards {
    gap: 20px;
  }

  .top-bridge-card__body {
    width: 68%;
    padding: 28px 22px 24px;
  }

  .top-bridge-card__button {
    right: -92px;
  }
}

/* =========================
   SP
========================= */

@media (max-width: 767px) {
  .top-bridge {
    padding: 38px 0 72px;
  }

  .top-bridge::after {
    height: 88px;
    background-size: auto 200px;
  }

  .top-bridge__title {
    margin-bottom: 24px;
    font-size: 24px;
  }

  .top-bridge__cards {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .top-bridge-card,
  .top-bridge-card__link {
    min-height: 230px;
  }

  .top-bridge-card__body {
    width: 72%;
    min-height: 230px;
    padding: 26px 20px 24px;
  }

  .top-bridge-card__body h3 {
    font-size: 24px;
  }

  .top-bridge-card__body p {
    font-size: 13px;
    line-height: 1.75;
  }

  .top-bridge-card__link {
    display: block;
    min-height: 230px;
  }

  .top-bridge-card__body {
    position: relative;
    width: 100%;
    min-height: 230px;
    padding: 26px 22px 88px;
    box-sizing: border-box;
  }

  /* 文字エリアを背景写真いっぱいに広げる */
  .top-bridge-card__text {
    width: 100%;
    max-width: none;
  }

  .top-bridge-card__body h3 {
    margin: 0 0 12px;
    font-size: 25px;
    line-height: 1.35;
  }

  .top-bridge-card__body p {
    width: 100%;
    margin: 0;
    font-size: 13px;
    line-height: 1.45;
    letter-spacing: -0.03em;
  }

  /* オレンジボタンを文字の下・横いっぱいに */
  .top-bridge-card__button {
    position: absolute;
    left: 22px;
    right: 22px;
    bottom: 22px;

    width: auto;
    min-width: 0;
    height: 46px;
    padding: 0 22px;

    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;

    box-sizing: border-box;
    white-space: nowrap;
  }

  .top-bridge-card__button::after {
    margin-left: 0;
    flex: 0 0 auto;
  }
}

/* =========================
   TOP ACCESS
========================= */

.top-access {
  position: relative;
  overflow: visible;
  padding: 0;
  background: #fff;
}

.top-access__inner {
  position: relative;
  width: auto;
  height: 520px;
  margin: 0 auto;
  padding: 0;
  box-sizing: border-box;
}

/* 見出し */
.top-access__title {
  position: absolute;
  left: 0;
  right: 0;
  top: 32px;
  z-index: 10;
  margin: 0;
  color: #111;
  font-family: "Mochiy Pop One", "Hiragino Maru Gothic ProN", "Yu Gothic", sans-serif;
  font-size: 32px;
  line-height: 1.35;
  font-weight: 400;
  text-align: center;
  letter-spacing: 0.02em;
}

/* 装飾画像 */
.top-access__deco {
  position: absolute;
  z-index: 1;
  display: block;
  height: auto;
  pointer-events: none;
  user-select: none;
}

/* 左：水色の渦装飾 */
.top-access__deco--left {
  width: 380px;
}

/* 右：花装飾 */
.top-access__deco--right {
  right: 5px;
  top: -45px;
  width: 315px;
  z-index: 8;
}

/* 地図＋アクセス情報の親 */
.top-access__content {
  position: static;
  width: 100%;
  height: 100%;
  margin: 0;
  display: block;
}

/* 地図 */
.top-access__map {
  position: absolute;
  left: 45%;
  top: 50%;
  transform: translate(-50%, -50%);
  z-index: 4;

  width: min(720px, calc(100vw - 240px));
  aspect-ratio: 800 / 400;

  margin: 20px;
  background: #fff;
  box-sizing: border-box;
  overflow: hidden;
}

.top-access__map iframe,
.top-access__map img {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  object-fit: cover;
}

/* アクセス情報 */
.top-access__info {
  position: absolute;

  /* 地図の右端に追従 */
  left: calc(40% + min(400px, calc((100vw - 80px) / 2)) - 8px);

  top: 60%;
  transform: translateY(-35%);
  z-index: 5;

  width: clamp(220px, 22vw, 250px);
  height: auto;
  min-height: 0;
  margin: 0;
  padding: clamp(16px, 1.7vw, 20px) clamp(20px, 2vw, 26px) clamp(18px, 1.8vw, 22px);

  color: #000;
  background: rgba(214, 250, 244, 0.94);
  box-sizing: border-box;
  overflow: visible;
}

.top-access__info h3 {
  margin: 0 0 12px;
  color: #000;
  font-family: "Mochiy Pop One", "Hiragino Maru Gothic ProN", "Yu Gothic", sans-serif;
  font-size: clamp(15px, 1.4vw, 17px);
  line-height: 1.35;
  font-weight: 400;
}

.top-access__info p {
  margin: 0;
  color: #000;
  font-family: "Yu Gothic", "YuGothic", "Hiragino Sans", "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: clamp(11px, 1vw, 12px);
  line-height: 1.7;
  font-weight: 700;
}

/* =========================
   SP ACCESS レイアウト調整
========================= */

@media (max-width: 767px) {
  .top-access {
    position: relative;
    overflow: hidden;
    padding: 28px 0 38px;
    background: #fff;
  }

  .top-access__inner {
    position: relative;
    width: calc(100% - 28px);
    height: auto;
    min-height: 0;
    margin: 0 auto;
    overflow: visible;
  }

  /* タイトル */
  .top-access__title {
    position: relative;
    left: auto;
    right: auto;
    top: auto;
    z-index: 10;
    margin: 0 0 18px;
    font-size: 22px;
    line-height: 1.45;
    text-align: center;
  }

  /* 中身は縦並び */
  .top-access__content {
    position: relative;
    display: block;
    width: 100%;
    height: auto;
    z-index: 4;
  }

  /* Googleマップ：タイトル下に大きく */
  .top-access__map {
    position: relative;
    left: auto;
    top: auto;
    transform: none;

    width: 100%;
    height: 260px;
    margin: 0 0 28px;

    z-index: 5;
    border: none;
    background: #fff;
    box-sizing: border-box;
    overflow: hidden;
  }

  .top-access__map iframe,
  .top-access__map img {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
  }

  /* アクセスカード：全体的に小さく */
  .top-access__info {
    position: relative;
    left: auto;
    top: auto;
    transform: none;

    width: 82%;
    max-width: 320px;
    min-height: 0;
    margin: 0 auto;
    padding: 22px 24px 24px;

    z-index: 6;
    background: rgba(214, 250, 244, 0.94);
    box-sizing: border-box;
    overflow: visible;
  }

  .top-access__info h3 {
    margin: 0 0 14px;
    font-size: 18px;
    line-height: 1.35;
  }

  .top-access__info p {
    margin: 0;
    font-size: 12px;
    line-height: 1.75;
    font-weight: 700;
  }

  /* 左の水色装飾：アクセスカード左側・後ろ */
  .top-access__deco--left {
    position: absolute;
    left: -78px;
    top: 320px;
    width: 210px;
    z-index: 2;
    opacity: 0.72;
    pointer-events: none;
  }

  /* 右の花装飾：アクセスカード右上 */
  .top-access__deco--right {
    position: absolute;
    right: -34px;
    top: 320px;
    width: 150px;
    z-index: 7;
    opacity: 0.95;
    pointer-events: none;
  }
}

/* =========================
   TOP FOOTER
========================= */

.top-footer {
  position: relative;
  overflow: hidden;
  color: #06243a;
  background: #008de0;
}

/* 背景画像 */
.top-footer__bg {
  position: absolute;
  inset: 0 0 34px;
  z-index: 0;
}

.top-footer__bg img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center bottom;
}

/* 中身 */
.top-footer__inner {
  position: relative;
  z-index: 1;
  width: min(1080px, calc(100% - 48px));
  min-height: clamp(520px, 70vh, 650px);
  margin: 0 auto;
  padding: 54px 0 48px;
  box-sizing: border-box;
}

/* ロゴ */
.top-footer__logo {
  position: absolute;
  left: 70px;
  top: 60px;
  width: 145px;
}

.top-footer__logo-link {
  display: inline-block;
  text-decoration: none;
}

.top-footer__logo img {
  display: block;
  width: 100%;
  height: auto;
}

/* フッターナビ */
.top-footer__nav {
  position: absolute;
  left: 305px;
  top: 130px;
  display: grid;
  grid-template-columns: 170px 130px 190px;
  gap: 34px;
}

.top-footer__nav-col h3 {
  margin: 0 0 8px;
  color: #ff5b1c;
  font-size: 15px;
  line-height: 1.2;
  font-weight: 950;
  letter-spacing: 0.03em;
}

.top-footer__nav-col a {
  display: block;
  color: #06243a;
  text-decoration: none;
  font-size: 14px;
  line-height: 1.65;
  font-weight: 800;
}

.top-footer__nav-col a:hover {
  color: #ff5b1c;
}

/* 電話番号 */
.top-footer__tel {
  position: absolute;
  left: 305px;
  top: 340px;
  margin: 0;
  color: #ff5b1c;
  font-size: 20px;
  line-height: 1;
  font-weight: 950;
  letter-spacing: 0.03em;
}
.top-footer__tel::before {
  content: "";
  position: absolute;
  left: 0;
  top: -10px;
  width: 512px;
  height: 1px;
  background: rgba(255, 255, 255, 0.65);
}

/* SNS */
.top-footer__sns {
  position: absolute;
  right: 112px;
  top: 54px;
  display: flex;
  gap: 14px;
  align-items: center;
}

.top-footer__sns-link {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  color: #fff;
  text-decoration: none;
  font-size: 12px;
  font-weight: 900;
  border-radius: 50%;
}

.top-footer__sns-link--fb {
  background: #2454a4;
}

.top-footer__sns-link--line {
  background: #19bf42;
  font-size: 9px;
}

.top-footer__sns-link--ig {
  background: linear-gradient(135deg, #833ab4, #fd1d1d, #fcb045);
}

/* 下部バー */
.top-footer__bottom {
  position: relative;
  z-index: 2;
  display: flex;
  justify-content: space-between;
  align-items: center;
  min-height: 34px;
  padding: 0 88px;
  color: #fff;
  background: #ff6b1d;
  box-sizing: border-box;
}

.top-footer__bottom p {
  margin: 0;
  font-size: 11px;
  line-height: 1.4;
  font-weight: 700;
}

/* =========================
   TABLET
========================= */

@media (max-width: 991px) {
  .top-footer__inner {
    width: min(720px, calc(100% - 40px));
    min-height: 430px;
    padding: 44px 0 56px;
  }

  .top-footer__logo {
    left: 0;
    top: 42px;
    width: 120px;
  }

  .top-footer__nav {
    left: 170px;
    top: 48px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
    width: calc(100% - 170px);
  }

  .top-footer__tel {
    left: 170px;
    top: 205px;
  }

  .top-footer__sns {
    right: 0;
    top: 300px;
  }

  .top-footer__bottom {
    padding: 0 28px;
  }
  /* 電話番号 */
.top-footer__tel {
  top: 230px;
  }
}

/* =========================
   SP FOOTER
========================= */

@media (max-width: 767px) {
  .top-footer {
    overflow: hidden;
  }

  .top-footer__bg {
    inset: 0 0 54px;
  }

  .top-footer__bg img {
    object-position: center bottom;
  }

  .top-footer__inner {
    position: relative;
    display: grid;
    grid-template-columns: 34% 1fr;
    column-gap: 36px;
    row-gap: 24px;
    align-items: start;

    width: calc(100% - 32px);
    min-height: 560px;
    margin: 0 auto;
    padding: 54px 0 76px;
    box-sizing: border-box;
  }

  /* 左：ロゴ */
  .top-footer__logo {
    position: relative;
    left: auto;
    top: auto;
    width: 118px;
    margin: 0;
    grid-column: 1;
    grid-row: 1;
    justify-self: center;
  }

  .top-footer__logo img {
    display: block;
    width: 100%;
    height: auto;
  }

  /* 右：メニュー */
  .top-footer__nav {
    position: relative;
    left: auto;
    top: auto;

    grid-column: 2;
    grid-row: 1;

    display: grid;
    grid-template-columns: 1fr;
    gap: 18px;
    width: 100%;
  }

  .top-footer__nav-col {
    text-align: left;
  }

  .top-footer__nav-col h3 {
    margin: 0 0 6px;
    color: #ff5b1c;
    font-size: 15px;
    line-height: 1.3;
    font-weight: 950;
    letter-spacing: 0.03em;
  }

  .top-footer__nav-col a {
    display: block;
    color: #06243a;
    text-decoration: none;
    font-size: 13px;
    line-height: 1.65;
    font-weight: 800;
  }

  /* 下：電話番号 */
  .top-footer__tel {
    position: relative;
    left: auto;
    top: auto;

    grid-column: 1 / -1;
    grid-row: 2;

    margin: 2px 0 0;
    padding-top: 18px;
    color: #ff5b1c;
    font-size: 24px;
    line-height: 1.2;
    font-weight: 950;
    text-align: center;
    letter-spacing: 0.02em;
  }

  .top-footer__tel::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 0;
    width: 82%;
    height: 1px;
    background: rgba(255, 255, 255, 0.75);
    transform: translateX(-50%);
  }

  /* 下：SNS 大きめ */
  .top-footer__sns {
    position: relative;
    right: auto;
    top: auto;

    grid-column: 1 / -1;
    grid-row: 3;

    display: flex;
    justify-content: center;
    align-items: center;
    gap: 16px;
    margin-top: -8px;
  }

  .top-footer__sns-link {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    color: #fff;
    text-decoration: none;
    font-size: 14px;
    font-weight: 900;
    border-radius: 50%;
  }

  .top-footer__sns-link--line {
    font-size: 10px;
  }

  /* 下部コピー */
  .top-footer__bottom {
    display: grid;
    gap: 4px;
    justify-content: center;
    text-align: center;
    min-height: 54px;
    padding: 8px 16px;
  }

  .top-footer__bottom p {
    font-size: 10px;
  }
}

/* =========================
   TOP ABOUT / MENU INTRO
========================= */

.top-about-menu {
  position: relative;
  overflow: hidden;
  background: #fff;
}

/* =========================
   上段：海背景 + メッセージ + 店内写真
========================= */

.top-about-menu__upper {
  position: relative;
  min-height: 380px;
  overflow: hidden;
}

.top-about-menu__upper-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.top-about-menu__upper-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.58);
}


.top-about-menu__upper-bg img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center bottom;
}

.top-about-menu__upper-inner {
  position: relative;
  z-index: 1;
  width: min(1080px, calc(100% - 80px));
  min-height: 300px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 360px 1fr;
  gap: 34px;
  align-items: start;
  padding-top: 85px;
  box-sizing: border-box;
}

.top-about-menu__message {
  padding-top: 8px;
}

.top-about-menu__message h2 {
  margin: 0 0 18px;
  color: #071827;
  font-family: "Mochiy Pop One", "Hiragino Maru Gothic ProN", "Yu Gothic", sans-serif;
  font-size: 32px;
  line-height: 1.28;
  font-weight: 400;
  letter-spacing: 0.02em;
  text-shadow: 2px 2px 0 rgba(255, 255, 255, 0.95), -2px 2px 0 rgba(255, 255, 255, 0.95), 2px -2px 0 rgba(255, 255, 255, 0.95), -2px -2px 0 rgba(255, 255, 255, 0.95), 0 6px 10px rgba(0, 60, 90, 0.28);
}

.top-about-menu__message p {
  margin: 0;
  color: #071827;
  font-family:
    "07YsashisaGothicTegaki",
    "Yomogi",
    "Zen Kurenaido",
    "Hiragino Maru Gothic ProN",
    "Yu Gothic",
    sans-serif;
  font-size: 16px;
  line-height: 2;
  font-weight: 700;
  letter-spacing: 0.03em;
}

/* =========================
   ABOUT 店内写真スライダー
   Safari対応・自然ループ版
========================= */

.top-about-menu__shop-slider {
  position: relative;
  width: 100%;
  overflow: hidden;
  padding: 4px 0;
}

/* 左右のぼかし */
.top-about-menu__shop-slider::before,
.top-about-menu__shop-slider::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  z-index: 5;
  width: 58px;
  pointer-events: none;
}

.top-about-menu__shop-slider::before {
  left: 0;
  background: linear-gradient(
    90deg,
    rgba(255, 255, 255, 0.95) 0%,
    rgba(255, 255, 255, 0.65) 38%,
    rgba(255, 255, 255, 0) 100%
  );
}

.top-about-menu__shop-slider::after {
  right: 0;
  background: linear-gradient(
    270deg,
    rgba(255, 255, 255, 0.95) 0%,
    rgba(255, 255, 255, 0.65) 38%,
    rgba(255, 255, 255, 0) 100%
  );
}

.top-about-menu__shop-track {
  --slide-count: 15;
  --slide-w: clamp(190px, 17vw, 235px);
  --slide-gap: 18px;

  display: flex;
  gap: var(--slide-gap);
  width: max-content;

  animation: aboutShopSlide 70s linear infinite;
  will-change: transform;
  transform: translate3d(0, 0, 0);
}

.top-about-menu__shop-track figure {
  flex: 0 0 var(--slide-w);
  width: var(--slide-w);
  margin: 0;
  overflow: hidden;
  border-radius: 10px;
  box-shadow: 0 10px 24px rgba(0, 48, 72, 0.14);
  background: #fff;
}

.top-about-menu__shop-track img {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
}


/* 15枚分＋15個分のgapだけ動かす */
@keyframes aboutShopSlide {
  0% {
    transform: translate3d(0, 0, 0);
  }

  100% {
    transform: translate3d(
      calc(-1 * ((var(--slide-w) + var(--slide-gap)) * var(--slide-count))),
      0,
      0
    );
  }
}

/* ホバー時はいったん停止 */
.top-about-menu__shop-slider:hover .top-about-menu__shop-track {
  animation-play-state: paused;
}

/* SP */
@media (max-width: 767px) {
  .top-about-menu__shop-track {
    gap: 10px;
    animation-duration: 70s;
  }

  .top-about-menu__shop-track figure {
    flex-basis: 150px;
    border-radius: 8px;
  }

  .top-about-menu__shop-slider::before,
  .top-about-menu__shop-slider::after {
    width: 28px;
  }
}


/* =========================
   下段：柄背景 + 代表 + 丸料理
========================= */

.top-about-menu__lower {
  position: relative;
  min-height: 420px;
  overflow: visible;
}

.top-about-menu__lower-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.top-about-menu__lower-bg img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* 柄を少し薄くしたい場合 */
.top-about-menu__lower-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.18);
}

.top-about-menu__lower-inner {
  position: relative;
  z-index: 1;
  width: min(1200px, calc(100% - 80px));
  min-height: 330px;
  margin: 0 auto;
}

/* 代表写真 */
.top-about-menu__owner {
  position: absolute;
  left: -90px;
  bottom: -110px;
  z-index: 5;
  width: 360px;
  margin: 0;
}

.top-about-menu__owner img {
  display: block;
  width: 100%;
  height: auto;
}

/* 丸画像共通 */
.top-about-menu__food {
  position: absolute;
  z-index: 3;
  margin: 0;
  overflow: hidden;
  border-radius: 50%;
}

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

/* 左の大きい料理 */
.top-about-menu__food--main {
  position: absolute;
  left: 220px;
  top: -32px;
  width: 330px;
  height: 330px;
}

/* 春巻き */
.top-about-menu__food--spring {
  position: absolute;
  left: 710px;
  bottom: -40px;
  width: 220px;
  height: 220px;
  z-index: 4;
}

/* 右の大きい海ぶどう */
.top-about-menu__food--umibudo {
  position: absolute;
  left: 880px;
  top: -14px;
  width: 330px;
  height: 330px;
}

/* 見出し */
.top-about-menu__catch {
  position: absolute;
  left: 510px;
  top: 42px;
  z-index: 6;
}

.top-about-menu__catch h2 {
  margin: 0;
  color: #071827;
  font-size: 32px;
  line-height: 1.35;
  font-weight: 950;
  letter-spacing: 0.02em;
  text-shadow: 2px 2px 0 rgba(255, 255, 255, 0.95), -2px 2px 0 rgba(255, 255, 255, 0.95), 2px -2px 0 rgba(255, 255, 255, 0.95), -2px -2px 0 rgba(255, 255, 255, 0.95), 0 6px 10px rgba(0, 60, 90, 0.28);
}

/* ボタン */
.top-about-menu__button {
  position: absolute;
  left: 260px;
  bottom: -50px;
  z-index: 7;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 240px;
  height: 48px;
  padding: 0 24px;
  color: #fff;
  text-decoration: none;
  font-size: 13px;
  font-weight: 900;
  background: linear-gradient(180deg, #ff8a35 0%, #f05a1f 100%);
  border-radius: 999px;
  box-shadow: 0 8px 20px rgba(230, 88, 20, 0.24);
}

.top-about-menu__button::after {
  content: "";
  width: 0;
  height: 0;
  margin-left: 28px;
  border-top: 5px solid transparent;
  border-bottom: 5px solid transparent;
  border-left: 7px solid #fff;
}

/* =========================
   TABLET
========================= */

@media (max-width: 1100px) {
  .top-about-menu__upper-inner,
  .top-about-menu__lower-inner {
    width: min(940px, calc(100% - 48px));
  }

  .top-about-menu__upper-inner {
    grid-template-columns: 280px 1fr;
    gap: 28px;
  }

  .top-about-menu__message h2 {
    font-size: 27px;
  }

  .top-about-menu__owner {
    width: 310px;
  }

  .top-about-menu__food--main {
    left: 160px;
    width: 235px;
    height: 235px;
  }

  .top-about-menu__catch {
    left: 430px;
  }

  .top-about-menu__food--spring {
    left: 540px;
  }

  .top-about-menu__food--umibudo {
      width: 280px;
      height: 280px;
      left: 680px;
  }

  .top-about-menu__button {
    left: 205px;
  }
}

/* =========================
   SP
========================= */

@media (max-width: 767px) {
  .top-about-menu__upper {
    min-height: auto;
  }

  .top-about-menu__upper-inner {
    display: block;
    width: calc(100% - 32px);
    min-height: auto;
    padding: 36px 0 26px;
  }

  .top-about-menu__message {
    padding-top: 0;
    margin-bottom: 22px;
    text-align: center;
  }

  .top-about-menu__message h2 {
    font-size: 26px;
  }

  .top-about-menu__message p {
    font-size: 13px;
    line-height: 1.9;
  }

  .top-about-menu__shop-photos {
    gap: 8px;
  }

  .top-about-menu__shop-photos figure {
    border-radius: 8px;
  }

    .top-about-menu__lower {
    position: relative;
    min-height: 620px;
    overflow: hidden;
    background-image: url("imgs/about-pattern-bg.png");
    background-repeat: repeat;
    background-position: center top;
    background-size: 520px auto;
  }

  .top-about-menu__lower-bg {
    display: none;
  }

  .top-about-menu__lower-inner {
    position: relative;
    width: 100%;
    min-height: 620px;
    margin: 0 auto;
  }

  /* 見出し：上中央 */
  .top-about-menu__catch {
    position: absolute;
    left: 50%;
    top: 22px;
    z-index: 8;
    transform: translateX(-50%);
    width: 100%;
    text-align: center;
  }

  .top-about-menu__catch h2 {
    margin: 0;
    color: #071827;
    font-family: "Mochiy Pop One", "Hiragino Maru Gothic ProN", "Yu Gothic", sans-serif;
    font-size: 26px;
    line-height: 1.35;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-shadow:
      2px 2px 0 rgba(255,255,255,0.9),
      -2px 2px 0 rgba(255,255,255,0.9),
      2px -2px 0 rgba(255,255,255,0.9),
      -2px -2px 0 rgba(255,255,255,0.9);
  }

  /* 代表：左下寄り */
  .top-about-menu__owner {
    position: absolute;
    left: -50px;
    bottom: 65px;
    z-index: 6;
    width: 300px;
    margin: 0;
  }

  .top-about-menu__owner img {
    display: block;
    width: 100%;
    height: auto;
  }

  /* 丸画像共通 */
  .top-about-menu__food {
    position: absolute;
    overflow: hidden;
    border-radius: 50%;
    margin: 0;
  }

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

  /* タコライス：中央上 */
  .top-about-menu__food--main {
    left: 45%;
    top: 116px;
    z-index: 5;
    width: 175px;
    height: 175px;
    transform: translateX(-28%);
  }

  /* 春巻き：左下・代表の後ろ寄り */
  .top-about-menu__food--spring {
    left: 118px;
    bottom: 122px;
    z-index: 4;
    width: 120px;
    height: 120px;
  }

  .top-about-menu__food--umibudo {
    left: auto;
    right: 5px;
    top: 240px;
    bottom: 96px;
    width: 210px;
    height: 210px;
    z-index: 3;
  }

  /* ボタン：下中央 */
  .top-about-menu__button {
    position: absolute;
    left: 50%;
    bottom: 30px;
    z-index: 10;
    transform: translateX(-50%);

    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 72%;
    max-width: 270px;
    height: 46px;
    padding: 0 24px;

    color: #fff;
    text-decoration: none;
    font-size: 13px;
    font-weight: 900;
    letter-spacing: 0.04em;

    background: linear-gradient(180deg, #ff8a35 0%, #f25b19 100%);
    border-radius: 999px;
    box-shadow: 0 8px 18px rgba(230, 88, 20, 0.24);
    box-sizing: border-box;

  }
}






















      /* =========================
       ENTRY CARDS
    ========================= */
      .entry-cards {
        margin-top: 5%;
        position: relative;
        z-index: 10;
      }

      .entry-cards__grid {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 18px;
      }

      .entry-card {
        border-radius: 5px;
        overflow: hidden;
        background: #fff;
        box-shadow: var(--shadow);
        border: 1px solid rgba(0, 0, 0, 0.05);
        transition: 0.3s ease;
      }

      .entry-card:hover {
        transform: translateY(-6px);
      }

      .entry-card__head {
        padding: 16px 20px;
        color: #fff;
        font-size: 15px;
        font-weight: 900;
        letter-spacing: 0.04em;
      }

      .entry-card:nth-child(1) .entry-card__head {
        background: linear-gradient(135deg, #f36d22, #ff9944);
      }

      .entry-card:nth-child(2) .entry-card__head {
        background: linear-gradient(135deg, #f09a25, #f4c24b);
      }

      .entry-card:nth-child(3) .entry-card__head {
        background: linear-gradient(135deg, #008ca6, #1ebec4);
      }

      .entry-card__body {
        display: grid;
        grid-template-columns: 140px 1fr;
        min-height: 188px;
      }

      .entry-card__image img {
        width: 100%;
        height: 100%;
        object-fit: cover;
      }

      .entry-card__content {
        padding: 20px;
      }

      .entry-card__title {
        font-size: 24px;
        line-height: 1.3;
        font-weight: 900;
        margin-bottom: 10px;
      }

      .entry-card__text {
        font-size: 14px;
        color: #555;
        margin-bottom: 18px;
      }

      /* =========================
   FOOD GRID / 名物メニュー札風
========================= */

.signature-menu {
  position: relative;
  overflow: hidden;
  padding: 54px 0 64px;
  background:
    radial-gradient(circle at 8% 18%, rgba(229, 77, 24, 0.12) 0 2px, transparent 3px),
    radial-gradient(circle at 88% 16%, rgba(229, 77, 24, 0.08) 0 2px, transparent 3px),
    linear-gradient(180deg, #fff5e2 0%, #f7dfb8 52%, #f1d0a0 100%);
}

.signature-menu::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(90deg, rgba(111, 66, 25, 0.045) 1px, transparent 1px),
    linear-gradient(rgba(111, 66, 25, 0.035) 1px, transparent 1px);
  background-size: 38px 38px;
  opacity: 0.45;
  pointer-events: none;
  mix-blend-mode: multiply;
}

.signature-menu::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 13px;
  background:
    radial-gradient(circle at 12px -3px, transparent 0 11px, #063649 12px 15px, transparent 16px);
  background-size: 42px 13px;
  opacity: 0.95;
}

.signature-menu .container {
  position: relative;
  z-index: 1;
}

/* 見出しを参考画像風に */
.signature-menu .section-head {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  margin-bottom: 28px;
  text-align: center;
}

.signature-menu .section-head .en {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 0 18px;
  color: #fff;
  font-size: 0;
  font-weight: 900;
  letter-spacing: 0.05em;
  background: linear-gradient(180deg, #f43621 0%, #cf1208 100%);
  transform: rotate(-8deg);
  box-shadow: 0 5px 0 rgba(88, 24, 6, 0.22);
}

.signature-menu .section-head .en::before {
  content: "まずはこれ！";
  font-size: 14px;
}

.signature-menu .section-head .en::after {
  content: "";
  position: absolute;
  right: -13px;
  top: 50%;
  border-top: 17px solid transparent;
  border-bottom: 17px solid transparent;
  border-left: 13px solid #cf1208;
  transform: translateY(-50%);
}

.signature-menu .section-head h2 {
  margin: 0;
  color: #1f1309;
  font-size: clamp(36px, 4vw, 54px);
  line-height: 1;
  font-weight: 950;
  letter-spacing: 0.04em;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif;
  text-shadow: 2px 2px 0 rgba(255, 255, 255, 0.75);
}

.signature-menu .section-head h2::before {
  content: "名物メニュー";
}

.signature-menu .section-head h2 {
  font-size: 0;
}

.signature-menu .section-head h2::before {
  font-size: clamp(36px, 4vw, 54px);
}

.signature-menu .section-head p {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  margin: 0;
  padding: 0 16px;
  color: #fff;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.05em;
  background: #e9471d;
  border-radius: 999px;
  transform: rotate(2deg);
}

/* カード一覧 */
.signature-menu .food-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}

/* カードをメニュー札風に */
.signature-menu .food-card {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(180deg, rgba(255, 252, 239, 0.98) 0%, rgba(255, 244, 218, 0.98) 100%);
  border: 2px solid rgba(114, 70, 31, 0.32);
  border-radius: 4px;
  box-shadow:
    0 12px 24px rgba(90, 53, 20, 0.16),
    inset 0 0 0 1px rgba(255, 255, 255, 0.65);
  transform: rotate(-0.45deg);
  transition: transform 0.25s ease, filter 0.25s ease;
}

.signature-menu .food-card:nth-child(2) {
  transform: rotate(0.55deg);
}

.signature-menu .food-card:nth-child(3) {
  transform: rotate(-0.25deg);
}

.signature-menu .food-card:hover {
  transform: translateY(-4px) rotate(0deg);
}

/* 画像 */
.signature-menu .food-card__image {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4 / 2.6;
  background: #e4c295;
  border-bottom: 2px solid rgba(117, 75, 36, 0.22);
}

.signature-menu .food-card__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.signature-menu .food-card:hover .food-card__image img {
  transform: scale(1.04);
}

/* 赤ラベル */
.signature-menu .food-card__tag {
  position: absolute;
  left: 10px;
  top: 10px;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 58px;
  height: 34px;
  padding: 0 12px;
  color: #fff;
  font-size: 0;
  font-weight: 950;
  letter-spacing: 0.05em;
  background: linear-gradient(180deg, #ff3a1d 0%, #d91608 100%);
  border: 2px solid rgba(255, 228, 178, 0.9);
  border-radius: 3px;
  box-shadow: 0 4px 0 rgba(91, 27, 8, 0.2);
  transform: rotate(-4deg);
}

/* 既存文言を短い札文言に置換 */
.signature-menu .food-card:nth-child(1) .food-card__tag::before {
  content: "名物";
}

.signature-menu .food-card:nth-child(2) .food-card__tag::before {
  content: "人気";
}

.signature-menu .food-card:nth-child(3) .food-card__tag::before {
  content: "おすすめ";
}

.signature-menu .food-card__tag::before {
  font-size: 15px;
}

/* 本文 */
.signature-menu .food-card__body {
  padding: 12px 16px 17px;
  text-align: center;
}

.signature-menu .food-card__title {
  margin: 0 0 8px;
  color: #1b1007;
  font-size: clamp(25px, 2.3vw, 34px);
  line-height: 1.15;
  font-weight: 950;
  letter-spacing: 0.02em;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif;
}

/* タイトル上の赤いキャッチ */
.signature-menu .food-card__title::before {
  display: block;
  margin-bottom: 4px;
  color: #e23816;
  font-size: 14px;
  line-height: 1.4;
  font-weight: 950;
  letter-spacing: 0.04em;
  font-family: inherit;
}

.signature-menu .food-card:nth-child(1) .food-card__title::before {
  content: "とろける旨さ！";
}

.signature-menu .food-card:nth-child(2) .food-card__title::before {
  content: "ふわとろチーズ！";
}

.signature-menu .food-card:nth-child(3) .food-card__title::before {
  content: "ゴーヤーたっぷり！";
}

.signature-menu .food-card__text {
  margin: 0;
  color: #3e2b1b;
  font-size: 13px;
  line-height: 1.7;
  font-weight: 700;
  text-align: left;
}

/* 下部ボタン */
.signature-menu .btn-orange {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 220px;
  min-height: 44px;
  padding: 0 28px;
  color: #fff;
  text-decoration: none;
  font-size: 0;
  font-weight: 950;
  letter-spacing: 0.05em;
  background: linear-gradient(180deg, #f33a1d 0%, #cc1208 100%);
  border: 2px solid rgba(255, 198, 126, 0.8);
  border-radius: 999px;
  box-shadow:
    0 6px 0 rgba(105, 30, 8, 0.22),
    inset 0 0 0 1px rgba(255, 255, 255, 0.24);
  transition: transform 0.25s ease, filter 0.25s ease;
}

.signature-menu .btn-orange::before {
  content: "メニューをもっと見る";
  font-size: 15px;
}

.signature-menu .btn-orange::after {
  content: "▶";
  margin-left: 10px;
  font-size: 10px;
}

.signature-menu .btn-orange:hover {
  transform: translateY(-2px);
  filter: brightness(1.06);
}

/* =========================
   レスポンシブ
========================= */

@media (max-width: 991px) {
  .signature-menu {
    padding: 48px 0 56px;
  }

  .signature-menu .section-head {
    flex-direction: column;
    gap: 10px;
  }

  .signature-menu .food-grid {
    grid-template-columns: 1fr;
    max-width: 520px;
    margin: 0 auto;
  }

  .signature-menu .food-card,
  .signature-menu .food-card:nth-child(2),
  .signature-menu .food-card:nth-child(3) {
    transform: none;
  }

  .signature-menu .food-card:hover {
    transform: translateY(-4px);
  }
}

@media (max-width: 520px) {
  .signature-menu {
    padding: 42px 0 52px;
  }

  .signature-menu .section-head h2::before {
    font-size: 34px;
  }

  .signature-menu .section-head p {
    font-size: 12px;
  }

  .signature-menu .food-card__title {
    font-size: 28px;
  }

  .signature-menu .food-card__text {
    font-size: 12px;
  }
}

      /* =========================
       FOOD premium
    ========================= */

      .section-food-premium {
        position: relative;
        overflow: hidden;
        background:
          radial-gradient(
            circle at 15% 20%,
            rgba(255, 149, 0, 0.18),
            transparent 30%
          ),
          radial-gradient(
            circle at 85% 30%,
            rgba(255, 94, 58, 0.14),
            transparent 30%
          ),
          linear-gradient(180deg, #111827 0%, #0f172a 55%, #1e293b 100%);
        color: #fff;
      }

      .section-food-premium::before {
        content: "";
        position: absolute;
        inset: 0;
        background: linear-gradient(
          180deg,
          rgba(255, 255, 255, 0.02),
          rgba(255, 255, 255, 0)
        );
        pointer-events: none;
      }

      .food-premium-head {
        position: relative;
        text-align: center;
        max-width: 780px;
        margin: 0 auto 56px;
        z-index: 1;
      }

      .food-premium-head__en {
        display: inline-block;
        margin-bottom: 14px;
        padding: 8px 16px;
        border-radius: 999px;
        background: rgba(255, 255, 255, 0.08);
        border: 1px solid rgba(255, 255, 255, 0.14);
        font-size: 12px;
        font-weight: 700;
        letter-spacing: 0.18em;
      }

      .food-premium-head__title {
        margin: 0 0 18px;
        font-size: clamp(32px, 5vw, 56px);
        line-height: 1.15;
        letter-spacing: 0.03em;
        font-weight: 800;
      }

      .food-premium-head__text {
        margin: 0;
        color: rgba(255, 255, 255, 0.82);
        font-size: 16px;
        line-height: 1.9;
      }

      .food-premium-layout {
        position: relative;
        z-index: 1;
        display: grid;
        grid-template-columns: 1.25fr 0.9fr;
        gap: 28px;
        align-items: stretch;
      }

      .food-premium-main,
      .food-premium-card {
        height: 100%;
      }

      .food-premium-main__link,
      .food-premium-card__link {
        display: block;
        height: 100%;
        text-decoration: none;
        color: inherit;
      }

      .food-premium-main {
        border-radius: 5px;
        overflow: hidden;
        background: rgba(255, 255, 255, 0.06);
        border: 1px solid rgba(255, 255, 255, 0.1);
        box-shadow: 0 24px 60px rgba(0, 0, 0, 0.28);
        backdrop-filter: blur(10px);
        transition:
          transform 0.35s ease,
          box-shadow 0.35s ease;
      }

      .food-premium-main:hover {
        transform: translateY(-6px);
        box-shadow: 0 30px 70px rgba(0, 0, 0, 0.35);
      }

      .food-premium-main__image {
        position: relative;
        height: 440px;
        overflow: hidden;
      }

      .food-premium-main__image img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
        transform: scale(1.02);
      }

      .food-premium-main__overlay {
        position: absolute;
        inset: 0;
        background: linear-gradient(
          180deg,
          rgba(0, 0, 0, 0.12) 0%,
          rgba(0, 0, 0, 0.18) 35%,
          rgba(0, 0, 0, 0.68) 100%
        );
      }

      .food-premium-main__label {
        position: absolute;
        top: 22px;
        left: 22px;
        display: inline-flex;
        align-items: center;
        min-height: 36px;
        padding: 0 14px;
        border-radius: 999px;
        background: rgba(255, 110, 64, 0.88);
        color: #fff;
        font-size: 11px;
        font-weight: 700;
        letter-spacing: 0.12em;
      }

      .food-premium-main__catch {
        position: absolute;
        left: 22px;
        bottom: 24px;
        font-size: clamp(24px, 4vw, 40px);
        font-weight: 800;
        line-height: 1.15;
        text-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
      }

      .food-premium-main__body {
        padding: 26px 28px 30px;
      }

      .food-premium-main__tag {
        display: inline-block;
        margin-bottom: 14px;
        padding: 8px 14px;
        border-radius: 999px;
        background: rgba(255, 179, 71, 0.16);
        color: #ffd08a;
        font-size: 12px;
        font-weight: 700;
      }

      .food-premium-main__title {
        margin: 0 0 12px;
        font-size: 32px;
        font-weight: 800;
        line-height: 1.2;
      }

      .food-premium-main__text {
        margin: 0;
        color: rgba(255, 255, 255, 0.84);
        line-height: 1.9;
        font-size: 15px;
      }

      .food-premium-sub {
        display: grid;
        grid-template-rows: 1fr 1fr;
        gap: 28px;
      }

      .food-premium-card {
        border-radius: 5px;
        overflow: hidden;
        background: rgba(255, 255, 255, 0.06);
        border: 1px solid rgba(255, 255, 255, 0.1);
        box-shadow: 0 18px 40px rgba(0, 0, 0, 0.22);
        backdrop-filter: blur(10px);
        transition:
          transform 0.35s ease,
          box-shadow 0.35s ease;
      }

      .food-premium-card:hover {
        transform: translateY(-6px);
        box-shadow: 0 24px 54px rgba(0, 0, 0, 0.28);
      }

      .food-premium-card__image {
        position: relative;
        height: 220px;
        overflow: hidden;
      }

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

      .food-premium-card__badge {
        position: absolute;
        left: 16px;
        top: 16px;
        display: inline-flex;
        align-items: center;
        min-height: 34px;
        padding: 0 12px;
        border-radius: 999px;
        background: rgba(17, 24, 39, 0.72);
        border: 1px solid rgba(255, 255, 255, 0.12);
        font-size: 11px;
        font-weight: 700;
        letter-spacing: 0.08em;
      }

      .food-premium-card__body {
        padding: 20px 22px 24px;
      }

      .food-premium-card__title {
        margin: 0 0 10px;
        font-size: 24px;
        font-weight: 800;
        line-height: 1.3;
      }

      .food-premium-card__text {
        margin: 0;
        color: rgba(255, 255, 255, 0.82);
        font-size: 14px;
        line-height: 1.85;
      }

      .food-premium-points {
        position: relative;
        z-index: 1;
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 18px;
        margin-top: 34px;
      }

      .food-premium-point {
        display: flex;
        gap: 14px;
        align-items: flex-start;
        padding: 18px 18px;
        border-radius: 5px;
        background: rgba(255, 255, 255, 0.05);
        border: 1px solid rgba(255, 255, 255, 0.08);
      }

      .food-premium-point__icon {
        flex: 0 0 auto;
        width: 42px;
        height: 42px;
        border-radius: 50%;
        display: grid;
        place-items: center;
        background: linear-gradient(135deg, #ff8a00, #ff5e3a);
        color: #fff;
        font-size: 12px;
        font-weight: 800;
      }

      .food-premium-point p {
        margin: 0;
        color: rgba(255, 255, 255, 0.88);
        line-height: 1.7;
        font-size: 14px;
      }

      .food-premium-cta {
        position: relative;
        z-index: 1;
        margin-top: 34px;
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 18px;
        flex-wrap: wrap;
      }

      .food-premium-cta__main {
        min-width: 240px;
      }

      .food-premium-cta__sub {
        color: #fff;
        text-decoration: none;
        font-weight: 700;
        border-bottom: 1px solid rgba(255, 255, 255, 0.35);
        padding-bottom: 4px;
      }

      @media (max-width: 991px) {
        .food-premium-layout {
          grid-template-columns: 1fr;
        }

        .food-premium-sub {
          grid-template-rows: auto;
          grid-template-columns: 1fr 1fr;
        }

        .food-premium-main__image {
          height: 360px;
        }

        .food-premium-points {
          grid-template-columns: 1fr;
        }
      }

      @media (max-width: 767px) {
        .food-premium-head {
          margin-bottom: 40px;
        }

        .food-premium-head__title {
          font-size: 34px;
        }

        .food-premium-head__text {
          font-size: 14px;
          line-height: 1.8;
        }

        .food-premium-main__image {
          height: 300px;
        }

        .food-premium-main__catch {
          font-size: 28px;
        }

        .food-premium-main__body {
          padding: 20px 18px 24px;
        }

        .food-premium-main__title {
          font-size: 26px;
        }

        .food-premium-sub {
          grid-template-columns: 1fr;
          gap: 20px;
        }

        .food-premium-card__image {
          height: 200px;
        }

        .food-premium-card__body {
          padding: 18px 16px 20px;
        }

        .food-premium-card__title {
          font-size: 22px;
        }
      }

      .food-premium-points {
        position: relative;
        z-index: 1;
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 20px;
        margin-top: 34px;
      }

      .food-premium-point {
        overflow: hidden;
        border-radius: 5px;
        background: rgba(255, 255, 255, 0.06);
        border: 1px solid rgba(255, 255, 255, 0.08);
        box-shadow: 0 18px 40px rgba(0, 0, 0, 0.22);
        backdrop-filter: blur(10px);
        transition:
          transform 0.35s ease,
          box-shadow 0.35s ease;
      }

      .food-premium-point:hover {
        transform: translateY(-6px);
        box-shadow: 0 24px 54px rgba(0, 0, 0, 0.28);
      }

      .food-premium-point__image {
        position: relative;
        width: 100%;
        height: 190px;
        overflow: hidden;
      }

      .food-premium-point__image img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
        transition: transform 0.5s ease;
      }

      .food-premium-point:hover .food-premium-point__image img {
        transform: scale(1.06);
      }

      .food-premium-point__body {
        padding: 18px 18px 22px;
      }

      .food-premium-point__title {
        margin: 0 0 10px;
        font-size: 18px;
        font-weight: 800;
        line-height: 1.4;
        color: #fff;
      }

      .food-premium-point__text {
        margin: 0;
        font-size: 14px;
        line-height: 1.85;
        color: rgba(255, 255, 255, 0.82);
      }

      @media (max-width: 991px) {
        .food-premium-points {
          grid-template-columns: 1fr;
        }
      }

      @media (max-width: 767px) {
        .food-premium-point__image {
          height: 180px;
        }

        .food-premium-point__body {
          padding: 16px 16px 20px;
        }

        .food-premium-point__title {
          font-size: 17px;
        }

        .food-premium-point__text {
          font-size: 13px;
          line-height: 1.8;
        }
      }

      /* =========================
       okinawa-sea
    ========================= */

      .okinawa-sea {
        position: relative;
        width: 100%;
        height: 65vh;
        overflow: hidden;
      }

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

      /* 下側：フェードアウト */
      .okinawa-sea::after {
        content: "";
        position: absolute;
        inset: 0;
        background: linear-gradient(
          to bottom,
          rgba(255, 255, 255, 0) 60%,
          rgba(255, 255, 255, 0.8) 85%,
          rgb(255 194 120) 100%
        );
        z-index: 2;
      }
      @media (max-width: 767px) {
        .okinawa-sea {
          height: 220px;
        }
      }

      .okinawa-sea img {
        animation: seaZoom 12s ease-in-out infinite;
      }

      @keyframes seaZoom {
        0% {
          transform: scale(1);
        }
        50% {
          transform: scale(1.05);
        }
        100% {
          transform: scale(1);
        }
      }
      /* =========================
       okinawa-sea-2
    ========================= */

      .okinawa-sea-2 {
        position: relative;
        width: 100%;
        height: 55vh;
        overflow: hidden;
      }

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

      /* 下側：フェードアウト */
      .okinawa-sea-2::after {
        content: "";
        position: absolute;
        inset: 0;
        background: linear-gradient(
          to bottom,
          rgba(255, 255, 255, 0) 60%,
          rgba(255, 255, 255, 0.8) 85%,
          rgb(255, 255, 255) 100%
        );
        z-index: 2;
      }
      @media (max-width: 767px) {
        .okinawa-sea-2 {
          height: 220px;
        }
      }

      .okinawa-sea-2 img {
        animation: seaZoom 12s ease-in-out infinite;
      }

      @keyframes seaZoom {
        0% {
          transform: scale(1);
        }
        50% {
          transform: scale(1.05);
        }
        100% {
          transform: scale(1);
        }
      }

/* =========================
   STORY FLOW / いちゃりばの使い方
========================= */
.story-flow {
  position: relative;
  overflow: hidden;
  padding: 54px 0 62px;
  background:
    radial-gradient(circle at 8% 14%, rgba(230, 72, 22, 0.10) 0 2px, transparent 3px),
    radial-gradient(circle at 90% 18%, rgba(230, 72, 22, 0.08) 0 2px, transparent 3px),
    radial-gradient(circle at 18% 82%, rgba(7, 132, 167, 0.08) 0 2px, transparent 3px),
    linear-gradient(180deg, #fff4df 0%, #f7ddb2 52%, #f2d1a2 100%);
}

.story-flow::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(90deg, rgba(110, 64, 25, 0.045) 1px, transparent 1px),
    linear-gradient(rgba(110, 64, 25, 0.035) 1px, transparent 1px);
  background-size: 38px 38px;
  opacity: 0.42;
  pointer-events: none;
  mix-blend-mode: multiply;
}

.story-flow::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 13px;
  background:
    radial-gradient(circle at 12px -3px, transparent 0 11px, #063649 12px 15px, transparent 16px);
  background-size: 42px 13px;
  opacity: 0.95;
}

.story-flow .container {
  position: relative;
  z-index: 1;
}

/* 見出し */
.story-flow .section-head {
  position: relative;
  margin-bottom: 28px;
  text-align: center;
}

.story-flow .section-head .en {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  margin-bottom: 12px;
  padding: 0 18px;
  color: #fff;
  font-size: 0;
  font-weight: 900;
  letter-spacing: 0.05em;
  background: linear-gradient(180deg, #f43621 0%, #cf1208 100%);
  transform: rotate(-6deg);
  box-shadow: 0 5px 0 rgba(88, 24, 6, 0.22);
}

.story-flow .section-head .en::before {
  content: "いろんなシーンで！";
  font-size: 14px;
}

.story-flow .section-head .en::after {
  content: "";
  position: absolute;
  right: -13px;
  top: 50%;
  border-top: 17px solid transparent;
  border-bottom: 17px solid transparent;
  border-left: 13px solid #cf1208;
  transform: translateY(-50%);
}

.story-flow .section-head h2 {
  margin: 0;
  color: #1f1309;
  font-size: 0;
  line-height: 1;
  font-weight: 950;
  letter-spacing: 0.04em;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif;
  text-shadow: 2px 2px 0 rgba(255, 255, 255, 0.75);
}

.story-flow .section-head h2::before {
  content: "いちゃりばの使い方";
  font-size: clamp(34px, 4vw, 52px);
}

.story-flow .section-head p {
  margin: 12px auto 0;
  max-width: 680px;
  color: #4b2f19;
  font-size: 14px;
  line-height: 1.8;
  font-weight: 700;
}

/* 4枚カード */
.flow-line {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  align-items: stretch;
}

/* 既存の横線を消す */
.flow-line::before,
.flow-line::after {
  display: none;
}

.flow-step {
  position: relative;
  z-index: 1;
  overflow: hidden;
  padding: 10px;
  background:
    linear-gradient(180deg, rgba(255, 252, 239, 0.98) 0%, rgba(255, 244, 218, 0.98) 100%);
  border: 2px solid rgba(114, 70, 31, 0.32);
  border-radius: 4px;
  box-shadow:
    0 12px 24px rgba(90, 53, 20, 0.16),
    inset 0 0 0 1px rgba(255, 255, 255, 0.65);
  transition: transform 0.25s ease, filter 0.25s ease;
}

.flow-step:hover {
  transform: translateY(-4px);
  filter: brightness(1.03);
}

/* 番号部分を色付き帯に変更 */
.flow-step__num {
  position: relative;
  z-index: 2;
  width: 100%;
  height: 38px;
  display: block;
  margin: 0 0 8px;
  border-radius: 3px;
  box-shadow: 0 4px 0 rgba(68, 24, 8, 0.18);
  color: transparent;
  font-size: 0;
}

/* 各カードの帯色 */
.flow-step:nth-child(1) .flow-step__num {
  background: linear-gradient(180deg, #ff8a24 0%, #f05b16 100%);
}

.flow-step:nth-child(2) .flow-step__num {
  background: linear-gradient(180deg, #0b98b8 0%, #087296 100%);
}

.flow-step:nth-child(3) .flow-step__num {
  background: linear-gradient(180deg, #f14c32 0%, #c91d12 100%);
}

.flow-step:nth-child(4) .flow-step__num {
  background: linear-gradient(180deg, #1d6ca8 0%, #0d3f72 100%);
}

.flow-step__num::before {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  color: #fff;
  font-size: 17px;
  font-weight: 950;
  letter-spacing: 0.04em;
}

.flow-step:nth-child(1) .flow-step__num::before {
  content: "店飲みでわいわい";
}

.flow-step:nth-child(2) .flow-step__num::before {
  content: "物販・催事";
}

.flow-step:nth-child(3) .flow-step__num::before {
  content: "イベント出店";
}

.flow-step:nth-child(4) .flow-step__num::before {
  content: "法人利用・宴会";
}

/* 画像 */
.flow-step__image {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  margin: 0 0 12px;
  border-radius: 3px;
  background: #e7c597;
  border: 1px solid rgba(117, 75, 36, 0.22);
}

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

/* テキスト */
.flow-step__title {
  margin: 0 0 6px;
  color: #1c1007;
  font-size: clamp(19px, 1.8vw, 26px);
  line-height: 1.2;
  font-weight: 950;
  letter-spacing: 0.02em;
  text-align: center;
}

.flow-step__text {
  margin: 0;
  color: #3e2b1b;
  font-size: 13px;
  line-height: 1.6;
  font-weight: 700;
  text-align: center;
}

.story-flow__cta {
  display: flex;
  justify-content: center;
  margin-top: 26px;
}

.story-flow__cta a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 220px;
  min-height: 44px;
  padding: 0 28px;
  color: #fff;
  text-decoration: none;
  font-size: 14px;
  font-weight: 950;
  letter-spacing: 0.05em;
  background: linear-gradient(180deg, #f33a1d 0%, #cc1208 100%);
  border: 2px solid rgba(255, 198, 126, 0.8);
  border-radius: 999px;
  box-shadow:
    0 6px 0 rgba(105, 30, 8, 0.22),
    inset 0 0 0 1px rgba(255, 255, 255, 0.24);
}

.story-flow__cta a::after {
  content: "▶";
  margin-left: 10px;
  font-size: 10px;
}

/* =========================
   レスポンシブ
========================= */
@media (max-width: 991px) {
  .story-flow {
    padding: 46px 0 54px;
  }

  .flow-line {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 640px) {
  .story-flow .section-head h2::before {
    font-size: 34px;
  }

  .flow-line {
    grid-template-columns: 1fr;
    max-width: 420px;
    margin: 0 auto;
  }

  .flow-step__num::before {
    font-size: 16px;
  }

  .story-flow .container::after {
    min-width: 220px;
  }
}

      /* =========================
   BUSINESS / 予約・宴会バナー風
========================= */
.business {
  position: relative;
  overflow: hidden;
  padding: 56px 0;
  color: #fff;
  background:
    radial-gradient(circle at 12% 20%, rgba(255, 100, 35, 0.18), transparent 28%),
    linear-gradient(180deg, #071827 0%, #061322 100%);
}
.business-image-sp {
  display: none;
}

.business::before {
  content: "";
  position: absolute;
  inset: 0;
  width: auto;
  height: auto;
  background-image:
    linear-gradient(90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px),
    linear-gradient(rgba(255, 255, 255, 0.025) 1px, transparent 1px);
  background-size: 36px 36px;
  opacity: 0.35;
  pointer-events: none;
}

.business .container {
  position: relative;
  z-index: 1;
}

/* 全体：左フォーム風＋右画像 */
.business-box {
  display: grid;
  grid-template-columns: 0.95fr 1.05fr;
  gap: 0;
  align-items: stretch;
  min-height: 420px;
  overflow: hidden;
  color: #fff;
  background: #061827;
  border: 2px solid rgba(255, 189, 98, 0.28);
  border-radius: 4px;
  box-shadow:
    0 22px 48px rgba(0, 0, 0, 0.32),
    inset 0 0 0 1px rgba(255, 255, 255, 0.06);
}

/* 左側 */
.business-copy {
  position: relative;
  padding: 24px 28px 24px;
  background:
    radial-gradient(circle at 20% 14%, rgba(255, 119, 35, 0.15), transparent 30%),
    linear-gradient(180deg, #08253b 0%, #061827 100%);
  border-right: 2px solid rgba(255, 189, 98, 0.2);
}

/* 英字ラベル */
.business-copy .en {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  margin-bottom: 12px;
  padding: 0 14px;
  color: #ffdd94;
  font-family: inherit;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  border: 1px solid rgba(255, 221, 148, 0.35);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
}

/* 見出し：参考画像風に置き換え */
.business-copy h2 {
  margin: 0 0 14px;
  color: #fff;
  font-size: 0;
  line-height: 1.22;
  font-weight: 950;
  letter-spacing: 0.04em;
  text-shadow: 0 4px 14px rgba(0, 0, 0, 0.38);
}

.business-copy h2::before {
  content: "カンタン予約で、スイスイ入店！";
  display: block;
  font-size: clamp(28px, 3.2vw, 36px);
  line-height: 1.25;
  font-weight: 950;
}

/* 説明文 */
.business-copy > p {
  margin: 0 0 20px;
  color: rgba(255, 255, 255, 0.84);
  font-size: 14px;
  line-height: 1.85;
  font-weight: 700;
}

/* 3つのポイント */
.business-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin: 0 0 20px;
  padding: 0;
  list-style: none;
}

.business-list li {
  display: none;
}

.business-list li:nth-child(1),
.business-list li:nth-child(2),
.business-list li:nth-child(3) {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 0 10px;
  color: #ffdd94;
  font-size: 0;
  line-height: 1.3;
  font-weight: 900;
  text-align: center;
  border: 1px solid rgba(255, 221, 148, 0.35);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.07);
}

.business-list li:nth-child(1)::before {
  content: "WEBで24時間受付";
  font-size: 12px;
}

.business-list li:nth-child(2)::before {
  content: "当日予約OK";
  font-size: 12px;
}

.business-list li:nth-child(3)::before {
  content: "宴会・法人相談OK";
  font-size: 12px;
}

/* クリックできる予約フォーム */
.business-reserve-form {
  display: grid;
  gap: 12px;
  margin-top: 4px;
  padding: 14px 18px;
  background: rgba(255, 248, 229, 0.96);
  border: 2px solid rgba(255, 221, 148, 0.38);
  border-radius: 5px;
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, 0.65),
    0 10px 22px rgba(0, 0, 0, 0.18);
}

.business-reserve-form__row {
  display: grid;
  grid-template-columns: 90px 1fr;
  align-items: center;
  gap: 10px;
}

.business-reserve-form__row label {
  color: #2a180b;
  font-size: 13px;
  font-weight: 900;
  white-space: nowrap;
}

.business-reserve-form__row input,
.business-reserve-form__row select {
  width: 100%;
  height: 38px;
  padding: 0 12px;
  color: #2a180b;
  font-size: 13px;
  font-weight: 700;
  background: #fffaf0;
  border: 1px solid rgba(91, 58, 25, 0.28);
  border-radius: 4px;
  outline: none;
  box-sizing: border-box;
}

/* =========================
   BUSINESS 予約フォーム：プルダウン矢印位置調整
========================= */

.business-reserve-form__row select {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 42px;
  background-image:
    linear-gradient(45deg, transparent 50%, #2a180b 50%),
    linear-gradient(135deg, #2a180b 50%, transparent 50%);
  background-position:
    calc(100% - 20px) 50%,
    calc(100% - 14px) 50%;
  background-size:
    6px 6px,
    6px 6px;
  background-repeat: no-repeat;
}

.business-reserve-form__row input:focus,
.business-reserve-form__row select:focus {
  border-color: #ff8a24;
  box-shadow: 0 0 0 3px rgba(255, 138, 36, 0.18);
}


/* ボタン */
.business-actions {
  position: relative;
  z-index: 2;
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 18px;
}

.business-actions .btn {
  min-height: 48px;
  padding: 0 28px;
  border-radius: 5px;
  font-size: 14px;
  font-weight: 950;
  letter-spacing: 0.05em;
  text-decoration: none;
}

.business-actions .btn-orange {
  flex: 1 1 220px;
  color: #fff;
  background: linear-gradient(180deg, #ff5a20 0%, #e93812 100%);
  border: 2px solid rgba(255, 214, 139, 0.8);
  box-shadow:
    0 6px 0 rgba(92, 24, 6, 0.35),
    inset 0 0 0 1px rgba(255, 255, 255, 0.22);
  font-size: 0;
}

.business-actions .btn-orange::before {
  content: "この内容で予約する";
  font-size: 15px;
}

.business-actions .btn-orange::after {
  content: "▶";
  margin-left: 10px;
  font-size: 10px;
}

.business-actions .btn-outline {
  flex: 0 0 auto;
  color: #ffdd94;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 221, 148, 0.4);
}

/* =========================
   BUSINESS 電話番号エリア
   装飾なし・電話マークのみ
========================= */

.business-tel {
  margin-top: 22px;
  color: #ffdd94;
  text-align: center;
}

.business-tel__lead {
  margin: 0 0 4px;
  color: #fff6d6;
  font-size: 13px;
  line-height: 1.4;
  font-weight: 900;
  letter-spacing: 0.04em;
}

.business-tel__number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: #ffbf45;
  text-decoration: none;
  font-size: clamp(34px, 2.8vw, 44px);
  line-height: 1;
  font-weight: 950;
  letter-spacing: 0.045em;
  text-align: center;
  text-shadow:
    0 3px 0 rgba(0, 0, 0, 0.24),
    0 8px 18px rgba(0, 0, 0, 0.38);
}

.business-tel__icon {
  display: inline-block;
  color: #ffbf45;
  font-size: 0.78em;
  line-height: 1;
  transform: rotate(-8deg) translateY(2px);
}

.business-tel__text {
  display: inline-block;
}

.business-tel__time {
  margin: 6px 0 0 10px;
  color: #fff6d6;
  font-size: 13px;
  line-height: 1.4;
  font-weight: 800;
  letter-spacing: 0.03em;
}

/* 参考画像っぽい下の軽い紙ライン */
.business-tel::after {
  content: "";
  display: block;
  width: 260px;
  height: 2px;
  margin-top: 10px;
  background: linear-gradient(
    90deg,
    rgba(255, 221, 148, 0.45),
    rgba(255, 221, 148, 0)
  );
}

/* 右側画像 */
.business-image {
  position: relative;
  overflow: hidden;
  min-height: 420px;
}

.business-image::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(6, 24, 39, 0.10) 0%, rgba(6, 24, 39, 0) 36%),
    linear-gradient(180deg, rgba(0, 0, 0, 0.02) 45%, rgba(0, 0, 0, 0.42) 100%);
  pointer-events: none;
}

.business-image img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 420px;
  object-fit: cover;
  object-position: center center;
}

/* 赤い宴会コースバッジ */
.business-image::after {
  content: "宴会コース\A 3,500円〜\A飲み放題付き！";
  white-space: pre-line;
  position: absolute;
  left: 34px;
  bottom: 34px;
  z-index: 2;
  width: 220px;
  min-height: 130px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 18px 22px;
  color: #fff;
  font-size: 18px;
  line-height: 1.25;
  font-weight: 950;
  text-align: center;
  background:
    radial-gradient(circle at 18% 22%, rgba(255, 255, 255, 0.12), transparent 24%),
    linear-gradient(180deg, #f33a1d 0%, #c91508 100%);
  clip-path: polygon(
    6% 10%, 18% 0%, 31% 8%, 45% 2%, 60% 10%, 76% 0%, 95% 12%,
    88% 32%, 100% 48%, 88% 62%, 96% 86%, 76% 78%, 62% 96%,
    48% 84%, 28% 98%, 20% 80%, 4% 88%, 10% 65%, 0% 48%, 12% 32%
  );
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.35);
}

/* hover */
.business-actions .btn,
.business-image {
  transition: transform 0.25s ease, filter 0.25s ease;
}

.business-actions .btn:hover {
  transform: translateY(-2px);
  filter: brightness(1.06);
}

/* =========================
   SP対応
========================= */
@media (max-width: 991px) {
  .business {
    padding: 44px 0 52px;
  }

  .business-box {
    grid-template-columns: 1fr;
  }

  .business-copy {
    border-right: none;
    border-bottom: 2px solid rgba(255, 189, 98, 0.2);
  }

  .business-image,
  .business-image img {
    min-height: 320px;
  }

  .business-list {
    grid-template-columns: 1fr;
  }

  .business-actions {
    flex-direction: column;
    gap: 12px;
  }

  .business-actions .btn {
    width: 100%;
    min-height: 52px;
    height: 52px;
    padding: 0 20px;
  }

  .business-actions .btn-orange {
    flex: 0 0 auto;
    min-height: 56px;
    height: 56px;
  }

  .business-actions .btn-outline {
    flex: 0 0 auto;
    width: 100%;
    min-height: 48px;
    height: 48px;
  }

  .business-image-sp {
    display: block;
    width: 100%;
    margin: 18px 0 18px;
    overflow: hidden;
    border: 1px solid rgba(255, 189, 98, 0.28);
    border-radius: 4px;
    background: #061827;
  }

  .business-image-sp img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    object-position: center center;
  }

  .business-sp-offer {
    display: grid;
    gap: 2px;
    justify-items: center;
    padding: 8px 14px 8px;
    color: #fff;
    text-align: center;
    background: linear-gradient(180deg, #f33a1d 0%, #c91508 100%);
  }

  .business-sp-offer__label {
    font-size: 13px;
    font-weight: 900;
    letter-spacing: 0.06em;
  }

  .business-sp-offer strong {
    font-size: 22px;
    line-height: 1.1;
    font-weight: 950;
  }

  .business-sp-offer span {
    font-size: 14px;
    line-height: 1.25;
    font-weight: 900;
  }

  .business-box > .business-image {
    display: none;
  }
}

@media (max-width: 640px) {
  .business-copy {
    padding: 30px 22px;
  }
  .business-tel {
    margin-top: 18px;
    padding-left: 0;
    text-align: center;
  }

  .business-tel__number {
    font-size: 34px;
    gap: 8px;
  }

  .business-tel__time {
    margin-left: 0;
  }

    .business-actions .btn {
    width: 100%;
    min-height: 52px;
    height: 52px;
    padding: 0 20px;
  }

  .business-actions .btn-orange {
    flex: 0 0 auto;
    min-height: 56px;
    height: 56px;
  }

  .business-actions .btn-outline {
    flex: 0 0 auto;
    min-height: 48px;
    height: 48px;
  }

  .business-tel::after {
    margin-left: auto;
    margin-right: auto;
  }

  .business-tel__number {
    font-size: 32px;
  }

  .business-copy h2::before {
    font-size: 30px;
  }

  .business-copy::after {
    font-size: 12px;
    line-height: 2.35;
    padding: 14px;
  }

  .business-image::after {
    left: 18px;
    bottom: 18px;
    width: 190px;
    min-height: 112px;
    font-size: 15px;
  }
  .business-reserve-form {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    overflow: hidden;
  }

  .business-reserve-form__row {
    width: 100%;
    max-width: 100%;
    grid-template-columns: 1fr;
    gap: 6px;
    box-sizing: border-box;
  }

  .business-reserve-form__row label {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }

  .business-reserve-form__row input,
  .business-reserve-form__row select {
    display: block;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    height: 44px;
    box-sizing: border-box;
    font-size: 16px;
  }

  .business-reserve-form__row input[type="date"] {
    -webkit-appearance: none;
    appearance: none;
    padding-right: 10px;
  }

  .business-reserve-form__row select {
    -webkit-appearance: none;
    appearance: none;
    padding-right: 38px;
    background-position:
      calc(100% - 22px) 50%,
      calc(100% - 16px) 50%;
  }
  .business-tel {
    margin-top: 18px;
    text-align: center;
  }

  .business-tel__number {
    font-size: 34px;
    gap: 8px;
  }

  .business-tel__time {
    margin-left: 0;
  }
    .business-date-field__input,
  .business-reserve-form__row input[type="date"] {
    height: 44px;
    line-height: 44px;
  }

  .business-date-field__input::-webkit-date-and-time-value,
  .business-reserve-form__row input[type="date"]::-webkit-date-and-time-value {
    min-height: 44px;
    line-height: 44px;
  }
}
      /* =========================
       ABOUT
    ========================= */
      .about-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 28px;
        align-items: stretch;
      }

      .about-card {
        background: #fff;
        border-radius: 5px;
        box-shadow: var(--shadow);
        overflow: hidden;
        border: 1px solid rgba(0, 0, 0, 0.05);
      }

      .about-card__body {
        padding: 32px;
      }

      .about-card__eyebrow {
        display: inline-block;
        font-size: 13px;
        font-weight: 800;
        color: var(--orange);
        letter-spacing: 0.08em;
        margin-bottom: 10px;
      }

      .about-card__title {
        font-size: 34px;
        line-height: 1.3;
        font-weight: 900;
        margin-bottom: 16px;
      }

      .about-card__text {
        color: #555;
        font-size: 15px;
        margin-bottom: 20px;
      }

      .about-profile {
        display: grid;
        grid-template-columns: 140px 1fr;
        gap: 20px;
        align-items: center;
      }

      .about-profile img {
        width: 140px;
        height: 140px;
        object-fit: cover;
        border-radius: 5px;
      }

      .about-profile__name {
        font-size: 24px;
        font-weight: 900;
        margin-bottom: 8px;
      }

      .about-profile__small {
        color: #666;
        font-size: 13px;
        margin-bottom: 10px;
      }

      .info-list {
        display: grid;
        gap: 12px;
      }

      .info-list li {
        display: grid;
        grid-template-columns: 110px 1fr;
        gap: 10px;
        padding-bottom: 12px;
        border-bottom: 1px solid var(--line);
        font-size: 14px;
      }

      .info-list strong {
        color: var(--navy);
        font-weight: 800;
      }

      /* =========================
   CONTACT / 目的別相談カード帯
========================= */

.contact-banner {
  position: relative;
  overflow: hidden;
  padding: 42px 0 48px;
  background:
    radial-gradient(circle at 8% 18%, rgba(230, 72, 22, 0.10) 0 2px, transparent 3px),
    radial-gradient(circle at 88% 22%, rgba(230, 72, 22, 0.08) 0 2px, transparent 3px),
    linear-gradient(180deg, #fff4df 0%, #f7ddb2 52%, #f2d1a2 100%);
}

.contact-banner .container {
  position: relative;
  z-index: 1;
}

/* 見出し */
.contact-banner__head {
  text-align: center;
  margin-bottom: 24px;
}

.contact-banner__head h2 {
  margin: 0;
  color: #1c1007;
  font-size: clamp(28px, 3.4vw, 46px);
  line-height: 1.2;
  font-weight: 950;
  letter-spacing: 0.04em;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif;
  text-shadow: 2px 2px 0 rgba(255, 255, 255, 0.75);
}

/* 4枚カード */
.contact-banner__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}

/* カード */
.contact-banner-card {
  position: relative;
  min-height: 150px;
  padding: 20px 18px 58px;
  background:
    linear-gradient(180deg, rgba(255, 252, 239, 0.98) 0%, rgba(255, 244, 218, 0.98) 100%);
  border: 2px solid rgba(114, 70, 31, 0.30);
  border-radius: 4px;
  box-shadow:
    0 12px 24px rgba(90, 53, 20, 0.14),
    inset 0 0 0 1px rgba(255, 255, 255, 0.65);
  transition: transform 0.25s ease, filter 0.25s ease;
}

.contact-banner-card:hover {
  transform: translateY(-3px);
  filter: brightness(1.02);
}

.contact-banner-card h3 {
  margin: 0 0 10px;
  color: #1c1007;
  font-size: 17px;
  line-height: 1.45;
  font-weight: 950;
  letter-spacing: 0.02em;
}

.contact-banner-card p {
  margin: 0;
  color: #3e2b1b;
  font-size: 12px;
  line-height: 1.7;
  font-weight: 700;
}

/* ボタン */
.contact-banner-card__btn {
  position: absolute;
  right: 16px;
  bottom: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 86px;
  min-height: 28px;
  padding: 0 14px;
  color: #fff;
  text-decoration: none;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.04em;
  background: linear-gradient(180deg, #f33a1d 0%, #cc1208 100%);
  border-radius: 999px;
  box-shadow:
    0 4px 0 rgba(105, 30, 8, 0.22),
    inset 0 0 0 1px rgba(255, 255, 255, 0.22);
  transition: transform 0.25s ease, filter 0.25s ease;
}

.contact-banner-card__btn::after {
  content: "▶";
  margin-left: 7px;
  font-size: 8px;
}

.contact-banner-card__btn:hover {
  transform: translateY(-2px);
  filter: brightness(1.06);
}
.contact-business-link {
  display: flex;
  justify-content: center;
  margin-top: 28px;
}

.contact-business-link .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 220px;
  min-height: 44px;
}

/* =========================
   レスポンシブ
========================= */

@media (max-width: 991px) {
  .contact-banner {
    padding: 42px 0 48px;
  }

  .contact-banner__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 640px) {
  .contact-banner {
    padding: 38px 0 44px;
  }

  .contact-banner__head h2 {
    font-size: 30px;
  }

  .contact-banner__grid {
    grid-template-columns: 1fr;
    max-width: 420px;
    margin: 0 auto;
  }

  .contact-banner-card {
    min-height: 140px;
    padding: 20px 18px 58px;
  }

  .contact-banner-card h3 {
    font-size: 18px;
  }

  .contact-banner-card p {
    font-size: 13px;
  }
}

      /* =========================
   ACCESS / 横長クラフト紙バナー風
========================= */

.access-banner {
  position: relative;
  overflow: hidden;
  padding: 42px 0 48px;
  background:
    radial-gradient(circle at 8% 18%, rgba(230, 72, 22, 0.10) 0 2px, transparent 3px),
    radial-gradient(circle at 90% 22%, rgba(230, 72, 22, 0.08) 0 2px, transparent 3px),
    linear-gradient(180deg, #fff4df 0%, #f7ddb2 52%, #f2d1a2 100%);
}

.access-banner .container {
  position: relative;
  z-index: 1;
}

/* 見出し */
.access-banner__head {
  text-align: center;
  margin-bottom: 22px;
}

.access-banner__head h2 {
  margin: 0;
  color: #1c1007;
  font-size: clamp(28px, 3.4vw, 46px);
  line-height: 1.2;
  font-weight: 950;
  letter-spacing: 0.04em;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif;
  text-shadow: 2px 2px 0 rgba(255, 255, 255, 0.75);
}

/* 横長本体 */
.access-banner__body {
  display: grid;
  grid-template-columns: 30% 70%;
  gap: 16px;
  align-items: stretch;
}

/* 左：アクセス情報 */
.access-info-card {
  padding: 20px 20px 18px;
  background:
    linear-gradient(180deg, rgba(255, 252, 239, 0.98) 0%, rgba(255, 244, 218, 0.98) 100%);
  border: 2px solid rgba(114, 70, 31, 0.30);
  border-radius: 4px;
  box-shadow:
    0 12px 24px rgba(90, 53, 20, 0.14),
    inset 0 0 0 1px rgba(255, 255, 255, 0.65);
}

.access-info-card h3 {
  margin: 0 0 12px;
  color: #1c1007;
  font-size: 22px;
  line-height: 1.3;
  font-weight: 950;
}

.access-info-list {
  display: grid;
  gap: 7px;
  margin: 0;
}

.access-info-list div {
  display: grid;
  grid-template-columns: 72px 1fr;
  gap: 10px;
  align-items: start;
}

.access-info-list dt {
  color: #0b5d77;
  font-size: 13px;
  font-weight: 950;
}

.access-info-list dd {
  margin: 0;
  color: #3e2b1b;
  font-size: 13px;
  line-height: 1.55;
  font-weight: 700;
}

/* ボタン */
.access-banner__buttons {
  display: flex;
  gap: 8px;
  margin-top: 14px;
  flex-wrap: wrap;
}

.access-banner__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: 0 14px;
  color: #fff;
  text-decoration: none;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.04em;
  border-radius: 999px;
  box-shadow:
    0 4px 0 rgba(14, 67, 79, 0.18),
    inset 0 0 0 1px rgba(255, 255, 255, 0.22);
}

.access-banner__btn::after {
  content: "▶";
  margin-left: 7px;
  font-size: 8px;
}

.access-banner__btn--map {
  background: linear-gradient(180deg, #0b98b8 0%, #087296 100%);
}

.access-banner__btn--reserve {
  background: linear-gradient(180deg, #f33a1d 0%, #cc1208 100%);
}

/* 中央：マップ */
.access-map-card {
  position: relative;
  overflow: hidden;
  min-height: 270px;
  background: #f4dfbd;
  border: 2px solid rgba(114, 70, 31, 0.30);
  border-radius: 4px;
  box-shadow:
    0 12px 24px rgba(90, 53, 20, 0.14),
    inset 0 0 0 1px rgba(255, 255, 255, 0.65);
}

.access-map__frame {
  position: absolute;
  inset: 0;
}

.access-map__frame iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

/* =========================
   SP対応
========================= */

/* =========================
   ACCESS：スマホ横向き対策
========================= */

@media (max-width: 991px), (max-height: 520px) {
  .top-access {
    overflow: hidden;
    padding: 28px 0 38px;
    background: #fff;
  }

  .top-access__inner {
    position: relative;
    width: calc(100% - 28px);
    height: auto;
    min-height: 0;
    margin: 0 auto;
    overflow: visible;
  }

  .top-access__title {
    position: relative;
    left: auto;
    right: auto;
    top: auto;
    margin: 0 0 18px;
    font-size: 22px;
    line-height: 1.45;
    text-align: center;
    z-index: 10;
  }

  .top-access__content {
    position: relative;
    display: block;
    width: 100%;
    height: auto;
  }

  .top-access__map {
    position: relative;
    left: auto;
    top: auto;
    transform: none;

    width: 100%;
    height: 260px;
    margin: 0 0 22px;

    border: none;
    overflow: hidden;
    z-index: 5;
  }

  .top-access__map iframe,
  .top-access__map img {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
  }

  .top-access__info {
    position: relative;
    left: auto;
    top: auto;
    transform: none;

    width: min(86%, 320px);
    min-height: 0;
    margin: 0 auto;
    padding: 18px 22px 20px;

    font-size: 12px;
    background: rgba(214, 250, 244, 0.94);
    box-sizing: border-box;
    overflow: visible;
    z-index: 6;
  }

  .top-access__info h3 {
    margin: 0 0 12px;
    font-size: 17px;
    line-height: 1.35;
  }

  .top-access__info p {
    margin: 0;
    font-size: 11px;
    line-height: 1.7;
  }

  .top-access__deco--left {
    left: -72px;
    top: 210px;
    width: 190px;
    z-index: 1;
    opacity: 0.55;
  }

  .top-access__deco--right {
    right: -42px;
    top: 320px;
    width: 135px;
    z-index: 7;
    opacity: 0.9;
  }
}

@media (max-width: 640px) {
  .access-banner {
    padding: 38px 0 44px;
  }

  .access-banner__head h2 {
    font-size: 27px;
  }

  .access-info-list div {
    grid-template-columns: 1fr;
    gap: 2px;
  }

  .access-map-card {
    min-height: 260px;
  }

  .access-banner__buttons {
    flex-direction: column;
  }

  .access-banner__btn {
    width: 100%;
  }
}

      /* =========================
       FOOTER
    ========================= */
      .site-footer {
        margin-top: 88px;
        background: linear-gradient(180deg, #113763 0%, #0b2645 100%);
        color: #fff;
        position: relative;
        overflow: hidden;
      }

      .site-footer::before {
        content: "";
        position: absolute;
        inset: auto -80px -120px auto;
        width: 320px;
        height: 320px;
        background: radial-gradient(
          circle,
          rgba(76, 201, 192, 0.18),
          transparent 70%
        );
        pointer-events: none;
      }

      .footer-inner {
        width: min(calc(100% - 32px), var(--max));
        margin: 0 auto;
        padding: 56px 0 24px;
      }

      .footer-grid {
        display: grid;
        grid-template-columns: 1.2fr 1fr 1fr 1fr;
        gap: 24px;
        padding-bottom: 30px;
        border-bottom: 1px solid rgba(255, 255, 255, 0.14);
      }

      .footer-logo .logo-main {
        color: #fff;
      }

      .footer-logo p {
        color: rgba(255, 255, 255, 0.75);
        font-size: 14px;
        margin-top: 12px;
        max-width: 320px;
      }

      .footer-nav h4 {
        font-size: 15px;
        font-weight: 900;
        margin-bottom: 14px;
        color: #9ee5df;
      }

      .footer-nav ul {
        display: grid;
        gap: 10px;
      }

      .footer-nav a {
        color: rgba(255, 255, 255, 0.86);
        font-size: 14px;
      }

      .footer-bottom {
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 20px;
        padding-top: 18px;
        font-size: 12px;
        color: rgba(255, 255, 255, 0.66);
      }

      .sns-list {
        display: flex;
        gap: 10px;
        flex-wrap: wrap;
        margin-top: 14px;
      }

      .sns-list a {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 44px;
        height: 44px;
        padding: 0 14px;
        border-radius: 999px;
        background: rgba(255, 255, 255, 0.1);
        color: #fff;
        font-size: 13px;
        font-weight: 800;
      }

      /* =========================
       FLOATING CTA
    ========================= */
      .floating-cta {
        position: fixed;
        right: 16px;
        bottom: 16px;
        z-index: 999;
        display: flex;
        flex-direction: column;
        gap: 10px;
      }

      .floating-cta a {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 150px;
        min-height: 48px;
        padding: 0 18px;
        border-radius: 999px;
        color: #fff;
        font-size: 13px;
        font-weight: 900;
        box-shadow: 0 12px 22px rgba(0, 0, 0, 0.18);
      }

      .floating-cta .reserve {
        background: linear-gradient(135deg, #ff8a3d, var(--orange));
      }

      .floating-cta .biz {
        background: linear-gradient(135deg, #2b6fcb, var(--navy));
      }

      /* =========================
       RESPONSIVE
    ========================= */
      @media (max-width: 1080px) {
        .hero {
          min-height: auto;
        }

        .hero-inner {
          min-height: 720px;
          grid-template-columns: 1fr;
          gap: 24px;
          padding: 40px 0 80px;
        }

        .hero-copy {
          max-width: 100%;
          padding: 50px 0 0;
        }

        .hero-party-slider {
          max-width: 100%;
          min-height: 420px;
          justify-self: stretch;
        }

        .hero-party-slider__inner {
          min-height: 420px;
        }

        .hero-party-slide img {
          min-height: 420px;
        }

        .entry-card__body {
          grid-template-columns: 1fr;
        }

        .entry-card__image {
          height: 220px;
        }

        .food-grid,
        .flow-line,
        .about-grid,
        .contact-grid,
        .access-box,
        .business-box {
          grid-template-columns: 1fr;
        }

        .flow-line::before {
          display: none;
        }

        .business-image {
          min-height: 320px;
        }

        .footer-grid {
          grid-template-columns: 1fr 1fr;
        }
      }

      @media (max-width: 768px) {
        .section {
          padding: 68px 0;
        }

        .site-header__inner {
          min-height: 68px;
        }

        .hero-inner {
          min-height: 700px;
          align-items: end;
        }

        .hero-dark {
          background: linear-gradient(
            180deg,
            rgba(0, 0, 0, 0.35) 0%,
            rgba(0, 0, 0, 0.48) 28%,
            rgba(0, 0, 0, 0.66) 70%,
            rgba(0, 0, 0, 0.78) 100%
          );
        }

        .hero-copy {
          padding: 40px 0 0;
        }

        .hero-title {
          font-size: 42px;
        }

        .hero-text {
          font-size: 14px;
          line-height: 1.85;
        }

        .hero-buttons {
          display: grid;
          grid-template-columns: 1fr;
        }

        .hero-bg-slider__dots {
          margin-top: 20px;
        }

        .hero-party-slider {
          margin-top: 6px;
          min-height: 360px;
        }

        .hero-party-slider__frame {
          border-radius: 5px;
        }

        .hero-party-slider__inner {
          min-height: 360px;
          border-radius: 5px;
        }

        .hero-party-slide img {
          min-height: 360px;
        }

        .hero-party-slide__content {
          padding: 22px 20px 20px;
        }

        .hero-party-slide__content h3 {
          font-size: 24px;
        }

        .hero-party-slide__content p {
          font-size: 13px;
          line-height: 1.7;
        }

        .news-strip__inner {
          grid-template-columns: 1fr;
          gap: 10px;
        }

        .news-title {
          font-size: 24px;
        }

        .entry-cards {
          margin-top: -28px;
        }

        .entry-cards__grid,
        .food-grid {
          grid-template-columns: 1fr;
        }

        .food-card__title,
        .about-card__title,
        .contact-card__title {
          font-size: 24px;
        }

        .business-copy {
          padding: 34px 24px;
        }

        .business-list {
          grid-template-columns: 1fr;
        }

        .about-card__body,
        .contact-card,
        .access-card {
          padding: 24px;
        }

        .about-profile {
          grid-template-columns: 1fr;
        }

        .about-profile img {
          width: 100%;
          max-width: 180px;
          height: auto;
        }

        .info-list li {
          grid-template-columns: 1fr;
          gap: 4px;
        }

        .footer-grid {
          grid-template-columns: 1fr;
        }

        .footer-bottom {
          flex-direction: column;
          align-items: flex-start;
        }

        .floating-cta {
          left: 12px;
          right: 12px;
          bottom: 12px;
          flex-direction: row;
        }

        .floating-cta a {
          flex: 1;
          min-width: auto;
        }
      }

      @media (max-width: 560px) {
        .hero-title {
          font-size: 36px;
        }

        .hero-label {
          font-size: 12px;
          padding: 8px 12px;
        }

        .section-head h2 {
          font-size: 28px;
        }

        .hero-party-slider {
          min-height: 320px;
        }

        .hero-party-slider__inner {
          min-height: 320px;
        }

        .hero-party-slide img {
          min-height: 320px;
        }

        .hero-party-slide__content h3 {
          font-size: 22px;
        }

        .floating-cta a {
          font-size: 12px;
          min-height: 46px;
          padding: 0 12px;
        }
      }

/* =========================================
   POST / PAGE TEMPLATES
========================================= */
.page-hero-simple {
  padding: 150px 0 70px;
  background:
    linear-gradient(135deg, rgba(15, 59, 115, 0.96), rgba(30, 167, 198, 0.88)),
    linear-gradient(180deg, rgba(255,255,255,0.06), rgba(255,255,255,0));
  color: #fff;
}

.page-hero-simple--single,
.page-hero-simple--page {
  padding-top: 160px;
}

.page-hero-simple__en {
  display: inline-block;
  margin-bottom: 14px;
  font-family: "Josefin Sans", sans-serif;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.82);
}

.page-hero-simple__title {
  font-size: clamp(32px, 4.6vw, 58px);
  line-height: 1.2;
  font-weight: 900;
}

.page-hero-simple__text {
  margin-top: 16px;
  max-width: 760px;
  font-size: 15px;
  line-height: 1.9;
  color: rgba(255,255,255,0.9);
}

.post-archive-main,
.single-post-main,
.default-page-main {
  min-height: 60vh;
}

.post-archive-section,
.single-post-section,
.default-page-section {
  background: linear-gradient(180deg, #fff 0%, #fffaf2 100%);
}

.post-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 26px;
}

.post-card-item {
  background: #fff;
  border-radius: 5px;
  overflow: hidden;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.1);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.post-card-item:hover {
  transform: translateY(-6px);
  box-shadow: 0 22px 48px rgba(0, 0, 0, 0.14);
}

.post-card-item__link {
  display: block;
  height: 100%;
}

.post-card-item__thumb {
  aspect-ratio: 4 / 2.6;
  overflow: hidden;
}

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

.post-card-item__body {
  padding: 22px 22px 24px;
}

.post-card-item__meta,
.single-post-hero__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
  font-size: 13px;
  font-weight: 700;
  color: #f6efe4;
}

.post-card-item__meta {
  color: #777;
}

.post-card-item__cat,
.single-post-hero__cat {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0 12px;
  border-radius: 999px;
  background: linear-gradient(135deg, #ff8a3d, #f26b1d);
  color: #fff;
  font-size: 12px;
}

.post-card-item__title {
  font-size: 24px;
  line-height: 1.35;
  font-weight: 900;
  margin-bottom: 12px;
}

.post-card-item__excerpt {
  color: #555;
  font-size: 14px;
  line-height: 1.9;
}

.post-card-item__more {
  display: inline-flex;
  margin-top: 16px;
  font-weight: 800;
  color: var(--navy);
}

.post-pagination {
  margin-top: 40px;
}

.post-pagination .nav-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
}

.post-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  height: 44px;
  padding: 0 14px;
  border-radius: 999px;
  background: #fff;
  border: 1px solid rgba(15, 59, 115, 0.14);
  font-weight: 700;
}

.post-pagination .page-numbers.current {
  background: var(--navy);
  color: #fff;
  border-color: var(--navy);
}

.post-empty-box,
.default-page-container,
.single-side-box {
  background: #fff;
  border-radius: 5px;
  box-shadow: 0 16px 42px rgba(0, 0, 0, 0.08);
}

.single-post-content-wrap {
  border-radius: 5px;
}

.post-empty-box {
  padding: 42px 32px;
  text-align: center;
}

.single-post-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 30px;
  align-items: start;
}

.single-post-content-wrap,
.default-page-container {
  padding: 30px;
}

.single-post-thumbnail,
.default-page-thumbnail {
  margin-bottom: 28px;
  border-radius: 5px;
  overflow: hidden;
}

.single-post-thumbnail img,
.default-page-thumbnail img {
  width: 100%;
  height: auto;
  display: block;
}

.entry-content {
  font-size: 16px;
  line-height: 2;
  color: #333;
}

.entry-content h2,
.entry-content h3,
.entry-content h4 {
  margin: 2em 0 0.8em;
  line-height: 1.4;
  font-weight: 800;
  color: var(--navy);
}

.entry-content h2 {
  font-size: 32px;
}

.entry-content h3 {
  font-size: 24px;
}

.entry-content h4 {
  font-size: 20px;
}

.entry-content p,
.entry-content ul,
.entry-content ol,
.entry-content blockquote {
  margin-bottom: 1.2em;
}

.entry-content ul,
.entry-content ol {
  padding-left: 1.4em;
}

.entry-content ul {
  list-style: disc;
}

.entry-content ol {
  list-style: decimal;
}

.entry-content img {
  border-radius: 5px;
  margin: 1.6em 0;
}

.entry-content a {
  color: var(--navy);
  text-decoration: underline;
}

.entry-content blockquote {
  padding: 18px 22px;
  border-left: 4px solid var(--orange);
  background: #fffaf2;
  border-radius: 0 5px 5px 0;
}

.single-side-box {
  padding: 24px;
  margin-bottom: 24px;
}

.single-side-box__title {
  font-size: 18px;
  font-weight: 900;
  margin-bottom: 16px;
  color: var(--navy);
}

.single-side-box ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.single-side-box li + li {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #eee3d2;
}

.single-side-box a {
  color: #333;
}

.single-post-bottom-nav {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 16px;
  align-items: center;
  margin-top: 40px;
  padding-top: 24px;
  border-top: 1px solid #e9ddcf;
}

.single-post-bottom-nav__center a,
.single-post-bottom-nav__prev a,
.single-post-bottom-nav__next a {
  font-weight: 800;
  color: var(--navy);
}

.single-post-bottom-nav__center {
  text-align: center;
}

.single-post-bottom-nav__next {
  text-align: right;
}

@media (max-width: 1100px) {
  .post-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .page-hero-simple,
  .page-hero-simple--single,
  .page-hero-simple--page {
    padding: 120px 0 50px;
  }

  .post-card-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .single-post-content-wrap,
  .default-page-container,
  .single-side-box,
  .post-empty-box {
    padding: 22px 18px;
    border-radius: 5px;
  }

  .entry-content {
    font-size: 15px;
  }

  .entry-content h2 {
    font-size: 26px;
  }

  .entry-content h3 {
    font-size: 21px;
  }

  .single-post-bottom-nav {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .single-post-bottom-nav__next,
  .single-post-bottom-nav__center,
  .single-post-bottom-nav__prev {
    text-align: center;
  }
}

/* =========================================
   SINGLE POST DESIGN
========================================= */

.single-post-main {
  background: linear-gradient(180deg, #f7f5f2 0%, #f2eee8 100%);
}

.single-post-article {
  border-radius: 5px;
}

.page-hero-simple--single {
  padding: 120px 0 70px;
  background: linear-gradient(135deg, #0f3b73 0%, #34b4d8 100%);
  color: #fff;
}

.single-post-hero__inner {
  max-width: 1200px;
  margin: 0 auto;
}

.single-post-hero__meta {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 18px;
  font-size: 14px;
  font-weight: 700;
}

.single-post-hero__meta time {
  color: #fff;
  opacity: 0.95;
}

.single-post-hero__cat {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  padding: 0 12px;
  border-radius: 999px;
  background: #ff8a3d;
  color: #fff;
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
}

.page-hero-simple__title {
  margin: 0;
  font-size: clamp(36px, 5vw, 68px);
  line-height: 1.2;
  font-weight: 900;
  letter-spacing: 0.02em;
  color: #fff;
}

.single-post-section {
  padding-top: 60px;
  padding-bottom: 80px;
}

.single-post-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 36px;
  align-items: start;
}

.single-post-content-wrap {
  min-width: 0;
}

.single-post-thumbnail {
  margin-bottom: 24px;
}

.single-post-thumbnail img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 5px;
  box-shadow: 0 18px 36px rgba(0, 0, 0, 0.08);
}

.single-post-content {
  background: #fff;
  border-radius: 5px;
  padding: 34px 36px;
  box-shadow: 0 18px 36px rgba(0, 0, 0, 0.06);
  line-height: 2;
  color: #333;
}

.single-post-content > *:first-child {
  margin-top: 0;
}

.single-post-content > *:last-child {
  margin-bottom: 0;
}

.single-post-content p {
  margin: 0 0 1.6em;
  font-size: 16px;
  line-height: 2;
}

.single-post-content h2,
.single-post-content h3,
.single-post-content h4 {
  color: #0f3b73;
  line-height: 1.5;
  font-weight: 800;
}

.single-post-content h2 {
  margin: 2.2em 0 0.9em;
  font-size: 30px;
  padding-bottom: 10px;
  border-bottom: 2px solid #e7ddcf;
}

.single-post-content h3 {
  margin: 2em 0 0.8em;
  font-size: 24px;
}

.single-post-content h4 {
  margin: 1.8em 0 0.7em;
  font-size: 20px;
}

.single-post-content ul,
.single-post-content ol {
  margin: 0 0 1.6em 1.4em;
  padding: 0;
}

.single-post-content li {
  margin-bottom: 0.6em;
}

.single-post-content a {
  color: #0f3b73;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.single-post-content img {
  max-width: 100%;
  height: auto;
  border-radius: 5px;
}

.single-post-content figure {
  margin: 2em 0;
}

.single-post-content blockquote {
  margin: 2em 0;
  padding: 20px 22px;
  border-left: 4px solid #0f3b73;
  background: #f8fafc;
  border-radius: 5px;
}

.single-post-content table {
  width: 100%;
  border-collapse: collapse;
  margin: 2em 0;
  font-size: 14px;
}

.single-post-content th,
.single-post-content td {
  border: 1px solid #e7ddcf;
  padding: 12px 14px;
  text-align: left;
}

.single-post-content th {
  background: #f7f5f2;
  font-weight: 700;
}

.single-post-bottom-nav {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 20px;
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid #e7ddcf;
}

.single-post-bottom-nav__prev {
  text-align: left;
}

.single-post-bottom-nav__center {
  text-align: center;
}

.single-post-bottom-nav__next {
  text-align: right;
}

.single-post-bottom-nav a {
  color: #0f3b73;
  text-decoration: none;
  font-weight: 700;
}

.single-post-bottom-nav__center a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 18px;
  border-radius: 999px;
  background: #fff;
  border: 1px solid #d9d0c2;
  box-shadow: 0 6px 14px rgba(0, 0, 0, 0.04);
}

.single-post-sidebar {
  position: sticky;
  top: 100px;
}

.single-side-box {
  background: #fff;
  border-radius: 5px;
  box-shadow: 0 18px 36px rgba(0, 0, 0, 0.06);
  padding: 22px 22px 18px;
  margin-bottom: 20px;
}

.single-side-box__title {
  margin: 0 0 16px;
  font-size: 24px;
  line-height: 1.4;
  font-weight: 900;
  color: #0f3b73;
}

.single-side-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.single-side-list li {
  border-top: 1px solid #eee6da;
}

.single-side-list li:first-child {
  border-top: none;
}

.single-side-list li a,
.single-side-list li {
  display: block;
  padding: 12px 0;
  color: #333;
  text-decoration: none;
  font-size: 14px;
  line-height: 1.8;
}

.single-side-list li a:hover {
  color: #0f3b73;
}

.single-side-box .cat-item a {
  padding: 12px 0;
}

@media (max-width: 991px) {
  .single-post-layout {
    grid-template-columns: 1fr;
  }

  .single-post-sidebar {
    position: static;
    top: auto;
  }
}

@media (max-width: 767px) {
  .page-hero-simple--single {
    padding: 92px 0 46px;
  }

  .page-hero-simple__title {
    font-size: clamp(30px, 9vw, 46px);
  }

  .single-post-section {
    padding-top: 36px;
    padding-bottom: 56px;
  }

  .single-post-content {
    padding: 22px 18px;
  }

  .single-post-content p {
    font-size: 15px;
    line-height: 1.9;
  }

  .single-post-content h2 {
    font-size: 24px;
  }

  .single-post-content h3 {
    font-size: 21px;
  }

  .single-post-content h4 {
    font-size: 18px;
  }

  .single-post-bottom-nav {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .single-post-bottom-nav__prev,
  .single-post-bottom-nav__center,
  .single-post-bottom-nav__next {
    text-align: center;
  }

  .single-side-box {
    padding: 18px 16px 14px;
  }

  .single-side-box__title {
    font-size: 20px;
  }
}



/* =========================================
   SINGLE POST DESIGN
========================================= */

.single-post-main {
  background: linear-gradient(180deg, #f7f5f2 0%, #f2eee8 100%);
}

.single-post-article {
  border-radius: 5px;
}

.page-hero-simple--single {
  padding: 70px 0 30px;
  background: linear-gradient(135deg, #0f3b73 0%, #34b4d8 100%);
  color: #fff;
}

.single-post-hero__inner {
  max-width: 1200px;
  margin: 0 auto;
  min-height: 40px;
}

.single-post-section {
  padding-top: 40px;
  padding-bottom: 80px;
}

.single-post-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 36px;
  align-items: start;
}

.single-post-content-wrap {
  min-width: 0;
}

.single-post-thumbnail {
  margin-bottom: 24px;
}

.single-post-thumbnail img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 5px;
  box-shadow: 0 18px 36px rgba(0, 0, 0, 0.08);
}

.single-post-content {
  background: #fff;
  border-radius: 5px;
  padding: 34px 36px;
  box-shadow: 0 18px 36px rgba(0, 0, 0, 0.06);
  line-height: 2;
  color: #333;
}

.single-post-header {
  margin-bottom: 28px;
  padding-bottom: 22px;
  border-bottom: 1px solid #e7ddcf;
}

.single-post-header__meta {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 12px;
  font-size: 13px;
  font-weight: 700;
  color: #666;
}

.single-post-header__cat {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 26px;
  padding: 0 10px;
  border-radius: 999px;
  background: #f26b1d;
  color: #fff;
  font-size: 11px;
  font-weight: 800;
}

.single-post-header__title {
  margin: 0;
  font-size: clamp(28px, 3.4vw, 44px);
  line-height: 1.4;
  font-weight: 900;
  color: #0f3b73;
  letter-spacing: 0.02em;
}

.single-post-content > *:first-child {
  margin-top: 0;
}

.single-post-content > *:last-child {
  margin-bottom: 0;
}

.single-post-content p {
  margin: 0 0 1.6em;
  font-size: 16px;
  line-height: 2;
}

.single-post-content h2,
.single-post-content h3,
.single-post-content h4 {
  color: #0f3b73;
  line-height: 1.5;
  font-weight: 800;
}

.single-post-content h2 {
  margin: 2.2em 0 0.9em;
  font-size: 30px;
  padding-bottom: 10px;
  border-bottom: 2px solid #e7ddcf;
}

.single-post-content h3 {
  margin: 2em 0 0.8em;
  font-size: 24px;
}

.single-post-content h4 {
  margin: 1.8em 0 0.7em;
  font-size: 20px;
}

.single-post-content ul,
.single-post-content ol {
  margin: 0 0 1.6em 1.4em;
  padding: 0;
}

.single-post-content li {
  margin-bottom: 0.6em;
}

.single-post-content a {
  color: #0f3b73;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.single-post-content img {
  max-width: 100%;
  height: auto;
  border-radius: 5px;
}

.single-post-content figure {
  margin: 2em 0;
}

.single-post-content blockquote {
  margin: 2em 0;
  padding: 20px 22px;
  border-left: 4px solid #0f3b73;
  background: #f8fafc;
  border-radius: 5px;
}

.single-post-content table {
  width: 100%;
  border-collapse: collapse;
  margin: 2em 0;
  font-size: 14px;
}

.single-post-content th,
.single-post-content td {
  border: 1px solid #e7ddcf;
  padding: 12px 14px;
  text-align: left;
}

.single-post-content th {
  background: #f7f5f2;
  font-weight: 700;
}

.single-post-bottom-nav {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 20px;
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid #e7ddcf;
}

.single-post-bottom-nav__prev {
  text-align: left;
}

.single-post-bottom-nav__center {
  text-align: center;
}

.single-post-bottom-nav__next {
  text-align: right;
}

.single-post-bottom-nav a {
  color: #0f3b73;
  text-decoration: none;
  font-weight: 700;
}

.single-post-bottom-nav__center a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 18px;
  border-radius: 999px;
  background: #fff;
  border: 1px solid #d9d0c2;
  box-shadow: 0 6px 14px rgba(0, 0, 0, 0.04);
}

.single-post-sidebar {
  position: sticky;
  top: 100px;
}

.single-side-box {
  background: #fff;
  border-radius: 5px;
  box-shadow: 0 18px 36px rgba(0, 0, 0, 0.06);
  padding: 22px 22px 18px;
  margin-bottom: 20px;
}

.single-side-box__title {
  margin: 0 0 16px;
  font-size: 24px;
  line-height: 1.4;
  font-weight: 900;
  color: #0f3b73;
}

.single-side-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.single-side-list li {
  border-top: 1px solid #eee6da;
}

.single-side-list li:first-child {
  border-top: none;
}

.single-side-list li a,
.single-side-list li {
  display: block;
  padding: 12px 0;
  color: #333;
  text-decoration: none;
  font-size: 14px;
  line-height: 1.8;
}

.single-side-list li a:hover {
  color: #0f3b73;
}

.single-side-box .cat-item a {
  padding: 12px 0;
}

@media (max-width: 991px) {
  .single-post-layout {
    grid-template-columns: 1fr;
  }

  .single-post-sidebar {
    position: static;
    top: auto;
  }
}

@media (max-width: 767px) {
  .page-hero-simple--single {
    padding: 56px 0 20px;
  }

  .single-post-section {
    padding-top: 28px;
    padding-bottom: 56px;
  }

  .single-post-content {
    padding: 22px 18px;
  }

  .single-post-header {
    margin-bottom: 22px;
    padding-bottom: 18px;
  }

  .single-post-header__title {
    font-size: clamp(24px, 7vw, 34px);
  }

  .single-post-content p {
    font-size: 15px;
    line-height: 1.9;
  }

  .single-post-content h2 {
    font-size: 24px;
  }

  .single-post-content h3 {
    font-size: 21px;
  }

  .single-post-content h4 {
    font-size: 18px;
  }

  .single-post-bottom-nav {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .single-post-bottom-nav__prev,
  .single-post-bottom-nav__center,
  .single-post-bottom-nav__next {
    text-align: center;
  }

  .single-side-box {
    padding: 18px 16px 14px;
  }

  .single-side-box__title {
    font-size: 20px;
  }
}



/* =========================================
   ARCHIVE PAGE DESIGN
========================================= */

.archive-page-main {
  background: linear-gradient(180deg, #f7f5f2 0%, #f2eee8 100%);
}

.page-hero-simple--archive {
  padding: 70px 0 34px;
  background: linear-gradient(135deg, #0f3b73 0%, #34b4d8 100%);
  color: #fff;
}

.archive-hero__inner {
  max-width: 1200px;
  margin: 0 auto;
  min-height: 40px;
}

.archive-hero__meta {
  margin-bottom: 12px;
}

.archive-hero__label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  padding: 0 12px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.16);
  color: #fff;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.archive-hero__desc {
  margin-top: 14px;
  max-width: 700px;
  color: rgba(255, 255, 255, 0.92);
  font-size: 15px;
  line-height: 1.9;
}

.archive-post-section {
  padding-top: 40px;
  padding-bottom: 80px;
}

.archive-post-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 36px;
  align-items: start;
}

.archive-post-content {
  min-width: 0;
}

.archive-post-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px;
}

.archive-post-card {
  background: #fff;
  border-radius: 5px;
  box-shadow: 0 18px 36px rgba(0, 0, 0, 0.06);
  overflow: hidden;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.archive-post-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 24px 40px rgba(0, 0, 0, 0.08);
}

.archive-post-card__link {
  display: block;
  height: 100%;
  text-decoration: none;
  color: inherit;
}

.archive-post-card__thumb {
  aspect-ratio: 16 / 10;
  overflow: hidden;
}

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

.archive-post-card__body {
  padding: 22px 22px 24px;
}

.archive-post-card__meta {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 12px;
  font-size: 13px;
  font-weight: 700;
  color: #666;
}

.archive-post-card__cat {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 26px;
  padding: 0 10px;
  border-radius: 999px;
  background: #f26b1d;
  color: #fff;
  font-size: 11px;
  font-weight: 800;
}

.archive-post-card__title {
  margin: 0 0 12px;
  font-size: 24px;
  line-height: 1.45;
  font-weight: 900;
  color: #0f3b73;
}

.archive-post-card__excerpt {
  font-size: 14px;
  line-height: 1.9;
  color: #555;
}

.archive-pagination {
  margin-top: 34px;
}

.archive-pagination .nav-links {
  display: flex;
  justify-content: center;
  gap: 10px;
  flex-wrap: wrap;
}

.archive-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  height: 44px;
  padding: 0 14px;
  border-radius: 999px;
  background: #fff;
  border: 1px solid #d9d0c2;
  color: #0f3b73;
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 6px 14px rgba(0, 0, 0, 0.04);
}

.archive-pagination .page-numbers.current {
  background: #0f3b73;
  border-color: #0f3b73;
  color: #fff;
}

.archive-sidebar {
  position: sticky;
  top: 100px;
}

.archive-side-box {
  background: #fff;
  border-radius: 5px;
  box-shadow: 0 18px 36px rgba(0, 0, 0, 0.06);
  padding: 22px 22px 18px;
  margin-bottom: 20px;
}

.archive-side-box__title {
  margin: 0 0 16px;
  font-size: 24px;
  line-height: 1.4;
  font-weight: 900;
  color: #0f3b73;
}

.archive-side-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.archive-side-list li {
  border-top: 1px solid #eee6da;
}

.archive-side-list li:first-child {
  border-top: none;
}

.archive-side-list li a,
.archive-side-list li {
  display: block;
  padding: 12px 0;
  color: #333;
  text-decoration: none;
  font-size: 14px;
  line-height: 1.8;
}

.archive-side-list li a:hover {
  color: #0f3b73;
}

.archive-side-box .cat-item a {
  padding: 12px 0;
}

.archive-empty {
  background: #fff;
  border-radius: 5px;
  box-shadow: 0 18px 36px rgba(0, 0, 0, 0.06);
  padding: 26px 24px;
  text-align: center;
  color: #666;
}

@media (max-width: 991px) {
  .archive-post-layout {
    grid-template-columns: 1fr;
  }

  .archive-sidebar {
    position: static;
    top: auto;
  }
}

@media (max-width: 767px) {
  .page-hero-simple--archive {
    padding: 56px 0 20px;
  }

  .archive-post-section {
    padding-top: 28px;
    padding-bottom: 56px;
  }

  .archive-post-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .archive-post-card__body {
    padding: 18px 16px 20px;
  }

  .archive-post-card__title {
    font-size: 21px;
  }

  .archive-side-box {
    padding: 18px 16px 14px;
  }

  .archive-side-box__title {
    font-size: 20px;
  }
}





/* NEWS 全体 */
.news-strip {
  padding: 60px 20px;
  background: #fff;
}


.news-title {
  grid-column: 1 / 2;
  grid-row: 1 / 3;
  align-self: center;
}

.news-list {
  grid-column: 2 / 3;
  grid-row: 1 / 2;
}

.news-item {
  display: flex;
  gap: 20px;
  text-decoration: none;
  color: #333;
  border-bottom: 1px solid #eee;
  padding-bottom: 10px;
  transition: 0.3s;
}

.news-item:hover {
  opacity: 0.6;
}

/* 日付 */
.news-date {
  font-size: 12px;
  color: #888;
  min-width: 90px;
}

/* タイトル */
.news-text {
  font-size: 14px;
  line-height: 1.6;
}

/* ホバー */
.news-more-btn:hover {
  background: #333;
  color: #fff;
}

.news-more-btn .arrow {
  transition: transform 0.3s;
}

.news-more-btn:hover .arrow {
  transform: translateX(4px);
}



@media (max-width: 767px) {
  .news-strip__inner {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .news-title {
    grid-column: auto;
    grid-row: auto;
  }

  .news-list {
    grid-column: auto;
    grid-row: auto;
  }

  .news-more {
    grid-column: auto;
    grid-row: auto;
    justify-self: start;
    margin-top: 8px;
  }
}


/* =========================================
   HERO VISUAL
========================================= */

.page-hero-visual {
  position: relative;
  width: 100%;
  min-height: 340px;
  overflow: hidden;
  color: #fff;
  margin: 0;
  padding: 0;
}

.page-hero-visual__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
}

.page-hero-visual__bg img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

.page-hero-visual__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(
    135deg,
    rgba(8, 25, 48, 0.48) 0%,
    rgba(15, 59, 115, 0.28) 42%,
    rgba(52, 180, 216, 0.12) 100%
  );
}

.page-hero-visual__inner {
  position: relative;
  z-index: 2;
  min-height: 340px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding-top: 110px;
  padding-bottom: 42px;
}

.page-hero-visual__meta {
  margin-bottom: 14px;
}

.page-hero-visual__label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  padding: 0 14px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.16);
  backdrop-filter: blur(6px);
  color: #fff;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.14em;
}

.page-hero-visual__text {
  max-width: 760px;
}

.page-hero-visual__sub {
  margin: 0;
  font-size: 16px;
  line-height: 1.8;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.95);
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
}

.page-hero-visual__title {
  margin: 0;
  font-size: clamp(34px, 5vw, 64px);
  line-height: 1.2;
  font-weight: 900;
  letter-spacing: 0.02em;
  color: #fff;
  text-shadow: 0 4px 18px rgba(0, 0, 0, 0.32);
}

.page-hero-visual__desc {
  margin-top: 14px;
  font-size: 15px;
  line-height: 1.9;
  color: rgba(255, 255, 255, 0.92);
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.24);
}

.page-hero-visual--single {
  min-height: 280px;
}

.page-hero-visual--single .page-hero-visual__inner {
  min-height: 280px;
  padding-top: 100px;
  padding-bottom: 34px;
}

.page-hero-visual--archive {
  min-height: 320px;
}

.page-hero-visual--archive .page-hero-visual__inner {
  min-height: 320px;
}

/* 念のため、ヒーロー直下に余白が入るのを防ぐ */
.page-hero-visual + .section,
.page-hero-visual + .archive-post-section,
.page-hero-visual + .single-post-section {
  margin-top: 0;
}

/* 横スクロール防止 */
body {
  overflow-x: hidden;
}

@media (max-width: 767px) {
  .page-hero-visual {
    min-height: 230px;
  }

  .page-hero-visual__inner {
    min-height: 230px;
    padding-top: 90px;
    padding-bottom: 24px;
  }

  .page-hero-visual__title {
    font-size: clamp(28px, 9vw, 40px);
  }

  .page-hero-visual__sub,
  .page-hero-visual__desc {
    font-size: 14px;
    line-height: 1.8;
  }

  .page-hero-visual--single {
    min-height: 200px;
  }

  .page-hero-visual--single .page-hero-visual__inner {
    min-height: 200px;
  }

  .page-hero-visual--archive {
    min-height: 220px;
  }

  .page-hero-visual--archive .page-hero-visual__inner {
    min-height: 220px;
  }
}

.about-card--message {
  overflow: hidden;
}

.about-owner-box {
  display: grid;
  grid-template-columns: 360px 1fr;
  gap: 32px;
  align-items: center;
  margin-top: 36px;
  padding: 28px;
  background: linear-gradient(135deg, #fffaf2 0%, #fff 100%);
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-radius: 5px;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.08);
}

.about-owner-box__figure {
  margin: 0;
}

.about-owner-box__image-bg {
  position: relative;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  min-height: 520px;
  padding: 20px 10px 0;
  background:
    radial-gradient(circle at top, rgba(255, 184, 77, 0.28) 0%, rgba(255, 184, 77, 0) 55%),
    linear-gradient(180deg, #f7efe0 0%, #efe3ca 100%);
  border-radius: 5px;
  overflow: hidden;
}

.about-owner-box__image-bg::after {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 80px;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.08), transparent);
  pointer-events: none;
}

.about-owner-box__image {
  position: relative;
  z-index: 2;
  max-width: 100%;
  max-height: 500px;
  object-fit: contain;
  filter: drop-shadow(0 20px 30px rgba(0, 0, 0, 0.18));
}

.about-owner-box__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.about-owner-box__label {
  display: inline-block;
  width: fit-content;
  margin-bottom: 12px;
  padding: 6px 12px;
  background: #f47b20;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  border-radius: 5px;
}

.about-owner-box__name {
  margin-bottom: 6px;
  color: #2f2417;
  font-size: 32px;
  font-weight: 800;
  line-height: 1.2;
}

.about-owner-box__position {
  margin-bottom: 18px;
  color: #8a5a2b;
  font-size: 15px;
  font-weight: 700;
}

.about-owner-box__text {
  margin: 0;
  color: #4b4034;
  font-size: 15px;
  line-height: 2;
}

@media (max-width: 991px) {
  .about-owner-box {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .about-owner-box__image-bg {
    min-height: 420px;
  }

  .about-owner-box__image {
    max-height: 400px;
  }

  .about-owner-box__name {
    font-size: 28px;
  }
}

@media (max-width: 767px) {
  .about-owner-box {
    padding: 20px;
  }

  .about-owner-box__image-bg {
    min-height: 360px;
  }

  .about-owner-box__image {
    max-height: 340px;
  }

  .about-owner-box__name {
    font-size: 24px;
  }

  .about-owner-box__text {
    font-size: 14px;
    line-height: 1.9;
  }
}
/* =========================
  CORPORATE UNIFIED
  代表メッセージ
========================= */

.corporate-unified {
  position: relative;
  overflow: hidden;
  padding: 56px 0;
  background: linear-gradient(180deg, #fff4df 0%, #f7ddb2 52%, #f2d1a2 100%);
}

.corporate-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px 340px;
  gap: 34px;
  align-items: center;
  margin-bottom: 40px;
}

/* 左テキスト */
.corporate-panel__text {
  min-width: 0;
}

.corporate-panel__text .about-card__eyebrow {
  display: inline-block;
  margin-bottom: 12px;
  color: #f05b16;
  font-size: 14px;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.corporate-panel__title {
  margin: 0 0 14px;
  color: #1c1007;
  font-size: clamp(34px, 4vw, 54px);
  line-height: 1.15;
  font-weight: 950;
  letter-spacing: 0.04em;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif;
  text-shadow: 2px 2px 0 rgba(255, 255, 255, 0.75);
}

.corporate-panel__lead {
  margin: 0 0 14px;
  color: #1f1309;
  font-size: 18px;
  line-height: 1.7;
  font-weight: 900;
}

.corporate-panel__body {
  margin: 0;
  color: #3e2b1b;
  font-size: 13px;
  line-height: 1.9;
  font-weight: 700;
}

/* ボタン */
.corporate-panel__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  min-width: 250px;
  min-height: 42px;
  margin-top: 22px;
  padding: 0 26px;
  color: #fff;
  text-decoration: none;
  font-size: 14px;
  font-weight: 950;
  letter-spacing: 0.05em;
  background: linear-gradient(180deg, #f33a1d 0%, #cc1208 100%);
  border: 2px solid rgba(255, 198, 126, 0.8);
  border-radius: 999px;
  box-shadow:
    0 6px 0 rgba(105, 30, 8, 0.22),
    inset 0 0 0 1px rgba(255, 255, 255, 0.24);
  transition: transform 0.25s ease, filter 0.25s ease;
}

.corporate-panel__button::after {
  content: "▶";
  margin-left: 10px;
  font-size: 10px;
}

.corporate-panel__button:hover {
  transform: translateY(-2px);
  filter: brightness(1.06);
}

/* 人物写真 */
.corporate-owner {
  align-self: end;
  margin: 0;
  display: flex;
  justify-content: center;
}

.corporate-owner__image {
  display: block;
  width: auto;
  max-width: 280px;
  max-height: 360px;
  object-fit: contain;
  filter: drop-shadow(0 14px 18px rgba(88, 50, 18, 0.22));
}

/* 右メッセージカード */
.corporate-message-card {
  position: relative;
  padding: 30px 32px;
  background:
    linear-gradient(180deg, rgba(255, 250, 232, 0.98) 0%, rgba(245, 224, 188, 0.98) 100%);
  border: 2px solid rgba(92, 58, 25, 0.42);
  border-radius: 4px;
  box-shadow:
    0 12px 24px rgba(90, 53, 20, 0.16),
    inset 0 0 0 1px rgba(255, 255, 255, 0.68);
}

.corporate-message-card h3 {
  margin: 0 0 16px;
  color: #1c1007;
  font-size: 24px;
  line-height: 1.4;
  font-weight: 950;
  letter-spacing: 0.04em;
}

.corporate-message-card p {
  margin: 0;
  color: #3e2b1b;
  font-size: 14px;
  line-height: 1.9;
  font-weight: 700;
}

.corporate-message-card__name {
  margin-top: 18px;
  color: #3e2b1b;
  font-size: 14px;
  font-weight: 800;
}

.corporate-message-card__name span {
  margin-right: 8px;
}

.corporate-message-card__name strong {
  color: #1c1007;
  font-size: 18px;
  font-weight: 950;
}
.corporate-owner {
  align-self: end;
  justify-self: center;
  margin: 0 auto;
  display: flex;
  justify-content: center;
  align-items: flex-end;
  width: 100%;
}

.corporate-owner__image {
  display: block;
  margin: 0 auto;
}

/* =========================
   タブレット
========================= */

@media (max-width: 1080px) {
  .corporate-panel {
    grid-template-columns: minmax(0, 1fr) 240px;
    gap: 28px;
  }
  .corporate-owner {
    justify-self: center;
    margin-left: auto;
    margin-right: auto;
  }

  .corporate-message-card {
    grid-column: 1 / -1;
    max-width: 560px;
    margin: 0 auto;
  }

  .corporate-owner__image {
    max-width: 240px;
    max-height: 330px;
  }
}

/* =========================
   SP
========================= */

@media (max-width: 768px) {
  .corporate-unified {
    padding: 42px 0 48px;
  }

  .corporate-panel {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    text-align: center;
  }

  .corporate-panel__text {
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  .corporate-panel__title {
    font-size: 30px;
  }

  .corporate-panel__lead {
    font-size: 16px;
  }

  .corporate-panel__body {
    font-size: 13px;
    line-height: 1.9;
    text-align: left;
  }

  /* SPでは写真を本文の下へ */
  .corporate-owner {
    order: 2;
  }

  .corporate-owner__image {
    max-width: 220px;
    max-height: 300px;
  }

  /* SPではボタンを写真の下へ移動 */
  .corporate-panel__button {
    order: 3;
    margin-top: 0;
  }

  .corporate-message-card {
    order: 4;
    width: 100%;
    max-width: 420px;
    padding: 24px 22px;
    text-align: left;
  }

  .corporate-message-card h3 {
    font-size: 21px;
  }

  .corporate-message-card p {
    font-size: 13px;
  }
    .corporate-owner {
    order: 2;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 auto;
  }

  .corporate-owner__image {
    margin-left: auto;
    margin-right: auto;
  }
    .corporate-panel {
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  .corporate-panel__text {
    display: contents;
  }

  .corporate-panel__text .about-card__eyebrow {
    order: 1;
  }

  .corporate-panel__title {
    order: 2;
  }

  .corporate-panel__lead {
    order: 3;
  }

  .corporate-panel__body {
    order: 4;
  }

  .corporate-owner {
    order: 5;
  }

  .corporate-message-card {
    order: 6;
  }

  .corporate-panel__button {
    order: 7;
    margin-top: 4px;
  }
}


/* =========================
   FOOD / 横長バナー風 修正版
   画像が縦長・帯状に崩れる問題を修正
========================= */

.food-banner-menu {
  position: relative;
  overflow: hidden;
  padding: 38px 0 42px;
  color: #fff;
  background:
    radial-gradient(circle at 12% 18%, rgba(255, 103, 32, 0.18), transparent 28%),
    radial-gradient(circle at 88% 20%, rgba(255, 103, 32, 0.14), transparent 26%),
    linear-gradient(180deg, #111827 0%, #081321 52%, #082034 100%);
}

.food-banner-menu::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px),
    linear-gradient(rgba(255, 255, 255, 0.028) 1px, transparent 1px);
  background-size: 38px 38px;
  opacity: 0.24;
  pointer-events: none;
}

.food-banner-menu__inner {
  position: relative;
  z-index: 1;
  width: min(1180px, calc(100% - 40px));
  margin: 0 auto;
}

/* 見出し */
.food-banner-menu__head {
  text-align: center;
  margin-bottom: 22px;
}

.food-banner-menu__eyebrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 26px;
  margin: 0 0 10px;
  padding: 0 14px;
  color: #fff;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.14em;
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 999px;
}

.food-banner-menu__head h2 {
  margin: 0;
  color: #fff;
  font-size: clamp(28px, 3vw, 42px);
  line-height: 1.18;
  font-weight: 950;
  letter-spacing: 0.04em;
  text-shadow: 0 5px 18px rgba(0, 0, 0, 0.45);
}

.food-banner-menu__lead {
  margin: 10px 0 0;
  color: rgba(255, 255, 255, 0.82);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.04em;
}

/* =========================
   横長バナー本体
========================= */

.food-banner-menu__layout {
  display: grid;
  grid-template-columns: 82px minmax(0, 1.15fr) minmax(360px, 0.8fr);
  gap: 14px;
  align-items: stretch;
  height: 320px;
}

/* 左の縦札 */
.food-banner-menu__side-sign {
  height: 320px;
  padding: 14px 8px;
  color: #241406;
  text-align: center;
  background:
    linear-gradient(180deg, rgba(255, 248, 225, 0.98), rgba(240, 213, 167, 0.98));
  border: 2px solid rgba(91, 58, 25, 0.52);
  border-radius: 4px;
  box-shadow:
    0 9px 18px rgba(0, 0, 0, 0.35),
    inset 0 0 0 1px rgba(255, 255, 255, 0.6);
  transform: rotate(-3deg);
  writing-mode: vertical-rl;
}

.food-banner-menu__side-sign span {
  display: block;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.food-banner-menu__side-sign strong {
  display: block;
  margin-right: 8px;
  font-size: 24px;
  line-height: 1.12;
  font-weight: 950;
  letter-spacing: 0.08em;
}

/* 共通 */
.food-banner-menu__link {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  color: inherit;
  text-decoration: none;
}

.food-banner-menu figure {
  margin: 0;
}

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

/* =========================
   左：ラフテー大枠
========================= */

.food-banner-menu__main {
  position: relative;
  overflow: hidden;
  height: 320px;
  background: rgba(255, 255, 255, 0.06);
  border: 2px solid rgba(242, 118, 41, 0.72);
  border-radius: 4px;
  box-shadow: 0 18px 38px rgba(0, 0, 0, 0.32);
}

.food-banner-menu__main-image {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.food-banner-menu__main-image::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(0, 0, 0, 0.02) 0%, rgba(0, 0, 0, 0.18) 45%, rgba(0, 0, 0, 0.78) 100%);
}

.food-banner-menu__main-image img {
  object-position: center center;
}

.food-banner-menu__main-copy {
  position: absolute;
  left: 18px;
  right: 18px;
  bottom: 16px;
  z-index: 2;
}

.food-banner-menu__badge {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 10px;
  margin-bottom: 7px;
  color: #fff;
  font-size: 11px;
  font-weight: 950;
  letter-spacing: 0.06em;
  background: linear-gradient(180deg, #ff3e1d, #d71608);
  border: 2px solid rgba(255, 212, 137, 0.75);
  border-radius: 3px;
  box-shadow: 0 4px 0 rgba(65, 18, 5, 0.25);
  transform: rotate(-3deg);
}

.food-banner-menu__main-copy h3 {
  margin: 0 0 8px;
  color: #fff;
  font-size: clamp(32px, 3vw, 44px);
  line-height: 1;
  font-weight: 950;
  letter-spacing: 0.04em;
  text-shadow: 0 5px 16px rgba(0, 0, 0, 0.55);
}

.food-banner-menu__main-copy p {
  margin: 0;
  color: rgba(255, 255, 255, 0.94);
  font-size: 13px;
  line-height: 1.55;
  font-weight: 800;
}

/* =========================
   右：2段カード
========================= */

.food-banner-menu__sub {
  display: grid;
  grid-template-rows: 1fr 1fr;
  gap: 12px;
  height: 320px;
}

.food-banner-menu__card {
  position: relative;
  overflow: hidden;
  height: 154px;
  background: rgba(255, 255, 255, 0.06);
  border: 2px solid rgba(242, 118, 41, 0.62);
  border-radius: 4px;
  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.25);
}

.food-banner-menu__card-image {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.food-banner-menu__card-image::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(0, 0, 0, 0.10), rgba(0, 0, 0, 0.04)),
    linear-gradient(180deg, rgba(0, 0, 0, 0.02), rgba(0, 0, 0, 0.72));
}

.food-banner-menu__card-copy {
  position: absolute;
  left: 14px;
  right: 14px;
  bottom: 12px;
  z-index: 2;
}

.food-banner-menu__card-copy h3 {
  margin: 0 0 4px;
  color: #fff;
  font-size: 24px;
  line-height: 1.1;
  font-weight: 950;
  letter-spacing: 0.04em;
  text-shadow: 0 4px 12px rgba(0, 0, 0, 0.6);
}

.food-banner-menu__card-copy p {
  margin: 0;
  color: rgba(255, 255, 255, 0.94);
  font-size: 12px;
  line-height: 1.5;
  font-weight: 900;
}

/* CTA */
.food-banner-menu__cta {
  display: flex;
  justify-content: center;
  margin-top: 16px;
}

.food-banner-menu__cta a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 220px;
  min-height: 44px;
  padding: 0 22px;
  color: #fff;
  text-decoration: none;
  font-size: 15px;
  font-weight: 950;
  letter-spacing: 0.05em;
  background: linear-gradient(180deg, #078db2, #006b8f);
  border: 2px solid rgba(170, 239, 255, 0.72);
  border-radius: 999px;
  box-shadow: 0 5px 0 rgba(0, 0, 0, 0.26);
}

.food-banner-menu__cta a::after {
  content: "▶";
  margin-left: 9px;
  font-size: 9px;
}


/* hover */
.food-banner-menu__main,
.food-banner-menu__card,
.food-banner-menu__cta a {
  transition: transform 0.25s ease, filter 0.25s ease;
}

.food-banner-menu__main:hover,
.food-banner-menu__card:hover {
  transform: translateY(-3px);
}

.food-banner-menu__cta a:hover {
  transform: translateY(-2px);
  filter: brightness(1.08);
}

/* =========================
   SP対応
========================= */

@media (max-width: 991px) {
  .food-banner-menu {
    padding: 42px 0 48px;
  }

  .food-banner-menu__layout {
    grid-template-columns: 1fr;
    height: auto;
  }

  .food-banner-menu__side-sign {
    width: fit-content;
    height: auto;
    min-height: auto;
    margin: 0 auto;
    padding: 10px 16px;
    writing-mode: horizontal-tb;
  }

  .food-banner-menu__side-sign strong {
    margin-right: 0;
    font-size: 22px;
  }

  .food-banner-menu__main {
    height: 280px;
  }

  .food-banner-menu__main-image {
    height: 280px;
  }

  .food-banner-menu__sub {
    grid-template-rows: none;
    grid-template-columns: 1fr 1fr;
    height: auto;
  }

  .food-banner-menu__card {
    height: 180px;
  }
}

@media (max-width: 640px) {
  .food-banner-menu__inner {
    width: calc(100% - 28px);
  }

  .food-banner-menu__head h2 {
    font-size: 30px;
  }

  .food-banner-menu__lead {
    font-size: 12px;
    line-height: 1.6;
  }

  .food-banner-menu__sub {
    grid-template-columns: 1fr;
  }

  .food-banner-menu__main {
    height: 250px;
  }

  .food-banner-menu__main-image {
    height: 250px;
  }

  .food-banner-menu__card {
    height: 170px;
  }

  .food-banner-menu__main-copy h3 {
    font-size: 34px;
  }

  .food-banner-menu__card-copy h3 {
    font-size: 24px;
  }
}

/* =========================
   MAIN PAGE HEADER ONLY
========================= */

/* PC表示 */
.main-hero-nav {
  display: block;
}

/* メインページ用ナビ */
.main-hero-nav .top-hero-nav__inner {
  position: relative;
  width: 82vw;
  max-width: none;
  height: 96px;
  margin: 22px auto 0;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.94);
}

/* メニュー */
.main-hero-nav .top-hero-nav__menu {
  height: 100%;
  /* padding-left: clamp(210px, 18vw, 300px); */
  padding-right: clamp(40px, 4vw, 72px);
  box-sizing: border-box;

  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(16px, 2.4vw, 46px);

  white-space: nowrap;
}

/* 文字サイズも縮小に合わせる */

.main-hero-nav .top-hero-nav__menu a small {
  font-size: clamp(7px, 0.62vw, 10px);
}

/* ロゴ */
.main-hero-nav .top-hero-nav__main-logo {
  position: absolute;
  left: 1.4%;
  top: 48%;
  transform: translateY(-14%);
  z-index: 150;
  width: clamp(160px, 11.8vw, 200px);
}

.main-hero-nav .top-hero-nav__main-logo img {
  display: block;
  width: 100%;
  height: auto;
}

.main-hero-nav .top-hero-nav__deco--left {
  position: absolute;
  left: clamp(20px, 17vw, 270px);
  top: 70%;
  transform: translateY(-50%);
  z-index: 130;
  width: 82px;
  pointer-events: none;
}

/* 右の青い花 */
.main-hero-nav .top-hero-nav__brand {
  position: absolute;
  right: 0.5%;
  top: 80%;
  transform: translateY(-50%);
  z-index: 130;
  width: clamp(30px, 7.8vw, 82px);
  pointer-events: none;
}

.main-hero-nav .top-hero-nav__brand img,
.main-hero-nav .top-hero-nav__deco--left img {
  display: block;
  width: 100%;
  height: auto;
}

/* ノートPC幅で被りそうな装飾は小さく・少し逃がす */
@media (min-width: 768px) and (max-width: 1180px) {
  .main-hero-nav .top-hero-nav__inner {
    width: 90vw;
    height: 88px;
  }

  .main-hero-nav .top-hero-nav__menu {
    padding-left: clamp(10px, 2vw, 300px);
    padding-right: 34px;
    gap: clamp(12px, 1.8vw, 24px);
  }


  .main-hero-nav .top-hero-nav__menu a span {
    font-size: 11px;
  }

  .main-hero-nav .top-hero-nav__menu a small {
    font-size: 7px;
  }
}

/* さらに狭いタブレット寄りでは装飾を非表示にして被り防止 */
@media (min-width: 768px) and (max-width: 980px) {

  .main-hero-nav .top-hero-nav__menu {
    padding-right: 24px;
  }

  .main-hero-nav .top-hero-nav__main-logo {
    width: 95px;
  }
}

/* =========================
   MAIN PAGE SP HEADER
   ロゴ＋オレンジメニューのみ表示
========================= */

@media (max-width: 767px) {
  .main-hero-nav {
    display: block ;
    position: absolute ;
    left: 0 ;
    top: 0 ;
    z-index: 200 ;
    width: 100% ;
    height: 120px ;
    padding: 0 ;
    background: transparent ;
    pointer-events: none;
  }

  /* 白い帯を消す */
  .main-hero-nav .top-hero-nav__inner {
    width: auto ;
    max-width: none ;
    height: auto ;
    margin: 0 ;
    padding: 0 ;
    background: transparent ;
    border-radius: 0 ;
    box-shadow: none ;
    backdrop-filter: none ;
  }

  /* PCメニュー・花装飾だけ非表示 */
  .main-hero-nav .top-hero-nav__menu,
  .main-hero-nav .top-hero-nav__brand,
  .main-hero-nav .top-hero-nav__deco,
  .main-hero-nav .top-hero-nav__deco--left,
  .main-hero-nav .top-hero-nav__deco--right {
    display: none ;
  }

  /* ロゴだけ残す */
  .main-hero-nav .top-hero-nav__main-logo {
    display: block ;
    position: absolute ;
    left: 18px ;
    top: 35px ;
    z-index: 210 ;
    width: 105px ;
    height: auto ;
    margin: 0 ;
    padding: 0 ;
    transform: none ;
    pointer-events: auto;
  }

  .main-hero-nav .top-hero-nav__main-logo a {
    display: block ;
  }

  .main-hero-nav .top-hero-nav__main-logo img {
    display: block ;
    width: 100% ;
    height: auto ;
  }

  /* オレンジのSPメニューは表示 */
  .sp-hero-menu {
    display: block ;
    position: relative;
  }
}

/* =========================
   NEWS CATEGORY PAGE
========================= */

.news-category-page {
  position: relative;
  overflow: hidden;
  background: #fffaf2;
}

/* =========================
   HERO
========================= */

.news-category-hero {
  position: relative;
  width: 100vw;
  height: clamp(300px, calc(100vw * 400 / 1440), 400px);
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  overflow: hidden;
  background: #7d4b25;
}

.news-category-hero__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.news-category-hero__bg img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

.news-category-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(
      180deg,
      rgba(0, 0, 0, 0.08) 0%,
      rgba(0, 0, 0, 0.22) 100%
    );
}

.news-category-hero__inner {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1120px;
  max-width: calc(100% - 30px);
  height: 100%;
  margin: 0 auto;
  padding-top: 70px;
  box-sizing: border-box;
}

.news-category-hero__heading {
  text-align: center;
}

.news-category-hero__en {
  margin: 0 0 10px;
  color: #fff;
  font-family: "Mochiy Pop One", "Hiragino Maru Gothic ProN", "Yu Gothic", sans-serif;
  font-size: 15px;
  line-height: 1;
  font-weight: 400;
  letter-spacing: 0.12em;
  text-shadow: 0 3px 8px rgba(0, 0, 0, 0.35);
}

.news-category-hero__title {
  margin: 0;
  color: #fff;
  font-family: "Mochiy Pop One", "Hiragino Maru Gothic ProN", "Yu Gothic", sans-serif;
  font-size: clamp(36px, 4vw, 54px);
  line-height: 1.3;
  font-weight: 400;
  letter-spacing: 0.06em;
  text-shadow:
    0 3px 8px rgba(0, 0, 0, 0.38),
    0 0 2px rgba(0, 0, 0, 0.3);
}

/* =========================
   POST LIST
========================= */

.news-category-list {
  position: relative;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 72px 0 84px;
  background: #fffaf2;
}

.news-category-list__inner {
  width: 1120px;
  max-width: calc(100% - 30px);
  margin: 0 auto;
}

.news-category-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 34px 22px;
  align-items: stretch;
}

/* =========================
   CARD
========================= */

.news-category-card {
  min-width: 0;
  overflow: hidden;
  background: #fff;
  border-radius: 2px;
  box-shadow: 0 8px 22px rgba(62, 37, 18, 0.08);
  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease;
}

.news-category-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 30px rgba(62, 37, 18, 0.14);
}

.news-category-card__link {
  display: grid;
  grid-template-rows: auto 1fr;
  height: 100%;
  color: inherit;
  text-decoration: none;
}

.news-category-card__thumb {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  margin: 0;
  overflow: hidden;
  background: #e8dcc9;
}

.news-category-card__thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  transition: transform 0.4s ease;
}

.news-category-card:hover .news-category-card__thumb img {
  transform: scale(1.04);
}

.news-category-card__thumb--empty {
  display: flex;
  align-items: center;
  justify-content: center;
  background:
    linear-gradient(
      135deg,
      #42cdd3 0%,
      #159fbd 55%,
      #0877a3 100%
    );
}

.news-category-card__thumb--empty span {
  color: rgba(255, 255, 255, 0.88);
  font-family: "Mochiy Pop One", sans-serif;
  font-size: 13px;
  letter-spacing: 0.08em;
}

.news-category-card__body {
  padding: 15px 15px 19px;
  background: #fff;
}

.news-category-card__date {
  display: block;
  margin: 0 0 7px;
  color: #777;
  font-size: 11px;
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.news-category-card__title {
  margin: 0;
  color: #161616;
  font-size: 15px;
  line-height: 1.65;
  font-weight: 800;
  letter-spacing: 0.01em;
}

/* =========================
   PAGINATION
========================= */

.news-category-pagination {
  margin-top: 54px;
}

.news-category-pagination ul.page-numbers {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 9px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.news-category-pagination li {
  margin: 0;
}

.news-category-pagination a.page-numbers,
.news-category-pagination span.page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  height: 38px;
  padding: 0 12px;
  color: #51321d;
  font-size: 13px;
  line-height: 1;
  font-weight: 800;
  background: #fff;
  border: 1px solid #decdb7;
  border-radius: 50%;
  box-sizing: border-box;
}

.news-category-pagination span.page-numbers.current {
  color: #fff;
  background: #f15b1a;
  border-color: #f15b1a;
}

.news-category-pagination a.page-numbers:hover {
  color: #fff;
  background: #159fbd;
  border-color: #159fbd;
}

/* =========================
   EMPTY
========================= */

.news-category-empty {
  padding: 60px 20px;
  text-align: center;
  background: #fff;
}

.news-category-empty p {
  margin: 0;
  color: #444;
  font-size: 15px;
}

/* =========================
   NOTE PC / TABLET
========================= */

@media screen and (max-width: 1050px) {
  .news-category-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* =========================
   TABLET
========================= */

@media screen and (max-width: 820px) {
  .news-category-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 26px 18px;
  }
}

/* =========================
   SP
========================= */

@media screen and (max-width: 767px) {
  .news-category-hero {
    height: 270px;
  }

  .news-category-hero__inner {
    width: 100%;
    max-width: none;
    padding: 72px 20px 0;
  }

  .news-category-hero__en {
    margin-bottom: 8px;
    font-size: 12px;
  }

  .news-category-hero__title {
    font-size: 32px;
    line-height: 1.4;
  }

  .news-category-list {
    padding: 44px 0 60px;
  }

  .news-category-list__inner {
    width: 100%;
    max-width: none;
    padding: 0 20px;
    box-sizing: border-box;
  }

  .news-category-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .news-category-card {
    width: 100%;
    max-width: 420px;
    margin: 0 auto;
  }

  .news-category-card__body {
    padding: 15px 16px 19px;
  }

  .news-category-card__title {
    font-size: 15px;
  }

  .news-category-pagination {
    margin-top: 40px;
  }
}

/* 記事本文＋サイドバー */
@media screen and (min-width: 992px) {
  .single-post-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px !important;
    gap: 36px;
    align-items: start;
  }

  .single-post-content-wrap {
    min-width: 0;
  }

  .single-post-sidebar {
    position: sticky;
    top: 100px;
    width: 100%;
  }
}

/* タブレット・SPは本文の下へ */
@media screen and (max-width: 991px) {
  .single-post-layout {
    grid-template-columns: 1fr !important;
  }

  .single-post-sidebar {
    position: static;
  }
}

@media screen and (max-width: 767px) {
  .single-post-bottom-nav {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) !important;
    gap: 6px;
    align-items: center;
  }

  .single-post-bottom-nav__prev {
    min-width: 0;
    text-align: left;
  }

  .single-post-bottom-nav__center {
    text-align: center;
  }

  .single-post-bottom-nav__next {
    min-width: 0;
    text-align: right;
  }

  .single-post-bottom-nav a {
    font-size: 12px;
    white-space: nowrap;
  }

  .single-post-bottom-nav__center a {
    min-height: 38px;
    padding: 0 12px;
  }
}

.top-hero__news {
  box-sizing: border-box;
}

.top-hero__news-row {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-width: 0;
  overflow: hidden;
}

.top-hero__news-link {
  display: grid;
  grid-template-columns: 90px minmax(0, 1fr);
  align-items: center;
  gap: 18px;

  flex: 1 1 auto;
  width: auto;
  min-width: 0;
  overflow: hidden;
}

.top-hero__news-link time {
  white-space: nowrap;
}

.top-hero__news-link span {
  display: block;
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.top-hero__news-arrow {
  display: grid;
  place-items: center;

  flex: 0 0 24px;
  width: 24px;
  height: 24px;

  color: #fff;
  font-size: 14px;
  font-weight: 900;
  line-height: 1;
  background: #ff6b21;
  border-radius: 50%;
}


@media screen and (max-width: 767px) {
  .top-hero__news-row {
    gap: 8px;
  }

  .top-hero__news-link {
    grid-template-columns: 78px minmax(0, 1fr);
    gap: 10px;
  }
}

.top-hero__news-link {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  min-width: 0;
}

.top-hero__news-article {
  display: grid;
  grid-template-columns: 90px minmax(0, 1fr);
  align-items: center;
  gap: 18px;
  min-width: 0;
  color: inherit;
  text-decoration: none;
}

.top-hero__news-article time {
  white-space: nowrap;
}

.top-hero__news-article span {
  display: block;
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.top-hero__news-arrow {
  display: block;
  flex-shrink: 0;
  color: inherit;
  text-decoration: none;
}

.top-hero__news-arrow em {
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  margin: 0;
  color: #fff;
  font-size: 14px;
  font-style: normal;
  font-weight: 900;
  line-height: 1;
  background: #ff6b21;
  border-radius: 50%;
}

@media screen and (max-width: 767px) {
  .top-hero__news-link {
    gap: 8px;
  }

  .top-hero__news-article {
    grid-template-columns: 78px minmax(0, 1fr);
    gap: 10px;
  }
}

/* ==================================================
   FOOTER：参考画像レイアウト
================================================== */

.top-footer {
  position: relative;
  overflow: hidden;
  color: #06243a;
  background: #008de0;
}

/* 背景 */
.top-footer__bg {
  position: absolute;
  inset: 0 0 34px;
  z-index: 0;
}

.top-footer__bg img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 35% bottom;
}

/* フッター内側 */
.top-footer__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  min-height: clamp(500px, 42vw, 575px);
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

/* 左ロゴ */
.top-footer__logo {
  position: absolute;
  left: 9.5%;
  top: 10%;
  width: clamp(92px, 10vw, 150px);
}

.top-footer__logo img {
  display: block;
  width: 100%;
  height: auto;
}

/* メニュー全体 */
.top-footer__nav {
  position: absolute;
  left: 34%;
  top: 17%;

  display: grid;
  grid-template-columns:
    minmax(110px, 1fr)
    minmax(145px, 1.25fr)
    minmax(180px, 1.55fr);

  column-gap: clamp(18px, 2vw, 34px);
  row-gap: clamp(14px, 1.5vw, 22px);

  width: 45%;
}

/* メニュー各列 */
.top-footer__nav-col {
  min-width: 0;
  text-align: left;
}

/* オレンジ見出し */
.top-footer__nav-col h3 {
  margin: 0 0 3px;
  color: #ff5b1c;
  font-size: clamp(11px, 1.5vw, 20px);
  line-height: 1.25;
  font-weight: 900;
  letter-spacing: 0.02em;
}

/* メニューリンク */
.top-footer__nav-col a {
  display: block;
  margin: 0;
  padding: 0;
  color: #06243a;
  font-size: clamp(14px, 1.22vw, 15px);
  line-height: 1.55;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
}

.top-footer__nav-col a:hover {
  color: #ff5b1c;
}

/* 見出しなしの右下列 */
.top-footer__nav-col--plain {
  padding-top: 0;
}

/* 電話番号 */
.top-footer__tel {
  position: absolute;
  left: 34%;
  top: 53%;

  margin: 0;
  color: #ff5b1c;
  font-size: clamp(15px, 1.35vw, 20px);
  line-height: 1;
  font-weight: 900;
  letter-spacing: 0.03em;
  text-decoration: none;
}

/* 電話番号上の白線 */
.top-footer__tel::before {
  content: "";
  position: absolute;
  left: 0;
  top: -13px;
  width: clamp(240px, 24vw, 360px);
  height: 1px;
  background: rgba(255, 255, 255, 0.7);
}

/* Instagram */
.top-footer__sns {
  position: absolute;
  right: 8%;
  top: 11%;
  display: block;
}

.top-footer__sns-link {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  text-decoration: none;
}

.top-footer__sns-link--ig {
  position: relative;
  display: grid;
  place-items: center;

  width: 32px;
  height: 32px;

  border-radius: 50%;
  overflow: hidden;

  background:
    radial-gradient(
      circle at 30% 105%,
      #ffd600 0%,
      #ff7a00 25%,
      #ff0169 48%,
      #d300c5 72%,
      #7638fa 100%
    );

  box-shadow:
    0 3px 7px rgba(0, 0, 0, 0.22),
    inset 0 1px 2px rgba(255, 255, 255, 0.55);

  text-decoration: none;
}

/* 左上の光沢 */
.top-footer__sns-link--ig::before {
  content: "";
  position: absolute;
  left: 4px;
  top: 3px;

  width: 17px;
  height: 9px;

  border-radius: 50%;
  background: rgba(255, 255, 255, 0.25);
  transform: rotate(-20deg);
}

/* 白いInstagramマーク */
.top-footer__instagram-icon {
  position: relative;
  z-index: 2;

  display: block;
  width: 28px;
  height: 28px;

  fill: none;
  stroke: #fff;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* ホバー */
.top-footer__sns-link--ig:hover {
  transform: translateY(-1px) scale(1.04);
  box-shadow:
    0 5px 10px rgba(0, 0, 0, 0.25),
    inset 0 1px 2px rgba(255, 255, 255, 0.6);
}


/* ==================================================
   タブレット
================================================== */

@media screen and (max-width: 991px) and (min-width: 768px) {

  .top-footer__inner {
    min-height: 500px;
  }

  .top-footer__logo {
    left: 5%;
    top: 10%;
    width: 100px;
  }

  .top-footer__nav {
    left: 24%;
    top: 14%;
    width: 66%;

    grid-template-columns:
      minmax(100px, 1fr)
      minmax(135px, 1.2fr)
      minmax(170px, 1.45fr);

    column-gap: 16px;
    row-gap: 18px;
  }

  .top-footer__nav-col h3 {
    font-size: 12px;
  }

  .top-footer__nav-col a {
    font-size: 11px;
  }

  .top-footer__tel {
    left: 24%;
    top: 56%;
  }

  .top-footer__sns {
    right: 4%;
    top: 8%;
  }
}


/* ==================================================
   SP
================================================== */

@media screen and (max-width: 767px) {

  .top-footer__inner {
    position: relative;

    display: grid;
    grid-template-columns: 50% minmax(0, 1fr);
    column-gap: 22px;
    align-items: start;

    width: calc(100% - 32px);
    min-height: 650px;
    margin: 0 auto;
    padding: 48px 0 74px;
  }

  .top-footer__logo {
    position: relative;
    left: auto;
    top: auto;

    grid-column: 1;
    grid-row: 1;

    width: 110px;
    margin: 0 auto;
  }

  .top-footer__nav {
    position: relative;
    left: auto;
    top: auto;

    grid-column: 2;
    grid-row: 1;

    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;

    width: 100%;
  }

  .top-footer__nav-col h3 {
    margin-bottom: 3px;
    font-size: 14px;
  }

  .top-footer__nav-col a {
    font-size: 12px;
    line-height: 1.55;
    white-space: normal;
  }

  .top-footer__nav-col--plain {
    padding-top: 0;
  }

  .top-footer__tel {
    position: relative;
    left: 50%;
    top: auto;

    grid-column: 1 / -1;
    grid-row: 2;

    margin: 30px auto 0;
    font-size: 17px;
  }

  .top-footer__tel::before {
    left: 74%;
    width: min(280px, 80vw);
    transform: translateX(-50%);
  }

  .top-footer__sns {
    right: 0;
    top: 22px;
  }

  .top-footer__bottom {
    flex-direction: column;
    justify-content: center;
    gap: 3px;

    min-height: 54px;
    padding: 8px 16px;
    text-align: center;
  }

  .top-footer__bottom p {
    font-size: 9px;
  }
}

/* =========================
   PRIVACY HERO
========================= */

.privacy-page {
  overflow: hidden;
  background: #fff;
}

/* =========================
   PRIVACY HERO
   news-category-hero と数値を統一
========================= */

.privacy-hero {
  position: relative;
  width: 100vw;
  height: clamp(300px, calc(100vw * 400 / 1440), 400px);
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  overflow: hidden;
  background: #7d4b25;
}

.privacy-hero__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.privacy-hero__bg img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

.privacy-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(
      180deg,
      rgba(0, 0, 0, 0.08) 0%,
      rgba(0, 0, 0, 0.22) 100%
    );
}

.privacy-hero__inner {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1120px;
  max-width: calc(100% - 30px);
  height: 100%;
  margin: 0 auto;
  padding-top: 70px;
  box-sizing: border-box;
}

.privacy-hero__content {
  position: static;
  width: auto;
  max-width: none;
  text-align: center;
  color: #fff;
}

.privacy-hero__label {
  display: block;
  min-width: 0;
  height: auto;
  min-height: 0;
  margin: 0 0 10px;
  padding: 0;
  color: #fff;
  background: none;
  box-shadow: none;
  border-radius: 0;
  font-family: "Noto Sans", sans-serif;
  font-size: 15px;
  line-height: 1;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-shadow: 0 3px 8px rgba(0, 0, 0, 0.35);
}

.privacy-hero__title {
  margin: 0;
  color: #fff;
  font-family: "Noto Sans", sans-serif;
  font-size: clamp(36px, 4vw, 54px);
  line-height: 1.3;
  font-weight: 900;
  letter-spacing: 0.06em;
  text-shadow:
    0 3px 8px rgba(0, 0, 0, 0.38),
    0 0 2px rgba(0, 0, 0, 0.3);
}

/* リード文が不要なら非表示 */
.privacy-hero__lead {
  display: none;
}

/* SP */
@media (max-width: 767px) {
  .privacy-hero {
    height: 300px;
    min-height: 300px;
  }

  .privacy-hero__inner {
    width: 100%;
    max-width: calc(100% - 30px);
    padding-top: 60px;
  }

  .privacy-hero__label {
    font-size: 12px;
    margin-bottom: 8px;
  }

  .privacy-hero__title {
    font-size: clamp(28px, 8vw, 38px);
    line-height: 1.35;
  }
}

/* =========================
   PRIVACY CONTENT
========================= */

.privacy-section {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 72px 0 100px;
  background: #fff;
}

.privacy-section__inner {
  width: 800px;
  max-width: calc(100% - 40px);
  margin: 0 auto;
}

.privacy-doc-title {
  margin: 0 0 42px;
  color: #333;
  font-size: 26px;
  line-height: 1.6;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-align: center;
}

.lower-policy-box {
  width: 100%;
  margin: 0 auto;
  padding: 0;
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
}

.lower-policy-box p {
  margin: 0 0 34px;
  color: #555;
  font-size: 15px;
  line-height: 2.2;
  font-weight: 400;
  letter-spacing: 0.02em;
}

.lower-policy-box h2,
.lower-policy-box h3 {
  margin: 0 0 12px;
  padding: 0;
  color: #333;
  font-size: 18px;
  line-height: 1.8;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.lower-policy-box h2::before,
.lower-policy-box h3::before {
  display: none;
}

/* 最初の説明文だけ少し余白を広めに */
.lower-policy-box > p:first-child {
  margin-bottom: 40px;
}

/* 見出しのあとを少し詰める */
.lower-policy-box h2 + p,
.lower-policy-box h3 + p {
  margin-top: 0;
  text-align: justify;
}

.privacy-shop-info {
  margin: -18px 0 34px;
  padding-left: 1.2em;
}

.privacy-shop-info p {
  position: relative;
  margin: 0 0 6px;
  color: #555;
  font-size: 15px;
  line-height: 1.9;
  font-weight: 400;
}

.privacy-shop-info p::before {
  content: "・";
  position: absolute;
  left: -1.2em;
  top: 0;
}

.privacy-text-link {
  color: #00aaff;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.privacy-text-link:hover {
  opacity: 0.7;
}

/* SP */
@media (max-width: 767px) {
  .privacy-section {
    padding: 48px 0 70px;
  }

  .privacy-section__inner {
    width: 100%;
    max-width: calc(100% - 32px);
  }

  .privacy-doc-title {
    margin-bottom: 30px;
    font-size: 20px;
    line-height: 1.7;
  }

  .lower-policy-box p {
    margin-bottom: 28px;
    font-size: 14px;
    line-height: 2;
  }

  .lower-policy-box h2,
  .lower-policy-box h3 {
    margin-bottom: 10px;
    font-size: 16px;
    line-height: 1.7;
  }

  .lower-policy-box > p:first-child {
    margin-bottom: 32px;
  }
}

.sp-only-br {
  display: none;
}

@media (max-width: 767px) {
  .sp-only-br {
    display: block;
  }
}

/* =========================
   LOGO SCROLL ONLY
   メニューは変更しない
========================= */

.js-logo-scroll-nav .top-hero-nav__main-logo {
  transition: width 0.3s ease;
}

/* スクロール後：ロゴのサイズだけ小さくする */
.js-logo-scroll-nav.is-logo-small .top-hero-nav__main-logo {
  width: clamp(76px, 8vw, 105px) !important;
}

/* =========================
   LOGO SCROLL POSITION
========================= */

.js-logo-scroll-nav .top-hero-nav__main-logo {
  transition:
    top 0.35s ease,
    width 0.35s ease,
    transform 0.35s ease;
}

/* スクロール後 */
.js-logo-scroll-nav.is-logo-small .top-hero-nav__main-logo {
  top: 10% !important;
  width: clamp(76px, 8vw, 105px) !important;
  transform: translateY(0) !important;
}

/* =========================
   SP HEADER RESET
   SPでは追従・縮小しない
========================= */

@media (max-width: 767px) {
  .top-hero-nav.js-logo-scroll-nav {
    position: absolute !important;
    left: 0 !important;
    top: 0 !important;
    z-index: 100 !important;
    width: 100% !important;
  }

  .top-hero-nav.js-logo-scroll-nav .top-hero-nav__inner {
    position: relative !important;
  }

  /* main-hero-nav が付いている方だけに効かせる */
  .top-hero-nav.main-hero-nav.js-logo-scroll-nav.is-logo-small .top-hero-nav__main-logo {
    width: 105px !important;
    top: 35px !important;
    transform: none !important;
  }

/* =========================
   SP HEADER RESET
   header1 / header2 共通
   SPでは固定しない・ロゴ縮小しない
========================= */
  .top-hero-nav,
  .top-hero-nav.main-hero-nav,
  .top-hero-nav.top-page-fixed-nav {
    position: absolute !important;
    left: 0 !important;
    top: 0 !important;
    z-index: 100 !important;
    width: 65% !important;
  }

  .top-hero-nav__inner {
    position: relative !important;
  }

  /* SPではスクロール後の縮小指定を全部無効化 */
  .top-hero-nav.is-logo-small .top-hero-nav__main-logo,
  .js-logo-scroll-nav.is-logo-small .top-hero-nav__main-logo,
  .main-hero-nav.is-logo-small .top-hero-nav__main-logo {
    width: 135px !important;
    top: 20px !important;
    transform: none !important;
  }
}

/* フッター見出しリンク：h3の既存デザインを継承 */
.top-footer__nav-col h3 .top-footer__heading-link {
  display: inline;
  margin: 0;
  padding: 0;
  color: inherit;
  font: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  text-decoration: none;
  white-space: inherit;
}

.top-footer__nav-col h3 .top-footer__heading-link:hover {
  color: inherit;
  opacity: 0.75;
}

/* 固定ヘッダーにアンカー先が隠れないようにする */
#eat-menu,
#eat-drink,
#gift,
#event,
#support-intro,
#message,
#profile,
#contact-message {
  scroll-margin-top: 130px;
}

/* SP */
@media screen and (max-width: 767px) {
  #eat-menu,
  #eat-drink,
  #gift,
  #event,
  #support-intro,
  #message,
  #profile,
  #contact-message {
    scroll-margin-top: 85px;
  }
}