/* =========================================================
   Renewal v4 — "air" theme (matches current ai-human-capital.co.jp)
   Bright white / pale-blue network, red accent, centered serif heads,
   pill buttons, white cards with soft shadow, red→lavender→sky bar.
   Loaded after renewal.css + renewal-v3.css
   ========================================================= */
.theme-air {
  --red: #d93b48;
  --brand: #d93b48;
  --brand-deep: #b92f3b;
  --ink: #1f2937;
  --ink-strong: #4b5563;
  --ink-muted: #6b7280;
  --paper: #ffffff;
  --surface: #ffffff;
  --sec: #f8f9fa;
  --rule: #e5e7eb;
  --sky: #bae6fd;
  --lav: #d8b4fe;
  --air-bar: linear-gradient(90deg, #d93b48, #d8b4fe, #bae6fd);
  --air-shadow: 0 20px 60px rgba(0,0,0,.08);
  --air-shadow-sm: 0 6px 24px rgba(17,24,39,.06);
  --r-card: 12px;
  background: #fff; color: var(--ink);
}
.theme-air .grain { display: none; }
.theme-air .nav { background: rgba(255,255,255,.92); }
.theme-air .btn { border-radius: 50px; }
.theme-air .btn-primary { background: var(--red); }
.theme-air .btn-primary:hover { background: var(--red); opacity: .88; box-shadow: none; }
.theme-air .badge-gold { background: #fdecef; color: var(--red); }

/* ---------- Centered section heads (EN red + serif JP + red line) ---------- */
.theme-air .r-head { display: block; text-align: center; max-width: 820px; margin-left: auto; margin-right: auto; }
.theme-air .r-chap { display: block; border: 0; padding: 0; margin-bottom: 16px; }
.theme-air .r-chap-no { display: none; }
.theme-air .r-chap .eyebrow { display: block; font-family: var(--f-serif); font-weight: 700; font-size: 14px; letter-spacing: .1em; color: var(--red); text-transform: none; }
.theme-air .r-h2, .theme-air .r-thesis-big { font-size: clamp(26px, 3vw, 38px); letter-spacing: .04em; line-height: 1.5; }
.theme-air .r-head .r-h2::after, .theme-air .r-head .r-thesis-big::after { content: ""; display: block; width: 48px; height: 2px; margin: 24px auto 0; background: var(--red); }
.theme-air .r-lead { margin-left: auto; margin-right: auto; font-size: 15px; color: var(--ink-strong); text-align: center; }
.theme-air .r-sec { padding: clamp(72px, 9vw, 112px) 0; }
.theme-air .r-sec.is-surface, .theme-air .r-sec.is-sec { background: var(--sec); }
.theme-air .r-rule-top { border-top: 0; }

/* =========================================================
   FIRST VIEW — bright hero photo + 3 film cards
   ========================================================= */
.theme-air .fv3 { background: #fff; color: var(--ink); }
.theme-air .fv3::before {
  inset: 0; height: auto; background: url('img/site/hero.webp') 62% 30%/cover no-repeat;
  opacity: 1; mix-blend-mode: normal; filter: none;
  -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 52%, transparent 86%); mask-image: linear-gradient(180deg, #000 0%, #000 52%, transparent 86%);
}
.theme-air .fv3::after { content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(90deg, rgba(255,255,255,.96) 0%, rgba(255,255,255,.82) 34%, rgba(255,255,255,0) 62%); }
.theme-air .fv3-in { position: relative; z-index: 1; padding-top: clamp(56px, 8vw, 120px); }
.theme-air .fv3-top { grid-template-columns: minmax(0, 1fr); max-width: 660px; gap: 24px; }
.theme-air .fv3-eyebrow { font-family: var(--f-serif); font-weight: 700; font-size: 14px; letter-spacing: .1em; color: var(--red); }
.theme-air .fv3-h1 { color: var(--ink); font-weight: 700; font-size: clamp(28px, 4.4vw, 60px); line-height: 1.32; letter-spacing: .02em; }
.theme-air .fv3-h1 .b { color: var(--red); }
.theme-air .fv3-side { padding: 0; }
.theme-air .fv3-sum { font-family: var(--f-serif); font-weight: 700; font-size: clamp(15px, 1.4vw, 19px); line-height: 1.8; color: var(--ink); }
.theme-air .fv3-sum b { color: var(--ink); font-weight: 700; }
.theme-air .fv3-rule { justify-content: center; margin-top: clamp(56px, 8vw, 120px); font-family: var(--f-serif); font-weight: 700; font-size: 14px; letter-spacing: .1em; color: var(--red); }
.theme-air .fv3-rule::before, .theme-air .fv3-rule::after { content: ""; flex: 0 0 48px; height: 2px; background: var(--red); }

.theme-air .fv3-card { background: #fff; border: 0; border-radius: var(--r-card); overflow: hidden; box-shadow: var(--air-shadow); }
.theme-air .fv3-card:hover { background: #fff; box-shadow: 0 28px 70px rgba(0,0,0,.12); }
.theme-air .fv3-card::before { content: ""; display: block; height: 4px; background: var(--air-bar); order: -1; }
.theme-air .fv3-head { padding: 18px 22px 14px; }
.theme-air .fv3-no { font-family: var(--f-serif); font-weight: 700; font-size: 28px; color: var(--red); }
.theme-air .fv3-lab { color: var(--ink-muted); }
.theme-air .fv3-lab .ico { color: var(--red); }
.theme-air .fv3-film::after { background: linear-gradient(180deg, rgba(17,24,39,0) 40%, rgba(17,24,39,.66) 100%); }
.theme-air .fv3-rec { background: rgba(255,255,255,.9); color: var(--ink); border-radius: 50px; }
.theme-air .fv3-body { padding: 18px 22px 24px; }
.theme-air .fv3-t { color: var(--ink); font-weight: 700; }
.theme-air .fv3-tag { color: var(--ink-muted); }
.theme-air .fv3-body p { color: var(--ink-strong); }
.theme-air .fv3-go { color: var(--red); font-weight: 700; }

/* easy start */
.theme-air .fv3 + .r-easy { background: var(--sec); border-bottom: 0; }
.theme-air .r-easy-h { text-align: center; }
.theme-air .fv3 + .r-easy .r-easy-grid { border-top: 0; gap: 16px; grid-template-columns: repeat(3, minmax(0,1fr)) minmax(0, 1.1fr); }
.theme-air .fv3 + .r-easy .r-easy-lab { font-family: var(--f-serif); font-weight: 700; font-size: 13px; letter-spacing: .1em; text-align: center; padding: 0 0 6px; border: 0 !important; }
.theme-air .fv3 + .r-easy .r-easy-item,
.theme-air .fv3 + .r-easy .r-easy-item + .r-easy-item { padding: 22px 24px; border: 0; border-radius: var(--r-card); background: #fff; box-shadow: var(--air-shadow-sm); transition: transform .3s var(--ease), box-shadow .3s var(--ease); }
.theme-air .fv3 + .r-easy a.r-easy-item:hover { transform: translateY(-3px); box-shadow: var(--air-shadow); }
.theme-air .fv3 + .r-easy .r-easy-item.ind { border-top: 3px solid var(--red); }

/* =========================================================
   THESIS — orbit on pale network bg
   ========================================================= */
.theme-air .r-thesis-sec { background: url('img/site/vision-bg.webp') center/cover no-repeat; }
.theme-air .r-thesis-b .r-thesis-grid { padding: clamp(28px, 4vw, 56px); background: rgba(255,255,255,.88); border-radius: var(--r-card); box-shadow: var(--air-shadow); }
.theme-air .r-thesis-big .s { color: var(--ink-muted); }
.theme-air .r-stats { border-top-color: var(--rule); }
.theme-air .r-stat-v { color: var(--red); }
.theme-air .r-orbit .ring-core { fill: var(--red); }
.theme-air .r-orbit .ring-mid { fill: #eef6fd; stroke: var(--sky); }
.theme-air .r-orbit .ring-out { stroke: var(--lav); stroke-width: 1.5; }
.theme-air .r-orbit .spoke { stroke: var(--red); }
.theme-air .r-orbit-core small { color: #fff; opacity: .8; }
.theme-air .r-orbit-node { background: #fff; border: 0; border-radius: 50px; box-shadow: var(--air-shadow-sm); font-weight: 500; }
.theme-air .r-orbit-node:hover { background: var(--red); }
.theme-air .r-fig-cap::before { background: var(--red); }

/* =========================================================
   CHALLENGES
   ========================================================= */
.theme-air .r-chal-item { border-top-color: var(--rule); }
.theme-air .r-chal-item::before { font-family: var(--f-serif); font-weight: 700; color: #c7cbd2; }
.theme-air .r-chal-item.is-on::before { color: var(--red); }
.theme-air .r-chal-lines path { stroke: #cfd5de; }
.theme-air .r-node { border: 0; border-radius: var(--r-card); box-shadow: var(--air-shadow-sm); overflow: hidden; }
.theme-air .r-node::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--air-bar); }
.theme-air .r-node:hover { background: var(--red); }
.theme-air .r-node .pin { z-index: 1; }

/* =========================================================
   HOW — flow + case diagrams
   ========================================================= */
.theme-air .r-flow-steps li { padding: 0; }
.theme-air .r-flow-no { font-family: var(--f-serif); font-weight: 700; color: var(--red); font-size: clamp(32px, 3vw, 44px); }
.theme-air .r-flow-dot { border-color: var(--red); }
.theme-air .is-drawn .r-flow-dot { background: var(--red); }
.theme-air .r-flow-line path { stroke: var(--lav); stroke-width: 2; }
.theme-air .r-cases-head { border-bottom: 0; text-align: center; grid-template-columns: 1fr; justify-items: center; }
.theme-air .r-cases-head h3 { font-weight: 700; }
.theme-air .r-cases-head .r-note { text-align: center; }
.theme-air .r-case { margin-top: 32px; padding: clamp(28px, 4vw, 48px); background: #fff; border: 0; border-radius: var(--r-card); box-shadow: var(--air-shadow); position: relative; overflow: hidden; }
.theme-air .r-case::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 4px; background: var(--air-bar); }
.theme-air .r-case-fig { background: var(--sec); border: 0; border-radius: var(--r-card); }
.theme-air .r-ba-box { border-radius: 10px; border-color: var(--rule); }
.theme-air .r-ba-box.is-after { border-color: var(--red); background: #fff5f6; }
.theme-air .r-plan { border: 0; gap: 10px; }
.theme-air .r-plan > div, .theme-air .r-plan > div + div { padding: 14px 16px; border: 0; background: var(--sec); border-radius: 10px; }
.theme-air .dg-src { border-radius: 10px; border-color: var(--ink); background: #fff; }
.theme-air .dg-out { border-radius: 10px; background: var(--red); }
.theme-air .dg-lane { border-radius: 10px; background: #fff; }
.theme-air .dg-lane.is-ai { background: #fff5f6; }
.theme-air .dg-mod { background: #fff; border-left-color: var(--lav); border-radius: 0 8px 8px 0; }
.theme-air .dg-mod.is-goal { background: var(--red); border-left-color: var(--red); border-radius: 8px; }
.theme-air .dg-day-h small { color: var(--red); }
.theme-air .dg-step { border: 0; border-radius: 50px; box-shadow: var(--air-shadow-sm); }
.theme-air .dg-loop .ring { stroke: var(--red); }

/* =========================================================
   TOPICS
   ========================================================= */
.theme-air .r-topic-group { border: 0; margin-top: 16px; padding: 28px 32px; background: #fff; border-radius: var(--r-card); box-shadow: var(--air-shadow-sm); }
.theme-air .r-topic-group:last-child { border: 0; }

/* =========================================================
   STRENGTHS — light 2x2 cards with brand icons
   ========================================================= */
.theme-air #strengths.is-dark { background: var(--sec); color: var(--ink); }
.theme-air #strengths.is-dark .r-h2, .theme-air #strengths.is-dark h3 { color: var(--ink); }
.theme-air #strengths.is-dark .r-lead, .theme-air #strengths.is-dark .r-str p { color: var(--ink-strong); }
.theme-air #strengths.is-dark .r-note, .theme-air #strengths.is-dark .r-str-lab { color: var(--ink-muted); }
.theme-air #strengths.is-dark .eyebrow { color: var(--red); }
.theme-air .r-str-grid { gap: 24px; max-width: 1000px; margin: 0 auto; }
.theme-air .r-str, .theme-air #strengths.is-dark .r-str { grid-template-columns: minmax(0, 1fr) 86px; gap: 0 28px; align-items: center; padding: 36px 36px; background: #fff; border: 0; border-radius: var(--r-card); box-shadow: var(--air-shadow-sm); }
.theme-air .r-str-no { display: none; }
.theme-air .r-str-ico { width: 86px; height: 86px; }
.theme-air .r-str h3 { font-family: var(--f-sans); font-weight: 700; font-size: clamp(19px, 1.7vw, 22px); }
.theme-air .r-str-lab { color: var(--red) !important; }
.theme-air #strengths .r-note { text-align: center; margin-left: auto; margin-right: auto; }

/* =========================================================
   VISION — network bg + icons in pair rows
   ========================================================= */
.theme-air .r-vision3 { background: url('img/site/vision-bg.webp') center/cover no-repeat; }
.theme-air .r-vision3-art { display: none; }
.theme-air .r-pair { max-width: 1040px; margin: 0 auto; padding: clamp(20px, 3vw, 40px) clamp(20px, 4vw, 56px); background: rgba(255,255,255,.9); border-radius: var(--r-card); box-shadow: var(--air-shadow); }
.theme-air .r-pair-hd { grid-template-columns: 86px minmax(0, 1fr) 110px minmax(0, 1fr) minmax(0, 2fr); border-bottom-color: var(--rule); }
.theme-air .r-pair-row { grid-template-columns: 86px minmax(0, 1fr) 110px minmax(0, 1fr) minmax(0, 2fr); }
.theme-air .r-pair-row:last-child { border-bottom: 0; }
.theme-air .r-pair-ico { width: 72px; height: 72px; }
.theme-air .r-pair-hu { color: var(--red); }
.theme-air .r-pair-arrow path { stroke: var(--red); }

/* =========================================================
   TEAM — white cards with gradient bar (like current site)
   ========================================================= */
.theme-air .r-team-art { display: none; }
.theme-air .r-team { gap: 24px; }
.theme-air .r-member { position: relative; padding: 28px 24px 26px; background: #fff; border: 0; border-radius: var(--r-card); box-shadow: var(--air-shadow-sm); overflow: hidden; }
.theme-air .r-member::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 4px; background: var(--air-bar); }
.theme-air .r-mono { width: 64px; height: 64px; font-family: var(--f-serif); font-weight: 700; font-size: 20px; border: 0; background: #fdecef; color: var(--red); }
.theme-air .r-mono::after { border-color: var(--sky); }
.theme-air .r-member .ini { color: var(--red); font-family: var(--f-sans); font-weight: 700; font-size: 15px; letter-spacing: .06em; }
.theme-air .r-member .role { font-family: var(--f-sans); font-weight: 500; font-size: 13px; color: var(--ink-muted); }

/* =========================================================
   CONTACT
   ========================================================= */
.theme-air #contact { background: #f4f6f8; }
.theme-air .r-contact .r-chap { max-width: none !important; }
.theme-air .r-contact .r-chap .eyebrow { text-align: left; }
.theme-air .r-contact .r-h2::after { content: ""; display: block; width: 48px; height: 2px; margin-top: 24px; background: var(--red); }
.theme-air .r-contact .r-lead { text-align: left; margin-left: 0; }
.theme-air .r-form { border: 0; border-radius: var(--r-card); box-shadow: var(--air-shadow); }
.theme-air .r-promise { border: 0; padding: 24px 28px; background: #fff; border-radius: var(--r-card); }
.theme-air .r-cflow .n { font-family: var(--f-serif); font-weight: 700; background: #fff; }
.theme-air .input, .theme-air .textarea, .theme-air .select { border-radius: 8px; border-color: #d1d5db; }

/* ---------- v4.1 fixes ---------- */
/* headline: never break inside a phrase */
.theme-air .fv3-h1 .nw { display: inline-block; white-space: nowrap; }
.theme-air .fv3-h1 { font-size: clamp(24px, 4.2vw, 58px); }
.theme-air .fv3-top { max-width: 760px; }
/* hero photo: dedicated box sized to the top area so the face stays in frame */
.theme-air .fv3::before, .theme-air .fv3::after { display: none; }
.theme-air .fv3-in { position: relative; padding-top: clamp(64px, 9vw, 140px); }
.theme-air .fv3-top { position: relative; z-index: 2; }
.theme-air .fv3-photo {
  position: absolute; z-index: 0; top: 0; left: 50%; width: 100vw; transform: translateX(-50%);
  height: clamp(600px, 60vw, 820px);
  background: url('img/site/hero.webp') 50% 42% / cover no-repeat;
  -webkit-mask-image: linear-gradient(180deg, #000 70%, transparent 100%); mask-image: linear-gradient(180deg, #000 70%, transparent 100%);
}
.theme-air .fv3-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(255,255,255,.97) 0%, rgba(255,255,255,.88) 30%, rgba(255,255,255,0) 52%); }
.theme-air .fv3-rule, .theme-air .fv3-grid { position: relative; z-index: 1; }
.theme-air .fv3-rule { margin-top: clamp(120px, 16vw, 240px); }

/* film cards: icon + business name on top */
.theme-air .fv3-head { justify-content: flex-start; gap: 12px; padding: 20px 22px 16px; }
.theme-air .fv3-head .ico { width: 26px; height: 26px; color: var(--red); flex-shrink: 0; }
.theme-air .fv3-head .fv3-t { margin: 0; font-size: clamp(18px, 1.6vw, 22px); line-height: 1.35; }
.theme-air .fv3-body { padding-top: 16px; }

/* easy start: obvious click targets */
.theme-air .fv3 + .r-easy a.r-easy-item { position: relative; cursor: pointer; padding-right: 64px; border: 1px solid var(--rule); }
.theme-air .fv3 + .r-easy a.r-easy-item.ind { border-top: 3px solid var(--red); }
.theme-air .r-easy-go { position: absolute; right: 18px; top: 50%; width: 34px; height: 34px; margin-top: -17px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--red); color: #fff; font-size: 15px; transition: transform .3s var(--ease); }
.theme-air .fv3 + .r-easy a.r-easy-item:hover { border-color: var(--red); }
.theme-air .fv3 + .r-easy a.r-easy-item:hover .r-easy-go { transform: translateX(4px); }
.theme-air .fv3 + .r-easy a.r-easy-item:hover .r-easy-t { color: var(--red); }
.theme-air .fv3 + .r-easy .r-easy-t { font-weight: 700; }
.theme-air .fv3 + .r-easy .r-easy-item.soon { background: transparent; box-shadow: none; border: 1px dashed #cfd5de; opacity: .75; }
.theme-air .r-easy-soon { margin-left: 8px; padding: 2px 8px; border-radius: 50px; background: #eef0f3; font-family: var(--f-sans); font-size: 11px; font-weight: 500; color: var(--ink-muted); vertical-align: middle; }

/* orbit: icons inline, larger names, single ring label */
.theme-air .r-orbit-node { display: inline-flex; align-items: center; gap: 10px; padding: 12px 20px; font-size: 16px; font-weight: 700; line-height: 1.3; white-space: nowrap; }
.theme-air .r-orbit-node .ico { width: 22px; height: 22px; margin: 0; flex-shrink: 0; align-self: center; }
.theme-air .r-orbit .ring-txt { font-size: 15px; letter-spacing: .06em; fill: var(--ink-strong); dominant-baseline: central; }
.theme-air .r-orbit-node.n1 { left: 50%; top: 9%; }
.theme-air .r-orbit-node.n2 { left: 80%; top: 76%; }
.theme-air .r-orbit-node.n3 { left: 20%; top: 76%; }

/* easy start: reserve room for the arrow on every card */
.theme-air .fv3 + .r-easy a.r-easy-item,
.theme-air .fv3 + .r-easy .r-easy-item + a.r-easy-item { padding-right: 68px; }

/* footer */
.theme-air .footer { background: #1f2937; }

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
  .theme-air .fv3::before { background-position: 70% 20%; -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 40%, transparent 70%); mask-image: linear-gradient(180deg, #000 0%, #000 40%, transparent 70%); }
  .theme-air .fv3::after { background: linear-gradient(180deg, rgba(255,255,255,.55) 0%, rgba(255,255,255,.88) 40%, #fff 70%); }
  .theme-air .fv3-card::before { grid-column: 1 / -1; }
  .theme-air .fv3-card { grid-template-rows: 4px auto 1fr; }
  .theme-air .fv3-head { grid-row: 2; }
  .theme-air .fv3-film { grid-row: 2 / span 2; }
  .theme-air .fv3-body { grid-row: 3; }
  .theme-air .fv3 + .r-easy .r-easy-grid { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .theme-air .fv3 + .r-easy .r-easy-lab { text-align: left; }
  .theme-air .r-str, .theme-air #strengths.is-dark .r-str { grid-template-columns: minmax(0, 1fr) 64px; padding: 26px 22px; }
  .theme-air .r-str-ico { width: 64px; height: 64px; }
  .theme-air .r-pair-row { grid-template-columns: 56px minmax(0, 1fr) 40px minmax(0, 1fr); gap: 10px; }
  .theme-air .r-pair-ico { width: 52px; height: 52px; }
  .theme-air .r-pair-txt { grid-column: 1 / -1; }
  .theme-air .r-topic-group { padding: 22px 20px; }
  .theme-air .fv3-photo { height: auto; top: auto; position: relative; left: auto; transform: none; width: auto; margin: 28px calc(var(--gut) * -1) 0; aspect-ratio: 4 / 3; background-position: 62% 40%; -webkit-mask-image: none; mask-image: none; }
  .theme-air .fv3-photo::after { display: none; }
  .theme-air .fv3-rule { margin-top: 40px; }
  .theme-air .fv3-head { padding: 12px 14px 0; gap: 8px; }
  .theme-air .fv3-head .ico { width: 20px; height: 20px; }
  .theme-air .fv3-head .fv3-t { font-size: 16px; }
  .theme-air .r-orbit { width: 100%; }
  .theme-air .r-orbit-node { font-size: 12.5px; padding: 8px 12px; gap: 6px; white-space: normal; width: max-content; max-width: 10em; }
  .theme-air .r-orbit-node .ico { width: 16px; height: 16px; }
  .theme-air .r-orbit-node.n2 { left: 77%; top: 77%; }
  .theme-air .r-orbit-node.n3 { left: 23%; top: 77%; }
  .theme-air .r-case { padding: 24px 18px; }
}

/* ---------- v4.2 first view: show the 3 business cards (top third of the film) ---------- */
@media (min-width: 901px) {
  .theme-air .fv3-in { padding-top: clamp(44px, 6.1vw, 100px); }
  .theme-air .fv3-top { gap: 20px; }
  .theme-air .fv3-photo { height: clamp(450px, 44vw, 680px); }
  .theme-air .fv3-rule { margin-top: clamp(30px, 4.7vw, 80px); margin-bottom: 18px; }
}

/* ---------- v4.3 orbit nodes: keep the icon in the flex flow (the ring-svg rule made it absolute, so it sat on the left edge) ---------- */
.theme-air .r-orbit-node .ico { position: static; inset: auto; }
.theme-air .r-orbit-node { gap: 12px; padding: 12px 22px 12px 20px; }
@media (max-width: 900px) {
  .theme-air .r-orbit-node { gap: 8px; padding: 8px 14px 8px 12px; }
}


/* v4.4 TOP：3事業カードの下部ボタン／ヒーロー位置調整／「気軽なことから」の企業・個人グルーピング */
.theme-air .fv3-rule { margin-top: calc(clamp(30px, 4.7vw, 80px) + 38px); }
.theme-air .fv3-btn { margin-top: auto; align-self: flex-start; display: inline-flex; align-items: center; gap: 10px; padding: 10px 18px; border: 1px solid var(--red); border-radius: 50px; background: #fff; color: var(--red); font-size: 13px; font-weight: 500; letter-spacing: .04em; transition: background .25s, color .25s; }
.theme-air .fv3-btn .arrow { transition: transform .3s var(--ease); }
.theme-air .fv3-card:hover .fv3-btn { background: var(--red); color: #fff; }
.theme-air .fv3-card:hover .fv3-btn .arrow { transform: translateX(4px); }

.theme-air .fv3 + .r-easy .r-easy-groups { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 1fr); gap: 24px; }
.theme-air .r-easy-group { border-radius: 16px; padding: 22px 22px 24px; }
.theme-air .r-easy-group.is-co { background: #fdf0f1; }
.theme-air .r-easy-group.is-ind { background: #eaf2fb; }
.theme-air .r-easy-gh { display: flex; align-items: center; gap: 14px; margin-bottom: 16px; flex-wrap: wrap; }
.theme-air .r-easy-pill { display: inline-block; padding: 6px 18px; border-radius: 50px; background: var(--red); color: #fff; font-family: var(--f-serif); font-weight: 700; font-size: 15px; letter-spacing: .08em; }
.theme-air .r-easy-pill.is-ind { background: #2f6fb3; }
.theme-air .r-easy-gd { font-size: 13px; color: var(--ink-strong); }
.theme-air .r-easy-group .r-easy-items { display: grid; gap: 14px; }
.theme-air .r-easy-group.is-co .r-easy-items { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.theme-air .fv3 + .r-easy .r-easy-group .r-easy-item { height: 100%; border-top: 1px solid var(--rule); }
.theme-air .fv3 + .r-easy .r-easy-group a.r-easy-item.ind { border-top: 1px solid var(--rule); }
.theme-air .r-easy-group.is-ind .r-easy-go { background: #2f6fb3; }
.theme-air .fv3 + .r-easy .r-easy-group.is-ind a.r-easy-item:hover { border-color: #2f6fb3; }
.theme-air .fv3 + .r-easy .r-easy-group.is-ind a.r-easy-item:hover .r-easy-t { color: #2f6fb3; }
@media (max-width: 900px) {
  .theme-air .fv3 + .r-easy .r-easy-groups { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .theme-air .r-easy-group.is-co .r-easy-items { grid-template-columns: minmax(0, 1fr); }
}
.theme-air .r-easy-item.soon .r-easy-t { flex-wrap: wrap; justify-content: flex-start; }


/* 共通：先頭へ戻るボタン（air-inner.css と同一） */
/* 先頭へ戻るボタン（「相談する」バーと同じ出現条件・同じ高さ。バーの右側） */
.theme-air .float-cta { right: 100px; }
.to-top { position: fixed; right: 24px; bottom: 24px; z-index: 40; width: 66px; height: 66px; padding: 0; border-radius: 50%; border: 0; background: var(--n-900); display: flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: var(--sh-lg);
  opacity: 0; transform: translateY(20px) scale(.96); pointer-events: none; transition: all .5s cubic-bezier(.2,.7,.2,1); }
.to-top.is-visible { opacity: 1; transform: translateY(0) scale(1); pointer-events: auto; }
.to-top-in { width: 42px; height: 42px; border-radius: 50%; background: var(--red); color: #fff; display: flex; align-items: center; justify-content: center; transition: background .25s; }
.to-top:hover .to-top-in { background: var(--brand-deep); }

/* v4.5 TOP：ヒーロー写真をメニューの背面まで引き上げる（公開中のHPと同じ抜け感）。スクロールすると、メニューは白地になる */
@media (min-width: 901px) {
  .theme-air .nav { position: fixed; left: 0; right: 0; top: 0; background: transparent; border-bottom-color: transparent; -webkit-backdrop-filter: none; backdrop-filter: none; }
  .theme-air .nav.is-scrolled { background: rgba(255,255,255,.94); border-bottom-color: var(--rule); -webkit-backdrop-filter: saturate(1.4) blur(12px); backdrop-filter: saturate(1.4) blur(12px); }
  .theme-air .fv3-in { padding-top: calc(clamp(44px, 6.1vw, 100px) + 73px); }
  .theme-air .fv3-photo { height: calc(clamp(450px, 44vw, 680px) + 73px); }
}

/* v4.6 TOP：女性（大きさはそのまま）を約40px下げる。空いた上端は、写真の最上部を上下反転して継ぎ足し、メニューの背面にも水色の壁面が続くようにする */
@media (min-width: 901px) {
  .theme-air .fv3-photo { --ph: calc(clamp(450px, 44vw, 680px) + 73px); --pw: max(100vw, calc(var(--ph) * 2.347)); background-size: var(--pw) auto; background-position: 50% 40px; }
  .theme-air .fv3-photo::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 40px; transform: scaleY(-1); background: url('img/site/hero.webp') 50% 0 / var(--pw) auto no-repeat; }
}

/* v4.7 TOP 課題の紐付け：カード左端の接合部の丸（pin）が半分に欠けないようにする（overflow:hidden をやめ、上端の帯の角を丸める） */
.theme-air .r-node { overflow: visible; }
.theme-air .r-node::before { border-radius: var(--r-card) var(--r-card) 0 0; }
/* v4.12 上部バーの角を、ノード本体の角丸に合わせる（バーを角丸の高さで作り、上端3pxだけ見せる） */
.theme-air .r-node::before { height: var(--r-card); -webkit-mask: linear-gradient(#000 0 3px, transparent 3px); mask: linear-gradient(#000 0 3px, transparent 3px); }
.theme-air .r-node .pin { left: -5px; width: 10px; height: 10px; margin-top: -5px; }

/* v4.8 TOP 課題（8件）：ラベルは小さなチップを1行に収め、課題ごとの高さが伸びないようにする */
.theme-air .r-chal-item { padding-top: 16px; padding-bottom: 16px; }
.theme-air .r-chal-item .tags { margin-top: 4px; flex-wrap: nowrap; gap: 6px; }
.theme-air .r-chal-item .r-tag { padding: 1px 10px; font-size: 11.5px; line-height: 1.7; white-space: nowrap; }

/* v4.9 TOP 課題：右の事業カード（大きさ・横位置はそのまま）を、右エリアの上部に縦に並べ、スクロールに追随させる。コネクタは、追随に合わせて動く */
.theme-air .r-chal-nodes { justify-content: flex-start; align-self: start; position: sticky; top: 96px; }
@media (max-width: 900px) { .theme-air .r-chal-nodes { position: static; } }

/* v4.10 TOP 課題：アクティブなコネクタを赤く太くし、切り替えを早くする（線ごとの描画遅延は、描画後は 0 にする） */
.theme-air .r-chal-lines path.is-drawn { transition-delay: 0s !important; transition: stroke .35s ease-out, stroke-width .35s ease-out; }
.theme-air .r-chal-lines path.is-on { stroke: var(--red); stroke-width: 2.6; }
.theme-air .r-chal.has-active .r-chal-lines path:not(.is-on) { opacity: 1; }
.theme-air .r-chal-item, .theme-air .r-chal-item::before, .theme-air .r-chal-item .dot, .theme-air .r-node, .theme-air .r-node .pin { transition-duration: .1s; }
.theme-air .r-chal-item.is-on .dot, .theme-air .r-node.is-on .pin { background: var(--red); border-color: var(--red); }

/* v4.11 TOP メンバーのアイコン（イラスト。HTML内のSVGスプライトを使用） */
.theme-air .r-avatar { width: 72px; height: 72px; border-radius: 50%; overflow: hidden; box-shadow: 0 0 0 3px #fff, 0 0 0 4px #e5e7eb; }
.theme-air .r-avatar svg { display: block; width: 100%; height: 100%; }


/* v4.14 公式noteの最新記事：タブ付きのカルーセル */
.theme-air .nt { max-width: 1100px; margin: 0 auto; }
.theme-air .nt.is-empty .nt-stage, .theme-air .nt.is-empty .nt-tabs { display: none; }
.theme-air .nt-tabs { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 0 0 28px; }
.theme-air .nt-tabs[hidden] { display: none; }
.theme-air .nt-tab { appearance: none; border: 1px solid var(--rule, #dfe3e8); background: #fff; color: var(--ink-strong); font: inherit; font-size: 13.5px; font-weight: 600; padding: 9px 20px; border-radius: 999px; cursor: pointer; transition: background .25s, color .25s, border-color .25s; }
.theme-air .nt-tab:hover { border-color: var(--red); color: var(--red); }
.theme-air .nt-tab.is-on { background: var(--red); border-color: var(--red); color: #fff; }
.theme-air .nt-stage { position: relative; display: flex; align-items: center; gap: 12px; }
.theme-air .nt-viewport { flex: 1; min-width: 0; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; padding: 6px 2px 22px; -webkit-overflow-scrolling: touch; }
.theme-air .nt-viewport::-webkit-scrollbar { display: none; }
.theme-air .nt-track { display: flex; gap: 20px; width: max-content; }
.theme-air .nt-card { flex: 0 0 clamp(240px, 26vw, 300px); display: flex; flex-direction: column; background: #fff; border-radius: var(--r-card); box-shadow: var(--air-shadow-sm); overflow: hidden; color: var(--ink); text-decoration: none; transition: transform .25s, box-shadow .25s; }
.theme-air .nt-card:hover { transform: translateY(-4px); box-shadow: var(--air-shadow); }
.theme-air .nt-thumb { display: block; aspect-ratio: 1280 / 670; background: var(--sec); overflow: hidden; }
.theme-air .nt-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.theme-air .nt-meta { display: flex; align-items: center; gap: 10px; padding: 14px 18px 0; font-size: 11.5px; color: var(--ink-muted); }
.theme-air .nt-tag { color: var(--red); font-weight: 600; }
.theme-air .nt-title { padding: 8px 18px 20px; font-family: var(--f-sans); font-weight: 700; font-size: 15px; line-height: 1.7; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.theme-air .nt-nav { flex: 0 0 auto; width: 44px; height: 44px; border-radius: 50%; border: 0; background: var(--ink); color: #fff; display: grid; place-items: center; cursor: pointer; box-shadow: var(--air-shadow-sm); transition: background .25s; }
.theme-air .nt-nav:hover { background: var(--red); }
.theme-air .nt-more { text-align: center; margin: 8px 0 0; }
@media (max-width: 700px) { .theme-air .nt-nav { display: none; } .theme-air .nt-card { flex-basis: 78vw; } }
/* TOPICS（note）の見出しは長い一文のため、少し小さくして、折り返しをそろえる */
.theme-air #note .r-h2 { font-size: clamp(24px, 2.8vw, 34px); text-wrap: balance; }
/* VISION：見出しの赤線と説明文の間の、大きなひとこと */
.theme-air .r-vision-tag { margin: 28px 0 0; font-family: var(--f-serif); font-weight: 700; font-size: clamp(32px, 6.4vw, 84px); line-height: 1.4; letter-spacing: .02em; text-wrap: balance; color: var(--ink); text-align: center; }
.theme-air .r-vision-tag + .r-lead { margin-top: 28px; }
@media (min-width: 901px) { .theme-air .r-vision-tag { width: min(1100px, 94vw); margin-left: 50%; transform: translateX(-50%); white-space: nowrap; } }
/* ひらがなの部分だけ、少し小さくして、文字に抑揚をつける */
.theme-air .r-vt-s { font-size: .68em; letter-spacing: .06em; }

/* 事例集：カルーセル（動きは、noteの最新記事と同じ。.nt-* を共用） */
.theme-air .cs.is-empty { display: none; }
.theme-air .cs .nt-card { flex-basis: clamp(280px, 30vw, 340px); }
.theme-air .cs-card { cursor: default; }
.theme-air .cs-card:hover { transform: none; }
.theme-air .cs-thumb { appearance: none; border: 0; padding: 0; margin: 0; position: relative; display: block; width: 100%; aspect-ratio: 4 / 3; background: var(--sec); cursor: zoom-in; overflow: hidden; }
.theme-air .cs-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s; }
.theme-air .cs-thumb:hover img { transform: scale(1.03); }
.theme-air .cs-zoom { position: absolute; right: 10px; bottom: 10px; background: rgba(31,41,55,.82); color: #fff; font-size: 11px; padding: 4px 10px; border-radius: 999px; }
.theme-air .cs-body { padding: 16px 18px 20px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.theme-air .cs-biz { align-self: flex-start; font-size: 11.5px; font-weight: 700; color: var(--red); background: color-mix(in oklch, var(--red) 9%, white); padding: 3px 10px; border-radius: 999px; }
.theme-air .cs-title { margin: 0; font-family: var(--f-sans); font-weight: 700; font-size: 16px; line-height: 1.6; color: var(--ink); }
.theme-air .cs-sum { margin: 0; font-size: 13.5px; line-height: 1.8; color: var(--ink-strong); }
.theme-air .cs-facts { margin: 6px 0 0; padding-top: 12px; border-top: 1px solid var(--rule, #e5e7eb); display: grid; gap: 6px; }
.theme-air .cs-row { display: grid; grid-template-columns: 3.2em 1fr; gap: 8px; font-size: 13px; line-height: 1.7; }
.theme-air .cs-row dt { color: var(--ink-muted); }
.theme-air .cs-row dd { margin: 0; color: var(--ink); font-weight: 600; }
.theme-air .cs-dialog { width: min(1100px, 94vw); max-height: 94dvh; padding: 18px; border: 0; border-radius: var(--r-card); background: #fff; }
.theme-air .cs-dialog::backdrop { background: rgba(20,24,32,.6); }
.theme-air .cs-big { display: block; width: 100%; height: auto; max-height: 80dvh; object-fit: contain; }
.theme-air .cs-cap { margin: 10px 0 0; font-size: 13px; color: var(--ink-strong); text-align: center; }
.theme-air .cs-close { position: absolute; top: 8px; right: 10px; width: 36px; height: 36px; border-radius: 50%; border: 0; background: var(--ink); color: #fff; font-size: 20px; line-height: 1; cursor: pointer; z-index: 1; }
.theme-air .cs-tags { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.theme-air .cs-flag { font-size: 11px; font-weight: 600; color: var(--ink-muted); border: 1px solid var(--rule, #d7dce2); padding: 2px 9px; border-radius: 999px; }
.theme-air .cs-note { margin: 4px auto 0; max-width: 760px; text-align: center; font-size: 12.5px; line-height: 1.8; color: var(--ink-muted); }
/* 進め方（HOW）の線：非スケール線の指定だと、描画の破線（pathLength）が効かず、線が途切れて見えるため、通常の線にする */
.theme-air .r-flow-line path { vector-effect: none; }

/* v4.15 TOP ヒーロー：画面が広くても、背景の写真を拡大しない。
   高さが上限（680px+73px）に達する幅（約1545px）より先は、写真を原寸（幅1767px）で中央に置き、左右の端は、白に溶け込ませる */
@media (min-width: 1768px) {
  .theme-air .fv3-photo {
    width: 1767px;
    --pw: 1767px;
    background-size: 1767px auto;
    -webkit-mask-image: linear-gradient(180deg, #000 70%, transparent 100%), linear-gradient(90deg, transparent 0, #000 140px, #000 calc(100% - 140px), transparent 100%);
    mask-image: linear-gradient(180deg, #000 70%, transparent 100%), linear-gradient(90deg, transparent 0, #000 140px, #000 calc(100% - 140px), transparent 100%);
    -webkit-mask-composite: source-in; mask-composite: intersect;
  }
}

/* 問い合わせフォーム：送信完了の表示（フォームの代わりに出す） */
.theme-air .r-form.is-done > *:not(.form-done) { display: none; }
.theme-air .form-done { display: none; text-align: center; padding: 36px 16px 28px; outline: none; }
.theme-air .r-form.is-done .form-done { display: block; }
.theme-air .form-done-icon { width: 64px; height: 64px; margin: 0 auto 16px; border-radius: 50%; background: #2f7d5d; color: #fff; font-size: 34px; line-height: 64px; font-weight: 700; }
.theme-air .form-done h3 { font-size: 22px; margin: 0 0 12px; }
.theme-air .form-done p { margin: 8px 0; line-height: 1.8; }
.theme-air .form-done .btn { margin-top: 18px; }

/* 画面の外にあるセクションの描画を、近づくまであと回しにする（表示の初期の処理を減らす）。
   contain-intrinsic-size は、あと回しの間の高さの目安（セクション全体の高さから、上下の余白（.r-sec の padding）を引いた値。余白が二重にならないようにして、ページ内リンクの位置ずれを防ぐ。表示した後は、実際の高さを覚える） */
.theme-air .r-thesis-sec { content-visibility: auto; contain-intrinsic-size: auto calc(1081px - 2 * clamp(72px, 9vw, 112px)); }
.theme-air #entry { content-visibility: auto; contain-intrinsic-size: auto calc(1604px - 2 * clamp(72px, 9vw, 112px)); }
.theme-air #how { content-visibility: auto; contain-intrinsic-size: auto calc(745px - 2 * clamp(72px, 9vw, 112px)); }
.theme-air #note { content-visibility: auto; contain-intrinsic-size: auto calc(869px - 2 * clamp(72px, 9vw, 112px)); }
.theme-air #strengths { content-visibility: auto; contain-intrinsic-size: auto calc(1035px - 2 * clamp(72px, 9vw, 112px)); }
.theme-air #vision { content-visibility: auto; contain-intrinsic-size: auto calc(1371px - 2 * clamp(72px, 9vw, 112px)); }
.theme-air #team { content-visibility: auto; contain-intrinsic-size: auto calc(1126px - 2 * clamp(72px, 9vw, 112px)); }
.theme-air #contact { content-visibility: auto; contain-intrinsic-size: auto calc(1381px - 2 * clamp(72px, 9vw, 112px)); }
@media (max-width: 700px) {
  .theme-air .r-thesis-sec { contain-intrinsic-size: auto calc(1447px - 2 * clamp(72px, 9vw, 112px)); }
  .theme-air #entry { contain-intrinsic-size: auto calc(1958px - 2 * clamp(72px, 9vw, 112px)); }
  .theme-air #how { contain-intrinsic-size: auto calc(971px - 2 * clamp(72px, 9vw, 112px)); }
  .theme-air #note { contain-intrinsic-size: auto calc(884px - 2 * clamp(72px, 9vw, 112px)); }
  .theme-air #strengths { contain-intrinsic-size: auto calc(1557px - 2 * clamp(72px, 9vw, 112px)); }
  .theme-air #vision { contain-intrinsic-size: auto calc(1283px - 2 * clamp(72px, 9vw, 112px)); }
  .theme-air #team { contain-intrinsic-size: auto calc(2230px - 2 * clamp(72px, 9vw, 112px)); }
  .theme-air #contact { contain-intrinsic-size: auto calc(2623px - 2 * clamp(72px, 9vw, 112px)); }
}
