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

:root {
  --cyan:       #45bcd8;
  --cyan-light: #7dd4e8;
  --cyan-pale:  #e0f5fa;
  --cyan-dark:  #2a9ab8;
  --white:      #ffffff;
  --offwhite:   #f7f9fa;
  --black:      #2d2d2d;
  --gray:       #888;
  --light:      #eef0f1;

  /* section accents */
  --yellow:     #f9c846;
  --yellow-soft:#fef8e1;
  --orange:     #f47c3c;
  --orange-soft:#fdeee3;
  --green:      #5bbb7b;
  --green-soft: #e0f5e8;
  --purple:     #9b7fd4;
  --purple-soft:#ede8f8;

  --r-card: 20px;
  --r-big:  40px;
}

html {
  scroll-behavior: smooth;
  /* 固定ヘッダー分（アンカー・スクロール位置のずれ防止） */
  scroll-padding-top: 100px;
}
body {
  background: var(--white);
  color: var(--black);
  font-family: 'Outfit', 'Noto Sans JP', sans-serif;
  font-weight: 300;
  overflow-x: hidden;
}
::-webkit-scrollbar { width: 5px; }
::-webkit-scrollbar-track { background: var(--offwhite); }
::-webkit-scrollbar-thumb { background: var(--cyan); border-radius: 3px; }

/* ══════════════════════════════
   LOADER / INTRO ANIMATION
══════════════════════════════ */
#loader {
  position: fixed; inset: 0; z-index: 9999;
  background: var(--white);
  display: flex; align-items: center; justify-content: center;
  transition: opacity .6s .2s, visibility .6s .2s;
  /* JS が動かない場合でも数秒後に自動でフェードアウトさせるフェイルセーフ */
  animation: loaderFade 1s ease 4s forwards;
}
#loader.done { opacity: 0; visibility: hidden; }

@keyframes loaderFade {
  0% {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }
  100% {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }
}

.loader-logo {
  display: flex;
  flex-direction: column;
  align-items: center;
  /* 公式ロゴ：ドット列とワードマークの距離に近づける */
  gap: 14px;
}

/* Bubble burst intro — 吹き出しPNG素材。表示幅はコンパクトのまま gap で間隔調整 */
.loader-bubbles {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 6px;
  /* 12+6+16+6+20 ≈ 60px（＋余白で 66px 枠内に収まる） */
  width: 66px;
  max-width: 100%;
  box-sizing: border-box;
  padding: 0;
}
.l-bubble {
  flex-shrink: 0;
  opacity: 0;
  border-radius: 0;
  --bubble-lift: 0px;
  animation: bubblePop 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
  /* 共通：吹き出し素材（src/style.css からの相対パス） */
  background-color: transparent;
  background-image: url(../images/loader/loader-bubble.png);
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: contain;
  filter: drop-shadow(0 2px 8px rgba(34, 211, 238, 0.42));
}
/* 左→右へ小→中→大でリズム（導入・山場・手前に抜け） */
.l-bubble:nth-child(1) {
  width: 12px;
  height: 12px;
  animation-delay: 0.1s;
  --bubble-lift: 6px;
}
.l-bubble:nth-child(2) {
  width: 16px;
  height: 16px;
  animation-delay: 0.25s;
  --bubble-lift: 3px;
}
.l-bubble:nth-child(3) {
  width: 20px;
  height: 20px;
  animation-delay: 0.4s;
  --bubble-lift: 0px;
}

@keyframes bubblePop {
  0% {
    opacity: 0;
    transform: scale(0) translateY(var(--bubble-lift, 0));
  }
  70% {
    opacity: 1;
    transform: scale(1.1) translateY(var(--bubble-lift, 0));
  }
  100% {
    opacity: 1;
    transform: scale(1) translateY(var(--bubble-lift, 0));
  }
}

/* ローダー：公式ロゴ画像（ドットの後にふわっと表示） */
.loader-text {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
}
.loader-logo-img {
  display: block;
  height: auto;
  max-width: min(220px, 72vw);
  width: auto;
  opacity: 0;
  transform: translateY(16px);
  animation: loaderLogoIn 0.55s cubic-bezier(.34, 1.56, .64, 1) 0.5s forwards;
}

@keyframes loaderLogoIn {
  from {
    opacity: 0;
    transform: translateY(16px) scale(0.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

/* ══════════════════════════════
   NAVBAR
══════════════════════════════ */
nav {
  /* メインコンテンツより常に手前（WP本文・カードの重なり対策） */
  position: fixed; top: 0; left: 0; width: 100%; z-index: 5000;
  isolation: isolate;
  padding: 20px 56px;
  display: flex; align-items: center; justify-content: space-between;
  transition: background .4s, box-shadow .4s, padding .3s;
}
nav.scrolled {
  /* 半透明＋blur だとスクロール時に本文がナビ上に重なって見えるため不透明にする */
  background: var(--white);
  box-shadow: 0 1px 24px rgba(69,188,216,.12);
  padding: 13px 56px;
}
.nav-logo {
  display: flex; align-items: center; gap: 4px;
  text-decoration: none; cursor: pointer;
}
/* SVG logo in nav */
.nav-logo-svg { height: 36px; width: auto; }
.nav-logo:hover .nav-logo-svg { filter: brightness(1.1); }

.nav-links {
  display: flex; align-items: center; gap: 4px;
  list-style: none; margin: 0; padding: 0;
}
.nav-link {
  font-size: 12px; font-weight: 600; padding: 6px 10px;
  color: var(--black); text-decoration: none;
  border-radius: 8px; letter-spacing: .04em;
  font-family: 'Noto Sans JP', sans-serif;
  transition: color .2s, background .2s;
  white-space: nowrap;
}
.nav-link:hover { color: var(--cyan); background: rgba(69,188,216,.08); }

/* おいも・食部門ドロップダウン（PC: ホバー / スマホ: タップ展開） */
.nav-dropdown {
  position: relative;
}
.nav-dropdown__btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: none;
  background: transparent;
  cursor: pointer;
  /* .nav-link と同じサイズにする（button の font: inherit 相当は .nav-link の指定を潰すため使わない） */
}
.nav-dropdown__chev {
  width: 0;
  height: 0;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 5px solid currentColor;
  opacity: 0.4;
  transition: transform 0.2s ease;
}
.nav-dropdown__menu {
  display: none;
}
.nav-dropdown__item {
  display: block;
  padding: 11px 18px;
  font-size: 13px;
  font-weight: 600;
  color: var(--black);
  text-decoration: none;
  font-family: 'Noto Sans JP', sans-serif;
  letter-spacing: 0.03em;
  transition: background 0.15s, color 0.15s;
  white-space: nowrap;
}
.nav-dropdown__item:hover {
  background: rgba(69, 188, 216, 0.12);
  color: var(--cyan-dark);
}

@media (min-width: 1025px) {
  .nav-dropdown__menu {
    display: block;
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    min-width: 220px;
    padding: 8px 0;
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 16px 48px rgba(15, 35, 55, 0.12);
    border: 1px solid rgba(15, 23, 42, 0.06);
    opacity: 0;
    visibility: hidden;
    transform: translateY(6px);
    transition: opacity 0.2s ease, visibility 0.2s ease, transform 0.2s ease;
    z-index: 230;
  }
  .nav-dropdown:hover .nav-dropdown__chev,
  .nav-dropdown:focus-within .nav-dropdown__chev {
    transform: rotate(180deg);
  }
  .nav-dropdown:hover .nav-dropdown__menu,
  .nav-dropdown:focus-within .nav-dropdown__menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }
}

.nav-cta {
  background: var(--cyan) !important;
  color: var(--white) !important;
  padding: 10px 22px !important; border-radius: 100px !important;
  font-weight: 600 !important;
  transition: background .2s, transform .2s, box-shadow .2s !important;
  box-shadow: 0 4px 12px rgba(69,188,216,.3) !important;
}
.nav-cta::after { display: none !important; }
.nav-cta:hover {
  background: var(--cyan-dark) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 20px rgba(69,188,216,.35) !important;
}

/* ハンバーガー（狭い幅で表示・全画面メニュー） */
.nav-menu-btn {
  display: none;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  width: 44px;
  height: 44px;
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
  flex-shrink: 0;
  z-index: 220;
}
.nav-menu-btn span {
  display: block;
  width: 22px;
  height: 2px;
  background: var(--black);
  border-radius: 2px;
  transition: transform 0.25s ease, opacity 0.25s ease;
}
nav:has(.nav-links.open) .nav-menu-btn span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}
nav:has(.nav-links.open) .nav-menu-btn span:nth-child(2) {
  opacity: 0;
}
nav:has(.nav-links.open) .nav-menu-btn span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

@media (max-width: 1024px) {
  nav {
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    padding: 14px 20px !important;
    gap: 12px;
  }
  nav.scrolled {
    padding: 12px 20px !important;
  }
  .nav-menu-btn {
    display: flex;
  }
  .nav-links {
    position: fixed;
    inset: 0;
    background: rgba(255, 255, 255, 0.98);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    padding: 88px 24px 48px;
    gap: 0;
    z-index: 210;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    display: none;
  }
  .nav-links.open {
    display: flex;
  }
  .nav-link {
    font-size: 15px;
    padding: 14px 12px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    white-space: normal;
  }
  .nav-dropdown {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
  }
  .nav-dropdown .nav-dropdown__btn {
    width: 100%;
    justify-content: space-between;
    padding: 14px 12px;
    border-radius: 0;
    border-bottom: none !important;
    text-align: left;
  }
  .nav-dropdown__menu {
    position: static;
    display: none;
    flex-direction: column;
    padding: 0 0 8px 12px;
    margin: 0;
    min-width: 0;
    background: transparent;
    box-shadow: none;
    border: none;
    border-radius: 0;
    border-left: 3px solid rgba(69, 188, 216, 0.25);
    margin-left: 12px;
    opacity: 1;
    visibility: visible;
    transform: none;
  }
  .nav-dropdown--open .nav-dropdown__menu {
    display: flex;
  }
  .nav-dropdown--open .nav-dropdown__chev {
    transform: rotate(180deg);
  }
  .nav-dropdown__item {
    padding: 12px 12px;
    font-size: 15px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.04);
    white-space: normal;
  }
  .nav-logo {
    position: relative;
    z-index: 220;
  }
}

/* ══════════════════════════════
   HERO
══════════════════════════════ */
#hero {
  min-height: 100vh;
  display: flex; flex-direction: column;
  justify-content: center; align-items: flex-start;
  padding: 130px 80px 100px;
  position: relative; overflow: hidden;
  background: var(--offwhite);
  /* スクロール連動パララックス（.hero-visual が参照） */
  --hero-mark-offset: 0px;
}

/* Animated background blobs */
.blob { position: absolute; border-radius: 50%; filter: blur(80px); pointer-events: none; }
.blob-a { width: 600px; height: 600px; background: rgba(69,188,216,.18); top: -150px; right: -120px; animation: blobMove 10s ease-in-out infinite; }
.blob-b { width: 400px; height: 400px; background: rgba(69,188,216,.1);  bottom: -80px; right: 280px; animation: blobMove 13s ease-in-out infinite 2s reverse; }
.blob-c { width: 280px; height: 280px; background: rgba(249,200,70,.15);  top: 280px; right: 480px; animation: blobMove 8s ease-in-out infinite 1s; }
@keyframes blobMove {
  0%,100% { transform: translate(0,0) scale(1); }
  33%  { transform: translate(-30px,20px) scale(1.05); }
  66%  { transform: translate(20px,-15px) scale(.95); }
}

/* ヒーロー右：吹き出し群 + メインマーク（まとめてパララックス） */
.hero-visual {
  /* 吹き出しアニメの「動ける範囲」（参考2枚目の大きな霞エリア） */
  position: absolute;
  /* right をやや大きく＋軽い translateX で、ブロック全体を左へ */
  right: clamp(28px, 6vw, 104px);
  top: 50%;
  transform: translate3d(clamp(-10px, -2vw, -32px), calc(-50% + var(--hero-mark-offset, 0px)), 0);
  width: min(460px, 50vw);
  height: min(500px, 60vh);
  pointer-events: none;
  z-index: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: flex-end;
}

/* 発想がポンポン湧くレイヤー */
.hero-idea-bubbles {
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: visible;
}

/* ── 発想の吹き出し（3つ）：配置＋スクロール連動（--idea-parallax-y / --idea-drift-x / --idea-zoom は JS） */
.idea-fuki-wrap {
  --idea-fuki-max: 96px;
  position: absolute;
  left: var(--x);
  top: var(--y);
  width: min(var(--w), var(--idea-fuki-max));
  max-width: var(--idea-fuki-max);
  transform-origin: 50% 55%;
  transform: translate3d(var(--idea-drift-x, 0px), var(--idea-parallax-y, 0px), 0) scale(var(--idea-zoom, 1));
  will-change: transform;
  pointer-events: none;
}

.idea-fuki-wrap .idea-fuki {
  position: relative;
  left: auto;
  top: auto;
  width: 100%;
  max-width: none;
  animation: ideaFloat 7s ease-in-out infinite;
  animation-delay: calc(var(--d) + 0.55s);
  will-change: transform;
}

.idea-fuki__inner {
  display: block;
  width: 100%;
  height: auto;
  transform-origin: var(--ox, 50%) var(--oy, 88%);
  animation: ideaBurstFromPoint 0.92s cubic-bezier(.26, 1.65, .42, 1) var(--d) both;
  will-change: transform, opacity;
  filter: drop-shadow(0 4px 10px rgba(69, 188, 216, 0.12));
}

.idea-fuki__svg {
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;
}

/* 小さな点 → 一気に膨らんで溢れる */
@keyframes ideaBurstFromPoint {
  0% {
    transform: scale(0.05) rotate(var(--rot, 0deg));
    opacity: 0;
  }
  58% {
    /* 許容サイズを超えないようピークを抑える */
    transform: scale(1.06) rotate(var(--rot, 0deg));
    opacity: 1;
  }
  100% {
    transform: scale(1) rotate(var(--rot, 0deg));
    opacity: 1;
  }
}

/* 3つ限定：漂いは小さく（はじけはスクロール側で表現） */
@keyframes ideaFloat {
  0%,
  100% {
    transform: translate(0, 0);
  }
  33% {
    transform: translate(5px, -6px);
  }
  66% {
    transform: translate(-4px, 5px);
  }
}

/* メインの大きな吹き出しSVG */
.hero-mark {
  position: relative;
  z-index: 2;
  flex-shrink: 0;
  opacity: 0;
  animation: fadeSlideIn 0.8s 2.2s both;
}
.hero-mark svg {
  width: min(320px, 36vw);
  height: auto;
  display: block;
}

@keyframes fadeSlideIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  .idea-fuki-wrap {
    transform: none !important;
  }
  .idea-fuki-wrap .idea-fuki {
    animation: none !important;
  }
  .idea-fuki__inner {
    animation: none !important;
    opacity: 0.92 !important;
    transform: scale(1) rotate(var(--rot, 0deg)) !important;
  }
  .hero-mark {
    opacity: 1 !important;
    animation: none !important;
  }
}

/* Hero content */
.hero-content { position: relative; z-index: 1; max-width: 680px; }

/* ヒーロー上段：メインキャッチの次に続くサブメッセージ（ピル〜締め） */
.hero-taglines {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 20px;
  margin-top: 8px;
  margin-bottom: 40px;
  padding: 22px 0 6px;
  max-width: 36em;
  border-top: 1px solid rgba(69, 188, 216, 0.22);
  opacity: 0;
  animation: revealUp .55s 1.05s both;
}
.hero-taglines .hero-tagline {
  margin: 0;
}
.hero-tagline--pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--cyan);
  color: var(--white);
  padding: 8px 18px;
  border-radius: 100px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  font-family: 'Noto Sans JP', sans-serif;
  box-shadow: 0 4px 14px rgba(69, 188, 216, 0.3);
}
.hero-tagline-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.6);
  flex-shrink: 0;
  animation: pulse 1.5s 2s infinite;
}
.hero-tagline--mid {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(13px, 1.35vw, 16px);
  font-weight: 600;
  color: var(--black);
  letter-spacing: 0.04em;
  line-height: 1.85;
}
.hero-tagline-x {
  display: inline-block;
  margin: 0 0.12em;
  color: var(--cyan-dark);
  font-weight: 800;
}
.hero-tagline--closing {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(14px, 1.5vw, 17px);
  font-weight: 700;
  color: var(--black);
  letter-spacing: 0.02em;
  line-height: 1.85;
  padding-bottom: 12px;
  margin-bottom: 2px;
  border-bottom: 2px solid rgba(69, 188, 216, 0.38);
  width: fit-content;
}
@media (prefers-reduced-motion: reduce) {
  .hero-taglines {
    opacity: 1 !important;
    animation: none !important;
  }
  .hero-tagline-dot {
    animation: none !important;
  }
  .hero-char {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
  }
  .hero-btns,
  .hero-scroll-hint {
    opacity: 1 !important;
    animation: none !important;
  }
}
@keyframes pulse { 0%,100%{transform:scale(1);opacity:.6} 50%{transform:scale(1.5);opacity:1} }

