:root {
  --blue: #0757e8;
  --blue-deep: #003cb8;
  --blue-bright: #176dff;
  --navy: #071329;
  --ink: #101828;
  --white: #fff;
  --gray: #f1f4f8;
  --line: #dce2ea;
  --lime: #dfff00;
  --font-en: "Barlow Condensed", sans-serif;
  --font-jp: "Noto Sans JP", sans-serif;
  --container: min(1180px, calc(100% - 80px));
  --section-space: 140px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
@media screen {
      html {
        margin-top: 0 !important;
      }
    }
body { margin: 0; color: var(--ink); font-family: var(--font-jp); background: #fff; -webkit-font-smoothing: antialiased; }
body.is-menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
img { max-width: 100%; }
p, h1, h2, h3 { margin-top: 0; }
.l-container { width: var(--container); margin-inline: auto; }
.l-section { padding-block: var(--section-space); overflow: hidden; }
.l-section--blue { color: #fff; background: var(--blue); }
.l-section--gray { background: var(--gray); }
.l-section--dark { color: #fff; background: var(--navy); }

.c-page-loader { position: fixed; z-index: 9999; inset: 0; display: grid; place-items: center; color: #fff; background: var(--blue); transition: transform .8s cubic-bezier(.8,0,.2,1); }
.c-page-loader.is-hidden { transform: translateY(-100%); }
.c-page-loader__mark { font: 900 clamp(72px, 15vw, 180px)/1 var(--font-en); letter-spacing: -.08em; transform: skew(-8deg); }

.l-header { position: fixed; z-index: 100; top: 0; width: 100%; color: #fff; transition: background .3s, color .3s, box-shadow .3s; }
.l-header.is-scrolled { color: var(--ink); background: rgba(255,255,255,.94); box-shadow: 0 4px 24px rgba(7,19,41,.08); backdrop-filter: blur(14px); }
.l-header__inner { height: 88px; padding-inline: 4vw; display: flex; align-items: center; gap: 50px; }
.c-logo { display: inline-flex; width: 112px; flex-direction: column; line-height: 1; }
.c-logo__main { font: 900 45px/.72 var(--font-en); letter-spacing: -.06em; transform: skew(-7deg); }
.c-logo__sub { margin-top: 8px; font: 700 9px/1 var(--font-en); letter-spacing: .32em; text-align: center; }
.l-header__nav { display: flex; align-items: center; gap: 34px; margin-left: auto; }
.l-header__nav a { position: relative; font: 700 14px/1 var(--font-en); letter-spacing: .08em; }
.l-header__nav a::after { position: absolute; left: 0; bottom: -8px; width: 0; height: 2px; content: ""; background: currentColor; transition: width .25s; }
.l-header__nav a:hover::after { width: 100%; }
.l-header__entry { margin-left: 14px; }
.c-menu-button { display: none; }

.c-button { min-height: 58px; padding: 0 28px; display: inline-flex; align-items: center; justify-content: center; gap: 38px; border: 0; font-size: 14px; font-weight: 800; transition: transform .25s, background .25s, color .25s; cursor: pointer; }
.c-button:hover { transform: translateY(-3px); }
.c-button--entry { min-width: 150px; color: var(--blue); background: #fff; }
.is-scrolled .c-button--entry { color: #fff; background: var(--blue); }
.c-button--white { color: var(--blue); background: #fff; }
.c-button--blue { color: #fff; background: var(--blue); }
.c-text-link { padding-bottom: 8px; display: inline-flex; gap: 50px; align-items: center; border-bottom: 1px solid currentColor; font-size: 14px; font-weight: 700; }
.c-text-link--white { color: #fff; }

.p-hero { min-height: 820px; height: 100svh; position: relative; color: #fff; overflow: hidden; background: #071936; }
.p-hero__media, .p-hero__overlay, .p-hero__speed-lines { position: absolute; inset: 0; }
.p-hero__overlay { background: linear-gradient(90deg, rgba(4,18,43,.82) 0%, rgba(4,18,43,.3) 58%, rgba(4,18,43,.12)), linear-gradient(0deg, rgba(0,31,107,.5), transparent 45%); }
.p-hero__speed-lines { opacity: .22; background: repeating-linear-gradient(112deg, transparent 0 12%, rgba(255,255,255,.6) 12.1% 12.2%, transparent 12.3% 20%); transform: translateX(12%); }
.p-hero__content { position: relative; z-index: 2; height: 100%; padding-top: 25vh; }
.p-hero__eyebrow { padding-left: 52px; position: relative; font: 700 14px/1 var(--font-en); letter-spacing: .22em; }
.p-hero__eyebrow::before { width: 38px; height: 2px; position: absolute; left: 0; top: 6px; content: ""; background: var(--lime); }
.p-hero__title { margin: 32px 0 28px; font-size: clamp(48px, 6vw, 90px); font-weight: 900; line-height: 1.16; letter-spacing: -.06em; }
.p-hero__title span { display: block; }
.p-hero__title-accent { color: transparent; -webkit-text-stroke: 2px #fff; }
.p-hero__lead { font-size: 18px; font-weight: 600; line-height: 2; }
.p-hero__actions { margin-top: 45px; display: flex; align-items: center; gap: 38px; }
.p-hero__scroll { z-index: 2; position: absolute; left: 3vw; bottom: 38px; height: 120px; display: flex; align-items: flex-start; }
.p-hero__scroll span { font: 700 10px/1 var(--font-en); letter-spacing: .25em; writing-mode: vertical-rl; }
.p-hero__scroll::after { width: 1px; height: 70px; position: absolute; left: 5px; bottom: 0; content: ""; background: linear-gradient(#fff 50%, rgba(255,255,255,.2) 50%); background-size: 100% 200%; animation: scrollLine 1.8s infinite; }
@keyframes scrollLine { to { background-position: 0 -200%; } }
.p-hero__statement { z-index: 2; position: absolute; right: -15px; bottom: -20px; margin: 0; color: rgba(255,255,255,.13); font: italic 900 clamp(72px, 11vw, 160px)/.8 var(--font-en); white-space: nowrap; }

.c-visual { position: relative; overflow: hidden; background-color: #1555bc; }
.c-visual::before, .c-visual::after { position: absolute; content: ""; pointer-events: none; }
.c-visual::before { inset: 0; background: linear-gradient(135deg, transparent 0 35%, rgba(255,255,255,.16) 35.2% 35.5%, transparent 35.7% 60%, rgba(255,255,255,.12) 60.2% 60.6%, transparent 60.8%), radial-gradient(circle at 70% 35%, rgba(223,255,0,.82) 0 4%, transparent 4.2%), linear-gradient(145deg, #051b43, #0871ee 55%, #72b8ff); }
.c-visual::after { width: 54%; height: 140%; right: -15%; top: -25%; border: 2px solid rgba(255,255,255,.28); border-radius: 50%; transform: rotate(22deg); }
.c-visual--hero { width: 100%; height: 100%; }
.c-visual--hero::before { background: radial-gradient(ellipse at 70% 42%, rgba(255,255,255,.5) 0 1%, transparent 1.4%), linear-gradient(118deg, transparent 0 58%, rgba(223,255,0,.85) 58.3% 60%, transparent 60.3%), radial-gradient(ellipse at 68% 55%, #0b1930 0 6%, transparent 6.2%), linear-gradient(125deg, #07152d 8%, #0d438d 50%, #1482ef 80%, #82c8ff); }
.c-visual__number { position: absolute; right: 7vw; top: 22%; z-index: 1; font: italic 900 35vw/.7 var(--font-en); color: rgba(255,255,255,.08); }
.c-visual__label { position: absolute; z-index: 1; right: 3vw; bottom: 6%; font: 700 11px var(--font-en); letter-spacing: .3em; }

.c-section-kicker { margin-bottom: 24px; color: var(--blue); font: 800 15px/1 var(--font-en); letter-spacing: .18em; }
.l-section--blue .c-section-kicker, .l-section--dark .c-section-kicker, .p-final-cta .c-section-kicker { color: var(--lime); }
.c-display-title { margin: 0; font: 900 clamp(70px, 10vw, 150px)/.76 var(--font-en); letter-spacing: -.045em; }
.c-display-title em, .c-large-title em { color: var(--blue); font-style: normal; }
.c-large-title { font-size: clamp(42px, 5vw, 70px); font-weight: 900; line-height: 1.35; letter-spacing: -.055em; }
.c-section-heading { margin-bottom: 65px; display: flex; align-items: flex-end; justify-content: space-between; gap: 50px; }
.c-section-heading h2 { margin: 0; font-size: clamp(40px, 5vw, 64px); line-height: 1.25; letter-spacing: -.055em; }
.c-section-heading > p { margin: 0 0 8px; font-size: 15px; line-height: 2; }
.c-section-heading--light { color: #fff; }
.c-section-heading--light .c-section-kicker { color: var(--lime); }

.p-message .l-container:first-child { display: grid; grid-template-columns: 1.1fr .9fr; gap: 10%; }
.p-message__body { padding-top: 45px; }
.p-message__body > p { margin-bottom: 26px; font-size: 15px; line-height: 2.15; }
.p-message__body .p-message__catch { margin-bottom: 40px; color: var(--blue); font-size: 32px; font-weight: 900; line-height: 1.55; }
.p-message__principles { margin-top: 100px; display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.c-principle-card { min-height: 360px; padding: 40px; position: relative; border-right: 1px solid var(--line); }
.c-principle-card:first-child { border-left: 1px solid var(--line); }
.c-principle-card__number { color: #8c98a8; font: 700 12px var(--font-en); }
.c-principle-card__icon { width: 84px; height: 84px; margin: 40px 0 35px; display: grid; place-items: center; color: #fff; background: var(--blue); border-radius: 50%; font: 500 30px var(--font-en); transform: rotate(-8deg); }
.c-principle-card h3 { margin-bottom: 16px; font-size: 22px; }
.c-principle-card p { margin: 0; color: #626d7b; font-size: 13px; line-height: 1.9; }

.p-world { padding-bottom: 0; }
.p-world__gallery { width: min(1440px, 100%); margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 300px 300px; gap: 8px; }
.c-gallery-item { position: relative; overflow: hidden;display: flex; align-items: flex-end; min-height: 0; }
.c-gallery-item-bg{ position: absolute;display: block;width: 100%;height: 100%;object-fit: cover;}
.c-gallery-item span { position: relative;z-index: 2; padding: 24px; font: 800 13px var(--font-en); letter-spacing: .18em; }
.c-gallery-item--wide { grid-row: span 2; }
.c-visual--store::before { background: linear-gradient(135deg, rgba(2,12,29,.15), rgba(0,87,232,.2)), repeating-linear-gradient(90deg, #0a3f8e 0 9%, #e6f0ff 9.3% 10%, #1272e8 10.3% 20%); }
.c-visual--people::before { background: radial-gradient(circle at 30% 45%, #101c31 0 8%, transparent 8.3%), radial-gradient(circle at 70% 44%, #dfff00 0 8%, transparent 8.3%), linear-gradient(145deg,#77baff,#064ac8); }
.c-visual--shoes::before { background: linear-gradient(15deg, transparent 0 38%, #e9f2ff 39% 49%, #dfff00 50% 52%, transparent 53%), linear-gradient(145deg,#07152b,#0a58dc); }
.c-visual--event::before { background: repeating-linear-gradient(115deg, transparent 0 12%, rgba(255,255,255,.25) 12.2% 13%, transparent 13.2% 20%), linear-gradient(145deg,#0d2750,#ff5733); }
.c-visual--social::before { background: radial-gradient(circle at 55% 50%,#fff 0 4%,#dfff00 4.2% 12%,transparent 12.2%),linear-gradient(135deg,#063b9a,#0697e8); }
.c-marquee { padding: 35px 0 30px; overflow: hidden; }
.c-marquee__track { width: max-content; color: rgba(255,255,255,.12); font: italic 900 110px/.8 var(--font-en); animation: marquee 18s linear infinite; }
@keyframes marquee { to { transform: translateX(-50%); } }
@media (max-width: 768px) {
  .p-world__gallery {
    /* 強制將欄位改成平均的 2 欄，不要再用 1.2fr 的比例 */
    grid-template-columns: repeat(2, 1fr); 
    
    /* 確保三行的高度都是死死的 300px，不讓它有機會因為內容自動拉伸 */
    grid-template-rows: repeat(3, 300px); 
  }

}

.p-activity__intro { margin-bottom: 80px; display: grid; grid-template-columns: 1.2fr .55fr; gap: 12%; align-items: end; }
.p-activity__intro > p { margin-bottom: 14px; font-size: 15px; line-height: 2.15; }
.p-activity__list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 25px; }
.c-activity-card__visual { aspect-ratio: .88; }
.c-activity-card__tag { z-index: 2; position: absolute; left: 0; top: 0; padding: 10px 16px; color: #fff; background: var(--blue); font: 700 11px var(--font-en); letter-spacing: .15em; }
.c-activity-card__body { padding-top: 24px; display: flex; gap: 20px; }
.c-activity-card__body > span { color: var(--blue); font: 800 12px var(--font-en); }
.c-activity-card h3 { margin-bottom: 13px; font-size: 20px; line-height: 1.6; }
.c-activity-card p { margin: 0; color: #6b7481; font-size: 13px; line-height: 1.8; }
.c-visual--running::before { background: linear-gradient(120deg, transparent 0 45%, #dfff00 45.5% 48%, transparent 48.5%), radial-gradient(ellipse at 50% 44%, #0b1729 0 8%, transparent 8.4%), linear-gradient(150deg,#a8d8ff,#075be8 60%,#052e80); }
.c-visual--fitting::before { background: linear-gradient(20deg, transparent 35%, white 35.5% 45%, #0b1930 45.5% 50%, transparent 50.5%), repeating-linear-gradient(90deg,#0b3373 0 18%,#2d83ee 18.3% 36%); }
.c-visual--beginner::before { background: radial-gradient(circle at 32% 45%,#fff 0 6%,transparent 6.3%),radial-gradient(circle at 62% 42%,#dfff00 0 6%,transparent 6.3%),linear-gradient(145deg,#023da4,#0793e9); }

.c-circle-link { width: 118px; height: 118px; flex: 0 0 auto; display: grid; place-content: center; border: 1px solid #aeb8c7; border-radius: 50%; font: 700 12px/1.3 var(--font-en); text-align: center; transition: .25s;    margin: 0 0 120px auto;}
.c-circle-link:hover { color: #fff; border-color: var(--blue); background: var(--blue); }
.c-circle-link span { margin-top: 5px; }
.p-event__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.c-event-card a { display: block; position: relative; }
.c-event-card__visual { aspect-ratio: 1.38; transition: transform .35s; }
.c-event-card:hover .c-event-card__visual { transform: scale(.98); }
.c-label { z-index: 2; position: absolute; left: 0; bottom: 0; padding: 9px 14px; color: #fff; background: var(--navy); font-size: 11px; font-weight: 700; }
.c-label--upcoming { color: var(--navy); background: var(--lime); }
.c-event-card__meta { margin: 20px 0 12px; display: flex; gap: 18px; color: #637083; font: 700 11px var(--font-en); letter-spacing: .08em; }
.c-event-card h3 { padding-right: 35px; font-size: 17px; line-height: 1.7; }
.c-event-card__arrow { position: absolute; right: 4px; bottom: 5px; color: var(--blue); }
.c-visual--track::before { background: repeating-linear-gradient(100deg,transparent 0 12%,rgba(255,255,255,.55) 12.2% 12.7%,transparent 12.9% 22%),linear-gradient(150deg,#09224b,#ff5c35); }
.c-visual--trial::before { background: linear-gradient(20deg,transparent 0 40%,#eaf3ff 40.5% 52%,#dfff00 52.5% 54%,transparent 54.5%),linear-gradient(145deg,#0b244f,#0572e8); }
.c-visual--kids::before { background: radial-gradient(circle at 35% 45%,#dfff00 0 7%,transparent 7.2%),radial-gradient(circle at 65% 45%,#fff 0 6%,transparent 6.2%),linear-gradient(150deg,#0b4cae,#25a5e8); }
.p-event__sp-button { display: none; }

.p-fields > .l-container { display: grid; grid-template-columns: .85fr 1.15fr; gap: 5%; align-items: center; }
.p-fields__heading > p:last-child { max-width: 500px; margin-top: 35px; font-size: 15px; line-height: 2; }
.p-fields__orbit { aspect-ratio: 1; position: relative; border: 1px solid #ccd5e2; border-radius: 50%; }
.p-fields__orbit::before, .p-fields__orbit::after { position: absolute; inset: 16%; content: ""; border: 1px solid #dce2eb; border-radius: 50%; }
.p-fields__orbit::after { inset: 34%; background: #eaf2ff; border: 0; }
.p-fields__core { z-index: 2; position: absolute; inset: 39%; display: grid; place-content: center; color: #fff; background: var(--blue); border-radius: 50%; text-align: center; }
.p-fields__core strong {width:100px;font: 900 34px/.9 var(--font-en); }
.p-fields__core span { margin-top: 8px; font: 700 12px var(--font-en); letter-spacing: .1em; }
.p-fields__item { z-index: 3; min-width: 100px; padding: 11px 17px; position: absolute; border: 1px solid #b9c4d2; border-radius: 50px; background: #fff; font-size: 13px; font-weight: 700; text-align: center; box-shadow: 0 10px 30px rgba(9,41,95,.08); }
.p-fields__item--1 { left: 7%; top: 16%; }.p-fields__item--2 { right: 13%; top: 8%; }.p-fields__item--3 { right: -1%; top: 38%; }.p-fields__item--4 { right: 8%; bottom: 15%; }
.p-fields__item--5 { left: 42%; bottom: -2%; }.p-fields__item--6 { left: 2%; bottom: 17%; }.p-fields__item--7 { left: -5%; top: 44%; }.p-fields__item--8 { left: 38%; top: -3%; }

.p-job-details__list { border-top: 1px solid rgba(255,255,255,.22); }
.c-job-row { min-height: 145px; padding: 28px 10px; display: grid; grid-template-columns: 30px 1.5fr .65fr 60px; align-items: center; gap: 80px; border-bottom: 1px solid rgba(255,255,255,.22); transition: background .25s, padding .25s; }
.c-job-row:hover { padding-inline: 25px; background: rgba(255,255,255,.05); }
.c-job-row > span:first-child { color: var(--lime); font: 700 12px var(--font-en); }
.c-job-row h3 { margin-bottom: 10px; font-size: 24px; }
.c-job-row p { margin: 0; color: #aab6ca; font-size: 13px; }
.c-job-row__en { color: #8290a7; font: 700 12px var(--font-en); letter-spacing: .15em; }
.c-job-row button { width: 48px; height: 48px; border: 1px solid #71809a; border-radius: 50%; background: transparent; font-size: 20px; cursor: pointer; }

.p-career__timeline { position: relative; }
.p-career__timeline::before { width: 2px; position: absolute; left: calc(32% + 8px);top: 10px; bottom: 15px; content: ""; background: #ccd7e4; }
.c-career-step { min-height: 190px; display: grid; grid-template-columns: 28% 12px 1fr; gap: 50px; }
.c-career-step__year { padding-top: 4px; display: flex; flex-direction: column; text-align: right; }
.c-career-step__year span { color: var(--blue); font: 800 11px var(--font-en); letter-spacing: .15em; }
.c-career-step__year strong { margin-top: 8px; font-size: 25px; }
.c-career-step__dot { z-index: 2; width: 12px; height: 12px; border: 3px solid var(--blue); border-radius: 50%; background: #fff; }
.c-career-step__body { padding: 0 0 60px 20px; }
.c-career-step__body h3 { margin-bottom: 15px; font-size: 24px; }
.c-career-step__body p { max-width: 600px; margin-bottom: 15px; color: #667181; font-size: 14px; line-height: 1.9; }
.c-career-step__body span { color: #9aa5b4; font: 700 10px var(--font-en); letter-spacing: .14em; }

.p-people__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 25px; }
.c-person-card { color: var(--ink); background: #fff; }
.c-person-card__photo { aspect-ratio: .88; }
.c-person-card__photo > span { z-index: 2; position: absolute; left: 18px; top: 18px; padding: 8px 11px; color: #fff; border: 1px solid rgba(255,255,255,.7); font: 700 10px var(--font-en); letter-spacing: .12em; }
.c-person-card__body { padding: 25px 25px 28px; }
.c-person-card__body > p { min-height: 62px; font-size: 17px; font-weight: 800; line-height: 1.75; }
.c-person-card__body div { padding-top: 18px; display: flex; justify-content: space-between; border-top: 1px solid var(--line); }
.c-person-card__body span { color: #687383; font-size: 10px; }
.c-person-card__body strong { color: var(--blue); font: 800 13px var(--font-en); }
.c-visual--portrait1::before { background: radial-gradient(ellipse at 50% 31%,#f0c7a6 0 9%,transparent 9.4%),linear-gradient(75deg,transparent 0 35%,#09203d 35.5% 62%,transparent 62.5%),linear-gradient(145deg,#b7dfff,#0760dc); }
.c-visual--portrait2::before { background: radial-gradient(ellipse at 50% 29%,#d9aa88 0 9%,transparent 9.4%),linear-gradient(95deg,transparent 0 35%,#dfff00 35.5% 62%,transparent 62.5%),linear-gradient(145deg,#0b2144,#1189ed); }
.c-visual--portrait3::before { background: radial-gradient(ellipse at 50% 31%,#efc6a5 0 9%,transparent 9.4%),linear-gradient(75deg,transparent 0 35%,#f5f8ff 35.5% 62%,transparent 62.5%),linear-gradient(145deg,#579fee,#063994); }

.p-movie__main { width: 100%; aspect-ratio: 2.15; padding: 0; display: block; border: 0; color: #fff; text-align: left; cursor: pointer; }
.p-movie__copy { z-index: 2; position: absolute; left: 6%; top: 16%; font: italic 900 clamp(45px,7vw,95px)/.78 var(--font-en); }
.c-play-button { z-index: 3; width: 90px; height: 90px; position: absolute; left: 50%; top: 50%; display: grid; place-items: center; border-radius: 50%; color: var(--blue); background: var(--lime); transform: translate(-50%,-50%); font-size: 20px; }
.p-movie__caption { z-index: 2; position: absolute; right: 3%; bottom: 5%; font: 700 11px var(--font-en); letter-spacing: .15em; }
.c-visual--movie::before { background: linear-gradient(100deg,rgba(3,18,43,.85),rgba(0,70,190,.15)),radial-gradient(circle at 75% 35%,#dfff00 0 7%,transparent 7.2%),linear-gradient(145deg,#07316e,#1388ea); }
.p-movie__thumbs { margin-top: 22px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.c-movie-thumb { padding: 0; display: grid; grid-template-columns: 130px 1fr; gap: 18px; align-items: center; border: 0; background: none; font-size: 13px; font-weight: 700; text-align: left; cursor: pointer; }
.c-movie-thumb > span:first-child { aspect-ratio: 1.55; display: grid; place-items: center; }
.c-movie-thumb i { z-index: 2; width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; color: var(--blue); background: #fff; font-size: 9px; font-style: normal; }
.c-visual--movie1::before { background: linear-gradient(145deg,#061a39,#057ce4); }.c-visual--movie2::before { background: linear-gradient(145deg,#0a4ba1,#dfff00); }.c-visual--movie3::before { background: linear-gradient(145deg,#9ed7ff,#0542af); }

.p-sns__heading { margin-bottom: 55px; display: flex; justify-content: space-between; align-items: end; }
.p-sns__heading h2 { margin: 0; font-size: clamp(42px,5vw,64px); line-height: 1.25; letter-spacing: -.05em; }
.p-sns__placeholder { padding: 28px; border: 1px solid #d0d8e3; background: #fff; }
.p-sns__profile { padding-bottom: 22px; display: flex; align-items: center; gap: 15px; }
.p-sns__avatar { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--blue); font: 900 23px var(--font-en); }
.p-sns__profile div { display: flex; flex: 1; flex-direction: column; }.p-sns__profile strong { font-size: 13px; }.p-sns__profile div span { color: #7c8797; font-size: 10px; }
.p-sns__profile button { padding: 9px 18px; border: 0; color: #fff; background: var(--blue); font: 700 10px var(--font-en); }
.p-sns__grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 8px; }
.p-sns__grid > div { aspect-ratio: 1; }
.p-sns__placeholder > p { margin: 16px 0 0; color: #a1aab7; font: 700 9px var(--font-en); letter-spacing: .18em; text-align: center; }
.c-visual--sns1::before { background: linear-gradient(145deg,#083987,#0a9cf0); }.c-visual--sns2::before { background: linear-gradient(35deg,#dfff00,#0057df 70%); }.c-visual--sns3::before { background: linear-gradient(145deg,#06162e,#ff5935); }.c-visual--sns4::before { background: linear-gradient(145deg,#8bd1ff,#0345b8); }

.p-numbers__grid { display: grid; grid-template-columns: repeat(3, 1fr); border-left: 1px solid var(--line); border-top: 1px solid var(--line); }
.c-number-card { min-height: 250px; padding: 35px; display: flex; flex-direction: column; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.c-number-card > span { font-size: 13px; font-weight: 700; }
.c-number-card p { margin: auto 0 15px; color: var(--blue); }
.c-number-card strong { font: 900 85px/.75 var(--font-en); letter-spacing: -.04em; }
.c-number-card small { margin-left: 8px; font-size: 13px; font-weight: 700; }
.c-number-card i { color: #8994a4; font-size: 10px; font-style: normal; }
.c-number-card--accent { background: #e9f1ff; }.c-number-card--dark { color: #fff; background: var(--navy); }.c-number-card--dark p { color: var(--lime); }
.p-numbers__note { margin-top: 15px; color: #919baa; font-size: 10px; text-align: right; }

.c-tabs__nav { display: grid; grid-template-columns: repeat(3,1fr); border-bottom: 3px solid var(--blue); }
.c-tabs__nav button { min-height: 74px; border: 1px solid #cad3df; border-bottom: 0; background: #fff; font-weight: 800; cursor: pointer; }
.c-tabs__nav button + button { border-left: 0; }
.c-tabs__nav button.is-active { color: #fff; border-color: var(--blue); background: var(--blue); }
.c-tabs__panel { padding: 60px 70px; background: #fff; }
.c-info-list { margin: 0; }
.c-info-list > div { padding: 24px 0; display: grid; grid-template-columns: 180px 1fr; border-bottom: 1px solid var(--line); }
.c-info-list > div:first-child { padding-top: 0; }.c-info-list > div:last-child { padding-bottom: 0; border: 0; }
.c-info-list dt { color: var(--blue); font-size: 13px; font-weight: 800; }.c-info-list dd { margin: 0; font-size: 13px; line-height: 1.9; }

section.p-flow.l-section.fade-in.is-visible {
    margin: 0;
    padding: 60px 0;
}
.p-flow__list { margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5,1fr); list-style: none; }
.p-flow__list li { min-height: 230px; padding: 25px 15px; position: relative; display: flex; flex-direction: column; align-items: center; border: 1px solid var(--line); border-right: 0; text-align: center; }
.p-flow__list li:last-child { border-right: 1px solid var(--line); }
.p-flow__list li:not(:last-child)::after { z-index: 2; width: 34px; height: 34px; position: absolute; right: -17px; top: 50%; display: grid; place-items: center; content: "→"; border-radius: 50%; color: #fff; background: var(--blue); transform: translateY(-50%); }
.p-flow__list li > span { align-self: flex-start; color: var(--blue); font: 800 11px var(--font-en); }
.p-flow__list i { height: 95px; display: grid; place-items: center; color: var(--blue); font-size: 35px; font-style: normal; }
.p-flow__list strong { margin-bottom: 8px; font-size: 14px; }.p-flow__list small { color: #8993a2; font-size: 10px; }

.p-faq__inner { display: grid; grid-template-columns: .4fr .6fr; gap: 10%; }
.p-faq__heading h2 { font-size: clamp(50px,6vw,78px); line-height: 1.18; letter-spacing: -.06em; }
.p-faq__heading > p:last-child { margin-top: 35px; color: #9aa7ba; font-size: 13px; }
.c-accordion { border-top: 1px solid #465268; }
.c-accordion__item { border-bottom: 1px solid #465268; }
.c-accordion__item button { width: 100%; min-height: 100px; padding: 20px 5px; display: flex; align-items: center; justify-content: space-between; border: 0; background: none; text-align: left; cursor: pointer; }
.c-accordion__item button span { display: flex; align-items: center; gap: 22px; font-size: 14px; font-weight: 600; }
.c-accordion__item button i { color: var(--lime); font: 800 18px var(--font-en); font-style: normal; }
.c-accordion__item button b { color: var(--lime); font-size: 25px; font-weight: 300; transition: transform .25s; }
.c-accordion__item.is-open button b { transform: rotate(45deg); }
.c-accordion__content { max-height: 0; overflow: hidden; transition: max-height .4s ease; }
.c-accordion__content p { padding: 0 48px 30px; margin: 0; color: #aab4c5; font-size: 13px; line-height: 2; }

.p-entry__inner { display: grid; grid-template-columns: .4fr .6fr; gap: 10%; align-items: start; }
.p-entry__heading { position: sticky; top: 130px; }
.p-entry__heading h2 { font-size: clamp(48px,5vw,63px); line-height: 1.25; letter-spacing: -.06em; }
.p-entry__heading > p { color: #687383; font-size: 13px; line-height: 2; }
.p-entry__contact { margin-top: 55px; padding-top: 25px; display: flex; flex-direction: column; border-top: 1px solid var(--line); }
.p-entry__contact span, .p-entry__contact small { color: #808b9a; font-size: 10px; }.p-entry__contact strong { margin: 7px 0; color: var(--blue); font: 800 32px var(--font-en); }
.c-entry-form { padding: 55px; background: var(--gray); }
.c-entry-form__row { margin-bottom: 28px; }
.c-entry-form__row label { margin-bottom: 10px; display: block; font-size: 12px; font-weight: 800; }
.c-entry-form__row label span { margin-left: 8px; padding: 3px 6px; color: #fff; background: var(--blue); font-size: 8px; }
.c-entry-form input, .c-entry-form select, .c-entry-form textarea { width: 100%; padding: 16px 18px; border: 1px solid #ccd4df; border-radius: 0; outline: 0; background: #fff; font-size: 13px; transition: border-color .2s, box-shadow .2s; }
.c-entry-form input:focus, .c-entry-form select:focus, .c-entry-form textarea:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(7,87,232,.1); }
.c-entry-form textarea { resize: vertical; }
.c-entry-form__privacy { margin: 35px 0; display: flex; align-items: center; justify-content: center; gap: 10px; font-size: 11px; cursor: pointer; }
.c-entry-form__privacy input { width: auto; }.c-entry-form__privacy a { color: var(--blue); text-decoration: underline; }
.c-entry-form__submit { width: 100%; }.c-entry-form__notice { min-height: 20px; margin: 12px 0 0; color: var(--blue); font-size: 11px; text-align: center; }

.p-final-cta { height: 650px; position: relative; display: grid; place-items: center; color: #fff; overflow: hidden; }
.p-final-cta__visual, .p-final-cta__overlay { position: absolute; inset: 0; }
.p-final-cta__overlay { background: linear-gradient(90deg,rgba(1,22,58,.8),rgba(0,65,180,.35)); }
.c-visual--final::before { background: radial-gradient(circle at 70% 45%,#dfff00 0 7%,transparent 7.2%),linear-gradient(120deg,transparent 0 55%,rgba(255,255,255,.3) 55.2% 56%,transparent 56.2%),linear-gradient(145deg,#061a38,#0789ed); }
.p-final-cta__content { z-index: 2; position: relative; }
.p-final-cta__content > p { color: var(--lime); font: 800 14px var(--font-en); letter-spacing: .18em; }
.p-final-cta__content h2 { margin: 20px 0 50px; font-size: clamp(50px,7vw,90px); line-height: 1.25; letter-spacing: -.06em; }

.l-footer { padding: 90px 0 35px; color: #fff; background: #030b18; }
.l-footer__top { padding-bottom: 60px; display: flex; align-items: end; justify-content: space-between; border-bottom: 1px solid #293448; }
.c-logo--footer { width: 150px; }.c-logo--footer .c-logo__main { font-size: 60px; }
.l-footer__top p { margin: 0; color: #8996aa; font-size: 12px; line-height: 1.8; text-align: right; }
.l-footer__links { padding: 60px 0; display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: 70px; }
.l-footer__links > div { display: flex; flex-direction: column; align-items: flex-start; gap: 15px; }
.l-footer__links strong { margin-bottom: 8px; color: var(--lime); font: 800 11px var(--font-en); letter-spacing: .18em; }.l-footer__links a { color: #b8c1cf; font-size: 12px; }
.l-footer__links a:hover { color: #fff; }
.l-footer__bottom { padding-top: 28px; display: flex; gap: 35px; border-top: 1px solid #293448; color: #778397; font: 700 9px var(--font-en); letter-spacing: .12em; }.l-footer__bottom span { margin-right: auto; }

.js-reveal { opacity: 0; transform: translateY(35px); transition: opacity .8s ease, transform .8s cubic-bezier(.2,.75,.25,1); }
.js-reveal.is-visible { opacity: 1; transform: translateY(0); }

@media (max-width: 1024px) {
  :root { --container: min(100% - 48px, 900px); --section-space: 110px; }
  .l-header__nav { gap: 20px; }.l-header__nav a { font-size: 12px; }.l-header__inner { padding-inline: 24px; gap: 20px; }
  .p-message .l-container:first-child { gap: 6%; }
  .p-world__gallery { grid-template-rows: 240px 240px; }
  .p-fields > .l-container { grid-template-columns: 1fr 1.2fr; }
  .c-person-card__body > p { font-size: 15px; }
  .p-entry__inner, .p-faq__inner { gap: 6%; }
}

@media (max-width: 767px) {
  :root { --container: calc(100% - 40px); --section-space: 82px; }
  .l-header__inner { height: 68px; padding-inline: 20px; }
  .c-logo { width: 78px; }.c-logo__main { font-size: 34px; }.c-logo__sub { margin-top: 6px; font-size: 6px; }
  .l-header__nav { z-index: 101; position: fixed; inset: 0; padding: 120px 30px 40px; display: flex; flex-direction: column; align-items: flex-start; gap: 0; color: #fff; background: var(--blue); transform: translateX(100%); transition: transform .45s cubic-bezier(.7,0,.2,1); }
  .l-header__nav a { width: 100%; padding: 22px 0; border-bottom: 1px solid rgba(255,255,255,.28); font-size: 28px; }
  .l-header__nav.is-open { transform: translateX(0); }
  .l-header__entry { min-width: 88px; min-height: 40px; padding: 0 13px; margin-left: auto; gap: 10px; font-size: 11px; }
  .c-menu-button { z-index: 102; width: 42px; height: 42px; padding: 0; display: block; position: relative; border: 0; color: currentColor; background: transparent; }
  .c-menu-button span { width: 23px; height: 2px; position: absolute; left: 10px; top: 17px; background: currentColor; transition: .3s; }.c-menu-button span + span { top: 25px; }
  .c-menu-button.is-open { color: #fff; }.c-menu-button.is-open span { top: 21px; transform: rotate(45deg); }.c-menu-button.is-open span + span { transform: rotate(-45deg); }
  .p-hero { min-height: 720px; }
  .p-hero__content { padding-top: 22vh; }
  .p-hero__eyebrow { font-size: 11px; }
  .p-hero__title { margin-top: 25px; font-size: 48px; line-height: 1.28; }
  .p-hero__title-accent { -webkit-text-stroke: 1px #fff; }
  .p-hero__lead { font-size: 14px; line-height: 1.9; }
  .p-hero__actions { margin-top: 35px; align-items: flex-start; flex-direction: column; gap: 25px; }
  .p-hero__actions .c-button { width: 100%; }
  .p-hero__scroll { display: none; }.p-hero__statement { right: -10px; bottom: -5px; font-size: 62px; }
  .c-section-kicker { margin-bottom: 16px; font-size: 12px; }
  .c-section-heading { margin-bottom: 45px; display: block; }.c-section-heading h2 { font-size: 39px; }.c-section-heading > p { margin-top: 22px; font-size: 13px; }
  .c-large-title { font-size: 38px; line-height: 1.45; }
  .p-message .l-container:first-child { display: block; }.c-display-title { font-size: 72px; }.p-message__body { padding-top: 60px; }.p-message__body .p-message__catch { font-size: 26px; }
  .p-message__principles { margin-top: 60px; display: block; border-bottom: 0; }
  .c-principle-card { min-height: auto; padding: 28px 22px 32px 88px; border-left: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  .c-principle-card__icon { width: 50px; height: 50px; margin: 0; position: absolute; left: 20px; top: 45px; font-size: 20px; }.c-principle-card h3 { margin-top: 15px; }
  .p-world__gallery { padding-inline: 12px; display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 180px 180px; }
  .c-gallery-item--wide { grid-row: auto; grid-column: span 2; }
  /* .c-gallery-item:last-child { grid-column: span 2; } */
  .c-marquee__track { font-size: 70px; }
  .p-activity__intro { margin-bottom: 50px; display: block; }.p-activity__intro > p { margin-top: 30px; font-size: 13px; }
  .p-activity__list { display: block; }.c-activity-card { margin-bottom: 45px; }.c-activity-card__visual { aspect-ratio: 1.15; }
  .c-circle-link { display: none; }.p-event__grid { display: block; }.c-event-card { margin-bottom: 45px; }.p-event__sp-button { width: 100%; display: flex; }
  .p-fields > .l-container { display: block; }.p-fields__orbit { margin: 80px 10px 30px; }
  .p-fields__item { min-width: 75px; padding: 8px 9px; font-size: 10px; }.p-fields__core strong { font-size: 24px;width: 62%;text-align: center;margin: 0 auto;}.p-fields__core span{font: 700 7px var(--font-en);}
  .c-job-row { min-height: 135px; grid-template-columns: 20px 1fr 42px; gap: 15px; padding: 10px 5px; }.c-job-row__en { display: none; }.c-job-row h3 { font-size: 18px; }.c-job-row p { font-size: 11px; line-height: 1.7; }.c-job-row button { width: 40px; height: 40px; line-height: 35px;}
  .p-career__timeline::before { left: 5px; }.c-career-step { grid-template-columns: 12px 1fr; gap: 22px; }.c-career-step__year { grid-column: 2; text-align: left; }.c-career-step__dot { grid-column: 1; grid-row: 1; }.c-career-step__body { grid-column: 2; padding: 8px 0 55px; }.c-career-step__body h3 { font-size: 20px; }
  .p-people__grid { display: block; }.c-person-card { margin-bottom: 25px; }.c-person-card__photo { aspect-ratio: 1.05; }
  .p-movie__main { aspect-ratio: .88; }.p-movie__copy { left: 7%; top: 8%; font-size: 50px; }.c-play-button { width: 70px; height: 70px; }
  .p-movie__thumbs { display: block; }.c-movie-thumb { width: 100%; margin-top: 15px; grid-template-columns: 120px 1fr; }
  .p-sns__heading { display: block; }.p-sns__heading h2 { margin-bottom: 30px; font-size: 39px; }.p-sns__placeholder { padding: 14px; }.p-sns__grid { grid-template-columns: repeat(2,1fr); }
  .p-numbers__grid { grid-template-columns: repeat(2,1fr); }.c-number-card { min-height: 190px; padding: 22px; }.c-number-card strong { font-size: 58px; }.c-number-card small { display: block; margin: 8px 0 0; }
  .c-tabs__nav button { min-height: 60px; font-size: 12px; }.c-tabs__panel { padding: 35px 22px; }.c-info-list > div { grid-template-columns: 1fr; gap: 8px; }.c-info-list dt, .c-info-list dd { font-size: 12px; }
  .p-flow__list { grid-template-columns: 1fr; }.p-flow__list li { min-height: auto; padding: 20px; display: grid; grid-template-columns: 30px 50px 1fr; text-align: left; }.p-flow__list li + li { border-top: 0; }.p-flow__list li:last-child { border-right: 1px solid var(--line); }.p-flow__list li:not(:last-child)::after { right: auto; left: 50%; top: auto; bottom: -14px; width: 28px; height: 28px; content: "↓"; transform: translateX(-50%); }.p-flow__list i { height: 45px; font-size: 24px; }.p-flow__list strong { margin: 0; }.p-flow__list small { grid-column: 3; }
  .p-faq__inner, .p-entry__inner { display: block; }.p-faq__heading { margin-bottom: 55px; }.p-faq__heading h2 { font-size: 52px; }.c-accordion__item button { min-height: 90px; }.c-accordion__item button span { gap: 13px; font-size: 12px; }.c-accordion__content p { padding-left: 35px; padding-right: 15px; }
  .p-entry__heading { position: static; margin-bottom: 50px; }.p-entry__heading h2 { font-size: 48px; }.p-entry__contact { margin-top: 35px; }.c-entry-form { padding: 30px 20px; }
  .p-final-cta { height: 570px; }.p-final-cta__content h2 { font-size: 48px; }
  .l-footer { padding-top: 70px; }.l-footer__top { align-items: flex-start; flex-direction: column; gap: 35px; }.l-footer__top p { text-align: left; }.l-footer__links { grid-template-columns: 1fr 1fr; gap: 45px 25px; }.l-footer__links > div:first-child { grid-column: span 2; }.l-footer__bottom { flex-wrap: wrap; gap: 15px 25px; }.l-footer__bottom span { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .js-reveal { opacity: 1; transform: none; }
}


img.attachment-full.size-full.wp-post-image {
    object-fit: cover;
    width: 100%;
    height: 100%;
}

.c-visual:not(.c-visual--hero):not(.c-visual--final)::before{
  display: none;
}

.c-person-card__body span.c-person-card__schedule {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size:0.9rem;
    color: #333;
    margin-top: 8px;
    margin-bottom: 8px;
}

/* 前に「開催期間」というミニラベルを強制的にくっつける */
.c-person-card__schedule::before {
    content: "開催期間";
    font-size: 0.7rem;
    font-weight: bold;
    color: #fff;
    background-color: #333; /* ブランドカラーに変えてもOK */
    padding: 2px 6px;
    border-radius: 3px;
    letter-spacing: 0.05em;
}

.member-wrap .c-person-card__body{
  padding:15px 0 0;
}

.member-wrap .c-person-card__body > p {
    min-height: auto;
}


/**FV**/

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

.fv-wrapper {
  width: 100%;
  overflow: hidden;
  font-family: 'Helvetica Neue', Arial, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", メイリオ, Meiryo, sans-serif;
  color: #1a2b4c;
  background-color: #ffffff;
  margin-top: 5rem;
}

.fv-wrapper .step-fv {
  position: relative;
  width: 100%;
  padding: 30px;
}

/* ==========================================
   背景画像枠
========================================== */
.fv-wrapper .step-fv__bg-box {
  position: relative;
  width: 100%;
  z-index: 1;
  overflow: hidden; 
  border-radius: 28px;
}

.fv-wrapper .step-fv__bg-image,
.fv-wrapper .step-fv__bg-box picture img {
  width: 100%;
  height: auto;
  display: block;
}

/* ==========================================
   背景の上に重ねるエリア
========================================== */
.fv-wrapper .step-fv__inner {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
  padding: 0 4%;
  display: flex;
  align-items: center;
  box-sizing: border-box;
}

/* テキストコンテンツ */
.fv-wrapper .step-fv__content {
  width: 40%;
  z-index: 10;
  margin-bottom: 4vw;
}

.fv-wrapper .step-fv__title-main {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
}

.fv-wrapper .step-fv__title-sub {
  display: block;
  width: 100%;
  max-width: 80%;
  height: auto;
  margin: 0 auto;
}

/* ==========================================
   ボタン設定（クラス名完全独自化）
========================================== */
.fv-wrapper .step-fv__action-group {
  display: flex;
  gap: 12px;
  margin-top: 6%;
}

.fv-wrapper .step-fv__action-group--sp,
.fv-wrapper .step-fv__bottom-area {
  display: none;
}

.fv-wrapper .step-fv__link-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 48%;
  height: 70px;
  border-radius: 54px;
  font-weight: bold;
  font-size: 0.95rem;
  text-decoration: none;
  transition: transform 0.2s, opacity 0.2s;
  box-shadow: 0 4px 10px rgba(0,0,0,0.08);
  font-family: var(--font-jp);
}

.fv-wrapper .step-fv__link-button:hover {
  transform: translateY(-2px);
  opacity: 0.9;
}

.fv-wrapper .step-fv__link-button--yellow {
  background-color: #c6fb00;
  color: #1c3d82;
}

.fv-wrapper .step-fv__link-button--white {
  background-color: #ffffff;
  color: #2b62d9;
  border: 2px solid #2b62d9;
}

.fv-wrapper .step-fv__icon-arrow {
  height: 12px;
  width: auto;
}

.fv-wrapper .step-fv__icon-arrow--blue {
  filter: invert(31%) sepia(91%) saturate(2321%) hue-rotate(213deg) brightness(92%) contrast(89%);
}

/* ==========================================
   人物配置
========================================== */
.fv-wrapper .step-fv__people-container {
  position: absolute;
  top: 0;
  right: 0;
  width: 60%;
  height: 100%;
}

.fv-wrapper .step-fv__member {
  position: absolute;
  opacity: 0;
  transform: scale(0.92) translateY(30px);
  animation: stepFvFadeUp 0.75s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.fv-wrapper .step-fv__member img {
  width: 100%;
  height: auto;
  display: block;
}

@keyframes stepFvFadeUp {
  0% {
    opacity: 0;
    transform: scale(0.92) translateY(30px);
  }
  100% {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

.fv-wrapper .step-fv__member--03 { top: 0vw; left: 12vw; width: 18vw; z-index: 1; animation-delay: 0.3s; }
.fv-wrapper .step-fv__member--02 { bottom: -11vw; left: 4vw; width: 20vw; z-index: 2; animation-delay: 0.3s; }
.fv-wrapper .step-fv__member--04 { top: 2vw; right: 1vw; width: 22vw; z-index: 1; animation-delay: 0.7s; }
.fv-wrapper .step-fv__member--05 { bottom: -1vw; right: -5vw; width: 18vw; z-index: 2; animation-delay: 0.7s; }
.fv-wrapper .step-fv__member--01 { bottom: -22vw; left: 13vw; width: 35vw; z-index: 5; animation-delay: 1.15s; }


/* ==========================================
   SP（スマートフォン）対応
========================================== */
@media screen and (max-width: 767px) {
  .fv-wrapper .pc-only,
  .fv-wrapper .step-fv__action-group--pc {
    display: none !important;
  }

  .fv-wrapper .step-fv__inner {
    padding: 6% 4% 0;
    flex-direction: column;
  }

  .fv-wrapper .step-fv__content {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  .fv-wrapper .step-fv__title-main { max-width: 280px; }
  .fv-wrapper .step-fv__title-sub { max-width: 220px; margin-top: 8px; }

  .fv-wrapper .step-fv__people-container {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 65%;
  }

  .fv-wrapper .step-fv__member--03 { top: 0%; left: 10%; width: 42%; z-index: 1; animation-delay: 0.3s; }
  .fv-wrapper .step-fv__member--04 { top: 5%; right: 5%; width: 44%; z-index: 1; animation-delay: 0.7s; }
  .fv-wrapper .step-fv__member--02 { bottom: 0%; left: 0%; width: 50%; z-index: 2; animation-delay: 0.9s; }
  .fv-wrapper .step-fv__member--01 { bottom: 0%; right: 0%; left: auto; width: 60%; z-index: 5; animation-delay: 1.25s; }

  .fv-wrapper .step-fv__bottom-area {
    display: block;
    width: 100%;
    padding: 20px 0;
    background-color: #fff;
  }

  .fv-wrapper .step-fv__action-group--sp {
    display: flex;
    justify-content: center;
    width: 100%;
    gap: 12px;
  }

  .fv-wrapper .step-fv__link-button {
    width: 48%;
    height: 46px;
    font-size: 0.85rem;
  }
}


/* 外枠 */
.fv-wrapper * {
  box-sizing: border-box !important;
  margin: 0;
  padding: 0;
}

.fv-wrapper {
  width: 100%;
  overflow: hidden;
  font-family: 'Helvetica Neue', Arial, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", メイリオ, Meiryo, sans-serif;
  color: #1a2b4c;
  background-color: #ffffff;
}

.fv-wrapper .step-fv {
  position: relative;
  width: 100%;
  padding: 30px;
}

/* ==========================================
   背景画像枠
========================================== */
.fv-wrapper .step-fv__bg-box {
  position: relative;
  width: 100%;
  z-index: 1;
  overflow: hidden; 
}

.fv-wrapper .step-fv__bg-image,
.fv-wrapper .step-fv__bg-box picture img {
  width: 100%;
  height: auto;
  display: block;
}

/* ==========================================
   背景画像の上に重ねるエリア
========================================== */
.fv-wrapper .step-fv__inner {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
  padding: 0 4%;
  display: flex;
  align-items: center;
  box-sizing: border-box;
}

/* テキスト＆ボタンコンテンツ親枠 */
.fv-wrapper .step-fv__content {
  width: 40%;
  z-index: 10;
  margin-bottom: 4vw;
}

.fv-wrapper .step-fv__title-main {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
}

.fv-wrapper .step-fv__title-sub {
  display: block;
  width: 100%;
  max-width: 80%;
  height: auto;
  margin: 0 auto;
}

/* ==========================================
   ボタン設定（aタグのはみ出し完全防止）
========================================== */
.fv-wrapper .step-fv__action-group {
  display: flex;
  flex-wrap: wrap; /* 万が一幅を超えても折り返して崩れを防ぐ */
  align-items: center;
  gap: 12px;
  margin-top: 6%;
  width: 100%;
}

.fv-wrapper .step-fv__action-group--sp,
.fv-wrapper .step-fv__bottom-area {
  display: none;
}

/* ★aタグ本体のはみ出し防止記述 */
.fv-wrapper a.step-fv__link-button {
   font-family: var(--font-jp);
  display: flex !important; /* flex化して内部パーツを中央揃え */
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: calc(50% - 6px); /* gap分（12pxの半分）を引いて確実に枠内に収める */
  max-width: 100%;
  height: 70px;
  border-radius: 54px;
  font-weight: bold;
  font-size: 0.95rem;
  text-decoration: none;
  transition: transform 0.2s, opacity 0.2s;
  box-shadow: 0 4px 10px rgba(0,0,0,0.08);
  box-sizing: border-box !important; /* パディングや境界線によるサイズオーバーを阻止 */
  overflow: hidden; /* 中身が外にはみ出るのをカット */
}

.fv-wrapper a.step-fv__link-button:hover {
  transform: translateY(-2px);
  opacity: 0.9;
}

.fv-wrapper a.step-fv__link-button--yellow {
  background-color: #c6fb00;
  color: #1c3d82;
}

.fv-wrapper a.step-fv__link-button--white {
  background-color: #ffffff;
  color: #2b62d9;
  border: 2px solid #2b62d9;
}

.fv-wrapper .step-fv__icon-arrow {
  height: 12px;
  width: auto;
  display: inline-block;
}

.fv-wrapper .step-fv__icon-arrow--blue {
  filter: invert(31%) sepia(91%) saturate(2321%) hue-rotate(213deg) brightness(92%) contrast(89%);
}

/* ==========================================
   人物配置
========================================== */
.fv-wrapper .step-fv__people-container {
  position: absolute;
  top: 0;
  right: 0;
  width: 60%;
  height: 100%;
}

.fv-wrapper .step-fv__member {
  position: absolute;
  opacity: 0;
  transform: scale(0.92) translateY(30px);
  animation: stepFvFadeUp 0.75s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.fv-wrapper .step-fv__member img {
  width: 100%;
  height: auto;
  display: block;mix-blend-mode: multiply;
  filter: drop-shadow(0 3px 7px rgba(0, 0, 0, 0.15));
}

@keyframes stepFvFadeUp {
  0% {
    opacity: 0;
    transform: scale(0.92) translateY(30px);
  }
  100% {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

.fv-wrapper .step-fv__member--03 { top: 0vw; left: 12vw; width: 18vw; z-index: 1; animation-delay: 0.3s; }
.fv-wrapper .step-fv__member--02 { bottom: -11vw; left: 4vw; width: 20vw; z-index: 2; animation-delay: 0.3s; }
.fv-wrapper .step-fv__member--04 { top: 2vw; right: 1vw; width: 22vw; z-index: 1; animation-delay: 0.7s; }
.fv-wrapper .step-fv__member--05 { bottom: -1vw; right: -5vw; width: 18vw; z-index: 2; animation-delay: 0.7s; }
.fv-wrapper .step-fv__member--01 { bottom: -22vw; left: 13vw; width: 35vw; z-index: 5; animation-delay: 1.15s; }


/* ==========================================
   SP（スマートフォン）対応
========================================== */
@media screen and (max-width: 767px) {
  .fv-wrapper .pc-only,
  .fv-wrapper .step-fv__action-group--pc {
    display: none !important;
  }

  .fv-wrapper .step-fv__inner {
    padding: 1% 4% 0;
    flex-direction: column;
  }

  .fv-wrapper .step-fv__content {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  .fv-wrapper .step-fv__title-main { max-width: 280px;height:140px;}
  .fv-wrapper .step-fv__title-sub { max-width: 220px; margin-top: 8px; }

  .fv-wrapper .step-fv__people-container {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 65%;
  }

  .fv-wrapper .step-fv__member--03 { top: 49vw;left: 4vw;width: 41vw; z-index: 1; animation-delay: 0.3s; }
  .fv-wrapper .step-fv__member--04 { top: 42vw;right: 5vw;width: 44vw; z-index: 1; animation-delay: 0.7s; }
  .fv-wrapper .step-fv__member--02 {bottom: -84vw;left: 0%;width: 50vw; z-index: 2; animation-delay: 0.9s; }
  .fv-wrapper .step-fv__member--01 {bottom: -94vw;right: -5vw;left: auto;width: 67vw; z-index: 5; animation-delay: 1.25s; }

  .fv-wrapper .step-fv__bottom-area {
    display: block;
    width: 100%;
    padding: 20px 15px;
    background-color: #fff;
  }

  .fv-wrapper .step-fv__action-group--sp {
    display: flex;
    justify-content: center;
    width: 100%;
    gap: 12px;
  }

  .fv-wrapper a.step-fv__link-button {
    width: calc(50% - 6px);
    height: 44px;
    font-size: 12px;
  }
  .fv-wrapper .step-fv__action-group{
    margin-top:0;
  }
  .fv-wrapper .step-fv{
    padding: 20px;
  }
  .fv-wrapper .step-fv__bg-box {
    border-radius: 10px;
  }
}

.mynavi_link{
  max-width: 500px;
  width:90%;
  margin: 50px auto 0;
  background: var(--blue);
  color: #fff;
  font-size: 16px;
  font-weight: bold;
  min-height: 58px;
  padding: 0 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 38px;
  border: 0;
  font-size: 14px;
  font-weight: 800;
  transition: transform .25s, background .25s, color .25s;
  cursor: pointer;
}

/* フェードインさせたい要素の初期状態 */
.fade-in {
  opacity: 0;
  transform: translateY(30px); /* 30px 下から */
  transition: opacity 0.8s ease, transform 0.8s ease;
}

/* スクロールして画面に入った時に付与するクラス */
.fade-in.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.pcbr {
  display: block;
}

.spbr {
  display: none;
}

@media screen and (max-width: 767px) {
  .pcbr {
    display: none;
  }

  .spbr {
    display: block;
  }
}

.logotxt{
  display: inline-block;
  width: 240px;
  vertical-align: middle;
}
@media screen and (max-width: 1400px) {
.logotxt{
  width: 13vw;
}
}

@media screen and (max-width: 768px) {
.logotxt{
  width: 100px;
}
}

.f-logotxt{
  display: inline-block;
  width: 160px;
  vertical-align: middle;
  margin: 0 0 0 6px;
}
@media screen and (max-width: 1400px) {
.f-logotxt{
  width: 13vw;
}
}

@media screen and (max-width: 768px) {
.f-logotxt{
  width:78px;
  vertical-align: text-bottom;
  margin: 0 0 0 2px;
}
}


.toplogotxt{
  display: inline-block;
  width: 180px;
  vertical-align: middle;
}
@media screen and (max-width: 1400px) {
.toplogotxt{
  width: 13vw;
}
}

@media screen and (max-width: 768px) {
.toplogotxt{
  width: 100px;
}
}
