/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */
@layer properties {
  @supports (((-webkit-hyphens: none)) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color: rgb(from red r g b)))) {
    *,
    :before,
    :after,
    ::backdrop {
      --tw-translate-x: 0;
      --tw-translate-y: 0;
      --tw-translate-z: 0;
      --tw-rotate-x: initial;
      --tw-rotate-y: initial;
      --tw-rotate-z: initial;
      --tw-skew-x: initial;
      --tw-skew-y: initial;
      --tw-leading: initial;
      --tw-font-weight: initial;
      --tw-tracking: initial;
      --tw-shadow: 0 0 #0000;
      --tw-shadow-color: initial;
      --tw-shadow-alpha: 100%;
      --tw-inset-shadow: 0 0 #0000;
      --tw-inset-shadow-color: initial;
      --tw-inset-shadow-alpha: 100%;
      --tw-ring-color: initial;
      --tw-ring-shadow: 0 0 #0000;
      --tw-inset-ring-color: initial;
      --tw-inset-ring-shadow: 0 0 #0000;
      --tw-ring-inset: initial;
      --tw-ring-offset-width: 0px;
      --tw-ring-offset-color: #fff;
      --tw-ring-offset-shadow: 0 0 #0000;
    }
  }
}

@layer theme {
  :root,
  :host {
    --font-sans: ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
    --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;
    --color-black: #000;
    --color-white: #fff;
    --spacing: 0.25rem;
    --container-md: 28rem;
    --font-weight-bold: 700;
    --radius-xl: 0.75rem;
    --default-transition-duration: 0.15s;
    --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    --default-font-family: var(--font-sans);
    --default-mono-font-family: var(--font-mono);
    --font-jp: 'Zen Maru Gothic', sans-serif;
    --font-en: 'Nunito Sans', ui-sans-serif, system-ui, sans-serif;
    --color-ui-navy: #0075bc;
    --color-modal-bg: #aed5f6;
    --color-bg-default: #fff;
    --color-bg-primary: #fdd000;
    --color-fg-default: #333;
    --color-border-default: #ddd;
    --spacing-xxs: 0.25rem;
    --spacing-xs: 0.5rem;
    --spacing-s: 1rem;
    --spacing-m: 1.5rem;
    --spacing-l: 2rem;
    --spacing-xl: 2.5rem;
    --spacing-xxl: 3.5rem;
    --spacing-section-sp: 5rem;
    --spacing-section-pc: 7.5rem;
    --spacing-section-inner-sp: 2.5rem;
    --spacing-section-inner-pc: 4rem;
    --spacing-inner-sp: 1.5rem;
    --spacing-inner-pc: 2rem;
    --leading-body-tight: 1.5;
  }
}

@layer base {
  *,
  :after,
  :before,
  ::backdrop {
    box-sizing: border-box;
    border: 0 solid;
    margin: 0;
    padding: 0;
  }

  ::file-selector-button {
    box-sizing: border-box;
    border: 0 solid;
    margin: 0;
    padding: 0;
  }

  html,
  :host {
    -webkit-text-size-adjust: 100%;
    tab-size: 4;
    line-height: 1.5;
    font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji');
    font-feature-settings: var(--default-font-feature-settings, normal);
    font-variation-settings: var(--default-font-variation-settings, normal);
    -webkit-tap-highlight-color: transparent;
  }

  hr {
    height: 0;
    color: inherit;
    border-top-width: 1px;
  }

  abbr:where([title]) {
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted;
  }

  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    font-size: inherit;
    font-weight: inherit;
  }

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

  b,
  strong {
    font-weight: bolder;
  }

  code,
  kbd,
  samp,
  pre {
    font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace);
    font-feature-settings: var(--default-mono-font-feature-settings, normal);
    font-variation-settings: var(--default-mono-font-variation-settings, normal);
    font-size: 1em;
  }

  small {
    font-size: 80%;
  }

  sub,
  sup {
    vertical-align: baseline;
    font-size: 75%;
    line-height: 0;
    position: relative;
  }

  sub {
    bottom: -0.25em;
  }

  sup {
    top: -0.5em;
  }

  table {
    text-indent: 0;
    border-color: inherit;
    border-collapse: collapse;
  }

  :-moz-focusring {
    outline: auto;
  }

  progress {
    vertical-align: baseline;
  }

  summary {
    display: list-item;
  }

  ol,
  ul,
  menu {
    list-style: none;
  }

  img,
  svg,
  video,
  canvas,
  audio,
  iframe,
  embed,
  object {
    vertical-align: middle;
    display: block;
  }

  img,
  video {
    max-width: 100%;
    height: auto;
  }

  button,
  input,
  select,
  optgroup,
  textarea {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    opacity: 1;
    background-color: #0000;
    border-radius: 0;
  }

  ::file-selector-button {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    opacity: 1;
    background-color: #0000;
    border-radius: 0;
  }

  :where(select:is([multiple], [size])) optgroup {
    font-weight: bolder;
  }

  :where(select:is([multiple], [size])) optgroup option {
    padding-inline-start: 20px;
  }

  ::file-selector-button {
    margin-inline-end: 4px;
  }

  ::placeholder {
    opacity: 1;
  }

  @supports (not ((-webkit-appearance: -apple-pay-button))) or (contain-intrinsic-size: 1px) {
    ::placeholder {
      color: currentColor;
    }

    @supports (color: color-mix(in lab, red, red)) {
      ::placeholder {
        color: color-mix(in oklab, currentcolor 50%, transparent);
      }
    }
  }

  textarea {
    resize: vertical;
  }

  ::-webkit-search-decoration {
    -webkit-appearance: none;
  }

  ::-webkit-date-and-time-value {
    min-height: 1lh;
    text-align: inherit;
  }

  ::-webkit-datetime-edit {
    display: inline-flex;
  }

  ::-webkit-datetime-edit-fields-wrapper {
    padding: 0;
  }

  ::-webkit-datetime-edit {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-year-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-month-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-day-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-hour-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-minute-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-second-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-millisecond-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-meridiem-field {
    padding-block: 0;
  }

  ::-webkit-calendar-picker-indicator {
    line-height: 1;
  }

  :-moz-ui-invalid {
    box-shadow: none;
  }

  button,
  input:where([type='button'], [type='reset'], [type='submit']) {
    appearance: button;
  }

  ::file-selector-button {
    appearance: button;
  }

  ::-webkit-inner-spin-button {
    height: auto;
  }

  ::-webkit-outer-spin-button {
    height: auto;
  }

  [hidden]:where(:not([hidden='until-found'])) {
    display: none !important;
  }

  body {
    color: var(--color-fg-default);
    background-color: var(--color-bg-default);
    font-family: var(--font-jp);
    line-height: var(--leading-body);
    flex-direction: column;
    height: 100svh;
    display: flex;
  }

  @media (min-width: 48rem) {
    body {
      min-height: 660px;
    }
  }
}