/* メインキャッチ（3行スタック：あったらいい / のにを / カタチに。） */
.hero-title {
  font-size: clamp(52px, 7.6vw, 104px);
  font-weight: 900;
  line-height: 1.08;
  letter-spacing: -0.03em;
  margin: 0 0 28px;
  font-family: 'Noto Sans JP', sans-serif;
}
.hero-title .t-line {
  display: block;
  overflow: visible;
}
.hero-title .t-line + .t-line {
  margin-top: 0.06em;
}
.hero-char {
  display: inline-block;
  opacity: 0;
  transform: translateY(36px) rotate(5deg);
  animation: charIn .48s cubic-bezier(.34, 1.56, .64, 1) forwards;
  animation-delay: calc(0.075s * var(--i, 0) + 0.12s);
}
/* 「カタチ」にシアンのグラデーション（「に。」は通常色） */
.hero-char.grad {
  background: linear-gradient(135deg, var(--cyan-light) 0%, var(--cyan) 45%, var(--cyan-dark) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

@keyframes charIn {
  from { opacity:0; transform: translateY(40px) rotate(6deg); }
  to   { opacity:1; transform: translateY(0) rotate(0); }
}

.hero-btns {
  display: flex; gap: 14px; flex-wrap: wrap;
  opacity: 0;
  animation: revealUp .6s 1.65s both;
}
.btn-fill {
  display: inline-flex; align-items: center; gap: 10px;
  background: var(--cyan); color: var(--white);
  padding: 16px 32px; border-radius: 100px;
  font-size: 14px; font-weight: 700; text-decoration: none;
  box-shadow: 0 6px 20px rgba(69,188,216,.35);
  transition: transform .25s, box-shadow .25s, background .2s;
}
.btn-fill:hover { background: var(--cyan-dark); transform: translateY(-3px); box-shadow: 0 12px 28px rgba(69,188,216,.4); }
.btn-outline {
  display: inline-flex; align-items: center; gap: 10px;
  background: var(--white); color: var(--black);
  padding: 16px 32px; border-radius: 100px;
  font-size: 14px; font-weight: 600; text-decoration: none;
  border: 2px solid var(--light);
  transition: border-color .2s, transform .25s;
}
.btn-outline:hover { border-color: var(--cyan); color: var(--cyan); transform: translateY(-3px); }

.hero-scroll-hint {
  position: absolute; bottom: 40px; left: 80px;
  display: flex; align-items: center; gap: 12px;
  font-size: 10px; letter-spacing: .2em; text-transform: uppercase; color: var(--gray);
  opacity: 0; animation: revealUp .5s 2.1s both;
}
.scroll-line { width: 40px; height: 1px; background: var(--gray); animation: scrollAnim 2s 2.6s infinite; transform-origin: left; }
@keyframes scrollAnim { 0%,100%{transform:scaleX(1);opacity:.4} 50%{transform:scaleX(.5);opacity:1} }

@keyframes revealUp {
  from { opacity:0; transform:translateY(20px); }
  to   { opacity:1; transform:translateY(0); }
}

/* ══════════════════════════════
   COMMON
══════════════════════════════ */
.reveal { opacity:0; transform:translateY(36px); transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1); }
.reveal.in { opacity:1; transform:translateY(0); }
.d1{transition-delay:.1s} .d2{transition-delay:.2s} .d3{transition-delay:.3s} .d4{transition-delay:.4s} .d5{transition-delay:.5s}

/* ══════════════════════════════
   SECTION HEADING — フラット統合スタイル
   英語サブテキスト + 日本語大見出しを
   タグなしで自然に一体化
══════════════════════════════ */
.section-heading { margin-bottom: 80px; }

/* 英語サブテキスト: 囲みなし・フラット */
.en-label {
  display: block;
  font-family: 'Outfit', sans-serif;
  font-size: 13px; font-weight: 600;
  letter-spacing: .18em; text-transform: uppercase;
  margin-bottom: 6px;
  opacity: .55;
  color: currentColor;
}

/* 大きな日本語タイトル */
.section-title {
  font-size: clamp(40px, 5.5vw, 80px);
  font-weight: 900; letter-spacing: -.04em; line-height: 1.0; margin-bottom: 20px;
  font-family: 'Noto Sans JP', sans-serif;
}
.section-desc { font-size:15px; line-height:1.9; font-family:'Noto Sans JP',sans-serif; max-width:560px; color:#666; margin-bottom: 0; }

/* 事業紹介：リード文（ヒーローから移動） */
.biz-intro-lead {
  font-size: clamp(14px, 1.45vw, 17px);
  line-height: 2;
  font-family: 'Noto Sans JP', sans-serif;
  max-width: 640px;
  margin-top: 20px;
  margin-bottom: 0;
}

/* 白背景セクション: en-labelはダーク */
#news .en-label { color: var(--black); }
#events .en-label { color: var(--black); }

/* 事業紹介（シアン背景）：純白ではなく背景になじむトーン */
.biz-bg .en-label {
  color: rgba(255, 255, 255, 0.62);
  opacity: 1;
}
.biz-bg .section-title {
  color: rgba(255, 255, 255, 0.94);
  /* 事業紹介見出しとリード本文の間をやや広く（padding で相殺されない余白を足す） */
  margin-bottom: 36px;
}
.biz-bg .biz-intro-lead {
  color: rgba(255, 255, 255, 0.78);
  margin-top: 0;
  padding-top: 20px;
}

.wf-bg .en-label,
.wf-bg .section-title,
.gr-bg .en-label,
.gr-bg .section-title { color: var(--white); }
.wf-bg .section-desc { color: rgba(255,255,255,.92); }
.gr-bg .section-desc { color: rgba(255,255,255,.82); }

/* ── CARD CATEGORY LABEL — フラット（タグ枠なし） ──
   カード内のカテゴリも囲みなしでシンプルに  */
.biz-cat {
  display: block;
  margin-bottom: 6px;
  font-family: 'Outfit', sans-serif;
  font-size: 11px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase;
  opacity: .5;
}
.biz-cat.c1 { color: #92400e; }
.biz-cat.c2 { color: #065f46; }
.biz-cat.c3 { color: #155e75; }
.biz-cat.c4 { color: #5b21b6; }
.biz-cat.c5 { color: #92400e; }

/* ══════════════════════════════
   NEWS
══════════════════════════════ */
#news { padding: 100px 80px; background:var(--white); }
.news-wrap { max-width:1100px; margin:0 auto; }
.news-head { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:48px; }
.news-all { display:inline-flex; align-items:center; gap:8px; font-size:13px; font-weight:600; color:var(--cyan); text-decoration:none; transition:gap .2s; }
.news-all:hover { gap:14px; }
.news-list { display:flex; flex-direction:column; }
.news-row {
  display:grid; grid-template-columns:100px auto 1fr auto;
  align-items:center; gap:20px;
  padding:22px 0; border-bottom:1px solid #eee;
  text-decoration:none; color:var(--black);
  transition:background .15s, padding-left .2s;
  border-radius:8px;
}
.news-row:first-child { border-top:1px solid #eee; }
.news-row:hover { padding-left:12px; background:var(--offwhite); }
.n-date { font-size:12px; color:var(--gray); font-weight:500; }
.n-tag { padding:4px 12px; border-radius:100px; font-size:10px; font-weight:700; letter-spacing:.06em; white-space:nowrap; }
.n-tag.brand   { background:var(--cyan-pale); color:var(--cyan-dark); }
.n-tag.welfare { background:var(--green-soft); color:#166534; }
.n-tag.event   { background:var(--yellow-soft); color:#b45309; }
.n-tag.info    { background:var(--light); color:#555; }
.n-tag.wholesale { background:var(--orange-soft); color:#c2410c; }
.n-text { font-size:15px; line-height:1.5; font-family:'Noto Sans JP',sans-serif; }
.n-arr { color:var(--gray); transition:transform .2s,color .2s; }
.news-row:hover .n-arr { transform:translateX(5px); color:var(--cyan); }

/* ══════════════════════════════
   BUSINESSES  (cyan asymmetric block)
   DAY TO LIFE style: top-right corner
   only rounded, left edge straight
══════════════════════════════ */
#businesses { background: var(--white); padding: 0; }
.biz-bg {
  background: var(--cyan);
  border-radius: 0 120px 0 0;
  padding: 100px 80px 140px;
}
.biz-wrap { max-width:1100px; margin:0 auto; }
/* リード文とカードグリッドの間は詰めてもよい（見出し〜本文は .biz-bg .section-title で確保） */
.biz-head { margin-bottom: 52px; }
/* 事業カード4枚：PCは2列×2行、スマホは1列 */
.biz-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
.biz-card {
  background:var(--white); border-radius:var(--r-card); overflow:hidden;
  transition:transform .35s cubic-bezier(.16,1,.3,1), box-shadow .35s;
  cursor:pointer;
}
.biz-card:hover { transform:translateY(-8px); box-shadow:0 24px 56px rgba(0,0,0,.12); }
/* 事業4カード：画像エリアの高さを統一（バナー系は下記で contain 調整） */
.biz-img {
  height: 280px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  font-size: 72px;
  transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}
.biz-card:hover .biz-img { transform:scale(1.06); }
.biz-img-1 { background:linear-gradient(135deg,#fef3c4,#fde68a); }
.biz-img-2 { background:linear-gradient(135deg,#d1fae5,#86efac); }
.biz-img-3 { background:linear-gradient(135deg,#dbeafe,#93c5fd); }
.biz-img-4 { background:linear-gradient(135deg,#ede9fe,#c4b5fd); }
/* デザイン・AIカード：バナー画像が白背景のときに帯が見えないよう統一 */
.biz-img-4.biz-img-cover {
  background: #fff;
}
.biz-img-5 { background:linear-gradient(135deg,#f0f9ff,#bae6fd); }
/* 事業カード：実写真をエリアいっぱいに表示 */
.biz-img-cover {
  padding: 0;
  align-items: stretch;
  justify-content: stretch;
}
.biz-img-cover .biz-img-photo {
  width: 100%;
  height: 100%;
  min-height: 280px;
  object-fit: cover;
  object-position: center;
  display: block;
}
/* nonii.design バナー：全体表示（白ベースの書き出しに合わせる） */
.biz-img-4.biz-img-cover .biz-img-photo {
  object-fit: contain;
  object-position: center center;
  background: #fff;
}
.biz-img-oimo.biz-img-cover img {
  max-height: none !important;
  width: 100%;
  height: 100%;
  min-height: 280px;
  object-fit: cover;
  filter: none;
}
.biz-body { padding:24px; }
.biz-name { font-size:19px; font-weight:700; letter-spacing:-.02em; margin-bottom:8px; }
.biz-desc { font-size:13px; color:#666; line-height:1.8; font-family:'Noto Sans JP',sans-serif; }
/* wide card */
.biz-card.wide { grid-column:span 2; display:grid; grid-template-columns:1fr 1.2fr; }
.biz-card.wide .biz-img { height:100%; }

/* ══════════════════════════════
   EVENTS (asymmetric, top-right round)
══════════════════════════════ */
#events { background: var(--white); padding: 0; }
.ev-bg {
  background: var(--yellow-soft);
  border-radius: 0 120px 0 0;
  padding: 100px 80px 120px;
}
.ev-wrap { max-width:1100px; margin:0 auto; }
.ev-head { margin-bottom:56px; }
.ev-grid { display:grid; grid-template-columns:1.3fr 1fr; gap:20px; }
.ev-card { background:var(--white); border-radius:var(--r-card); overflow:hidden; cursor:pointer; transition:transform .3s, box-shadow .3s; }
.ev-card:hover { transform:translateY(-6px); box-shadow:0 20px 48px rgba(0,0,0,.1); }
.ev-img { height:260px; display:flex; align-items:center; justify-content:center; font-size:80px; transition:transform .5s cubic-bezier(.16,1,.3,1); }
.ev-card:hover .ev-img { transform:scale(1.05); }
.ev-img-1 { background:linear-gradient(135deg,#fde68a,#fbbf24); }
.ev-img-2 { background:linear-gradient(135deg,#a7f3d0,#34d399); }
.ev-body { padding:28px; }
.ev-tag {
  display: block;
  font-family: 'Outfit', sans-serif;
  font-size: 11px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase;
  margin-bottom: 8px;
  opacity: .5; color: var(--black);
}
.ev-title { font-size:20px; font-weight:700; margin-bottom:10px; }
.ev-desc { font-size:13px; color:#666; line-height:1.8; font-family:'Noto Sans JP',sans-serif; }

/* ══════════════════════════════
   WELFARE  (green, top-left round)
══════════════════════════════ */
/* 角丸の外側は #events .ev-bg と同じクリームで塗り、白抜けをなくす */
#welfare { background: var(--yellow-soft); padding: 0; }
.wf-bg {
  /* くすみ過ぎないローズ：前回の明るさ寄りと現行のコントラストの中間。軽いグラデ感を維持 */
  background: linear-gradient(145deg, #f0c4d8 0%, #e39cb8 36%, #d482a4 68%, #c97292 100%);
  border-radius: 120px 0 0 0;
  padding: 100px 80px;
  margin-top: -60px;
  position: relative;
  overflow: hidden;
}
.wf-bg::before {
  content: '';
  position: absolute;
  inset: 0;
  /* 上方向のハイライトで「軽さ」を出しつつ、白飛びしすぎない範囲で */
  background:
    radial-gradient(ellipse 58% 52% at 82% 12%, rgba(255, 255, 255, 0.18) 0%, transparent 58%),
    radial-gradient(ellipse 48% 48% at 12% 88%, rgba(255, 214, 230, 0.26) 0%, transparent 58%);
  pointer-events: none;
}
.wf-wrap { max-width:700px; margin:0 auto; display:grid; grid-template-columns:1fr; gap:40px; text-align:center; }
/* 見出しエリア：白文字の視認性アップ */
.wf-text .en-label {
  color: rgba(255, 255, 255, 0.88) !important;
  opacity: 1;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.12);
}
.wf-text .section-title {
  color: #ffffff !important;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.18);
}
.wf-text .section-desc {
  color: rgba(255, 255, 255, 0.94) !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}
.wf-card {
  background: rgba(255,255,255,.93);
  border: 2px solid rgba(255,255,255,.98);
  border-radius: 40px;
  padding: 40px 36px 36px;
  box-shadow: 0 8px 40px rgba(239,126,0,.14), 0 2px 0 rgba(255,255,255,.9) inset;
  position: relative;
  overflow: hidden;
}
.wf-card::before {
  content: "";
  position: absolute; top: -24px; right: -16px;
  width: 120px; height: 120px;
  background: radial-gradient(circle, rgba(245,147,0,.12) 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}
.wf-card::before {
  content: "";
  position: absolute; top: -20px; right: 20px;
  width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(245,147,0,.10) 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}
.wf-icon { font-size:48px; margin-bottom:20px; }
.wf-name { font-size:22px; font-weight:800; margin-bottom:5px; }
.wf-sub  { font-size:13px; color: #ef7e00; font-weight:600; margin-bottom:16px; }
.wf-body { font-size:13px; color:#555; line-height:1.9; font-family:'Noto Sans JP',sans-serif; margin-bottom:24px; }
.wf-list { display:flex; flex-direction:column; gap:10px; }
.wf-li   { display:flex; align-items:flex-start; gap:10px; font-size:13px; font-family:'Noto Sans JP',sans-serif; }
.wf-dot { width:8px; height:8px; border-radius:50%; background: #f59300; flex-shrink:0; margin-top:6px; }
.wf-link { display:inline-flex; align-items:center; gap:8px; margin-top:24px; font-size:13px; font-weight:600; color:var(--white); text-decoration:none; transition:gap .2s; }
.wf-link:hover { gap:14px; }
.wf-cocot-btn {
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  margin-top:28px; padding:16px 40px;
  background: linear-gradient(135deg, #ef7e00, #f59300);
  color:#fff; font-size:15px; font-weight:700;
  border-radius:100px; text-decoration:none;
  box-shadow: 0 4px 16px rgba(239,126,0,.3);
  transition: transform .2s, box-shadow .2s;
}
.wf-cocot-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 24px rgba(239,126,0,.4);
}

/* ══════════════════════════════
   GREETING  (cyan, top-right round)
══════════════════════════════ */
#greeting { background: var(--white); padding: 0; }
.gr-bg {
  background: var(--cyan);
  border-radius: 0 120px 0 0;
  padding: 100px 80px;
  margin-top: -60px;
}
.gr-wrap { max-width:1100px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
.gr-title { font-size:clamp(36px,4vw,56px); font-weight:900; color:var(--white); margin-bottom:32px; letter-spacing:-.04em; line-height:1.0; }
.gr-line { font-size:15px; line-height:2.2; color:rgba(255,255,255,.88); font-family:'Noto Sans JP',sans-serif; opacity:0; transform:translateY(14px); transition:opacity .5s,transform .5s; }
.gr-line.vis { opacity:1; transform:translateY(0); }
.gr-profile { background:var(--white); border-radius:var(--r-card); padding:40px; }
.gr-avatar { width:130px; height:130px; border-radius:50%; margin:0 auto 18px; overflow:hidden; box-shadow: 0 4px 20px rgba(0,0,0,.18); }
.gr-avatar-photo { width:100%; height:100%; object-fit:cover; display:block; }
.gr-role  { font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--cyan); font-weight:700; text-align:center; margin-bottom:5px; }
.gr-role--jp {
  text-transform: none;
  letter-spacing: 0.04em;
  font-size: 12px;
  font-weight: 700;
  color: var(--cyan-dark);
  margin-top: 6px;
  margin-bottom: 10px;
}
.gr-name  {
  font-size: clamp(16px, 3.2vw, 22px);
  font-weight: 800;
  text-align: center;
  margin-bottom: 6px;
  line-height: 1.4;
}
.gr-en    { font-size:12px; color:var(--gray); text-align:center; margin-bottom:20px; }
.gr-lead {
  font-size: 13px;
  line-height: 1.8;
  color: #444;
  text-align: center;
  font-family: 'Noto Sans JP', sans-serif;
  margin: 0 0 16px;
  padding: 0 4px;
}
.gr-tags  { display:flex; gap:8px; flex-wrap:wrap; justify-content:center; margin-bottom:24px; }
.gr-tag   {
  padding:4px 12px; border-radius:100px; font-size:11px; font-weight:600;
  background:var(--cyan-pale); color:var(--cyan-dark);
  display: inline-flex; align-items: center; gap: 5px;
}
.gr-imo-ico { width: 13px; height: 13px; flex-shrink: 0; display: inline-flex; }
.gr-imo-ico svg { width: 100%; height: 100%; display: block; }
.gr-hist  { display:flex; flex-direction:column; }
.gr-row   { display:flex; gap:16px; padding:10px 0; border-bottom:1px solid #f0f0f0; font-size:13px; font-family:'Noto Sans JP',sans-serif; }
.gr-row:last-child { border:none; }
.gr-age   { font-weight:700; min-width:50px; color:var(--cyan); }
.gr-what  { color:#555; line-height:1.5; }

/* ══════════════════════════════
   CONTACT
══════════════════════════════ */
#contact {
  background: linear-gradient(135deg, #e8f8ff 0%, #f0f8ff 30%, #fffbe8 70%, #f8f0ff 100%);
  padding: 100px 80px;
  position: relative;
  overflow: hidden;
}
#contact::before {
  content: '';
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 60% 50% at 20% 30%, rgba(69,188,216,.18) 0%, transparent 70%),
    radial-gradient(ellipse 50% 60% at 80% 70%, rgba(180,130,255,.14) 0%, transparent 70%);
  pointer-events: none;
}
.ct-wrap { max-width:1100px; margin:0 auto; position: relative; z-index: 1; }
.ct-box {
  background: rgba(255,255,255,0.55);
  backdrop-filter: blur(28px) saturate(180%);
  -webkit-backdrop-filter: blur(28px) saturate(180%);
  border: 1.5px solid rgba(255,255,255,0.75);
  border-radius: 32px;
  padding: 56px 72px;
  display: block;
  max-width: 720px;
  margin: 0 auto;
  box-shadow:
    0 8px 40px rgba(69,188,216,.12),
    0 2px 0 rgba(255,255,255,0.9) inset;
}
.ct-title { font-size:clamp(28px,3vw,42px); font-weight:800; color:var(--black); letter-spacing:-.03em; margin-bottom:10px; }

.ct-btns  { display:flex; gap:14px; flex-wrap:wrap; }
.ct-btn-main {
  display:inline-flex; align-items:center; gap:10px;
  background:var(--cyan); color:var(--white);
  padding:18px 36px; border-radius:100px;
  font-size:14px; font-weight:700; text-decoration:none;
  box-shadow:0 6px 20px rgba(69,188,216,.4);
  transition:background .2s,transform .25s;
}
.ct-btn-main:hover { background:var(--cyan-dark); transform:translateY(-3px); }
.ct-btn-sub {
  display:inline-flex; align-items:center; gap:10px;
  background:transparent; color:var(--white);
  padding:18px 36px; border-radius:100px;
  font-size:14px; font-weight:600; text-decoration:none;
  border:2px solid rgba(255,255,255,.2);
  transition:border-color .2s,transform .25s;
}
.ct-btn-sub:hover { border-color:rgba(255,255,255,.6); transform:translateY(-3px); }

/* ══════════════════════════════
   FOOTER
══════════════════════════════ */
footer {
  background: linear-gradient(160deg, #e8f8ff 0%, #f4faff 40%, #faf5ff 70%, #fff8f0 100%);
  color: var(--black);
  padding: 64px 80px 40px;
  position: relative;
  overflow: hidden;
}
footer::before {
  content: '';
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 55% 60% at 10% 20%, rgba(69,188,216,.15) 0%, transparent 65%),
    radial-gradient(ellipse 40% 50% at 90% 80%, rgba(180,130,255,.10) 0%, transparent 65%);
  pointer-events: none;
}
footer .ft-wrap { position: relative; z-index:1; }
.ft-wrap  { max-width:1100px; margin:0 auto; }
.ft-top   { display:flex; justify-content:space-between; margin-bottom:56px; flex-wrap:wrap; gap:48px; }
.ft-brand .ft-logo { margin-bottom:12px; line-height:1; } .ft-brand .ft-logo img { height:44px; width:auto; display:block; }
.ft-brand .ft-logo span { color:var(--cyan); }
.ft-brand p { font-size:13px; color:rgba(30,30,30,.55); line-height:1.8; font-family:'Noto Sans JP',sans-serif; max-width:220px; }
.ft-sns   { display:flex; gap:10px; margin-top:20px; }
.sns-btn {
  width: 40px; height: 40px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: rgba(0,0,0,.06);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(0,0,0,.1);
  color: var(--black);
  font-size: 18px; text-decoration: none;
  transition: background .2s, transform .2s;
}
.sns-btn:hover { background: rgba(69,188,216,.18); transform: translateY(-2px); }

/* Instagram ドロップダウン */
.sns-dropdown { position: relative; }
.sns-dropdown .sns-btn { cursor: pointer; border: none; font-size: 0; }
.sns-dropdown-menu {
  position: fixed;
  bottom: auto;
  left: auto;
  background: #fff;
  border-radius: 18px;
  padding: 22px 0;
  min-width: 288px;
  max-height: min(85vh, calc(100vh - 24px));
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  box-shadow: 0 16px 50px rgba(0, 0, 0, 0.22);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.25s, transform 0.25s, visibility 0.25s;
  transform: scale(0.95);
  transform-origin: bottom center;
  z-index: 10000;
}
.sns-dropdown-menu.sns-dropdown-menu--below {
  transform-origin: top center;
}
.sns-dropdown.open .sns-dropdown-menu {
  opacity: 1;
  visibility: visible;
  transform: scale(1);
}
.sns-dropdown-menu::-webkit-scrollbar {
  width: 6px;
}
.sns-dropdown-menu::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.22);
  border-radius: 6px;
}
.sns-dropdown-menu::-webkit-scrollbar-track {
  background: transparent;
}
.sns-dropdown-label {
  display: block;
  padding: 12px 26px 8px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #999;
  line-height: 1.4;
}
.sns-dropdown-label:first-child {
  padding-top: 6px;
}
/* セクション見出し同士の区切り（Company / oimo&coco. / Events など） */
.sns-dropdown-label:not(:first-child) {
  margin-top: 12px;
  padding-top: 16px;
}
.sns-dropdown-menu a {
  display: block;
  padding: 11px 26px;
  font-size: 13px;
  line-height: 1.55;
  color: #333;
  text-decoration: none;
  transition: background 0.15s, color 0.15s;
  font-family: 'Noto Sans JP', sans-serif;
}
.sns-dropdown-menu a:hover { background:rgba(69,188,216,.08); color:var(--cyan); }

@keyframes snsBounce { 0%,100%{transform:translateY(0)} 30%{transform:translateY(-8px)} 60%{transform:translateY(-4px)} 80%{transform:translateY(-6px)} }
.ft-nav   { display:flex; gap:56px; flex-wrap:wrap; }
.ft-col h4 { font-size:10px; letter-spacing:.2em; text-transform:uppercase; color: rgba(30,30,30,.45); margin-bottom:18px; }
.ft-col ul { list-style:none; display:flex; flex-direction:column; gap:12px; }
.ft-col a  { font-size:13px; color: rgba(20,20,20,.75); text-decoration:none; transition:color .2s; }
.ft-col a:hover { color: var(--cyan); }
.ft-bottom { padding-top:32px; border-top:1px solid rgba(255,255,255,.07); display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; }
.ft-copy   { font-size:12px; color: rgba(30,30,30,.4); }
.ft-links  { display:flex; gap:20px; }
.ft-links a{ font-size:12px; color:rgba(255,255,255,.22); text-decoration:none; }
.ft-links a:hover { color:rgba(255,255,255,.5); }

/* ══════════════════════════════
   RESPONSIVE
══════════════════════════════ */
@media(max-width:1024px){
  .hero-visual { display: none; }
  .hero-content { max-width:100%; }
  
  /* biz-card.wide removed duplicate */
  .biz-card.wide .biz-img { height:190px; }
  .gr-wrap,.wf-wrap { grid-template-columns:1fr; gap:48px; }
  .ev-grid { grid-template-columns:1fr; }
}
@media(max-width:768px){
  nav { padding:16px 24px; }
  nav.scrolled { padding:12px 24px; }
  
  #hero {
    padding: 118px 24px 96px;
  }
  .hero-scroll-hint {
    left: 24px;
  }
  
  #news,#events,#contact,footer { padding:80px 24px; }
  #businesses,#welfare,#greeting { padding:80px 24px; }

  .biz-grid { grid-template-columns: 1fr; }
  
  /* biz-card.wide removed duplicate */

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

  .hero-title { font-size: clamp(38px, 10.5vw, 58px); }
  .hero-taglines { gap: 16px; }
}

/* Real logo images（ヘッダー主役になるよう従来36pxから拡大） */
.nav-logo-img {
  height: 48px;
  width: auto;
  display: block;
  transition: opacity .2s;
}
.nav-logo:hover .nav-logo-img { opacity: .8; }
.nav-logo-text-fallback {
  font-family: 'Outfit', sans-serif;
  font-weight: 800;
  font-size: 18px;
  letter-spacing: 0.02em;
  color: var(--black);
}
.ft-logo-img {
  height: 48px;
  width: auto;
  display: block;
  /* footer is dark bg, need to make logo visible */
  margin-bottom: 12px;
}


/* oimo&coco. card */
.biz-img-oimo {
  background: linear-gradient(160deg, #f9e8d8 0%, #f5d5b8 40%, #ecdcc6 100%);
  display: flex; align-items: flex-end; justify-content: center;
  overflow: hidden; padding-top: 16px;
}
.biz-img-oimo img {
  max-height: 190px !important;
  width: auto;
  object-fit: contain;
  filter: drop-shadow(2px 4px 8px rgba(90,20,30,.18));
}
.biz-name-sub {
  font-size: 11px; font-weight: 700; letter-spacing: .04em;
  color: var(--gray); margin-bottom: 8px;
  font-family: 'Noto Sans JP', sans-serif;
  text-transform: none;
}


/* ══ EVENTS SECTION v2 ══ */
.ev-intro { margin-bottom: 60px; }
.ev-intro-text {
  font-size: 15px; line-height: 2.1; color: rgba(0,0,0,.7);
  font-family: 'Noto Sans JP', sans-serif; margin-bottom: 32px;
}
.ev-stats {
  display: flex; gap: 24px; flex-wrap: wrap; margin-top: 8px;
}
.ev-stat {
  display: flex; align-items: center; gap: 6px;
  font-size: 13px; font-family: 'Noto Sans JP', sans-serif; color: #555;
}
.ev-stat-num {
  font-size: 18px; font-weight: 800; color: var(--black);
  font-family: 'Outfit', sans-serif; letter-spacing: -.02em; line-height: 1;
}
.ev-stat-lbl {
  font-size: 12px; color: #666; font-family: 'Noto Sans JP', sans-serif;
}

/* ポスター4枚グリッド直上 */
.ev-sponsored-list-title {
  font-size: clamp(20px, 2.2vw, 26px);
  font-weight: 800;
  font-family: 'Noto Sans JP', sans-serif;
  letter-spacing: -0.02em;
  color: var(--black);
  margin: 0 0 20px;
  line-height: 1.35;
}

/* Poster grid: 横並び4枚 */
.ev-posters {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 48px;
}
.ev-poster-card {
  background: var(--white); border-radius: 16px; overflow: hidden;
  transition: transform .35s cubic-bezier(.16,1,.3,1), box-shadow .35s;
  cursor: pointer;
}
.ev-poster-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 48px rgba(0,0,0,.15);
}
.ev-poster-img {
  width: 100%;
  aspect-ratio: 1 / 1.414;
  overflow: hidden;
}
.ev-poster-img img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .5s cubic-bezier(.16,1,.3,1);
  display: block;
}
.ev-poster-card:hover .ev-poster-img img { transform: scale(1.04); }
.ev-poster-info {
  padding: 14px 16px;
}
.ev-poster-title {
  font-size: 13px; font-weight: 700; line-height: 1.4;
  font-family: 'Noto Sans JP', sans-serif; margin-bottom: 4px;
}
.ev-poster-date {
  font-size: 11px; color: #777;
  font-family: 'Noto Sans JP', sans-serif;
}

/* Recipe strip */
.ev-recipe { }
/* もいもいマルシェの直後に来るいもクックブロックの余白 */
.ev-moimoi + .ev-recipe {
  margin-top: 40px;
}
.ev-recipe-inner {
  background: var(--white); border-radius: 16px; padding: 28px 32px;
  display: flex; justify-content: space-between; align-items: center; gap: 24px;
}
.ev-recipe-tag {
  display: block; font-size: 11px; font-weight: 700; letter-spacing: .18em;
  text-transform: uppercase; opacity: .45; margin-bottom: 6px;
  font-family: 'Outfit', sans-serif;
}
.ev-recipe-tag--mixed {
  text-transform: none;
  letter-spacing: 0.08em;
  font-family: 'Outfit', 'Noto Sans JP', sans-serif;
  opacity: 0.55;
}
.ev-recipe-title { font-size: 20px; font-weight: 700; margin-bottom: 8px; }
.ev-recipe-desc { font-size: 13px; color: #666; line-height: 1.8; font-family: 'Noto Sans JP', sans-serif; max-width: 520px; }
.ev-recipe-icon { font-size: 52px; flex-shrink: 0; }

/* responsive */
@media(max-width: 900px) {
  .ev-posters { grid-template-columns: repeat(2, 1fr); }
}
@media(max-width: 600px) {
  .ev-posters { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .ev-stats { gap: 20px; }
}


/* ── 姉妹ブランド並列表示 ── */
.sister-brands {
  display: flex;
  align-items: center;
  gap: 0;
  margin-bottom: 10px;
  padding: 14px 16px;
  background: #fefaf7;
  border-radius: 12px;
  border: 1px solid #ede8e3;
}
.sister-brand-item {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}
.sister-brand-logo {
  height: 46px;
  width: auto;
  max-width: 100%;
  object-fit: contain;
}
.sister-brand-divider {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 0 10px;
  flex-shrink: 0;
}
.sister-brand-amp {
  font-size: 11px;
  font-weight: 700;
  color: #c8a090;
  letter-spacing: .05em;
  font-family: 'Outfit', sans-serif;
  opacity: .6;
  background: #ede8e3;
  width: 22px; height: 22px;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
}
.sister-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .15em;
  color: #b08070;
  font-family: 'Outfit', sans-serif;
  text-align: center;
  margin-bottom: 10px;
  text-transform: uppercase;
  opacity: .75;
}


/* ── Event poster buttons ── */
.ev-poster-btns {
  display: flex;
  gap: 6px;
  margin-top: 12px;
  flex-wrap: wrap;
}
.ev-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 6px 11px;
  border-radius: 100px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .04em;
  font-family: 'Noto Sans JP', sans-serif;
  text-decoration: none;
  transition: opacity .2s, transform .2s;
  white-space: nowrap;
}
.ev-btn:hover { opacity: .78; transform: translateY(-1px); }
.ev-btn-hp {
  background: var(--black);
  color: var(--white);
}
.ev-btn-ig {
  background: transparent;
  color: var(--black);
  border: 1.5px solid rgba(0,0,0,.18);
}
.ev-btn-ig:hover { background: rgba(0,0,0,.05); }


/* ── Recipe strip v2 ── */
.ev-recipe-left { flex: 1; }
.ev-recipe-logo {
  height: 72px; width: auto;
  display: block; margin-bottom: 10px;
}
.ev-recipe-catch {
  font-size: 16px; font-weight: 800; color: var(--black);
  font-family: 'Noto Sans JP', sans-serif;
  margin-bottom: 10px; line-height: 1.5;
}
.ev-recipe-btn {
  margin-top: 16px;
  display: inline-flex;
}

/* レシピ写真グリッド */
.ev-recipe-photos {
  flex-shrink: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 8px;
  width: 320px;
  height: 260px;
}
.ev-recipe-photo {
  border-radius: 14px;
  overflow: hidden;
  position: relative;
  box-shadow: 0 3px 12px rgba(0,0,0,.1);
}
.ev-recipe-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .4s cubic-bezier(.16,1,.3,1);
}
.ev-recipe-photo:hover img {
  transform: scale(1.06);
}
.ev-recipe-photo-main {
  grid-column: 1 / 2;
  grid-row: 1 / 3;
}
.ev-recipe-photo-sub1 {
  grid-column: 2 / 3;
  grid-row: 1 / 2;
}
.ev-recipe-photo-sub2 {
  grid-column: 2 / 3;
  grid-row: 2 / 3;
}
.ev-recipe-photo-label {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  padding: 6px 10px;
  background: linear-gradient(transparent, rgba(0,0,0,.55));
  color: white;
  font-size: 11px;
  font-weight: 700;
  font-family: 'Noto Sans JP', sans-serif;
  letter-spacing: .02em;
}
@media(max-width: 768px) {
  .ev-recipe-inner { flex-direction: column; }
  .ev-recipe-photos { width: 100%; height: 220px; }
}


/* ── ここっとロゴ ── */
.cocot-logo {
  display: none;
}
.cocot-btn {
  background: rgba(255,255,255,.25) !important;
  border: 1.5px solid rgba(255,255,255,.55) !important;
  color: #7a2800 !important;
}
.cocot-btn:hover {
  background: rgba(255,255,255,.38) !important;
  transform: translateY(-2px) !important;
}
.cocot-btn:hover {
  background: rgba(255,255,255,.25);
  transform: translateY(-2px);
}
.cocot-btn svg { stroke: white; }
/* スクエアロゴ（高精細PNGを縮小表示・1:1を維持） */
.wf-card-logo {
  width: clamp(180px, 40vw, 280px);
  max-width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  margin: 0 auto 20px;
  display: block;
  object-fit: contain;
}





/* ── 代表連絡先ボタン 横並び ── */

/* Instagram */
.ig-float-btn 

.ig-float-btn:hover 
/* LINE */

.line-float-btn:hover 





/* ══ CONTACT v2 ══ */
.ct-header { margin-bottom: 48px; }
.ct-heading {
  font-size: clamp(36px, 4vw, 60px);
  font-weight: 900; letter-spacing: -.04em; line-height: 1;
  margin-bottom: 16px; color: var(--black);
  font-family: 'Noto Sans JP', sans-serif;
}
.ct-sub { font-size:14px; color:#666; line-height:1.9; font-family:'Noto Sans JP',sans-serif; }


/* ── フォーム ── */
.ct-form { display: flex; flex-direction: column; gap: 20px; }
.ct-field { display: flex; flex-direction: column; gap: 7px; }
.ct-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.ct-label {
  font-size: 13px; font-weight: 700;
  font-family: 'Noto Sans JP', sans-serif; color: var(--black);
  display: flex; align-items: center; gap: 6px;
}
.ct-req {
  font-size: 10px; padding: 2px 7px; border-radius: 4px;
  background: #fff0f0; color: #e05555;
  font-weight: 700; letter-spacing: .04em;
}
.ct-input, .ct-textarea, .ct-select {
  width: 100%; padding: 13px 16px;
  border: 1.5px solid rgba(0,0,0,.1);
  border-radius: 12px;
  font-size: 14px; font-family: 'Noto Sans JP', sans-serif;
  background: rgba(255,255,255,.8);
  backdrop-filter: blur(8px);
  transition: border-color .2s, box-shadow .2s;
  outline: none;
  color: var(--black);
  box-sizing: border-box;
  appearance: none;
}
.ct-input:focus, .ct-textarea:focus, .ct-select:focus {
  border-color: var(--cyan);
  box-shadow: 0 0 0 3px rgba(69,188,216,.15);
  background: rgba(255,255,255,.95);
}
.ct-textarea { resize: vertical; min-height: 140px; }
.ct-select-wrap { position: relative; }
.ct-select-arrow {
  position: absolute; right: 14px; top: 50%; transform: translateY(-50%);
  font-size: 10px; color: #888; pointer-events: none;
}

/* 送信ボタン */
.ct-submit {
  display: flex; align-items: center; justify-content: center; gap: 10px;
  padding: 16px 32px; border-radius: 100px;
  background: linear-gradient(135deg, var(--cyan) 0%, #1aa8c0 100%);
  color: white; font-size: 15px; font-weight: 700;
  border: none; cursor: pointer;
  font-family: 'Noto Sans JP', sans-serif; letter-spacing: .05em;
  transition: transform .25s cubic-bezier(.34,1.56,.64,1), box-shadow .25s;
  box-shadow: 0 6px 24px rgba(69,188,216,.4);
  width: 100%;
}
.ct-submit:hover { transform: translateY(-3px); box-shadow: 0 12px 32px rgba(69,188,216,.5); }
.ct-submit:disabled { opacity: .6; cursor: not-allowed; transform: none; }
.ct-submit-arrow { font-size: 18px; font-weight: 300; }

/* 成功メッセージ */
.ct-success {
  display: flex; align-items: flex-start; gap: 14px;
  padding: 20px 24px; border-radius: 16px;
  background: linear-gradient(135deg, #e8faf0, #f0fff8);
  border: 1.5px solid rgba(34,197,94,.2);
  margin-top: 8px;
  animation: fadeInUp .4s ease;
}
.ct-success-icon {
  width: 36px; height: 36px; border-radius: 50%; flex-shrink: 0;
  background: #22c55e; color: white;
  display: flex; align-items: center; justify-content: center;
}
.ct-success-icon svg { width: 20px; height: 20px; display: block; }
.ct-success-title { font-size: 15px; font-weight: 700; margin-bottom: 4px; }
.ct-success-body { font-size: 13px; color: #555; line-height: 1.7; font-family: 'Noto Sans JP',sans-serif; }

/* ── サイドパネル ── */
.ct-side { display: none; }
/* removed side */
.ct-side-block {
  background: rgba(255,255,255,.7);
  backdrop-filter: blur(16px);
  border: 1.5px solid rgba(255,255,255,.8);
  border-radius: 18px; padding: 20px;
  box-shadow: 0 4px 20px rgba(0,0,0,.06);
}
.ct-side-label {
  font-size: 11px; font-weight: 700; letter-spacing: .12em;
  text-transform: uppercase; color: #888;
  font-family: 'Outfit', sans-serif; margin-bottom: 10px;
}
.ct-side-email {
  font-size: 14px; font-weight: 700; color: var(--black);
  text-decoration: none; word-break: break-all;
  font-family: 'Outfit', sans-serif;
  transition: color .2s;
}
.ct-side-email:hover { color: var(--cyan); }
.ct-side-line {
  display: flex; align-items: center; gap: 8px;
  padding: 10px 16px; border-radius: 100px;
  background: #06C755; color: white;
  font-size: 13px; font-weight: 700;
  text-decoration: none;
  font-family: 'Noto Sans JP', sans-serif;
  transition: opacity .2s, transform .2s;
  box-shadow: 0 4px 14px rgba(6,199,85,.3);
}
.ct-side-line:hover { opacity: .85; transform: translateY(-2px); }
.ct-side-note {
  font-size: 12px; color: #888; line-height: 2;
  font-family: 'Noto Sans JP', sans-serif;
}
.ct-side-note p {
  display: flex; align-items: flex-start; gap: 8px;
}

/* responsive */
@media(max-width: 860px) {
  
  .ct-side { display: none; }
  .ct-row { grid-template-columns: 1fr; }
}


/* ══ RETAIL SECTION ══ */
#retail-section { background: linear-gradient(160deg, #fffdf7 0%, #fff8f0 50%, #fdf5ff 100%); padding: 100px 80px; }
.rt-bg { }
.rt-wrap { max-width: 1100px; margin: 0 auto; }

/* おいも・食部門のサブセクション見出し（ピル＋英字＋大見出し：オンラインストア案内と同系統） */
.rt-dept-head {
  text-align: left;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  margin-bottom: 64px;
}
.rt-dept-head .rt-dept-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 20px;
  margin-bottom: 18px;
}
.rt-dept-pill {
  display: inline-flex;
  align-items: center;
  padding: 7px 16px;
  border-radius: 100px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.06em;
  font-family: 'Noto Sans JP', sans-serif;
  color: #134e4a;
  background: linear-gradient(180deg, #ecf8fb 0%, #dff2f7 100%);
  border: 1px solid rgba(19, 78, 74, 0.1);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}
.rt-dept-en {
  font-family: 'Outfit', sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #888888;
}
/* メイン見出し：親セクションより一段小さく、サブセクションであることを示す */
.rt-dept-main-title {
  font-size: clamp(34px, 5vw, 56px);
  font-weight: 900;
  letter-spacing: -0.04em;
  line-height: 1.08;
  margin: 0 0 22px;
  font-family: 'Noto Sans JP', sans-serif;
  color: #1a1a1a;
}
.rt-dept-lead {
  max-width: 640px;
  margin: 0;
  font-size: 15px;
  line-height: 2;
  font-family: 'Noto Sans JP', sans-serif;
  color: #555;
}
/* 同一セクション内の続き見出し（オンラインストアなど） */
.rt-dept-head--subsequent {
  margin-top: 88px;
  padding-top: 68px;
  border-top: 1px solid rgba(0, 0, 0, 0.07);
}
.rt-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
/* オンラインストア3タイル：PCは3列、店舗一覧と同系のカード */
.rt-grid.rt-grid--online {
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
  margin-bottom: 0;
}
@media (max-width: 900px) {
  .rt-grid.rt-grid--online {
    grid-template-columns: 1fr;
    gap: 32px;
  }
}
a.rt-card {
  text-decoration: none;
  color: inherit;
  display: block;
}
.rt-card {
  background: rgba(255,255,255,.8);
  backdrop-filter: blur(16px);
  border: 1.5px solid rgba(255,255,255,.9);
  border-radius: 24px;
  padding: 0;
  box-shadow: 0 4px 24px rgba(0,0,0,.07);
  position: relative;
  transition: transform .3s cubic-bezier(.34,1.56,.64,1), box-shadow .3s;
}
.rt-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 12px 40px rgba(0,0,0,.12);
}
/* オンラインストア3タイル：シャドウなし（フラット） */
.rt-grid.rt-grid--online .rt-card {
  box-shadow: none;
}
.rt-grid.rt-grid--online .rt-card:hover {
  box-shadow: none;
  transform: translateY(-4px);
}
.rt-card-badge {
  position: absolute; top: 16px; right: 16px;
  font-size: 10px; font-weight: 700; padding: 3px 10px;
  background: var(--cyan); color: white;
  border-radius: 100px; letter-spacing: .06em;
}
.rt-card-emoji { font-size: 36px; margin-bottom: 12px; }
.rt-card-brand {
  font-size: 11px; font-weight: 700; color: var(--cyan-dark);
  letter-spacing: .08em; margin-bottom: 4px;
  font-family: 'Outfit', sans-serif;
}
.rt-card-name {
  font-size: 17px; font-weight: 800; color: var(--black);
  margin-bottom: 8px; line-height: 1.3;
  font-family: 'Noto Sans JP', sans-serif;
}
.rt-card-area {
  font-size: 12px; color: #888; margin-bottom: 10px; font-family: 'Noto Sans JP', sans-serif;
  display: flex; align-items: center; gap: 6px;
}
.pin-ico {
  width: 14px; height: 14px; flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center;
  color: #aaa;
}
.pin-ico svg { width: 100%; height: 100%; display: block; }
.rt-card-desc { font-size: 12px; color: #555; line-height: 1.8; font-family: 'Noto Sans JP', sans-serif; }
@media(max-width: 900px) {
  
}
@media(max-width: 540px) {
  
}

/* ══ もいもいマルシェ ══ */
.ev-local-row { margin-top: 32px; }
.ev-local-card {
  display: flex; gap: 20px; align-items: flex-start;
  background: rgba(255,255,255,.15);
  backdrop-filter: blur(12px);
  border: 1.5px solid rgba(255,255,255,.3);
  border-radius: 20px; padding: 24px 28px;
  max-width: 640px;
}
.ev-local-icon { font-size: 40px; flex-shrink: 0; }
.ev-local-name {
  font-size: 18px; font-weight: 800; color: var(--black);
  margin-bottom: 4px; font-family: 'Noto Sans JP', sans-serif;
}
.ev-local-tag {
  font-size: 11px; font-weight: 700; color: var(--cyan-dark);
  letter-spacing: .06em; margin-bottom: 8px;
  font-family: 'Outfit', sans-serif;
}
.ev-local-desc { font-size: 13px; color: #444; line-height: 1.9; font-family: 'Noto Sans JP', sans-serif; }

/* ══ WEB SECTION（ライト基調 + nonii.design ブランドヒーロー） ══ */
#web-section {
  background: linear-gradient(180deg, #f5f9fc 0%, #eef4f9 40%, #f8fafb 100%);
  padding: 100px clamp(48px, 8vw, 120px);
  position: relative;
  overflow: hidden;
}
#web-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 70% 50% at 12% 18%, rgba(69, 188, 216, 0.14) 0%, transparent 55%),
    radial-gradient(ellipse 50% 45% at 88% 72%, rgba(147, 197, 253, 0.2) 0%, transparent 55%);
  pointer-events: none;
}
.wb-wrap { max-width: 1100px; margin: 0 auto; position: relative; z-index: 1; }

/* ── nonii.design ヒーローカード ── */
.wb-brand {
  position: relative;
  margin-bottom: 52px;
}
.wb-brand-glow {
  position: absolute;
  width: 420px;
  height: 420px;
  left: 50%;
  top: 40%;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(69, 188, 216, 0.16) 0%, transparent 68%);
  pointer-events: none;
  filter: blur(4px);
}
.wb-brand-card {
  position: relative;
  background: var(--white);
  border-radius: 32px;
  /* 左右の余白を広げて内容をゆったり配置 */
  padding: clamp(40px, 5.5vw, 64px) clamp(40px, 7vw, 96px);
  border: 1px solid rgba(15, 23, 42, 0.06);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.9) inset,
    0 24px 64px rgba(15, 35, 55, 0.08),
    0 4px 16px rgba(69, 188, 216, 0.06);
}
.wb-brand-head { margin-bottom: 28px; }
/* nonii.design / nonii.ai を縦積みの1枚ヒーロー画像で表示 */
.wb-brand-wordmarks {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
  margin-bottom: 6px;
  width: 100%;
}
.wb-brand-logotype {
  margin: 0 0 12px;
  font-family: 'Outfit', sans-serif;
  font-weight: 800;
  font-size: clamp(32px, 6vw, 52px);
  letter-spacing: -0.03em;
  color: #1e293b;
  line-height: 1.05;
}
/* 公式ワードマーク画像（書き出しPNG・Retina向けに十分な解像度で配置） */
.wb-brand-logotype--img {
  margin: 0;
  font-size: 0;
  line-height: 0;
}
.wb-brand-wordmarks .wb-brand-logotype--img {
  margin: 0;
}
.wb-brand-logo-img {
  display: block;
  max-width: 100%;
  height: auto;
}
/* 公式書き出し：nonii.design + nonii.ai 縦組（1枚PNG） */
.wb-brand-logo-img--stack {
  width: min(100%, 560px);
}
.wb-brand-meta {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
  flex-wrap: wrap;
}
.wb-brand-arrow {
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 6px 0 6px 10px;
  border-color: transparent transparent transparent var(--cyan);
  opacity: 0.85;
}
.wb-brand-dept {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-family: 'Outfit', sans-serif;
  color: var(--cyan-dark);
}
.wb-brand-support {
  margin: 0;
  max-width: 36em;
  font-size: 14px;
  line-height: 1.85;
  color: #475569;
  font-family: 'Noto Sans JP', sans-serif;
}
.wb-brand-em {
  font-weight: 800;
  color: #334155;
  background: linear-gradient(transparent 65%, rgba(69, 188, 216, 0.2) 65%);
}
.wb-brand-tagline {
  margin: 0 0 28px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(22px, 3.6vw, 32px);
  font-weight: 900;
  letter-spacing: -0.02em;
  line-height: 1.45;
  color: #0f172a;
}
.wb-brand-tagline-line { display: block; }
.wb-brand-tagline-line--accent {
  color: #1e3a5f;
  background: linear-gradient(135deg, #0f172a 0%, #1e3a5f 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
}
@supports not ((-webkit-background-clip: text) or (background-clip: text)) {
  .wb-brand-tagline-line--accent {
    color: #1e3a5f;
    -webkit-text-fill-color: inherit;
  }
}
.wb-brand-manifesto {
  list-style: none;
  margin: 0 0 28px;
  padding: 0;
  display: grid;
  gap: 0;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
}
.wb-brand-mf-item {
  display: grid;
  grid-template-columns: 52px 1fr;
  gap: 16px;
  align-items: baseline;
  padding: 18px 0;
  border-bottom: 1px solid rgba(15, 23, 42, 0.06);
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(14px, 2vw, 16px);
  line-height: 1.75;
  color: #475569;
}
.wb-mf-num {
  font-family: 'Outfit', sans-serif;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.08em;
  color: rgba(69, 188, 216, 0.9);
}
.wb-mf-txt strong {
  font-weight: 800;
  color: #1e293b;
}
.wb-brand-en {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 20px;
  font-family: 'Outfit', sans-serif;
  font-size: clamp(13px, 1.8vw, 15px);
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #94a3b8;
}
.wb-brand-en-dot {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--cyan);
  opacity: 0.65;
}

@media (max-width: 600px) {
  .wb-brand-mf-item {
    grid-template-columns: 40px 1fr;
    gap: 10px;
  }
}

/* ── 価格バナー（ライト） ── */
.wb-price-banner {
  display: flex;
  gap: 40px;
  align-items: center;
  flex-wrap: wrap;
  background: var(--white);
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 28px;
  padding: 44px 48px;
  margin: 0 0 36px;
  box-shadow: 0 16px 48px rgba(15, 35, 55, 0.06);
}
.wb-price-left { flex: 1; min-width: 280px; }
.wb-price-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--cyan-dark);
  font-family: 'Outfit', sans-serif;
  margin-bottom: 10px;
}
.wb-price-title {
  font-size: clamp(20px, 2.5vw, 28px);
  font-weight: 900;
  color: #0f172a;
  line-height: 1.35;
  margin-bottom: 10px;
  font-family: 'Noto Sans JP', sans-serif;
}
.wb-price-desc {
  font-size: 13px;
  color: #64748b;
  line-height: 1.8;
  font-family: 'Noto Sans JP', sans-serif;
  margin-bottom: 20px;
}
.wb-price-row {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}
.wb-price-item { display: flex; flex-direction: column; gap: 4px; }
.wb-price-tag {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #94a3b8;
  font-family: 'Outfit', sans-serif;
}
.wb-price-num {
  font-size: 32px;
  font-weight: 900;
  color: #0f172a;
  font-family: 'Outfit', sans-serif;
  line-height: 1;
}
.wb-price-unit { font-size: 14px; font-weight: 500; color: #94a3b8; }
.wb-price-plus { font-size: 24px; font-weight: 300; color: #cbd5e1; }
.wb-price-note {
  font-size: 11px;
  color: #64748b;
  letter-spacing: 0.04em;
  font-family: 'Noto Sans JP', sans-serif;
  line-height: 1.8;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}
.note-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #cbd5e1;
  flex-shrink: 0;
}
.note-dot--sm {
  width: 4px;
  height: 4px;
  background: #bbb;
  margin-top: 6px;
}

/* VS比較 */
.wb-price-right { flex-shrink: 0; }
.wb-price-vs {
  display: flex;
  align-items: center;
  gap: 16px;
  background: #f8fafc;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 20px;
  padding: 24px 28px;
}
.wb-price-vs-item { display: flex; flex-direction: column; align-items: center; gap: 4px; }
.wb-vs-label {
  font-size: 10px;
  color: #94a3b8;
  font-family: 'Outfit', sans-serif;
  letter-spacing: 0.06em;
  white-space: nowrap;
}
.wb-vs-num {
  font-size: 26px;
  font-weight: 900;
  font-family: 'Outfit', sans-serif;
  line-height: 1.1;
  text-align: center;
}
.wb-vs-old .wb-vs-num { color: #cbd5e1; text-decoration: line-through; }
.wb-vs-new .wb-vs-num { color: var(--cyan-dark); }
.wb-vs-badge {
  font-size: 10px;
  background: var(--cyan);
  color: white;
  padding: 2px 8px;
  border-radius: 100px;
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
}
.wb-price-vs-arrow { font-size: 20px; color: #cbd5e1; }

/* ── 特徴タイル（ライト） ── */
.wb-features {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-bottom: 40px;
}
.wb-feat {
  background: var(--white);
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 20px;
  padding: 28px 24px;
  transition: box-shadow 0.2s, border-color 0.2s;
  box-shadow: 0 4px 20px rgba(15, 35, 55, 0.04);
}
.wb-feat:hover {
  border-color: rgba(69, 188, 216, 0.35);
  box-shadow: 0 12px 32px rgba(69, 188, 216, 0.12);
}
.wb-feat-icon {
  width: 40px;
  height: 40px;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.wb-feat-icon svg {
  width: 100%;
  height: 100%;
  display: block;
  stroke: var(--cyan-dark);
}
.wb-feat-title {
  font-size: 15px;
  font-weight: 800;
  color: #0f172a;
  margin-bottom: 8px;
  font-family: 'Noto Sans JP', sans-serif;
}
.wb-feat-desc {
  font-size: 12px;
  color: #64748b;
  line-height: 1.8;
  font-family: 'Noto Sans JP', sans-serif;
}

/* ── CTA（ライト） ── */
.wb-cta {
  text-align: center;
  background: var(--white);
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 24px;
  padding: 44px 40px;
  box-shadow: 0 12px 40px rgba(15, 35, 55, 0.05);
}
.wb-cta-sub {
  font-size: 15px;
  color: #475569;
  margin-bottom: 20px;
  font-family: 'Noto Sans JP', sans-serif;
}
.wb-cta-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 16px 36px;
  border-radius: 100px;
  background: linear-gradient(135deg, var(--cyan) 0%, #1aa8c0 100%);
  color: white;
  font-size: 15px;
  font-weight: 700;
  text-decoration: none;
  font-family: 'Noto Sans JP', sans-serif;
  box-shadow: 0 8px 24px rgba(69, 188, 216, 0.4);
  transition: transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.25s;
  margin-bottom: 16px;
}
.wb-cta-btn:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 36px rgba(69, 188, 216, 0.5);
}
.wb-cta-btn-icon {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.wb-cta-btn-icon svg { width: 100%; height: 100%; display: block; }
.wb-cta-note {
  font-size: 12px;
  color: #94a3b8;
  font-family: 'Noto Sans JP', sans-serif;
  margin-top: 8px;
}
.wb-line-link {
  color: var(--cyan-dark);
  font-weight: 700;
  text-decoration: none;
  margin-left: 4px;
}
.wb-line-link:hover { text-decoration: underline; }

@media (max-width: 860px) {
  .wb-price-banner { flex-direction: column; }
  .wb-features { grid-template-columns: 1fr; }
  #web-section { padding: 80px clamp(24px, 6vw, 48px); }
  .wb-brand-card {
    padding: clamp(32px, 6vw, 48px) clamp(24px, 6vw, 40px);
  }
}

/* ══ RT FC Banner ══ */
.rt-fc-banner {
  display: flex; justify-content: space-between; align-items: center;
  gap: 32px; flex-wrap: wrap;
  margin-top: 40px;
  background: linear-gradient(135deg, var(--cyan) 0%, #1aa8c0 100%);
  border-radius: 24px; padding: 36px 40px;
  box-shadow: 0 8px 32px rgba(69,188,216,.3);
}
.rt-fc-banner-label {
  font-size: 10px; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase; color: rgba(255,255,255,.7);
  font-family: 'Outfit', sans-serif; margin-bottom: 6px;
}
.rt-fc-banner-title {
  font-size: 22px; font-weight: 900; color: white;
  margin-bottom: 10px; font-family: 'Noto Sans JP', sans-serif;
}
.rt-fc-banner-desc {
  font-size: 13px; color: rgba(255,255,255,.85);
  line-height: 1.8; font-family: 'Noto Sans JP', sans-serif;
  max-width: 520px;
}
.rt-fc-banner-stat {
  display: flex; flex-direction: column; align-items: center;
  flex-shrink: 0;
}
.rt-fc-num {
  font-size: 64px; font-weight: 900; color: white;
  line-height: 1; font-family: 'Outfit', sans-serif;
}
.rt-fc-unit { font-size: 28px; font-weight: 700; }
.rt-fc-note {
  font-size: 12px; color: rgba(255,255,255,.75);
  font-family: 'Noto Sans JP', sans-serif; margin-top: 4px;
  letter-spacing: .06em;
}

/* ══ RT Support ══ */
.rt-support-heading {
  margin: 56px 0 32px;
  text-align: center;
}
.rt-support-label {
  font-size: 11px; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase; color: var(--cyan-dark);
  font-family: 'Outfit', sans-serif; margin-bottom: 8px;
}
.rt-support-title {
  font-size: clamp(22px, 3vw, 32px); font-weight: 900;
  color: var(--black); margin-bottom: 10px;
  font-family: 'Noto Sans JP', sans-serif;
}
.rt-support-heading .rt-support-desc {
  font-size: 14px; color: #666; font-family: 'Noto Sans JP', sans-serif;
}
.rt-support-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.rt-support-card {
  background: rgba(255,255,255,.85);
  backdrop-filter: blur(16px);
  border: 1.5px solid rgba(255,255,255,.9);
  border-radius: 24px; padding: 32px 24px 28px;
  box-shadow: 0 4px 24px rgba(0,0,0,.07);
  display: flex; flex-direction: column; gap: 8px;
  transition: transform .3s cubic-bezier(.34,1.56,.64,1), box-shadow .3s;
}
.rt-support-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 16px 48px rgba(0,0,0,.12);
}
.rt-support-icon { font-size: 40px; margin-bottom: 4px; }
.rt-support-img {
  margin: -32px -24px 12px;
  border-radius: 22px 22px 0 0;
  overflow: hidden;
  height: 240px;
}
.rt-support-photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .4s cubic-bezier(.16,1,.3,1);
}
.rt-support-card:hover .rt-support-photo {
  transform: scale(1.05);
}
.rt-support-tag {
  font-size: 10px; font-weight: 700; letter-spacing: .1em;
  color: var(--cyan-dark); text-transform: uppercase;
  font-family: 'Outfit', sans-serif;
}
.rt-support-name {
  font-size: 18px; font-weight: 900; color: var(--black);
  line-height: 1.4; font-family: 'Noto Sans JP', sans-serif;
}
.rt-support-card .rt-support-desc {
  font-size: 12px; color: #555; line-height: 1.85;
  font-family: 'Noto Sans JP', sans-serif; flex: 1;
}
.rt-support-btn {
  display: inline-block; margin-top: 8px;
  padding: 10px 18px; border-radius: 100px;
  background: var(--cyan); color: white;
  font-size: 12px; font-weight: 700; text-decoration: none;
  font-family: 'Noto Sans JP', sans-serif;
  transition: opacity .2s, transform .2s;
  text-align: center;
}
.rt-support-btn:hover { opacity: .85; transform: translateY(-2px); }

@media(max-width: 860px) {
  .rt-support-grid { grid-template-columns: 1fr; }
  .rt-fc-banner { flex-direction: column; text-align: center; }
}


/* ══ BRAND STORY ══ */
#brand-story {
  background: linear-gradient(155deg, #e8f8ff 0%, #f0faff 25%, #e0f5f8 50%, #f5f0ff 75%, #e8f8f0 100%);
  padding: 120px 80px;
  position: relative;
  overflow: hidden;
}
#brand-story::before {
  content: '';
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 55% 45% at 5% 20%, rgba(69,188,216,.22) 0%, transparent 60%),
    radial-gradient(ellipse 45% 55% at 95% 80%, rgba(69,188,216,.18) 0%, transparent 60%),
    radial-gradient(ellipse 40% 40% at 50% 50%, rgba(130,220,255,.12) 0%, transparent 70%);
  pointer-events: none;
}
.bs-bg { }
.bs-wrap { max-width: 1100px; margin: 0 auto; position: relative; z-index: 1; }

.bs-title {
  font-size: clamp(40px, 5vw, 72px);
  font-weight: 900; color: var(--black); letter-spacing: -.04em;
  line-height: 1; font-family: 'Noto Sans JP', sans-serif;
  margin-bottom: 0;
}

/* ── キャッチコピー ── */
.bs-catch { margin: 56px 0 64px; }
.bs-catch-jp {
  font-size: clamp(28px, 4vw, 52px);
  font-weight: 900; color: var(--black);
  font-family: 'Noto Sans JP', sans-serif;
  line-height: 1.2; margin-bottom: 20px;
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 0;
}
.bs-word {
  display: inline-block;
  opacity: 0; transform: translateY(24px);
  animation: wordUp .5s ease forwards;
}
.bs-word:nth-child(1) { animation-delay: .2s; }
.bs-word:nth-child(2) { animation-delay: .4s; }
.bs-word:nth-child(3) { animation-delay: .6s; }
.bs-word:nth-child(4) { animation-delay: .8s; }
.bs-word:nth-child(5) { animation-delay: 1.0s; }
@keyframes wordUp {
  to { opacity: 1; transform: translateY(0); }
}
.bs-highlight-noni {
  color: transparent;
  background: linear-gradient(135deg, #45bcd8 0%, #6ee87a 100%);
  -webkit-background-clip: text;
  background-clip: text;
  position: relative;
}
.bs-catch-sub {
  font-size: 16px; color: rgba(30,30,30,.65);
  font-family: 'Noto Sans JP', sans-serif; line-height: 1.9;
}
.bs-catch-sub strong { color: var(--black); font-weight: 700; }
.bs-catch-sub em { color: #45bcd8; font-style: normal; font-weight: 900; font-size: 1.1em; }

/* ── 文字カード ── */
.bs-letters {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 56px;
}
.bs-letter-card {
  background: rgba(255,255,255,.72);
  backdrop-filter: blur(20px);
  border: 1.5px solid rgba(255,255,255,.9);
  border-radius: 24px;
  padding: 32px 24px 28px;
  display: flex; flex-direction: column; align-items: center;
  text-align: center;
  opacity: 0; transform: translateY(32px) scale(.94);
  transition: opacity .5s ease, transform .5s cubic-bezier(.34,1.56,.64,1),
              background .2s, border-color .2s;
}
.bs-letter-card.in-view {
  opacity: 1; transform: translateY(0) scale(1);
}
.bs-letter-card:nth-child(1) { transition-delay: .0s; }
.bs-letter-card:nth-child(2) { transition-delay: .12s; }
.bs-letter-card:nth-child(3) { transition-delay: .24s; }
.bs-letter-card:nth-child(4) { transition-delay: .36s; }
.bs-letter-card:hover {
  background: rgba(255,255,255,.9);
  border-color: rgba(69,188,216,.5);
  transform: translateY(-6px) scale(1.02);
}
.bs-letter {
  font-size: 72px; font-weight: 900; color: white;
  font-family: 'Outfit', sans-serif; line-height: 1;
  margin-bottom: 10px;
  background: linear-gradient(135deg, #1a1a2a 0%, #3a3a4a 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
}
.bs-ii {
  background: linear-gradient(135deg, #45bcd8 0%, #6ee87a 100%) !important;
  -webkit-background-clip: text !important; background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
}
.bs-letter-en {
  font-size: 13px; font-weight: 700; letter-spacing: .12em;
  text-transform: uppercase; color: #45bcd8;
  font-family: 'Outfit', sans-serif; margin-bottom: 10px;
}
.bs-letter-meaning {
  font-size: 13px; color: rgba(30,30,30,.6);
  line-height: 1.7; font-family: 'Noto Sans JP', sans-serif;
}

/* ── フィンランド語 ── */
.bs-finland {
  opacity: 0; transform: translateY(24px);
  transition: opacity .6s ease, transform .6s ease;
}
.bs-finland.in-view { opacity: 1; transform: translateY(0); }
.bs-finland-inner {
  display: flex; align-items: flex-start; gap: 24px;
  background: rgba(255,255,255,.72);
  backdrop-filter: blur(20px);
  border: 1.5px solid rgba(255,255,255,.9);
  border-radius: 24px; padding: 32px 36px;
  max-width: 700px; margin: 0 auto;
}
.bs-finland-flag { font-size: 48px; flex-shrink: 0; }
.bs-finland-label {
  font-size: 11px; font-weight: 700; letter-spacing: .12em;
  text-transform: uppercase; color: #888;
  font-family: 'Outfit', sans-serif; margin-bottom: 8px;
}
.bs-finland-phrase {
  font-size: 22px; font-weight: 800; color: var(--black);
  font-family: 'Noto Sans JP', sans-serif; margin-bottom: 10px;
}
.bs-finland-desc {
  font-size: 14px; color: rgba(30,30,30,.65);
  line-height: 1.9; font-family: 'Noto Sans JP', sans-serif;
}

@media(max-width: 780px) {
  .bs-letters { grid-template-columns: repeat(2, 1fr); }
  #brand-story { padding: 80px 32px; }
}


/* ── ロケットアニメーション ── */
.bs-rocket-wrap {
  position: relative; flex-shrink: 0;
  width: 60px; height: 60px;
  display: flex; align-items: center; justify-content: center;
}
.bs-rocket {
  animation: rocketLaunch 2.4s cubic-bezier(.34,1.56,.64,1) infinite;
  transform-origin: center bottom;
  filter: drop-shadow(0 4px 12px rgba(69,188,216,.5));
}
@keyframes rocketLaunch {
  0%   { transform: translateY(8px) rotate(-5deg); opacity: .7; }
  30%  { transform: translateY(-18px) rotate(3deg); opacity: 1; }
  60%  { transform: translateY(-28px) rotate(-2deg); opacity: 1; }
  80%  { transform: translateY(-36px) rotate(1deg); opacity: .8; }
  100% { transform: translateY(8px) rotate(-5deg); opacity: .7; }
}
.flame {
  animation: flamePulse .3s ease-in-out infinite alternate;
  transform-origin: center top;
}
.flame-inner {
  animation: flamePulse .2s ease-in-out infinite alternate-reverse;
  transform-origin: center top;
}
@keyframes flamePulse {
  from { transform: scaleY(1) scaleX(1); opacity: .9; }
  to   { transform: scaleY(1.3) scaleX(.85); opacity: 1; }
}
.bs-stars { position: absolute; inset: 0; pointer-events: none; }
.bs-star {
  position: absolute; color: var(--cyan);
  opacity: 0;
  animation: starPop 2.4s ease-in-out infinite;
  line-height: 0;
}
.bs-star svg { width: 12px; height: 12px; display: block; }
.s1 { top: 10px; left: 8px;  animation-delay: .3s; }
.s2 { top: 30px; right: 6px; animation-delay: .9s; }
.s3 { bottom: 8px; left: 14px; animation-delay: 1.5s; }
@keyframes starPop {
  0%,100% { opacity: 0; transform: scale(0) rotate(0deg); }
  40%      { opacity: 1; transform: scale(1.2) rotate(20deg); }
  70%      { opacity: .4; transform: scale(.8) rotate(40deg); }
}

/* ══ RECRUIT ══ */
#recruit-section {
  background: linear-gradient(160deg, #f0f9ff 0%, #e8f4f8 50%, #f4f0ff 100%);
  padding: 100px 80px;
  position: relative; overflow: hidden;
}
#recruit-section::before {
  content: '';
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 50% 40% at 5% 30%, rgba(69,188,216,.15) 0%, transparent 60%),
    radial-gradient(ellipse 40% 50% at 95% 70%, rgba(100,180,130,.10) 0%, transparent 60%);
  pointer-events: none;
}
.rc-wrap { max-width: 1000px; margin: 0 auto; position: relative; z-index: 1; }
.rc-header { margin-bottom: 48px; }

/* バナーカード */
.rc-banner {
  display: flex; align-items: stretch;
  background: rgba(255,255,255,.75);
  backdrop-filter: blur(20px);
  border: 1.5px solid rgba(255,255,255,.9);
  border-radius: 20px;
  overflow: hidden;
  margin-bottom: 20px;
  text-decoration: none; color: inherit;
  box-shadow: 0 2px 20px rgba(0,0,0,.06);
  transition: transform .25s cubic-bezier(.34,1.56,.64,1), box-shadow .25s;
}
.rc-banner:hover {
  transform: translateY(-4px) scale(1.005);
  box-shadow: 0 12px 40px rgba(0,0,0,.10);
}
.rc-banner-left {
  flex: 1; padding: 36px 40px;
  border-left: 5px solid transparent;
}
.rc-banner-green { border-left-color: #22c55e; }
.rc-banner-cyan  { border-left-color: var(--cyan); }

.rc-banner-cat {
  display: inline-block;
  font-size: 10px; font-weight: 700; letter-spacing: .12em;
  text-transform: uppercase; color: #888;
  font-family: 'Outfit', sans-serif; margin-bottom: 10px;
}
.rc-banner-title {
  font-size: 20px; font-weight: 900; color: var(--black);
  font-family: 'Noto Sans JP', sans-serif;
  margin-bottom: 10px; line-height: 1.35;
}
.rc-banner-desc {
  font-size: 13px; color: #555; line-height: 1.85;
  font-family: 'Noto Sans JP', sans-serif; margin-bottom: 12px;
  max-width: 580px;
}
.rc-banner-list {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-direction: column; gap: 5px;
}
.rc-banner-list li {
  font-size: 12px; color: #666;
  font-family: 'Noto Sans JP', sans-serif;
  padding-left: 14px; position: relative;
}
.rc-banner-list li::before {
  content: ''; position: absolute; left: 0; top: 6px;
  width: 5px; height: 5px; border-radius: 50%;
  background: var(--cyan);
}

.rc-banner-right {
  display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 12px;
  padding: 32px 36px; flex-shrink: 0;
  border-left: 1px solid rgba(0,0,0,.06);
  min-width: 130px;
}
.rc-banner-illu {
  width: 44px; height: 44px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  color: var(--cyan); opacity: .9;
}
.rc-banner-illu svg { width: 100%; height: 100%; display: block; }
.rc-banner-cta {
  font-size: 12px; font-weight: 700;
  color: var(--cyan-dark); letter-spacing: .04em;
  font-family: 'Outfit', sans-serif;
  white-space: nowrap;
}
.rc-banner:hover .rc-banner-cta { color: var(--cyan); }

.rc-note {
  text-align: center; margin-top: 32px;
  font-size: 13px; color: #888;
  font-family: 'Noto Sans JP', sans-serif;
}
.rc-note a {
  color: var(--cyan-dark); font-weight: 700; text-decoration: none; margin-left: 8px;
}
.rc-note a:hover { text-decoration: underline; }

@media(max-width: 640px) {
  .rc-banner { flex-direction: column; }
  .rc-banner-right { flex-direction: row; border-left: none; border-top: 1px solid rgba(0,0,0,.06); padding: 20px 28px; justify-content: flex-start; }
  #recruit-section { padding: 80px 28px; }
}


/* ══ OROSHI (卸売) ══ */
#oroshi-section {
  background: linear-gradient(160deg, #fffbf0 0%, #fff8e8 50%, #f8f4e8 100%);
  padding: 100px 80px;
  position: relative; overflow: hidden;
}
#oroshi-section::before {
  content: '';
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 50% 40% at 10% 30%, rgba(255,190,80,.14) 0%, transparent 60%),
    radial-gradient(ellipse 40% 50% at 90% 75%, rgba(69,188,216,.10) 0%, transparent 60%);
  pointer-events: none;
}
.or-wrap { max-width: 1100px; margin: 0 auto; position: relative; z-index: 1; }
.or-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-bottom: 48px;
}
.or-card {
  background: rgba(255,255,255,.82);
  backdrop-filter: blur(16px);
  border: 1.5px solid rgba(255,255,255,.95);
  border-radius: 24px;
  padding: 32px 26px 28px;
  box-shadow: 0 4px 24px rgba(0,0,0,.06);
  transition: transform .3s cubic-bezier(.34,1.56,.64,1), box-shadow .3s;
}
.or-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 14px 40px rgba(0,0,0,.11);
}
.or-card-icon { font-size: 40px; margin-bottom: 14px; }
.or-card-title {
  font-size: 20px; font-weight: 900; color: var(--black);
  margin-bottom: 10px; font-family: 'Noto Sans JP', sans-serif;
}
.or-card-desc {
  font-size: 13px; color: #555; line-height: 1.9;
  margin-bottom: 14px; font-family: 'Noto Sans JP', sans-serif;
}
.or-card-list {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-direction: column; gap: 5px;
}
.or-card-list li {
  font-size: 12px; color: #666; padding-left: 14px;
  position: relative; font-family: 'Noto Sans JP', sans-serif;
}
.or-card-list li::before {
  content: ''; position: absolute; left: 0; top: 6px;
  width: 5px; height: 5px; border-radius: 50%;
  background: #f59e0b;
}
.or-cta {
  text-align: center; padding: 36px;
  background: rgba(255,255,255,.65);
  backdrop-filter: blur(12px);
  border: 1.5px solid rgba(255,255,255,.85);
  border-radius: 20px;
}
.or-cta-text {
  font-size: 15px; color: #666; margin-bottom: 18px;
  font-family: 'Noto Sans JP', sans-serif;
}
.or-cta-btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 13px 28px; border-radius: 100px;
  background: linear-gradient(135deg, #f59e0b 0%, #f97316 100%);
  color: white; font-size: 14px; font-weight: 700;
  text-decoration: none; font-family: 'Noto Sans JP', sans-serif;
  box-shadow: 0 6px 20px rgba(245,158,11,.35);
  transition: transform .25s cubic-bezier(.34,1.56,.64,1), box-shadow .25s;
}
.or-cta-btn:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 30px rgba(245,158,11,.45);
}
@media(max-width: 780px) {
  .or-grid { grid-template-columns: 1fr; }
  #oroshi-section { padding: 80px 32px; }
}


/* おいも・食部門ラベル */
.biz-dept-name {
  font-size: 13px; font-weight: 800;
  color: var(--black);
  font-family: 'Noto Sans JP', sans-serif;
  margin: -4px 0 8px;
  letter-spacing: .04em;
}
/* 卸売サブカテゴリタグ */
.biz-sub-row {
  display: flex; flex-wrap: wrap; gap: 6px;
  margin-top: 10px; padding-top: 10px;
  border-top: 1px solid rgba(0,0,0,.07);
}
.biz-sub-tag {
  font-size: 11px; font-weight: 600;
  background: rgba(69,188,216,.1);
  color: var(--cyan-dark);
  padding: 4px 10px; border-radius: 100px;
  font-family: 'Noto Sans JP', sans-serif;
  white-space: nowrap;
  display: inline-flex; align-items: center; gap: 5px;
}
/* デザイン・AIカード：サービスが多いので行間・折り返しを確保 */
.biz-sub-row--design {
  gap: 8px;
}
.biz-sub-row--design .biz-sub-tag {
  white-space: normal;
  line-height: 1.35;
  max-width: 100%;
  padding: 6px 12px;
}
.biz-ico {
  width: 13px; height: 13px; flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center;
  color: var(--cyan-dark);
}
.biz-ico svg { width: 100%; height: 100%; display: block; }
.biz-sub-link {
  color: var(--cyan-dark); text-decoration: none;
}
.biz-sub-link:hover { text-decoration: underline; }



/* ── wf-card-hearts ── */
.wf-card-hearts {
  display: flex; gap: 6px; margin: -8px 0 14px;
  font-size: 16px;
}

/* ── wf-pills ── */
.wf-pills {
  display: flex; flex-direction: column; gap: 8px;
  margin-top: 16px;
}
.wf-pill {
  display: inline-flex; align-items: center; gap: 6px;
  background: linear-gradient(135deg, rgba(245,147,0,.10) 0%, rgba(239,126,0,.07) 100%);
  border: 1.5px solid rgba(245,147,0,.25);
  border-radius: 100px;
  padding: 8px 16px;
  font-size: 13px; color: #c45a00;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500;
}

/* cocot-btn ピンク版 */
.cocot-btn {
  background: rgba(255,255,255,.2) !important;
  border: 1.5px solid rgba(255,255,255,.5) !important;
  color: white !important;
  backdrop-filter: blur(8px) !important;
}
.cocot-btn:hover {
  background: rgba(255,255,255,.3) !important;
  transform: translateY(-2px) !important;
}


/* ══ REP SNS BUTTONS ══ */
.rep-contact-btns {
  margin-top: 36px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 100%;
  max-width: 460px;
}
.rep-sns-label {
  font-size: 10px; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase; color: #aaa;
  font-family: 'Outfit', sans-serif; margin-bottom: 2px;
}

/* 共通ボタン */
.rep-sns-btn {
  position: relative; overflow: hidden;
  display: flex; align-items: center; gap: 14px;
  padding: 16px 22px;
  border-radius: 18px;
  text-decoration: none;
  transition: transform .3s cubic-bezier(.34,1.56,.64,1), box-shadow .3s;
  cursor: pointer;
}
.rep-sns-btn:hover {
  transform: translateY(-4px) scale(1.02);
}

/* シャインエフェクト */
.rep-sns-shine {
  position: absolute; top: 0; left: -75%;
  width: 50%; height: 100%;
  background: linear-gradient(120deg, transparent 0%, rgba(255,255,255,.35) 50%, transparent 100%);
  transform: skewX(-20deg);
  transition: left .5s ease;
  pointer-events: none;
}
.rep-sns-btn:hover .rep-sns-shine { left: 130%; }

/* Instagram */
.rep-ig-btn {
  background: linear-gradient(135deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%);
  box-shadow: 0 6px 24px rgba(220,39,67,.35);
  color: white;
}
.rep-ig-btn:hover { box-shadow: 0 12px 36px rgba(220,39,67,.48); }

/* LINE */
.rep-line-btn {
  background: linear-gradient(135deg, #06C755 0%, #04a846 100%);
  box-shadow: 0 6px 24px rgba(6,199,85,.32);
  color: white;
}
.rep-line-btn:hover { box-shadow: 0 12px 36px rgba(6,199,85,.46); }

/* アイコン */
.rep-sns-icon {
  width: 42px; height: 42px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  background: rgba(255,255,255,.2);
  border-radius: 12px;
  transition: background .2s;
}
.rep-sns-btn:hover .rep-sns-icon { background: rgba(255,255,255,.3); }

/* テキスト */
.rep-sns-text {
  display: flex; flex-direction: column; gap: 2px; flex: 1;
}
.rep-sns-sub {
  font-size: 10px; font-weight: 600; opacity: .8;
  font-family: 'Noto Sans JP', sans-serif; letter-spacing: .04em;
}
.rep-sns-main {
  font-size: 16px; font-weight: 800;
  font-family: 'Noto Sans JP', sans-serif; letter-spacing: -.01em;
}

/* 矢印 */
.rep-sns-arrow {
  font-size: 20px; font-weight: 300; opacity: .7;
  transition: transform .3s, opacity .3s;
  font-family: 'Outfit', sans-serif;
}
.rep-sns-btn:hover .rep-sns-arrow {
  transform: translate(3px, -3px);
  opacity: 1;
}

/* 登場アニメーション */
.rep-sns-btn {
  opacity: 0; transform: translateY(20px);
  animation: snsBtnIn .5s cubic-bezier(.34,1.56,.64,1) forwards;
}
.rep-ig-btn  { animation-delay: .15s; }
.rep-line-btn { animation-delay: .28s; }
@keyframes snsBtnIn {
  to { opacity: 1; transform: translateY(0); }
}
/* スクロール表示後にアニメ再生 */
.rep-ig-btn.revealed, .rep-line-btn.revealed {
  animation-play-state: running;
}


/* ══ FOOD & BEVERAGE TABS ══ */
.fd-tabs {
  display: flex; gap: 4px;
  margin: 14px 0 0;
  background: rgba(0,0,0,.04);
  border-radius: 12px; padding: 4px;
}
.fd-tab {
  flex: 1; padding: 8px 6px;
  font-size: 11px; font-weight: 700;
  font-family: 'Noto Sans JP', sans-serif;
  background: transparent; border: none; cursor: pointer;
  border-radius: 9px; color: #999;
  transition: all .22s; white-space: nowrap;
  letter-spacing: -.01em;
  display: inline-flex; align-items: center; justify-content: center; gap: 5px;
}
.tab-ico {
  width: 14px; height: 14px; flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center;
  color: inherit;
  opacity: .9;
}
.tab-ico svg { width: 100%; height: 100%; display: block; }
.fd-tab.active {
  background: white;
  color: var(--cyan-dark);
  box-shadow: 0 2px 8px rgba(0,0,0,.10);
}
.fd-tab:hover:not(.active) { color: var(--black); }

/* おいも・食部門カード：タブ4枚を2行×2列で収める */
.biz-card.oimo-card .fd-tabs {
  flex-wrap: wrap;
}
.biz-card.oimo-card .fd-tab {
  flex: 1 1 calc(50% - 4px);
  min-width: calc(50% - 4px);
  font-size: 10px;
  padding: 8px 4px;
}

.fd-panel { display: none; padding: 14px 0 4px; }
.fd-panel.active { display: block; }

.fd-panel-desc {
  font-size: 12px; color: #555; line-height: 1.8;
  font-family: 'Noto Sans JP', sans-serif; margin-bottom: 10px;
}
.fd-chip-row {
  display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px;
}
/* 非クリックのラベル（タグ）：クリック系ボタンと色・形を分ける */
.fd-chip {
  font-size: 11px; font-weight: 500;
  background: rgba(0, 0, 0, 0.035);
  color: #5a5a5a;
  padding: 4px 10px; border-radius: 100px;
  font-family: 'Noto Sans JP', sans-serif;
  border: 1px dashed rgba(0, 0, 0, 0.12);
  display: inline-flex; align-items: center; gap: 5px;
  cursor: default;
  user-select: none;
}
.chip-ico {
  width: 13px; height: 13px; flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center;
}
.chip-ico svg { width: 100%; height: 100%; display: block; }
.fd-links { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
/* クリックできる導線：フィルボタン（タグの点線ラベルと明確に差別化） */
.fd-link-btn {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 12px; font-weight: 700;
  color: #fff;
  text-decoration: none;
  padding: 8px 16px;
  border-radius: 100px;
  border: none;
  background: var(--cyan);
  box-shadow: 0 2px 10px rgba(69, 188, 216, 0.35);
  transition: background .2s, box-shadow .2s, transform .2s;
  font-family: 'Noto Sans JP', sans-serif;
  cursor: pointer;
}
.fd-link-btn:hover {
  background: var(--cyan-dark);
  box-shadow: 0 4px 16px rgba(42, 154, 184, 0.45);
  transform: translateY(-1px);
  color: #fff;
}
.fd-link-btn:focus-visible {
  outline: 2px solid var(--cyan-dark);
  outline-offset: 2px;
}
/* 外部ECなど別系統のボタン */
.fd-link-btn.fd-ec {
  color: #fff;
  border: none;
  background: linear-gradient(135deg, #ea8c2a 0%, #d97706 100%);
  box-shadow: 0 2px 10px rgba(217, 119, 6, 0.35);
}
.fd-link-btn.fd-ec:hover {
  background: linear-gradient(135deg, #f59e0b 0%, #c2410c 100%);
  box-shadow: 0 4px 16px rgba(194, 65, 12, 0.4);
  color: #fff;
}

/* ── rt-card 写真付き ── */
/* rt-card photo padding handled by rt-card-img */
.rt-card-img {
  position: relative;
  width: 100%; height: 200px;
  overflow: hidden;
  border-radius: 20px 20px 0 0;
}
.rt-card-img::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,.25) 0%, transparent 55%);
  pointer-events: none; z-index: 2;
}
.rt-card-img img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .4s ease;
}
.rt-card:hover .rt-card-img img {
  transform: scale(1.06);
}
.rt-card-badge {
  position: absolute !important;
  top: 10px !important; right: 10px !important;
  left: auto !important;
  background: var(--cyan) !important;
  color: white !important;
  font-size: 11px !important; font-weight: 800 !important;
  padding: 4px 12px !important; border-radius: 100px !important;
  font-family: 'Noto Sans JP', sans-serif !important;
  z-index: 2;
}
.rt-card-info {
  padding: 22px 24px 28px;
}
.rt-card-emoji { display: none !important; }


/* ── ブランドバッジ（写真上） ── */
.rt-card-brand-badge {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  padding: 20px 16px 10px;
  font-size: 12px; font-weight: 800;
  font-family: 'Noto Sans JP', sans-serif;
  letter-spacing: .04em;
  z-index: 3;
}
.rt-brand-oimo {
  background: linear-gradient(to top, rgba(60,15,15,.80) 0%, transparent 100%);
  color: #ffd8a0;
  text-shadow: 0 1px 6px rgba(0,0,0,.6);
}
.rt-brand-uji {
  background: linear-gradient(to top, rgba(8,40,16,.82) 0%, transparent 100%);
  color: #b8f0a8;
  text-shadow: 0 1px 6px rgba(0,0,0,.6);
}
.rt-brand-rakuten {
  background: linear-gradient(to top, rgba(120, 20, 20, 0.85) 0%, transparent 100%);
  color: #ffe8e8;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.55);
}

/* オンラインストア用プレースホルダー画像エリア（ロゴ枠は白ベース） */
.rt-card-img--ec {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
}
.rt-card-img--ec::after {
  background: transparent;
}
.rt-ec-icon {
  position: relative;
  z-index: 1;
  width: 52px;
  height: 52px;
  color: rgba(19, 120, 140, 0.32);
  transition: transform 0.4s ease, color 0.3s ease;
}
.rt-ec-icon svg {
  width: 100%;
  height: 100%;
  display: block;
}
.rt-card:hover .rt-ec-icon {
  transform: scale(1.06);
  color: rgba(19, 120, 140, 0.45);
}
.rt-card-img--ec-rakuten {
  background: #fff;
}
.rt-card-img--ec-rakuten::after {
  background: transparent;
}
.rt-card-img--ec-teiki {
  background: #fff;
}
.rt-card-img--ec-teiki::after {
  background: transparent;
}

/* オンラインストア：ロゴ画像（白枠内で上下中央、3種でサイズ感を揃える） */
.rt-card-img--ec.rt-card-img--ec-brand {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 248px;
  min-height: 248px;
  padding: 24px 28px;
  box-sizing: border-box;
}
.rt-card-img--ec.rt-card-img--ec-brand::after {
  background: transparent;
}
.rt-card-img--ec.rt-card-img--ec-brand .rt-ec-brand-img {
  position: relative;
  z-index: 1;
  width: auto !important;
  height: auto !important;
  max-width: 78%;
  max-height: 124px;
  object-fit: contain !important;
  object-position: center center;
  transition: transform 0.4s ease;
}
/* 楽天：横長ワードマーク */
.rt-card-img--ec.rt-card-img--ec-brand .rt-ec-brand-img--rakuten {
  max-height: 132px;
  max-width: 96%;
}
/* おいもの定期便：縦型ロゴ（芋＋Oimo） */
.rt-card-img--ec.rt-card-img--ec-brand .rt-ec-brand-img--teiki {
  max-height: 142px;
  max-width: 76%;
}
.rt-card:hover .rt-card-img--ec-brand .rt-ec-brand-img {
  transform: scale(1.05);
}

/* ── ダブルカード（富士急2ブランド）── */
.rt-card-img-double {
  display: flex; height: 200px !important;
}
.rt-double-half {
  flex: 1; position: relative; overflow: hidden;
}
.rt-double-half::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,.30) 0%, transparent 55%);
  pointer-events: none; z-index: 2;
}
.rt-double-half img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .4s ease;
}
.rt-card:hover .rt-double-half img {
  transform: scale(1.06);
}
.rt-double-divider {
  width: 3px; flex-shrink: 0;
  background: white;
  z-index: 3;
}

/* 左半分は左角丸のみ, 右半分は右角丸のみ */
.rt-card-img-double .rt-double-half:first-child img {
  border-radius: 0;
}
.rt-card-img-double .rt-double-half:last-child img {
  border-radius: 0;
}

/* 旧スタイルを上書き */
.rt-card-brand { display: none !important; }
.rt-card-badge { display: none !important; }

/* ══════════════════════════════
   PHOTO ADDITIONS
══════════════════════════════ */

/* ── Hero Photo ── */
.hero-inner {
  display: flex;
  align-items: center;
  gap: 60px;
  position: relative;
  z-index: 1;
}
.hero-photo {
  flex-shrink: 0;
  width: 380px;
  height: 380px;
  border-radius: 32px;
  overflow: hidden;
  box-shadow: 0 20px 60px rgba(0,0,0,.12);
  opacity: 0;
  animation: fadeSlideIn .8s 2s both;
}
.hero-photo-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ── Oroshi Card Photos ── */
.or-card-img {
  margin: -32px -26px 18px;
  border-radius: 22px 22px 0 0;
  overflow: hidden;
  height: 220px;
}
.or-card-photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .4s cubic-bezier(.16,1,.3,1);
}
.or-card:hover .or-card-photo {
  transform: scale(1.05);
}

/* ── Welfare Team Photo ── */
.wf-team-photo {
  margin-top: 28px;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 8px 30px rgba(0,0,0,.15);
}
.wf-team-img {
  width: 100%;
  height: auto;
  display: block;
}

/* ── Web Portfolio Gallery（ライトセクション内） ── */
.wb-portfolio {
  margin: 40px 0 36px;
}
.wb-portfolio-title {
  font-size: 24px;
  font-weight: 800;
  color: #0f172a;
  margin-bottom: 12px;
  font-family: 'Noto Sans JP', sans-serif;
  text-align: center;
  letter-spacing: 0.04em;
}
.wb-portfolio-desc {
  font-size: 14px;
  color: #64748b;
  margin-bottom: 28px;
  font-family: 'Noto Sans JP', sans-serif;
}
.wb-portfolio-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 16px 44px;
  background: var(--white);
  border: 1.5px solid rgba(69, 188, 216, 0.45);
  color: var(--cyan-dark);
  font-size: 15px;
  font-weight: 700;
  font-family: 'Noto Sans JP', sans-serif;
  border-radius: 100px;
  text-decoration: none;
  transition: background 0.2s, transform 0.2s, box-shadow 0.2s;
  box-shadow: 0 4px 20px rgba(69, 188, 216, 0.12);
}
.wb-portfolio-btn:hover {
  background: rgba(69, 188, 216, 0.08);
  transform: translateY(-2px);
  box-shadow: 0 8px 28px rgba(69, 188, 216, 0.22);
}
.wb-portfolio-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.wb-portfolio-item {
  border-radius: 16px;
  overflow: hidden;
  border: 1.5px solid rgba(255,255,255,.12);
  box-shadow: 0 8px 30px rgba(0,0,0,.2);
  transition: transform .35s cubic-bezier(.34,1.56,.64,1), box-shadow .35s;
}
.wb-portfolio-item:hover {
  transform: translateY(-6px);
  box-shadow: 0 16px 50px rgba(0,0,0,.3);
}
.wb-portfolio-img {
  width: 100%;
  height: 220px;
  object-fit: cover;
  object-position: top;
  display: block;
}

/* ── Recruit Team Photo ── */
.rc-team-photo {
  margin: 32px 0 24px;
  text-align: center;
}
.rc-team-img {
  width: 100%;
  max-width: 600px;
  border-radius: 24px;
  box-shadow: 0 10px 40px rgba(0,0,0,.1);
}
.rc-team-caption {
  margin-top: 14px;
  font-size: 13px;
  color: #888;
  font-family: 'Noto Sans JP', sans-serif;
}

/* ── もいもいマルシェ（上は .ev-posters の margin-bottom で区切り） ── */
.ev-moimoi {
  margin-top: 0;
}
.ev-moimoi-content {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 40px;
  align-items: center;
  background: rgba(255,255,255,.7);
  backdrop-filter: blur(12px);
  border: 1.5px solid rgba(255,255,255,.9);
  border-radius: 28px;
  padding: 40px;
  box-shadow: 0 4px 24px rgba(0,0,0,.06);
}
.ev-moimoi-name {
  font-size: 24px;
  font-weight: 900;
  color: var(--black);
  margin-bottom: 6px;
  font-family: 'Noto Sans JP', sans-serif;
}
.ev-moimoi-tag {
  font-size: 12px;
  font-weight: 700;
  color: var(--cyan);
  letter-spacing: .04em;
  margin-bottom: 16px;
  font-family: 'Noto Sans JP', sans-serif;
}
.ev-moimoi-desc {
  font-size: 14px;
  color: #555;
  line-height: 2;
  font-family: 'Noto Sans JP', sans-serif;
}
.ev-moimoi-photos {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 10px;
  height: 320px;
}
.ev-moimoi-photo {
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 4px 16px rgba(0,0,0,.1);
}
.ev-moimoi-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .4s cubic-bezier(.16,1,.3,1);
}
.ev-moimoi-photo:hover img {
  transform: scale(1.06);
}
.ev-moimoi-photo-1 {
  grid-column: 1 / 2;
  grid-row: 1 / 3;
  transform: rotate(-1.5deg);
}
.ev-moimoi-photo-2 {
  grid-column: 2 / 3;
  grid-row: 1 / 2;
  transform: rotate(1.5deg);
}
.ev-moimoi-photo-3 {
  grid-column: 2 / 3;
  grid-row: 2 / 3;
  transform: rotate(-0.8deg);
}

/* ── Responsive: Photo Additions ── */
@media (max-width: 1024px) {
  .hero-inner { flex-direction: column; gap: 40px; }
  .hero-photo { width: 320px; height: 320px; }
}
@media (max-width: 768px) {
  .hero-photo { width: 260px; height: 260px; border-radius: 24px; }
  .wb-portfolio-grid { grid-template-columns: 1fr; }
  .wb-portfolio-img { height: 200px; }
  .or-card-img { height: 140px; }
  .ev-moimoi-content { grid-template-columns: 1fr; }
  .ev-moimoi-photos { height: 260px; }
}

/* ══════════════════════════════
   ABOUT PAGE (about.html)
══════════════════════════════ */
body.about-page {
  background: var(--offwhite);
}
.about-main {
  padding: 0;
  overflow-x: clip;
}

/* ── Hero ── */
.about-hero {
  position: relative;
  padding: 112px 24px 72px;
  min-height: 46vh;
  display: flex;
  align-items: center;
  justify-content: center;
}
.about-hero-bg {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 80% 60% at 15% 20%, rgba(69, 188, 216, 0.22) 0%, transparent 55%),
    radial-gradient(ellipse 70% 50% at 88% 75%, rgba(249, 200, 70, 0.14) 0%, transparent 50%),
    linear-gradient(165deg, #ffffff 0%, #f0fafc 45%, #fef8e8 100%);
  z-index: 0;
}
.about-hero-deco {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
  overflow: hidden;
}
.about-hero-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(0.5px);
}
.about-hero-orb--a {
  width: 280px;
  height: 280px;
  top: 8%;
  right: 6%;
  background: radial-gradient(circle at 35% 35%, rgba(255, 255, 255, 0.95), rgba(69, 188, 216, 0.12));
  border: 1px solid rgba(69, 188, 216, 0.15);
  opacity: 0.85;
}
.about-hero-orb--b {
  width: 120px;
  height: 120px;
  bottom: 18%;
  left: 10%;
  background: rgba(249, 200, 70, 0.2);
  opacity: 0.7;
}
.about-hero-ring {
  position: absolute;
  width: 420px;
  height: 420px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -48%);
  border: 1px solid rgba(69, 188, 216, 0.08);
  border-radius: 50%;
  opacity: 0.6;
}
.about-hero-inner {
  position: relative;
  z-index: 2;
  max-width: 920px;
  margin: 0 auto;
  text-align: center;
}
.about-breadcrumb {
  font-size: 12px;
  font-family: 'Outfit', sans-serif;
  letter-spacing: 0.06em;
  margin-bottom: 20px;
  color: var(--gray);
}
.about-breadcrumb a {
  color: var(--gray);
  text-decoration: none;
  transition: color 0.2s;
}
.about-breadcrumb a:hover {
  color: var(--cyan);
}
.about-bc-sep {
  margin: 0 8px;
  opacity: 0.5;
}
.about-hero-en {
  font-family: 'Outfit', sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--cyan-dark);
  margin-bottom: 12px;
}
.about-hero-title {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(28px, 4.5vw, 44px);
  font-weight: 900;
  letter-spacing: -0.03em;
  color: var(--black);
  line-height: 1.25;
  margin-bottom: 20px;
}
/* リード文なしのとき（ABOUT 会社概要ヒーローなど） */
.about-hero-inner > .about-hero-title:last-child {
  margin-bottom: 0;
}
.about-hero-lead {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(14px, 1.6vw, 17px);
  line-height: 1.95;
  color: #555;
  max-width: 640px;
  margin: 0 auto;
}
.about-br-pc {
  display: none;
}
@media (min-width: 769px) {
  .about-br-pc {
    display: inline;
  }
}

/* ── Section shell ── */
.about-section {
  padding: 72px 24px;
}
.about-wrap {
  max-width: 1040px;
  margin: 0 auto;
}
.about-section-head {
  margin-bottom: 40px;
}
.about-section-head--light {
  margin-bottom: 28px;
}
.about-section-en {
  display: block;
  font-family: 'Outfit', sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--cyan);
  margin-bottom: 10px;
}
.about-section-en--on-dark {
  color: rgba(125, 212, 232, 0.95);
}
.about-section-title {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(22px, 3vw, 30px);
  font-weight: 900;
  letter-spacing: -0.02em;
  color: var(--black);
  line-height: 1.35;
}
.about-section-title--light {
  color: #fff;
}
.about-section-desc {
  margin-top: 14px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  line-height: 1.85;
  color: #666;
  max-width: 640px;
}

/* ── Stance ── */
.about-stance {
  background: linear-gradient(180deg, var(--offwhite) 0%, #fff 100%);
}
.about-stance-grid {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.about-stance-card {
  background: var(--white);
  border-radius: var(--r-big);
  padding: 28px 24px 32px;
  border: 1px solid rgba(0, 0, 0, 0.06);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.05);
  position: relative;
  overflow: hidden;
}
.about-stance-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--cyan), var(--yellow));
  opacity: 0.85;
}
.about-stance-ico {
  font-family: 'Outfit', sans-serif;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.12em;
  color: rgba(69, 188, 216, 0.55);
  display: block;
  margin-bottom: 12px;
}
.about-stance-h {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: 800;
  margin-bottom: 12px;
  line-height: 1.45;
  color: var(--black);
}
.about-stance-p {
  font-size: 13px;
  line-height: 1.9;
  color: #555;
  font-family: 'Noto Sans JP', sans-serif;
}

/* ── 受賞・メディア実績 ── */
.about-awards {
  background: var(--white);
}
.about-awards-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(20px, 3vw, 32px);
}
.about-awards-block {
  background: linear-gradient(180deg, #f8fafc 0%, var(--white) 100%);
  border-radius: var(--r-big);
  border: 1px solid rgba(0, 0, 0, 0.06);
  padding: clamp(22px, 3vw, 32px);
  box-shadow: 0 8px 28px rgba(15, 35, 55, 0.05);
}
.about-awards-block-title {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--cyan-dark);
  margin: 0 0 16px;
  padding-bottom: 12px;
  border-bottom: 2px solid rgba(69, 188, 216, 0.25);
}
.about-awards-list {
  margin: 0;
  padding: 0 0 0 1.15em;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 13px;
  line-height: 1.75;
  color: #444;
}
.about-awards-list li {
  margin-bottom: 14px;
}
.about-awards-list li:last-child {
  margin-bottom: 0;
}
.about-awards-list strong {
  color: #1e293b;
  font-weight: 700;
}
.about-section-desc .about-inline-link {
  color: var(--cyan-dark);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.about-section-desc .about-inline-link:hover {
  color: var(--cyan);
}

/* ── Company profile（基本情報） ── */
.about-profile {
  background: var(--white);
}
.about-profile-card {
  background: linear-gradient(180deg, #fafcfd 0%, var(--white) 100%);
  border-radius: var(--r-big);
  border: 1px solid rgba(0, 0, 0, 0.06);
  box-shadow: 0 12px 48px rgba(0, 0, 0, 0.06);
  padding: clamp(20px, 4vw, 36px) clamp(18px, 3vw, 32px);
}
.about-profile-dl {
  margin: 0;
}
.about-profile-row {
  display: grid;
  grid-template-columns: minmax(132px, 28%) 1fr;
  gap: 14px 20px;
  padding: 16px 0;
  border-bottom: 1px solid var(--light);
  font-family: 'Noto Sans JP', sans-serif;
}
.about-profile-row:first-of-type {
  padding-top: 4px;
}
.about-profile-row:last-of-type {
  border-bottom: none;
  padding-bottom: 4px;
}
.about-profile-row dt {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--gray);
  align-self: start;
  padding-top: 3px;
}
.about-profile-row dd {
  margin: 0;
  font-size: 14px;
  line-height: 1.8;
  color: var(--black);
}
.about-profile-note {
  display: block;
  margin-top: 8px;
  font-size: 12px;
  line-height: 1.7;
  color: #666;
}
.about-profile-text {
  max-width: 52em;
}
.about-profile-list {
  margin: 0;
  padding-left: 1.15em;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.about-profile-list li {
  line-height: 1.75;
}
.about-profile-loc-name {
  font-weight: 700;
}
.about-profile-inline-list {
  margin: 0;
  padding-left: 1.15em;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.about-profile-placeholder {
  color: var(--gray);
  font-size: 13px;
}

/* ── Timeline ── */
.about-timeline-sec {
  background: var(--white);
}
.about-timeline {
  list-style: none;
  position: relative;
  padding-left: 0;
  max-width: 800px;
  margin: 0 auto;
}
.about-timeline::before {
  content: '';
  position: absolute;
  left: 8px;
  top: 6px;
  bottom: 6px;
  width: 2px;
  background: linear-gradient(180deg, var(--cyan) 0%, rgba(69, 188, 216, 0.2) 100%);
  border-radius: 2px;
}
.about-tl-item {
  position: relative;
  padding-left: 36px;
  padding-bottom: 32px;
}
.about-tl-item:last-child {
  padding-bottom: 0;
}
.about-tl-item::before {
  content: '';
  position: absolute;
  left: 0;
  top: 6px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--white);
  border: 3px solid var(--cyan);
  box-shadow: 0 0 0 4px rgba(69, 188, 216, 0.15);
  z-index: 1;
}
.about-tl-date {
  display: block;
  font-family: 'Outfit', sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--cyan-dark);
  margin-bottom: 8px;
}
.about-tl-title {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: 800;
  color: var(--black);
  line-height: 1.5;
  margin-bottom: 6px;
}
.about-tl-desc {
  font-size: 14px;
  color: #666;
  line-height: 1.8;
  font-family: 'Noto Sans JP', sans-serif;
}

/* ── Name / letters ── */
.about-name-sec {
  background: linear-gradient(180deg, #f8fbfc 0%, #fff 100%);
}
.about-name-lead {
  text-align: center;
  max-width: 720px;
  margin: 0 auto 40px;
}
.about-name-tagline {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(20px, 3vw, 28px);
  font-weight: 900;
  letter-spacing: -0.02em;
  background: linear-gradient(120deg, var(--cyan-dark), var(--cyan));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  margin-bottom: 16px;
}
.about-name-sub {
  font-size: 14px;
  line-height: 1.95;
  color: #555;
  font-family: 'Noto Sans JP', sans-serif;
}
.about-letter-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}
.about-letter-card {
  background: var(--white);
  border-radius: var(--r-card);
  padding: 24px 18px 28px;
  text-align: center;
  border: 1px solid rgba(0, 0, 0, 0.06);
  box-shadow: 0 6px 28px rgba(0, 0, 0, 0.05);
  transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.3s;
}
.about-letter-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 16px 40px rgba(69, 188, 216, 0.15);
}
.about-letter-card--ii {
  grid-column: span 1;
}
.about-letter-ch {
  display: block;
  font-family: 'Outfit', sans-serif;
  font-size: 42px;
  font-weight: 800;
  color: var(--cyan);
  line-height: 1;
  margin-bottom: 8px;
}
.about-letter-mean {
  display: block;
  font-family: 'Outfit', sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: lowercase;
  color: var(--gray);
  margin-bottom: 12px;
}
.about-letter-quote {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.65;
  color: #444;
}

/* ── Mission（TOP / ABOUT 共通・ブランド水色） ── */
.mission-section {
  padding: 56px 24px 72px;
  background: linear-gradient(180deg, var(--offwhite) 0%, #ffffff 45%, #f0fafc 100%);
}
.mission-section.about-mission-wrap {
  padding: 64px 24px 80px;
  background: linear-gradient(180deg, #f8fbfc 0%, var(--offwhite) 100%);
}
/* ABOUT：会社概要ヒーロー直後のミッションは上余白をやや抑える */
.about-main > .about-hero + .mission-section.about-mission-wrap {
  padding-top: 40px;
}
.mission-outer {
  max-width: 960px;
  margin: 0 auto;
}
.mission-panel {
  position: relative;
  border-radius: clamp(32px, 5vw, 48px);
  overflow: hidden;
  background: linear-gradient(
    125deg,
    #0d5a6e 0%,
    #1a7a94 22%,
    var(--cyan-dark) 48%,
    var(--cyan) 72%,
    var(--cyan-light) 100%
  );
  box-shadow:
    0 28px 80px rgba(42, 154, 184, 0.38),
    0 0 0 1px rgba(255, 255, 255, 0.18) inset;
}
.mission-panel-glow {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 85% 70% at 12% 8%, rgba(255, 255, 255, 0.35) 0%, transparent 52%),
    radial-gradient(ellipse 55% 45% at 92% 88%, rgba(125, 212, 232, 0.55) 0%, transparent 50%),
    radial-gradient(ellipse 40% 35% at 70% 15%, rgba(255, 255, 255, 0.12) 0%, transparent 45%);
  pointer-events: none;
}
.mission-panel-grid {
  position: absolute;
  inset: 0;
  opacity: 0.07;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.5) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.5) 1px, transparent 1px);
  background-size: 28px 28px;
  pointer-events: none;
}
.mission-inner {
  position: relative;
  z-index: 1;
  padding: clamp(48px, 8vw, 68px) clamp(32px, 6.5vw, 64px) clamp(52px, 8vw, 72px);
  max-width: 820px;
  margin: 0 auto;
}
.mission-label {
  display: block;
  font-family: 'Outfit', sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.88);
  margin-bottom: 18px;
}
/* ABOUT ミッション：ヒーローと同じ3行メッセージ */
.mission-taglines {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-bottom: 38px;
  padding-bottom: 18px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.22);
}
.mission-taglines .mission-tagline {
  margin: 0;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(13px, 1.35vw, 15px);
  font-weight: 600;
  line-height: 1.85;
  color: rgba(255, 255, 255, 0.94);
}
.mission-tagline--lead {
  font-size: clamp(14px, 1.45vw, 17px);
  font-weight: 700;
  letter-spacing: 0.05em;
  color: #fff;
}
.mission-tagline-x {
  display: inline-block;
  margin: 0 0.15em;
  color: rgba(255, 255, 255, 0.72);
  font-weight: 800;
}
.mission-tagline--accent {
  font-weight: 700;
  font-size: clamp(13px, 1.4vw, 16px);
  color: #fff;
  text-shadow: 0 1px 18px rgba(0, 40, 60, 0.18);
}
.mission-title {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 900;
  color: #fff;
  line-height: 1.45;
  margin-bottom: 30px;
  letter-spacing: -0.02em;
}
.mission-title-line {
  display: block;
  font-size: clamp(19px, 2.8vw, 28px);
}
.mission-title-em {
  font-size: clamp(22px, 3.4vw, 34px);
  margin-top: 4px;
  text-shadow: 0 2px 24px rgba(0, 40, 60, 0.2);
}
.mission-text {
  font-size: clamp(13px, 1.35vw, 15px);
  line-height: 2.05;
  color: rgba(255, 255, 255, 0.92);
  font-family: 'Noto Sans JP', sans-serif;
  margin-bottom: 26px;
}
.mission-text-sub {
  margin-top: -6px;
  margin-bottom: 32px;
  font-size: clamp(12px, 1.2vw, 14px);
  line-height: 1.95;
  color: rgba(255, 255, 255, 0.82);
}
.mission-pillars {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 0;
  padding: 0;
}
.mission-pillars li {
  font-size: clamp(11px, 1.1vw, 13px);
  font-weight: 600;
  font-family: 'Noto Sans JP', sans-serif;
  padding: 12px 20px;
  border-radius: 100px;
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.32);
  color: #fff;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  box-shadow: 0 4px 20px rgba(0, 50, 70, 0.12);
  line-height: 1.45;
}

/* ── Access ── */
.about-access {
  background: var(--white);
}
.about-access-grid {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 28px;
  align-items: stretch;
}
.about-access-map-wrap {
  border-radius: var(--r-big);
  overflow: hidden;
  min-height: 280px;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.08);
  border: 1px solid rgba(0, 0, 0, 0.06);
}
.about-access-map {
  width: 100%;
  height: 100%;
  min-height: 280px;
  border: 0;
  display: block;
}
.about-access-side {
  display: flex;
  flex-direction: column;
  gap: 24px;
  justify-content: center;
}
.about-access-dl {
  margin: 0;
}
.about-access-row {
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 12px;
  padding: 14px 0;
  border-bottom: 1px solid var(--light);
  font-family: 'Noto Sans JP', sans-serif;
}
.about-access-row:last-of-type {
  border-bottom: none;
}
.about-access-row dt {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--gray);
}
.about-access-row dd {
  margin: 0;
  font-size: 14px;
  line-height: 1.75;
  color: var(--black);
}
.about-access-note {
  font-size: 12px;
  color: var(--gray);
  margin-left: 6px;
}
.about-access-tel,
.about-access-mail,
.about-access-line {
  color: var(--cyan-dark);
  font-weight: 700;
  text-decoration: none;
  transition: color 0.2s;
}
.about-access-tel:hover,
.about-access-mail:hover,
.about-access-line:hover {
  color: var(--cyan);
  text-decoration: underline;
}
.about-access-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.about-access-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 14px 22px;
  border-radius: 100px;
  font-size: 13px;
  font-weight: 700;
  font-family: 'Noto Sans JP', sans-serif;
  text-decoration: none;
  transition: transform 0.2s, box-shadow 0.2s, background 0.2s;
}
.about-access-btn--fill {
  background: var(--cyan);
  color: #fff;
  box-shadow: 0 4px 16px rgba(69, 188, 216, 0.35);
}
.about-access-btn--fill:hover {
  background: var(--cyan-dark);
  transform: translateY(-2px);
}
.about-access-btn--outline {
  background: var(--white);
  color: var(--black);
  border: 1.5px solid rgba(0, 0, 0, 0.12);
}
.about-access-btn--outline:hover {
  border-color: var(--cyan);
  color: var(--cyan-dark);
}

/* ── Regional ── */
.about-regional {
  padding: 56px 24px 72px;
}
.about-regional-panel {
  border-radius: var(--r-big);
  background: linear-gradient(135deg, #1e3a5f 0%, #0f172a 55%, #1e293b 100%);
  overflow: hidden;
  position: relative;
}
.about-regional-panel::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 55% 45% at 20% 30%, rgba(69, 188, 216, 0.2) 0%, transparent 55%);
  pointer-events: none;
}
.about-regional-inner {
  position: relative;
  z-index: 1;
  padding: 44px 36px 48px;
  max-width: 880px;
  margin: 0 auto;
}
.about-regional-lead {
  font-size: 14px;
  line-height: 2;
  color: rgba(255, 255, 255, 0.78);
  font-family: 'Noto Sans JP', sans-serif;
  margin-top: 8px;
}
.about-regional-tags {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 28px;
}
.about-regional-tags li {
  font-size: 12px;
  font-weight: 600;
  font-family: 'Noto Sans JP', sans-serif;
  padding: 10px 16px;
  border-radius: 100px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: rgba(255, 255, 255, 0.92);
}

/* ── Links grid ── */
.about-links {
  background: var(--offwhite);
}
.about-links-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
.about-link-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 22px 22px;
  background: var(--white);
  border-radius: var(--r-card);
  border: 1px solid rgba(0, 0, 0, 0.06);
  text-decoration: none;
  color: var(--black);
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  font-weight: 700;
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04);
}
.about-link-card:hover {
  transform: translateY(-4px);
  border-color: rgba(69, 188, 216, 0.35);
  box-shadow: 0 12px 36px rgba(69, 188, 216, 0.12);
  color: var(--cyan-dark);
}
.about-link-arrow {
  font-family: 'Outfit', sans-serif;
  font-size: 18px;
  color: var(--cyan);
  transition: transform 0.25s ease;
}
.about-link-card:hover .about-link-arrow {
  transform: translateX(4px);
}

/* ── CTA ── */
.about-cta {
  padding: 72px 24px 96px;
  background: linear-gradient(180deg, var(--offwhite) 0%, #fff 100%);
}
.about-cta-inner {
  text-align: center;
  padding: 48px 32px;
  border-radius: var(--r-big);
  background: linear-gradient(135deg, #e0f5fa 0%, #fef8e1 100%);
  border: 1px solid rgba(69, 188, 216, 0.2);
}
.about-cta-label {
  font-family: 'Outfit', sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--cyan-dark);
  margin-bottom: 12px;
}
.about-cta-title {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(18px, 2.5vw, 24px);
  font-weight: 900;
  line-height: 1.55;
  margin-bottom: 24px;
  color: var(--black);
}
.about-cta-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 16px 36px;
  border-radius: 100px;
  background: var(--black);
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  font-family: 'Noto Sans JP', sans-serif;
  text-decoration: none;
  transition: transform 0.25s, box-shadow 0.25s, background 0.25s;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.15);
}
.about-cta-btn:hover {
  background: var(--cyan-dark);
  transform: translateY(-3px);
  box-shadow: 0 12px 36px rgba(69, 188, 216, 0.35);
}

