/*
Theme Name: Original
Description: 大分ベンチャーキャピタル・ATOMica 社会起業家育成事業
Version: 1.0
*/

@import url('https://fonts.googleapis.com/css2?family=Jost:wght@400;500;700&family=Noto+Sans+JP:wght@400;500;700&family=Noto+Serif+JP:wght@700&display=swap');

:root {
  --main-og: #faa93e;
  --main-og-light: #ffc273;
  --main-og-border: #ffbd67;
  --text: #373737;
  --text-gray: #9a9a9a;
  --bg-warm: #fffaf1;
  --bg-gray: #f5f5f5;
  --bg-faq: #f9f9f9;
  --gray: #e6e6e6;
  --gray-mid: #c8c8c8;
  --accent-blue: #b1e6ff;
  --accent-yellow: #fbe36b;
  --red-notice: #ff4141;
  --gradient-hero: linear-gradient(-64.73deg, #f7b969 9.76%, #f2df9e 58.14%, #b1ebff 96.17%);
  --gradient-btn: linear-gradient(103.83deg, #faa93e 0.13%, #ffc273 99.87%);
  --gradient-btn-og: linear-gradient(167.73deg, #faa93e 0.13%, #ffc273 99.87%);
  --gradient-entry: linear-gradient(97.96deg, #ffbc64 0.13%, #ffd073 51.87%, #d1f1ff 106.81%);
  --gradient-float: linear-gradient(95.22deg, #ffbc64 0.18%, #ffd073 47.73%, #d1f1ff 98.22%);
  --font-en: 'Jost', sans-serif;
  --font-ja: YuGothic, 'Yu Gothic', 'Noto Sans JP', sans-serif;
  --font-serif: 'Noto Serif JP', serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: var(--font-ja); font-weight: 500; color: var(--text); background: #fff; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }

/* ── Pseudo-elements ─────────────────────────────── */
.section-label::before {
  content: '';
  display: block;
  width: 14px; height: 14px;
  border-radius: 50%;
  background: linear-gradient(128deg, #FFBD67 15.22%, #F7E7B1 54.23%, #CBEEFF 88.32%);
  flex-shrink: 0;
}

.nav-item::before {
  content: '';
  display: block;
  width: 12px; height: 12px;
  border-radius: 50%;
  background: var(--main-og);
  flex-shrink: 0;
}

.nav-overlay.is-open .nav-item::before {
  background: linear-gradient(128deg, #FFBD67 15.22%, #F7E7B1 54.23%, #CBEEFF 88.32%);
}

.hero-info-label::before {
  content: '';
  width: 8px; height: 8px;
  border-radius: 50%;
  background: #fff;
  flex-shrink: 0;
}

.hero-scroll::after { content: none; }

/* ── JS-toggled states ───────────────────────────── */
.hamburger-btn.is-open span { background: var(--main-og, #faa93e); }
.site-header.header-scrolled { background: #fff; }
.site-header.header-scrolled .hamburger-btn span { background: var(--main-og); }
.hamburger-btn.is-open span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.hamburger-btn.is-open span:nth-child(2) { opacity: 0; }
.hamburger-btn.is-open span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

.nav-overlay.is-open { display: block; }
@media (min-width: 768px) {
  .nav-overlay.is-open { display: flex; flex-direction: column; justify-content: center; padding-top: 0; }
}


/* ── Mentor description clamp ────────────────────── */
/* ── FAQ Q バッジ 吹き出し矢印 ──────────────────────── */
.faq-q-badge::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 50%;
  transform: translateX(-50%);
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 4px solid var(--main-og);
}

.mentor-desc {
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.mentor-desc.is-open {
  -webkit-line-clamp: unset;
  overflow: visible;
}
.js-mentor-more.is-open .mentor-more-chevron {
  transform: rotate(180deg);
}

.mentor-slider-wrap::-webkit-scrollbar { display: none; }

/* ── Events VIEW MORE arrow ──────────────────────── */
#eventsMoreBtn.is-open .events-arrow { transform: rotate(180deg); }

/* ── FAQ accordion ───────────────────────────────── */
.faq-toggle::before,
.faq-toggle::after {
  content: '';
  position: absolute;
  background: var(--main-og);
  border-radius: 2px;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  transition: transform 0.3s;
}
.faq-toggle::before { width: 14px; height: 2px; }
.faq-toggle::after  { width: 2px; height: 14px; }
.faq-item.is-open .faq-toggle::after { transform: translate(-50%, -50%) rotate(90deg); }
.faq-item.is-open .faq-divider,
.faq-item.is-open .faq-a { display: block; }

/* ── Schedule accordion ──────────────────────────── */
.schedule-row-toggle::before,
.schedule-row-toggle::after {
  content: '';
  position: absolute;
  background: var(--main-og);
  border-radius: 2px;
  transition: transform 0.3s;
}
.schedule-row-toggle::before { width: 14px; height: 2px; }
.schedule-row-toggle::after  { width: 2px; height: 14px; }
.schedule-row.is-open .schedule-row-toggle::after { transform: rotate(90deg); }
.schedule-row.is-open .schedule-row-detail { display: block; }

/* ── Step item arrow ─────────────────────────────── */
.step-item:not(:last-child)::after {
  content: '';
  display: block;
  width: 24px;
  height: 20px;
  margin: 12px auto;
  background: var(--accent-blue);
  clip-path: polygon(50% 100%, 0 0, 100% 0);
}
@media (min-width: 1280px) {
  .step-item:not(:last-child)::after {
    clip-path: none;
    margin: 0;
    content: '';
    position: absolute;
    right: -40px;
    top: 148px;
    width: 19px;
    height: 21px;
    background: #b1e6ff;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 19 21' fill='none'%3E%3Cpath d='M17.1417 8.75572C18.4364 9.53252 18.4364 11.4089 17.1417 12.1857L3.02899 20.6533C1.69594 21.4531 9.44727e-07 20.4929 1.01268e-06 18.9383L1.75294e-06 2.00308C1.8209e-06 0.448494 1.69594 -0.511732 3.02899 0.288097L17.1417 8.75572Z' fill='%23000'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 19 21' fill='none'%3E%3Cpath d='M17.1417 8.75572C18.4364 9.53252 18.4364 11.4089 17.1417 12.1857L3.02899 20.6533C1.69594 21.4531 9.44727e-07 20.4929 1.01268e-06 18.9383L1.75294e-06 2.00308C1.8209e-06 0.448494 1.69594 -0.511732 3.02899 0.288097L17.1417 8.75572Z' fill='%23000'/%3E%3C/svg%3E");
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    z-index: 10;
  }
}

/* ── 404 gradient text ───────────────────────────── */
.error404-num {
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* ── Hero image collage (PC only) ────────────────── */
.hero-imgs {
  display: none;
  position: absolute;
  inset: 0;
  pointer-events: none;
}
@media (min-width: 768px) { .hero-imgs { display: block; } }

.hero-img { position: absolute; object-fit: cover; }

/* x=706, y=40, w=338, h=289  (1440px基準) */
.hero-img--top {
  left: 49%;
  top: 40px;
  width: 23.5%;
  aspect-ratio: 338 / 289;
  clip-path: url(#heroClip1);
}
/* x=1034, y=196, w=406, h=350 */
.hero-img--right {
  left: 71.8%;
  top: 196px;
  width: 28.2%;
  aspect-ratio: 406 / 350;
  clip-path: url(#heroClip2);
}
/* x=664, y=465, w=472, h=398 */
.hero-img--btm {
  left: 46.1%;
  top: 500px;
  width: 33.3%;
  aspect-ratio: 472 / 398;
  clip-path: url(#heroClip3);
}

/* x=0, y=0, w=445, h=432 */
.hero-deco { position: absolute; }
.hero-deco--left  { left: 0;     top: 0;     width: 30.9%; aspect-ratio: 445 / 432; }
/* x=1060, y=318, w=380, h=442 */
.hero-deco--right { left: 73.6%; top: 318px; width: 26.4%; aspect-ratio: 380 / 442; }

/* ── 投稿本文 .entry-content ─────────────────────────── */
.entry-content { color: var(--text); line-height: 2; }
.entry-content h1 { font-size: 28px; font-weight: 700; line-height: 1.6; color: var(--text); margin: 2em 0 0.75em; padding-bottom: 0.4em; border-bottom: 2px solid var(--main-og); }
.entry-content h2 { font-size: 22px; font-weight: 700; line-height: 1.6; color: var(--text); margin: 2em 0 0.75em; padding: 0.4em 0.8em; background: var(--bg-warm); }
.entry-content h3 { font-size: 18px; font-weight: 700; line-height: 1.6; color: var(--text); margin: 1.5em 0 0.5em; }
.entry-content h4 { font-size: 16px; font-weight: 700; line-height: 1.6; color: var(--text); margin: 1.5em 0 0.5em; }
.entry-content h5 { font-size: 15px; font-weight: 700; line-height: 1.6; color: var(--text-gray); margin: 1.25em 0 0.4em; }
.entry-content h6 { font-size: 14px; font-weight: 700; line-height: 1.6; color: var(--text-gray); margin: 1em 0 0.4em; }
.entry-content p  { margin: 0 0 1.5em; }
.entry-content a  { color: var(--main-og); text-decoration: underline; }
.entry-content a:hover { opacity: 0.8; }
.entry-content ul { list-style-type: disc; padding-left: 1.5em; margin: 0 0 1.5em; }
.entry-content ol { list-style-type: decimal; padding-left: 1.5em; margin: 0 0 1.5em; }
.entry-content li { margin-bottom: 0.4em; }
.entry-content img { max-width: 100%; height: auto; border-radius: 8px; margin: 1em 0; }
.entry-content strong { font-weight: 700; color: var(--text); }
.entry-content blockquote { border-left: 4px solid var(--gray); margin: 1.5em 0; padding: 0.5em 1em; color: var(--text-gray); background: var(--bg-gray); border-radius: 0 4px 4px 0; }

/* ── プライバシーポリシー .privacy-content ─────────────── */
.privacy-content { color: var(--text); font-size: 14px; line-height: 2; }
.privacy-content h2 { font-size: 16px; font-weight: 700; color: var(--main-og); line-height: 2; margin: 2em 0 0; background: none; padding: 0; }
.privacy-content p  { margin: 0 0 0.5em; }
.privacy-content ul { list-style-type: disc; padding-left: 1.5em; margin: 0 0 1.5em; }
.privacy-content ol { list-style-type: decimal; padding-left: 1.5em; margin: 0 0 1.5em; }
.privacy-content li { line-height: 2; margin-bottom: 0; }
.privacy-content a  { color: var(--main-og); text-decoration: underline; }
.privacy-content a:hover { opacity: 0.8; }

/* フローティングボタン SP スクロール制御 */
#entry-float-btn { transition: opacity 0.3s, transform 0.2s; }
#entry-float-btn.sp-hide { opacity: 0; pointer-events: none; }

/* ハンバーガーメニュー PC gap 上書き */
@media (min-width: 768px) {
  .nav-menu-grid { gap: 22rem !important; }
}

/* gap超過によるはみ出し領域のクリック吸収を防ぐ */
.nav-overlay { overflow-x: hidden; }