@layer components {
  .l-main {
    min-height: inherit;
    flex-direction: column;
    display: flex;
    overflow: hidden;
  }

  .text-h2 {
    font-size: var(--text-h2);
    line-height: var(--leading-h2);
  }

  .text-h3 {
    font-size: var(--text-h3);
    line-height: var(--leading-h3);
  }

  .text-h4 {
    font-size: var(--text-h4);
    line-height: var(--leading-h4);
  }

  .text-h5 {
    font-size: var(--text-h5);
    line-height: var(--leading-h5);
  }

  .text-body {
    font-size: var(--text-body);
  }

  .text-note {
    font-size: var(--text-note);
  }
}

@layer utilities {
  .absolute {
    position: absolute;
  }

  .fixed {
    position: fixed;
  }

  .relative {
    position: relative;
  }

  .static {
    position: static;
  }

  .start {
    inset-inline-start: var(--spacing);
  }

  .top-0 {
    top: calc(var(--spacing) * 0);
  }

  .top-1\.25 {
    top: calc(var(--spacing) * 1.25);
  }

  .top-\[50\%\] {
    top: 50%;
  }

  .right-2 {
    right: calc(var(--spacing) * 2);
  }

  .right-4 {
    right: calc(var(--spacing) * 4);
  }

  .bottom-0 {
    bottom: calc(var(--spacing) * 0);
  }

  .left-0 {
    left: calc(var(--spacing) * 0);
  }

  .left-1\.25 {
    left: calc(var(--spacing) * 1.25);
  }

  .left-2 {
    left: calc(var(--spacing) * 2);
  }

  .left-5 {
    left: calc(var(--spacing) * 5);
  }

  .-z-1 {
    z-index: calc(1 * -1);
  }

  .z-10 {
    z-index: 10;
  }

  .mx-auto {
    margin-inline: auto;
  }

  .mt-0 {
    margin-top: calc(var(--spacing) * 0);
  }

  .mt-2 {
    margin-top: calc(var(--spacing) * 2);
  }

  .mt-4 {
    margin-top: calc(var(--spacing) * 4);
  }

  .mt-\[-0\.2px\] {
    margin-top: -0.2px;
  }

  .mt-m {
    margin-top: var(--spacing-m);
  }

  .mb-6 {
    margin-bottom: calc(var(--spacing) * 6);
  }

  .ml-\[1rem\] {
    margin-left: 1rem;
  }

  .block {
    display: block;
  }

  .flex {
    display: flex;
  }

  .hidden {
    display: none;
  }

  .h-3\.5 {
    height: calc(var(--spacing) * 3.5);
  }

  .h-4 {
    height: calc(var(--spacing) * 4);
  }

  .h-6 {
    height: calc(var(--spacing) * 6);
  }

  .h-8 {
    height: calc(var(--spacing) * 8);
  }

  .h-10 {
    height: calc(var(--spacing) * 10);
  }

  .h-\[2px\] {
    height: 2px;
  }

  .h-\[12px\] {
    height: 12px;
  }

  .h-\[25dvh\] {
    height: 25dvh;
  }

  .h-\[240px\] {
    height: 240px;
  }

  .h-full {
    height: 100%;
  }

  .max-h-\[20dvh\] {
    max-height: 20dvh;
  }

  .max-h-\[22dvh\] {
    max-height: 22dvh;
  }

  .max-h-screen {
    max-height: 100vh;
  }

  .w-0\.5 {
    width: calc(var(--spacing) * 0.5);
  }

  .w-2 {
    width: calc(var(--spacing) * 2);
  }

  .w-3\.5 {
    width: calc(var(--spacing) * 3.5);
  }

  .w-36 {
    width: calc(var(--spacing) * 36);
  }

  .w-\[2px\] {
    width: 2px;
  }

  .w-\[12px\] {
    width: 12px;
  }

  .w-auto {
    width: auto;
  }

  .w-full {
    width: 100%;
  }

  .max-w-full {
    max-width: 100%;
  }

  .max-w-md {
    max-width: var(--container-md);
  }

  .-translate-y-\[50\%\] {
    --tw-translate-y: calc(50% * -1);
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }

  .rotate-45 {
    rotate: 45deg;
  }

  .rotate-135 {
    rotate: 135deg;
  }

  .rotate-180 {
    rotate: 180deg;
  }

  .transform {
    transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);
  }

  .cursor-pointer {
    cursor: pointer;
  }

  .resize {
    resize: both;
  }

  .flex-col {
    flex-direction: column;
  }

  .items-center {
    align-items: center;
  }

  .justify-between {
    justify-content: space-between;
  }

  .justify-center {
    justify-content: center;
  }

  .gap-1 {
    gap: calc(var(--spacing) * 1);
  }

  .gap-5 {
    gap: calc(var(--spacing) * 5);
  }

  .overflow-hidden {
    overflow: hidden;
  }

  .overflow-visible {
    overflow: visible;
  }

  .rounded-full {
    border-radius: 3.40282e38px;
  }

  .rounded-xl {
    border-radius: var(--radius-xl);
  }

  .rounded-br-xl {
    border-bottom-right-radius: var(--radius-xl);
  }

  .rounded-bl-xl {
    border-bottom-left-radius: var(--radius-xl);
  }

  .border-border-default {
    border-color: var(--color-border-default);
  }

  .bg-bg-default {
    background-color: var(--color-bg-default);
  }

  .bg-bg-primary {
    background-color: var(--color-bg-primary);
  }

  .bg-black {
    background-color: var(--color-black);
  }

  .bg-modal-bg {
    background-color: var(--color-modal-bg);
  }

  .bg-white {
    background-color: var(--color-white);
  }

  .object-contain {
    object-fit: contain;
  }

  .object-cover {
    object-fit: cover;
  }

  .px-4 {
    padding-inline: calc(var(--spacing) * 4);
  }

  .px-7\.5 {
    padding-inline: calc(var(--spacing) * 7.5);
  }

  .px-10 {
    padding-inline: calc(var(--spacing) * 10);
  }

  .px-section-sp {
    padding-inline: var(--spacing-section-sp);
  }

  .py-2 {
    padding-block: calc(var(--spacing) * 2);
  }

  .py-5 {
    padding-block: calc(var(--spacing) * 5);
  }

  .pt-0 {
    padding-top: calc(var(--spacing) * 0);
  }

  .pt-3 {
    padding-top: calc(var(--spacing) * 3);
  }

  .pt-section-sp {
    padding-top: var(--spacing-section-sp);
  }

  .pb-0 {
    padding-bottom: calc(var(--spacing) * 0);
  }

  .pb-6 {
    padding-bottom: calc(var(--spacing) * 6);
  }

  .text-center {
    text-align: center;
  }

  .font-en {
    font-family: var(--font-en);
  }

  .font-jp {
    font-family: var(--font-jp);
  }

  .text-\[14px\] {
    font-size: 14px;
  }

  .text-\[28px\] {
    font-size: 28px;
  }

  .text-\[40px\] {
    font-size: 40px;
  }

  .leading-body-tight {
    --tw-leading: var(--leading-body-tight);
    line-height: var(--leading-body-tight);
  }

  .font-bold {
    --tw-font-weight: var(--font-weight-bold);
    font-weight: var(--font-weight-bold);
  }

  .tracking-\[20px\] {
    --tw-tracking: 20px;
    letter-spacing: 20px;
  }

  .text-\[\#333333\] {
    color: #333;
  }

  .text-black {
    color: var(--color-black);
  }

  .text-fg-default {
    color: var(--color-fg-default);
  }

  .text-ui-navy {
    color: var(--color-ui-navy);
  }

  .shadow {
    --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, #0000001a), 0 1px 2px -1px var(--tw-shadow-color, #0000001a);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .transition {
    transition-property:
      color,
      background-color,
      border-color,
      outline-color,
      text-decoration-color,
      fill,
      stroke,
      --tw-gradient-from,
      --tw-gradient-via,
      --tw-gradient-to,
      opacity,
      box-shadow,
      transform,
      translate,
      scale,
      rotate,
      filter,
      -webkit-backdrop-filter,
      backdrop-filter,
      display,
      content-visibility,
      overlay,
      pointer-events;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }

  @media (min-width: 40rem) {
    .sm\:h-10 {
      height: calc(var(--spacing) * 10);
    }

    .sm\:gap-2 {
      gap: calc(var(--spacing) * 2);
    }
  }

  @media (min-width: 48rem) {
    .md\:mt-l {
      margin-top: var(--spacing-l);
    }

    .md\:px-section-pc {
      padding-inline: var(--spacing-section-pc);
    }

    .md\:pt-section-pc {
      padding-top: var(--spacing-section-pc);
    }
  }
}