/* ── ABOUT responsive ── */
@media (max-width: 900px) {
  .about-awards-grid {
    grid-template-columns: 1fr;
  }
  .about-stance-grid {
    grid-template-columns: 1fr;
  }
  .about-letter-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .about-links-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .about-access-grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 600px) {
  .about-hero {
    padding: 96px 20px 56px;
    min-height: auto;
  }
  .about-main > .about-hero + .mission-section.about-mission-wrap {
    padding-top: 28px;
  }
  .about-hero-orb--a {
    width: 180px;
    height: 180px;
    right: -40px;
  }
  .about-hero-ring {
    width: 300px;
    height: 300px;
  }
  .about-profile-row {
    grid-template-columns: 1fr;
    gap: 6px;
    padding: 14px 0;
  }
  .about-profile-row dt {
    padding-top: 0;
  }
  .about-letter-grid {
    grid-template-columns: 1fr;
  }
  .about-links-grid {
    grid-template-columns: 1fr;
  }
  .about-access-row {
    grid-template-columns: 1fr;
    gap: 6px;
  }
  .mission-inner {
    padding: 40px 24px 48px;
  }
  .mission-pillars {
    flex-direction: column;
  }
  .mission-pillars li {
    width: 100%;
    text-align: center;
  }
  .about-regional-inner {
    padding: 32px 22px 36px;
  }
}

/* ══════════════════════════════
   NEWS PAGE (news.html)
══════════════════════════════ */
body.news-page {
  background: var(--offwhite);
}
.news-page-main {
  padding: 0;
  overflow-x: clip;
}
.news-page-hero {
  position: relative;
  padding: 112px 24px 56px;
  min-height: 38vh;
  display: flex;
  align-items: center;
  justify-content: center;
}
.news-page-hero-bg {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 70% 55% at 12% 25%, rgba(69, 188, 216, 0.18) 0%, transparent 52%),
    radial-gradient(ellipse 55% 45% at 90% 80%, rgba(249, 200, 70, 0.12) 0%, transparent 48%),
    linear-gradient(168deg, #ffffff 0%, #f5fbfc 50%, #fffbeb 100%);
  z-index: 0;
}
.news-page-hero-inner {
  position: relative;
  z-index: 1;
  max-width: 880px;
  margin: 0 auto;
  text-align: center;
}
.news-page-bc {
  margin-bottom: 18px;
}
.news-page-hero-en {
  font-family: 'Outfit', sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--cyan-dark);
  margin-bottom: 10px;
}
.news-page-hero-title {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(26px, 4vw, 40px);
  font-weight: 900;
  letter-spacing: -0.03em;
  color: var(--black);
  margin-bottom: 18px;
}
.news-page-hero-lead {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  line-height: 1.95;
  color: #555;
}
.news-page-hero-lead a {
  color: var(--cyan-dark);
  font-weight: 600;
}
.news-page-archive {
  padding: 40px 24px 48px;
  background: var(--white);
  border-radius: 48px 48px 0 0;
  margin-top: -24px;
  position: relative;
  z-index: 2;
  box-shadow: 0 -8px 40px rgba(0, 0, 0, 0.04);
}
.news-page-inner {
  max-width: 920px;
  margin: 0 auto;
}
.news-page-section-head {
  margin-bottom: 28px;
}
.news-page-archive-title {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 22px;
  font-weight: 900;
  color: var(--black);
  margin-bottom: 8px;
}
.news-page-archive-note {
  font-size: 13px;
  color: var(--gray);
  font-family: 'Noto Sans JP', sans-serif;
}
.news-list--archive {
  max-height: min(520px, 58vh);
  overflow-y: auto;
  /* 日付列が左端で切れないよう内側余白を確保（スクロールバー側も確保） */
  padding: 12px 12px 14px 22px;
  border: 1px solid var(--light);
  border-radius: var(--r-card);
  background: var(--offwhite);
}
.news-list--archive::-webkit-scrollbar {
  width: 6px;
}
.news-list--archive::-webkit-scrollbar-thumb {
  background: rgba(69, 188, 216, 0.35);
  border-radius: 4px;
}
.news-row--archive {
  border-top: none;
  border-bottom: 1px solid #e8eaec;
  /* ベース .news-row は padding 横0 のため、一覧内では左右に余白 */
  padding-left: 4px;
  padding-right: 4px;
}
.news-list--archive .news-row--archive:hover {
  /* コンテナ＋行の余白に合わせ、ホバー時の左シフト量を抑える */
  padding-left: 10px;
}
.news-row--archive:last-child {
  border-bottom: none;
}