:root {
  --color-ui-navy: #0075bc;
  --color-fg-dark-blue: #1f356d;
  --color-modal-bg: #aed5f6;
  --color-ui-bg: #d2d7d3;
  --color-fg-default: #333;
  --color-bg-inverse: #fff;
  --color-brown: #683d19;
  --container-width: 75rem;
  --device-padding: 1rem;
  --main-pt: 0;
  --main-pb: 5rem;
  --text-h2: 1.75rem;
  --text-h3: 1.5rem;
  --text-h4: 1.5rem;
  --text-h5: 1rem;
  --text-body: 1rem;
  --text-item: 0.875rem;
  --text-note: 0.75rem;
  --leading-body: 1.8;
  --leading-h2: 1.5;
  --leading-h3: 1.5;
  --leading-h4: 1.5;
  --leading-h5: 1.5;
}

@media (min-width: 48rem) {
  :root {
    --device-padding: 5.1875rem;
    --main-pt: 0;
    --main-pb: 7.5rem;
    --text-h2: 2.5rem;
    --text-h3: 2rem;
    --text-h4: 1.5rem;
    --text-h5: 1.125rem;
    --text-body: 1rem;
    --text-note: 0.75rem;
  }
}

@property --tw-translate-x {
  syntax: '*';
  inherits: false;
  initial-value: 0;
}