/* 記事一覧直下のタイル（PC: 2列 / スマホ: 1列） */
.news-tiles-block {
  margin-top: 32px;
  padding-top: 4px;
}
.news-page-section-head--tiles {
  margin-bottom: 20px;
}
.news-tiles-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px 24px;
  align-items: stretch;
}
@media (max-width: 767px) {
  .news-tiles-grid {
    grid-template-columns: 1fr;
  }
}
.news-tile {
  display: flex;
  flex-direction: column;
  height: 100%;
  text-decoration: none;
  color: inherit;
  background: var(--white);
  border-radius: var(--r-card);
  overflow: hidden;
  border: 1px solid rgba(0, 0, 0, 0.06);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.news-tile:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 28px rgba(69, 188, 216, 0.14);
}
.news-tile-media {
  aspect-ratio: 16 / 9;
  background: var(--offwhite);
  overflow: hidden;
  flex-shrink: 0;
}
.news-tile-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.news-tile-media--placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #f0f9fc 0%, #e8f4f8 50%, #eef0f1 100%);
  border-bottom: 1px solid rgba(69, 188, 216, 0.12);
}
.news-tile-body {
  padding: 16px 18px 20px;
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.news-tile-date {
  font-family: 'Outfit', sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--cyan-dark);
  display: block;
  margin-bottom: 8px;
}
.news-tile-body .n-tag {
  margin-bottom: 8px;
  align-self: flex-start;
}
.news-tile-title {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 15px;
  font-weight: 800;
  line-height: 1.45;
  letter-spacing: -0.02em;
  margin: 0 0 10px;
  color: var(--black);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.news-tile-excerpt {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 13px;
  line-height: 1.65;
  color: #555;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
  flex: 1;
}

.news-page-articles {
  padding: 56px 24px 80px;
  background: var(--offwhite);
}
.news-article {
  scroll-margin-top: 100px;
  background: var(--white);
  border-radius: var(--r-big);
  padding: 36px 32px 40px;
  margin-bottom: 36px;
  border: 1px solid rgba(0, 0, 0, 0.06);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.05);
}
.news-article:last-child {
  margin-bottom: 0;
}
.news-article-head {
  margin-bottom: 20px;
}
.news-article-date {
  display: block;
  font-family: 'Outfit', sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--cyan-dark);
  margin-bottom: 10px;
}
.news-article-head .n-tag {
  margin-bottom: 12px;
}
.news-article-title {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(17px, 2.2vw, 22px);
  font-weight: 900;
  line-height: 1.5;
  color: var(--black);
  letter-spacing: -0.02em;
}
.news-article-featured {
  margin: 0 0 24px;
  border-radius: var(--r-card);
  overflow: hidden;
  border: 1px solid var(--light);
}
.news-article-featured img {
  width: 100%;
  height: auto;
  display: block;
  vertical-align: middle;
}
.news-article-body--wp {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 15px;
  line-height: 1.95;
  color: #444;
}
.news-article-body--wp > p,
.news-article-body--wp > ul,
.news-article-body--wp > ol,
.news-article-body--wp > h2,
.news-article-body--wp > h3,
.news-article-body--wp > h4,
.news-article-body--wp > figure,
.news-article-body--wp > hr {
  margin-bottom: 1.1em;
}
.news-article-body--wp h2,
.news-article-body--wp h3,
.news-article-body--wp h4 {
  font-weight: 800;
  color: var(--black);
  margin-top: 1.4em;
  font-size: 1.05em;
}
.news-article-body--wp ul,
.news-article-body--wp ol {
  padding-left: 1.4em;
}
.news-article-body--wp li {
  margin-bottom: 0.45em;
}
.news-article-body--wp a {
  color: var(--cyan-dark);
  word-break: break-all;
}
.news-article-body--wp a:hover {
  text-decoration: underline;
}
.news-article-body--wp img {
  max-width: 100%;
  height: auto;
  border-radius: 12px;
}
.news-article-body--wp figure {
  margin: 1.2em 0;
}
.news-article-body--wp .wp-block-gallery {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.news-article-body--wp .wp-block-gallery .wp-block-image {
  flex: 1 1 200px;
  margin: 0;
}
.news-article-body--wp hr {
  border: none;
  border-top: 1px solid var(--light);
  margin: 2em 0;
}
.news-article-more {
  margin-top: 28px !important;
  padding-top: 20px;
  border-top: 1px dashed var(--light);
  margin-bottom: 0 !important;
}
.news-official-link {
  font-weight: 700;
  font-size: 14px;
}
.news-page-cta {
  padding-bottom: 96px;
  background: var(--offwhite);
}

/* 記事詳細ページ news/<id>.html */
/* 固定ナビ（ロゴ・グローバルメニュー）の直下に本文が潜り込まないよう、上余白を確保 */
.news-detail-main {
  padding-top: 0;
}
.news-detail-hero {
  padding: calc(100px + env(safe-area-inset-top, 0px)) 24px 64px;
  background: var(--offwhite);
}
.news-detail-page .news-detail-bc-current {
  font-size: 12px;
  font-weight: 600;
  color: var(--gray);
  line-height: 1.5;
  word-break: break-word;
  /* 長いタイトルが固定ヘッダー付近でナビ文字と視覚的に重ならないよう1行省略（全文は h1 にあり） */
  display: block;
  max-width: 100%;
  margin-top: 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.news-detail-page .about-breadcrumb.news-page-bc {
  display: block;
  overflow: hidden;
}
.news-detail-article {
  margin-top: 8px;
  background: var(--white);
  border-radius: var(--r-big);
  padding: 32px 40px 36px;
  border: 1px solid rgba(0, 0, 0, 0.06);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.05);
}
.news-detail-head {
  margin-bottom: 24px;
}
.news-detail-head .news-article-date {
  display: block;
  margin-bottom: 0;
}
.news-detail-title {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(20px, 4vw, 26px);
  font-weight: 900;
  line-height: 1.45;
  letter-spacing: -0.02em;
  margin-top: 10px;
  color: var(--black);
}
.news-detail-eyecatch {
  margin: 0 0 28px;
  border-radius: var(--r-card);
  overflow: hidden;
  border: 1px solid var(--light);
  background: var(--offwhite);
  max-width: 100%;
}
.news-detail-eyecatch:not(.news-detail-eyecatch--placeholder) {
  aspect-ratio: 16 / 9;
}
.news-detail-eyecatch-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.news-detail-eyecatch--placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 220px;
  aspect-ratio: 16 / 9;
  background: linear-gradient(135deg, #f0f9fc 0%, #e8f4f8 50%, #eef0f1 100%);
  border: 1px dashed rgba(69, 188, 216, 0.35);
}
.news-detail-eyecatch-ph {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--cyan-dark);
  opacity: 0.55;
}
.news-detail-back {
  margin-top: 32px;
  padding-top: 24px;
  border-top: 1px solid var(--light);
  margin-bottom: 0;
}
.news-detail-back-link {
  font-weight: 700;
  font-size: 14px;
  color: var(--cyan-dark);
  text-decoration: none;
}
.news-detail-back-link:hover {
  text-decoration: underline;
}
@media (max-width: 640px) {
  .news-page-hero {
    padding: 96px 18px 44px;
    min-height: auto;
  }
  .news-article {
    padding: 28px 20px 32px;
  }
  .news-list--archive {
    max-height: none;
    padding: 10px 10px 12px 18px;
  }
  .news-detail-hero {
    padding: calc(92px + env(safe-area-inset-top, 0px)) 18px 48px;
  }
  .news-detail-article {
    padding: 24px 20px 28px;
  }
}