@property --tw-translate-y {
  syntax: '*';
  inherits: false;
  initial-value: 0;
}

@property --tw-translate-z {
  syntax: '*';
  inherits: false;
  initial-value: 0;
}

@property --tw-rotate-x {
  syntax: '*';
  inherits: false;
}

@property --tw-rotate-y {
  syntax: '*';
  inherits: false;
}

@property --tw-rotate-z {
  syntax: '*';
  inherits: false;
}

@property --tw-skew-x {
  syntax: '*';
  inherits: false;
}

@property --tw-skew-y {
  syntax: '*';
  inherits: false;
}

@property --tw-leading {
  syntax: '*';
  inherits: false;
}

@property --tw-font-weight {
  syntax: '*';
  inherits: false;
}

@property --tw-tracking {
  syntax: '*';
  inherits: false;
}

@property --tw-shadow {
  syntax: '*';
  inherits: false;
  initial-value: 0 0 #0000;
}

@property --tw-shadow-color {
  syntax: '*';
  inherits: false;
}

@property --tw-shadow-alpha {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

@property --tw-inset-shadow {
  syntax: '*';
  inherits: false;
  initial-value: 0 0 #0000;
}

@property --tw-inset-shadow-color {
  syntax: '*';
  inherits: false;
}

@property --tw-inset-shadow-alpha {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

@property --tw-ring-color {
  syntax: '*';
  inherits: false;
}

@property --tw-ring-shadow {
  syntax: '*';
  inherits: false;
  initial-value: 0 0 #0000;
}

@property --tw-inset-ring-color {
  syntax: '*';
  inherits: false;
}

@property --tw-inset-ring-shadow {
  syntax: '*';
  inherits: false;
  initial-value: 0 0 #0000;
}

@property --tw-ring-inset {
  syntax: '*';
  inherits: false;
}

@property --tw-ring-offset-width {
  syntax: '<length>';
  inherits: false;
  initial-value: 0;
}

@property --tw-ring-offset-color {
  syntax: '*';
  inherits: false;
  initial-value: #fff;
}

@property --tw-ring-offset-shadow {
  syntax: '*';
  inherits: false;
  initial-value: 0 0 #0000;
}
@layer components {
  .js-modal {
    position: fixed;
    inset: 0;
    margin: auto;
  }
  .js-modal::backdrop {
    background: rgba(0, 0, 0, 0.5);
    transition: background var(--modal-duration, 300ms) ease;
  }
  @starting-style {
    .js-modal::backdrop {
      background: transparent;
    }
  }
  .js-modal.is-closing::backdrop {
    background: transparent;
  }
  .c-modal {
    max-width: 335px;
    max-height: 100dvh;
    overflow-y: auto;
    border: none;
    padding: 30px 0 0;
    background: transparent;
  }
  @media (width < 48rem) {
    .c-modal {
      max-height: calc(100dvh - 100px);
      border-radius: 20px;
    }
  }
  .c-modal__close {
    cursor: pointer;
    position: absolute;
    top: 0;
    right: 0;
    width: 2.5rem;
    height: 2.5rem;
    display: flex;
  }
  .c-modal__content {
    background-color: #aed5f6;
    border-radius: 20px;
    overflow: hidden;
    margin: auto;
  }
  .c-modal__title-area {
    font-size: 1.5rem;
    color: var(--color-ui-navy);
    background-color: var(--color-modal-bg);
    background-image: url('/hokkaidos_fish/osakanazukan/assets/images/bg_modal_top.webp');
    background-position: center bottom;
    background-repeat: repeat;
    background-size: cover;
    font-weight: 700;
    line-height: 1.5;
    text-align: center;
    padding-top: 1rem;
    padding-bottom: 1.5rem;
  }
  .c-modal__title-meals {
    display: block;
    width: 100%;
  }
  .c-modal__title-meals::before {
    content: '';
    display: block;
    width: 100%;
    height: auto;
    margin-bottom: 0.5rem;
    background-image: url('/hokkaidos_fish/osakanazukan/assets/images/border_modal_bottom.svg');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    aspect-ratio: 16/1;
  }
  .c-modal__ul li {
    list-style-type: disc;
    margin-left: 1.2rem;
    line-height: 1.8;
  }
  .c-modal__ul li::marker {
    font-size: 0.7rem;
  }
  .c-modal button[data-modal-close],
  .c-modal button[data-modal-close] * {
    -webkit-tap-highlight-color: transparent;
  }
  .c-modal button[data-modal-close]:focus {
    outline: none;
  }
  .c-modal button[data-modal-close]:focus-visible {
    box-shadow: 0 0 0 4px rgba(0, 117, 188, 0.18);
    border-radius: 0.5rem;
  }
  .c-modal button[data-modal-close] {
    -webkit-appearance: none;
    appearance: none;
    border: none;
    background: transparent;
  }
}
@layer components {
  .c-container {
    width: 100%;
    margin-inline: auto;
  }
}
.flip-book {
  background-size: cover;
  transform: translateZ(0);
  backface-visibility: hidden;
  display: grid;
  height: 100%;
  max-height: calc(100dvh - 61px);
}
@media (width >= 48rem) {
  .flip-book {
    height: 552px;
    min-height: 460px;
    aspect-ratio: 375/519;
    max-height: calc(100dvh - 61px);
  }
}
.flip-book > * {
  grid-area: 1/1;
}
.flip-book__section {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  width: 100%;
  overflow: hidden;
  justify-content: center;
}
@media (width >= 48rem) {
  .flip-book__section {
    max-width: 400px;
  }
}
.flip-book__container {
  min-height: 0;
  width: auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  overflow: visible;
}
.flip-book__wrapper {
  flex: 0 0 auto;
  width: 100%;
  max-width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
  height: 100%;
}
.flip-book__inner {
  width: 100vw;
  height: 100%;
  max-width: 399px;
}
@media (min-width: 480px) {
  .flip-book__inner {
    max-width: 600px;
  }
}
@media (min-width: 1000px) {
  .flip-book__inner {
    max-width: 399px;
  }
}
.flip-book__inner {
  max-height: calc(100dvh - 10vh - 100px);
  position: relative;
  overflow: visible;
  box-shadow:
    4px -1px 10px 0 rgba(0, 0, 0, 0.5),
    -4px -1px 10px 0 rgba(0, 0, 0, 0.5);
}
.flip-book__page {
  width: 100%;
  width: 50%;
  height: 100%;
  padding: 0;
  background: var(--color-ui-bg);
  color: white;
  border: solid 1px transparent;
  box-sizing: border-box;
  will-change: transform;
  transform: translateZ(0);
}
.flip-book__page-content {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  box-sizing: border-box;
}
.flip-book__page.--left {
  border-right: 0;
  box-shadow: inset -7px 0 30px -7px rgba(0, 0, 0, 0.4);
}
.flip-book__page.--right {
  border-left: 0;
  box-shadow: inset 7px 0 30px -7px rgba(0, 0, 0, 0.4);
}
.flip-book__page.--right .page-footer {
  text-align: right;
}
.flip-book__page.page-hard {
  background-color: var(--color-ui-bg);
  border: solid 1px hsla(0, 0%, 100%, 0);
}
.flip-book__page.page.page-cover {
  background-color: var(--color-ui-bg);
  color: hsl(0, 0%, 100%);
  border: solid 1px hsla(0, 0%, 100%, 0);
}
.flip-book__page.page.page-cover h2 {
  text-align: center;
  font-size: 210%;
}
.flip-book {
  /* Top cover */
}
.flip-book__page.flip-book__page-cover.flip-book__page-cover-top {
  box-shadow:
    inset 0px 0 30px 0px rgba(36, 10, 3, 0.5),
    -2px 0 5px 2px rgba(0, 0, 0, 0.4);
}
.flip-book {
  /* Bottom cover */
}
.flip-book__page.page-cover.flip-book__page-cover-bottom {
  box-shadow:
    inset 0px 0 30px 0px rgba(36, 10, 3, 0.5),
    10px 0 8px 0px rgba(0, 0, 0, 0.4);
}
.flip-book__nav-area {
  flex: 0 0 auto;
  display: flex;
  flex-direction: row;
  width: 100%;
  margin-inline: auto;
  justify-content: center;
  background: var(--color-ui-navy);
  align-items: center;
  overflow: hidden;
}
@media (min-width: 1000px) {
  .flip-book__nav-area {
    max-width: 399px;
    box-shadow:
      4px -1px 10px 0 rgba(0, 0, 0, 0.5),
      -4px -1px 10px 0 rgba(0, 0, 0, 0.5);
    overflow: visible;
  }
}
.flip-book__nav-area-inner {
  width: 100%;
  max-width: 400px;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding: 1rem;
}
@media (width < 23.5rem) {
  .flip-book__nav-area-inner {
    padding-block: 0.5rem;
  }
}
.flip-book__pagination {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  align-items: center;
}
.flip-book__pagination-row {
  display: flex;
  gap: 0.75rem;
  align-items: center;
}
.flip-book__pagination-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  justify-content: center;
  max-width: calc(64px + 5.25rem);
}
.flip-book__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  border: none;
  background: rgba(0, 0, 0, 0.25);
  cursor: pointer;
  padding: 0;
  transition:
    background 0.3s ease,
    transform 0.2s ease;
}
.flip-book__dot:hover {
  transform: scale(1.3);
}
.flip-book__dot.active {
  background: white;
}
.flip-book__nav-button {
  width: 22.6666666667vw;
  height: 22.6666666667vw;
  max-width: 85px;
  max-height: 85px;
  cursor: pointer;
  border: 1px solid var(--color-ui-navy);
  background: white;
  color: var(--color-ui-navy);
  border-radius: 50%;
  transition: all 0.3s ease;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
@media (width < 48rem) {
  .flip-book__nav-button {
    width: 16vw;
    height: 16vw;
    max-width: 60px;
    max-height: 60px;
  }
}
.flip-book__zukan-text-box {
  padding: 0px 20px;
  justify-content: center;
  width: 290px;
  height: auto;
  max-width: 90%;
}
.flip-book__creature {
  will-change: transform;
  transform: translate3d(0, 0, 0);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  -webkit-transform: translate3d(0, 0, 0);
  width: 42.6666666667dvh;
  object-fit: contain;
  width: 100%;
  max-width: 30dvh;
}
@media (min-width: 798px) {
  .flip-book__creature {
    width: 330px;
    max-width: 30vh;
  }
}
@media (width < 23.5rem) {
  .flip-book__creature {
    width: 100%;
    max-width: 30dvh;
  }
}
.p-gyoren {
  display: flex;
  flex-direction: row;
  width: 100%;
  max-width: 1300px;
  margin-inline: auto;
  justify-content: space-around;
  align-items: center;
  flex-grow: 1;
}
@media (width < 49.875rem) {
  .p-gyoren__intro {
    display: none;
  }
}
.p-gyoren__book {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  width: 100%;
  overflow: hidden;
  justify-content: center;
  align-self: stretch;
}
@media (width >= 48rem) {
  .p-gyoren__book {
    max-width: 400px;
  }
}
@media (width < 80rem) {
  .p-gyoren__menu {
    display: none;
  }
}
.p-body {
  background: #d2f2fe;
  position: relative;
}
.p-body-overlay {
  position: fixed;
  inset: 0;
  z-index: -1;
  opacity: 1;
  background-image: url('/hokkaidos_fish/osakanazukan/assets/images/bg_body-overlay.webp');
  background-position: center bottom;
  background-size: cover;
  pointer-events: none;
  mix-blend-mode: color-burn;
}

.l-main {
  flex-grow: 1;
}
.header {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.hamburger {
  width: 45px;
  height: 45px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 6px;
  background: var(--color-ui-navy);
  border: none;
  border-radius: 50%;
  cursor: pointer;
  padding: 8px;
  z-index: 101;
}
@media (min-width: 1280px) {
  .hamburger {
    display: none;
  }
}
.hamburger__line {
  width: 24px;
  height: 2px;
  background: white;
  transition:
    transform 0.3s ease,
    opacity 0.3s ease;
  transform-origin: center;
}
.hamburger.is-active .hamburger__line:nth-child(1) {
  transform: translateY(8px) rotate(45deg);
}
.hamburger.is-active .hamburger__line:nth-child(2) {
  opacity: 0;
}
.hamburger.is-active .hamburger__line:nth-child(3) {
  transform: translateY(-8px) rotate(-45deg);
}

.menu-side {
  position: relative;
  flex-direction: column;
  width: 370px;
  max-width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-inline: auto;
}
.menu-side__content {
  display: flex;
  flex-direction: column;
  text-align: center;
  justify-content: center;
  padding-inline: 20px;
  margin-bottom: 2rem;
  margin-top: 4rem;
  color: var(--color-ui-navy);
  max-height: 80vh;
  overflow-y: auto;
  width: 100%;
  overflow: hidden;
}
.menu-side__title {
  font-size: 24px;
  color: var(--color-fg-dark-blue);
  font-weight: bold;
  position: relative;
  margin-bottom: 0rem;
}
.menu-side__title::after {
  content: '';
  display: block;
  width: 100%;
  height: 80px;
  margin-top: -3rem;
  background-image: url('/hokkaidos_fish/osakanazukan/assets/images/img_side-menu.webp');
  background-size: 186px;
  background-position: center;
  background-repeat: no-repeat;
}
.menu-side__list {
  list-style: none;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  column-gap: 20px;
  width: 100%;
  counter-reset: menu;
}
.menu-side__link {
  text-align: left;
  display: block;
  padding: 1rem 0rem;
  font-size: 16px;
  color: var(--color-fg-dark-blue);
  font-weight: 700;
  text-decoration: none;
  border-bottom: 2px dashed #5ebcf6;
  transition: transform 0.3s ease;
  gap: 4px;
  display: flex;
  align-items: flex-start;
}
.menu-side__link:hover {
  transform: translateY(-2px);
}
.menu-side__fish-tr {
  position: absolute;
  top: -80px;
  width: 260px;
  height: auto;
  mix-blend-mode: multiply;
}
.menu-side__fish-br {
  position: absolute;
  bottom: -120px;
  width: 121px;
  height: auto;
  mix-blend-mode: multiply;
}

.menu-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100dvh;
  background: var(--color-ui-navy);
  z-index: 100;
  display: flex;
  flex-direction: column;
  align-items: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}
.menu-overlay.is-open {
  opacity: 1;
  pointer-events: all;
}
.menu-overlay__logo {
  width: 144px;
  height: 47.34px;
}
.menu-overlay__close {
  width: 45px;
  height: 45px;
  background: white;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.3s ease;
  z-index: 101;
}
.menu-overlay__close-icon {
  position: relative;
  width: 24px;
  height: 24px;
}
.menu-overlay__close-icon::before,
.menu-overlay__close-icon::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 24px;
  height: 2px;
  background: var(--color-ui-navy);
}
.menu-overlay__close-icon::before {
  transform: translate(-50%, -50%) rotate(45deg);
}
.menu-overlay__close-icon::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}
.menu-overlay__nav {
  justify-self: flex-start;
  display: flex;
  flex-direction: row;
  position: relative;
  z-index: 10;
  width: 100%;
  background: var(--color-ui-navy);
  display: flex;
  height: 61px;
  align-items: center;
}
@media (width < 48rem) {
  .menu-overlay__nav {
    height: 74px;
  }
}
.menu-overlay__nav-inner {
  width: 100%;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  padding-inline: 10px;
  max-width: none;
  margin-inline: auto;
}
.menu-overlay__content {
  text-align: center;
  color: white;
  padding-inline: 20px;
  padding-bottom: 6rem;
  max-width: 100%;
  max-height: 80vh;
  overflow-y: auto;
}
.menu-overlay__title {
  font-size: 2rem;
  margin-bottom: 2rem;
  font-weight: bold;
}
.menu-overlay__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  column-gap: 15px;
  max-width: 600px;
  margin: 0 auto;
  counter-reset: menu;
}
.menu-overlay__link {
  text-align: left;
  display: block;
  padding: 1rem 0rem;
  font-size: 20px;
  color: white;
  font-weight: 700;
  text-decoration: none;
  border-bottom: 2px dashed #5ebcf6;
  transition: transform 0.3s ease;
  gap: 4px;
  display: flex;
  align-items: flex-start;
}
.menu-overlay__link:hover {
  transform: translateY(-2px);
}
.menu-overlay__bottom {
  position: absolute;
  background-image: url('/hokkaidos_fish/osakanazukan/assets/images/bg_menu_bottom.webp');
  background-position: center bottom;
  background-repeat: repeat-x;
  background-size: cover;
  bottom: 0;
  width: 100%;
  height: 120px;
  max-height: 120px;
  display: flex;
  align-items: center;
  flex-direction: column;
  justify-content: center;
}
@media (min-width: 540px) {
  .menu-overlay__bottom {
    background-size: contain;
  }
}
.menu-overlay__bottom-text {
  position: relative;
  background: rgba(255, 255, 255, 0.5764705882);
  color: #ffffff;
  font-size: 20px;
  padding: 10px 20px;
  text-align: center;
  line-height: 1.3rem;
  font-weight: 700;
  margin-inline: auto;
}
.intro-side {
  position: relative;
  flex-direction: column;
  max-width: 400px;
  width: 400px;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-inline: auto;
}
.intro-side__fish-tl {
  position: absolute;
  top: -100px;
  width: 121px;
  height: auto;
  mix-blend-mode: multiply;
}
.intro-side__fish-bl {
  position: absolute;
  bottom: -120px;
  width: 260px;
  height: auto;
  mix-blend-mode: multiply;
}
.intro-side__content {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 324px;
  width: 375px;
  background-image: url('/hokkaidos_fish/osakanazukan/assets/images/bg_intro-bubble.webp');
  background-position: center bottom;
  background-repeat: repeat-x;
  background-size: contain;
  color: var(--color-brown);
  font-weight: 700;
  text-align: center;
  padding-top: 32px;
}
.intro-side__bag {
  position: absolute;
  bottom: 8px;
  left: 50%;
  transform: translateX(-50%);
  width: 180px;
}
.intro-side__table {
  display: flex;
  font-size: 12px;
  text-align: center;
  justify-content: center;
  align-items: center;
  line-height: 1.2rem;
  margin-inline: auto;
  position: relative;
}
.intro-side__table::before {
  content: '';
  position: absolute;
  left: -0.6rem;
  top: 65%;
  transform: translateY(-50%);
  width: 16px;
  height: 16px;
  background-image: url('/hokkaidos_fish/osakanazukan/assets/images/img_dots-small-left.svg');
  background-size: contain;
  background-repeat: no-repeat;
}
.intro-side__table::after {
  content: '';
  position: absolute;
  right: -1.1rem;
  top: 65%;
  transform: translateY(-50%);
  width: 16px;
  height: 16px;
  background-image: url('/hokkaidos_fish/osakanazukan/assets/images/img_dots-small-right.svg');
  background-size: contain;
  background-repeat: no-repeat;
}
.intro-side__heading {
  font-size: 24px;
  line-height: 2.5rem;
}
.intro-side__sub-heading {
  display: flex;
  flex-direction: row;
  text-align: center;
  width: 100%;
  justify-content: center;
  font-size: 14px;
  line-height: 1.8rem;
}
.seafood__obi-box {
  display: flex;
  flex-direction: row;
  width: 100%;
  height: 105px;
  position: relative;
  background-size: cover;
  background-position: center;
  background-repeat: repeat;
  z-index: 1;
  background-image: url('/hokkaidos_fish/osakanazukan/assets/images/img_obi.webp');
  box-shadow: 1px 5px 10px rgba(0, 0, 10, 0.2);
  gap: 10px;
  padding: 12px 13px 0px 13px;
  color: var(--color-brown);
  font-weight: 700;
}
.seafood__obi-left,
.seafood__obi-right {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  margin-inline: auto;
}
.seafood__obi-right {
  gap: 3px;
}
.seafood__obi-left-text {
  display: flex;
  font-size: 12px;
  text-align: center;
  justify-content: center;
  align-items: center;
  line-height: 1.5rem;
  margin-inline: auto;
  position: relative;
}
.seafood__obi-left-text::before {
  content: '';
  position: absolute;
  left: -0.6rem;
  top: 65%;
  transform: translateY(-50%);
  width: 16px;
  height: 16px;
  background-image: url('/hokkaidos_fish/osakanazukan/assets/images/img_dots-small-left.svg');
  background-size: contain;
  background-repeat: no-repeat;
}
.seafood__obi-left-text::after {
  content: '';
  position: absolute;
  right: -1.1rem;
  top: 65%;
  transform: translateY(-50%);
  width: 16px;
  height: 16px;
  background-image: url('/hokkaidos_fish/osakanazukan/assets/images/img_dots-small-right.svg');
  background-size: contain;
  background-repeat: no-repeat;
}
.seafood__obi-bag {
  height: 69px;
  width: 90px;
}
.seafood__obi-heading {
  font-size: 24px;
  line-height: 1.5rem;
}
.seafood__obi-sub-heading {
  display: flex;
  font-size: 12px;
  line-height: 1.5rem;
}
.seafood__back {
  display: flex;
  flex-direction: column;
  color: var(--color-brown);
  font-weight: 700;
  gap: 11px;
}
.seafood__back-heading {
  text-align: center;
  font-size: 28px !important;
}
.seafood__back-wait {
  display: flex;
  font-size: 20px;
  text-align: center;
  justify-content: center;
  align-items: center;
  line-height: 1.5rem;
  margin-inline: auto;
  position: relative;
}
.seafood__back-wait::before {
  content: '';
  position: absolute;
  left: -1.2rem;
  top: 65%;
  transform: translateY(-50%);
  width: 14px;
  height: 25px;
  background-image: url('/hokkaidos_fish/osakanazukan/assets/images/img_dots-big-left.svg');
  background-size: contain;
  background-repeat: no-repeat;
}
.seafood__back-wait::after {
  content: '';
  position: absolute;
  right: -1.2rem;
  top: 65%;
  transform: translateY(-50%);
  width: 14px;
  height: 25px;
  background-image: url('/hokkaidos_fish/osakanazukan/assets/images/img_dots-big-right.svg');
  background-size: contain;
  background-repeat: no-repeat;
}
.header {
  display: flex;
  flex-direction: row;
  position: relative;
  z-index: 10;
  height: 61px;
  width: 100%;
  background: white;
  align-items: center;
  flex-shrink: 0;
}
@media (width < 48rem) {
  .header {
    height: 74px;
  }
}
@media (width < 23.5rem) {
  .header {
    height: 56px;
  }
}
.header__inner {
  width: 100%;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  padding-inline: 10px;
  max-width: none;
  margin-inline: auto;
}
@media (min-width: 1280px) {
  .header__inner {
    justify-content: center;
  }
} /* Loading screen */
.c-loading-screen {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: var(--color-ui-navy);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  z-index: 9999;
  transition: opacity 0.3s ease;
  overflow: hidden;
}
.c-loading-screen__fish-big {
  position: absolute;
  width: 800px;
  height: auto;
  z-index: 200;
  animation: swimBigFish 5.3s cubic-bezier(0.45, 0.05, 0.55, 0.95) infinite;
  opacity: 0;
}
@media (min-width: 768px) {
  .c-loading-screen__fish-big {
    animation: swimBigFishPC 5.3s cubic-bezier(0.45, 0.05, 0.55, 0.95) infinite;
  }
}
.c-loading-screen__fish-small {
  position: absolute;
  width: 800px;
  height: auto;
  animation: swimSmallFish 5.4s cubic-bezier(0.42, 0, 0.58, 1) infinite;
  animation-delay: 0.3s;
  opacity: 0;
}
@media (min-width: 768px) {
  .c-loading-screen__fish-small {
    animation: swimSmallFishPC 5.4s cubic-bezier(0.42, 0, 0.58, 1) infinite;
    animation-delay: 0.3s;
  }
}
.c-loading-screen__text {
  margin-left: 2rem;
  color: white;
  font-size: 24px;
  font-weight: 700;
  position: relative;
  z-index: 1;
  margin-top: 500px;
  letter-spacing: 2.4px;
}
.c-loading-screen__dots {
  display: inline-block;
  width: 1.5em;
  text-align: left;
}
.c-loading-screen__dots span {
  animation: dotPulse 1.5s infinite;
  opacity: 0;
}
.c-loading-screen__dots span:nth-child(1) {
  animation-delay: 0s;
}
.c-loading-screen__dots span:nth-child(2) {
  animation-delay: 0.5s;
}
.c-loading-screen__dots span:nth-child(3) {
  animation-delay: 1s;
}
.c {
  /* Mobile: fish swim across (right to left) */
}
@keyframes swimBigFish {
  0% {
    right: -200%;
    scale: 2;
    top: 45%;
    opacity: 1;
  }
  100% {
    right: 1000px;
    top: 45%;
    opacity: 1;
    scale: 2;
  }
}
@keyframes swimSmallFish {
  0% {
    right: -200%;
    scale: 2;
    top: 45%;
    opacity: 1;
  }
  100% {
    right: 1000px;
    top: 45%;
    opacity: 1;
    scale: 2;
  }
}
.c {
  /* PC: fish fade in/out with wavy motion */
}
@keyframes swimBigFishPC {
  0% {
    right: -150%;
    top: 45%;
    opacity: 0;
    scale: 2;
  }
  50% {
    opacity: 1;
  }
  100% {
    right: 1600px;
    top: 45%;
    opacity: 0;
    scale: 2;
  }
}
@keyframes swimSmallFishPC {
  0% {
    right: -150%;
    top: 45%;
    opacity: 0;
    scale: 2;
  }
  50% {
    opacity: 1;
  }
  100% {
    right: 1600px;
    top: 45%;
    opacity: 0;
    scale: 2;
  }
}
@keyframes dotPulse {
  0%,
  20% {
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
