/* トップページ */
body[data-page=home] { --home-surface: #f7f7f5; --home-section-space: 80px; }
.corporate-hero { min-height: 640px; }
.corporate-hero::before { background: linear-gradient(90deg,rgba(52,29,19,.86),rgba(70,36,18,.42) 60%,rgba(244,127,55,.08)); }
/* 背景の光のアニメーション */
.hero-light-field { display: none; position: absolute; inset: 0; z-index: -1; pointer-events: none; transform: translate3d(var(--light-x, 0px), var(--light-y, 0px), 0); transition: transform 650ms cubic-bezier(.2,.7,.2,1); }
.hero-light-field > span { position: absolute; width: clamp(360px, 40vw, 680px); aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(244,127,55,.8), rgba(244,127,55,.5) 26%, rgba(244,127,55,.16) 48%, transparent 70%); animation-play-state: paused; }
.hero-light-primary { left: 12%; top: -30%; animation: hero-light-orbit 12s ease-in-out infinite alternate; }
.hero-light-secondary { right: -12%; bottom: -38%; animation: hero-light-sweep 16s ease-in-out infinite alternate; }
.corporate-hero.is-motion-active .hero-light-field > span { animation-play-state: running; }
@keyframes hero-light-orbit { from { transform: translate3d(0, 0, 0) scale(.85); } to { transform: translate3d(115%, 28%, 0) scale(1.12); } }
@keyframes hero-light-sweep { from { transform: translate3d(0, 0, 0) scale(1.1); } to { transform: translate3d(-115%, -30%, 0) scale(.9); } }
.client-logos { position: relative; padding: 18px 0 24px; background: #fff; }
.client-logo-viewport { overflow-x: auto; padding-inline: 24px; scrollbar-width: thin; }
.client-logo-track { display: flex; width: max-content; animation: client-logo-flow var(--client-logo-duration, 64s) linear infinite; animation-play-state: paused; }
.client-logo-group { display: flex; align-items: center; gap: 44px; padding: 0 44px 0 0; margin: 0; list-style: none; }
.client-logo-group > li { display: flex; align-items: center; justify-content: center; flex: 0 0 124px; width: 124px; height: 48px; }
.client-logo-group img { display: block; width: 124px; height: 44px; object-fit: contain; filter: grayscale(1); opacity: .88; transition: filter .25s ease, transform .25s ease, opacity .25s ease; }
.client-logo-group img[data-display-mode=color] { filter: none; opacity: 1; }
.client-logo-link { position: relative; display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; color: var(--muted); border-radius: 8px; }
.client-logo-link:is(:hover, :focus-visible) { color: var(--brand); }
.client-logo-link:is(:hover, :focus-visible) img { opacity: 1; }
.client-logo-link:focus-visible { outline: 2px solid var(--brand); outline-offset: -2px; }
.client-logo-group[aria-hidden=true] { display: none; }
.client-logos.is-managed .client-logo-viewport { overflow: hidden; }
.client-logos.is-managed .client-logo-group[aria-hidden=true] { display: flex; }
.client-logos.is-running .client-logo-track { animation-play-state: running; }
.client-logos:focus-within .client-logo-track { animation-play-state: paused; }
@keyframes client-logo-flow { to { transform: translate3d(calc(-1 * var(--client-logo-cycle, 50%)), 0, 0); } }
@media (max-width: 767px) {
 .hero-light-secondary { display: none; }
 .hero-light-primary { width: 460px; left: -55%; top: -8%; animation-duration: 16s; }
 .client-logo-viewport { overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; }
 .client-logos.is-managed .client-logo-viewport { overflow-x: auto; overflow-y: hidden; }
 .client-logo-track { animation: none; }
 .client-logo-group { gap: 24px; padding-right: 24px; }
 .client-logo-group > li { flex-basis: 96px; width: 96px; height: 44px; }
 .client-logo-group img { width: 96px; height: 40px; }
}
@media (prefers-reduced-motion: reduce) {
 .hero-light-field { transform: none; transition: none; }
 .hero-light-field > span { animation: none; opacity: .45; }
 .client-logo-track { animation: none; }
}
.hero-copy { padding-block: 112px; }
.hero-copy h1 { font-size: clamp(36px,3.65vw,54px); line-height: 1.45; }
.hero-tagline { color: #fff; font-size: 18px; margin-bottom: 24px; }
.hero-description { max-width: 640px; font-size: 18px; line-height: 1.85; margin-top: 24px; }
.hero-actions { gap: 16px; margin-top: 32px; }
.hero-actions .button { min-height: 60px; padding-inline: 28px; }
.video-control { bottom: 20px; }
.home-section, body[data-page=home] .home-news { padding-block: var(--home-section-space); }
.home-section-heading { margin-bottom: 36px; }
.home-section h2 { font-size: 36px; line-height: 1.5; letter-spacing: .01em; margin: 0 0 20px; }
.home-section p { font-size: 18px; line-height: 1.9; }
.home-section-heading p { color: #5b6260; }
.home-inline-link { display: inline-flex; align-items: center; min-height: 48px; margin-top: 20px; font-size: 16px; font-weight: 600; text-decoration: none; transition: color .2s, transform .2s; }
.home-inline-link:hover { color: var(--brand-ink); transform: translateX(4px); }
.home-inline-link:focus-visible { outline: 2px solid var(--brand-ink); outline-offset: 4px; }
.home-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 24px; margin: 0; }
.home-metrics > div { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 28px 12px; background: var(--home-surface); border-radius: 12px; min-width: 0; }
.home-metric-icon { width: 36px; height: 36px; color: var(--brand); margin-bottom: 20px; }
.home-metrics dt { order: 2; font-size: 14px; line-height: 1.7; color: #626966; }
.home-metrics dd { margin: 0 0 10px; color: var(--ink); font-size: clamp(22px,2vw,30px); font-weight: 700; line-height: 1.4; }
.home-reform { background: #faf8f3; }
.home-reform-grid { display: grid; grid-template-columns: minmax(0,1fr); gap: 12px; }
.home-reform .home-reform-date { font-size: 16px; color: var(--brand); font-weight: 600; margin-bottom: 16px; }
.home-refund-flow { list-style: none; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; padding: 0; margin: 36px 0 0; }
.home-refund-flow li { display: flex; flex-direction: column; gap: 10px; align-items: center; justify-content: center; padding: 24px; background: #fff; border-radius: 8px; font-size: 18px; font-weight: 600; text-align: center; }
.home-flow-step { color: var(--brand); font-size: 13px; font-weight: 700; letter-spacing: .1em; line-height: 1.4; }
.home-services { scroll-margin-top: 110px; }
.home-service-list { display: grid; gap: 56px; }
.home-service { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.15fr); gap: 64px; align-items: center; }
.home-service:nth-child(even) .home-service-visual { order: 2; }
.home-service-visual { height: 300px; display: grid; grid-template-rows: minmax(0,1fr); place-items: center; background: var(--home-surface); border-radius: 12px; padding: 24px; }
.home-service-visual > img { width: 100%; height: 100%; min-height: 0; min-width: 0; object-fit: contain; }
.home-service-visual:has(.home-counter-photo) { padding: 0; overflow: hidden; }
.home-service-visual > .home-counter-photo { object-fit: cover; object-position: 50% 15%; }
@media (max-width: 767px) {
 .home-service-visual:has(.home-counter-photo) { height: auto; aspect-ratio: 4 / 3; }
}
.home-service .home-service-label { font-size: 16px; color: var(--brand); font-weight: 600; margin-bottom: 16px; }
.home-service h3 { font-size: 28px; line-height: 1.55; margin-bottom: 20px; }
.home-service-copy > p:not(.home-service-label) { color: #5b6260; }
.home-platforms { display: grid; align-items: center; justify-items: center; gap: 24px; width: 100%; }
.home-platforms img { width: auto; height: auto; max-width: 180px; max-height: 54px; object-fit: contain; }
.home-why { background: var(--home-surface); }
.home-benefits { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.home-benefit { padding: 32px; border-radius: 12px; background: #fff; }
.home-benefit:first-child { grid-column: 1 / -1; background: var(--ink); color: #fff; padding: 40px; }
.home-benefit h3 { font-size: 24px; line-height: 1.5; margin-bottom: 16px; }
.home-benefit p { color: #5b6260; }
.home-benefit:first-child p { color: #e5e7e3; }
.home-company { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: 64px; align-items: center; }
.home-company-visual img { width: 100%; height: 440px; object-fit: cover; border-radius: 12px; }
.home-company-copy > p { color: #5b6260; }
.home-country-links { display: flex; gap: 24px; flex-wrap: wrap; margin-top: 12px; }
.home-company-links { display: flex; flex-wrap: wrap; gap: 8px 28px; }
.home-start { background: #faf8f3; }
.home-start-steps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; list-style: none; padding: 0; margin: 32px 0; }
.home-start-steps li { display: flex; gap: 16px; align-items: center; font-size: 18px; font-weight: 600; }
.home-step-number { display: grid; place-items: center; flex: none; width: 36px; height: 36px; background: var(--brand); color: white; border-radius: 50%; font-size: 16px; }
.home-start-action .button { min-height: 60px; }
.home-traveler { display: flex; gap: 32px; justify-content: space-between; align-items: center; padding-block: var(--home-section-space); }
.home-traveler h2 { font-size: 22px; margin-bottom: 8px; }
.home-traveler p { font-size: 16px; }
.home-traveler nav { display: flex; flex-wrap: wrap; gap: 12px 28px; }
.home-traveler .home-inline-link { margin-top: 0; }
body[data-page=home] .contact-band { display: none; }
@media (max-width: 1000px) {
 .home-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .home-reform-grid, .home-service, .home-company { gap: 32px; }
 .home-section h2 { font-size: 32px; }
 .home-service h3 { font-size: 26px; }
 .home-refund-flow { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .home-service-visual { height: 280px; }
}
@media (max-width: 767px) {
 .corporate-hero { min-height: 580px; }
 body[data-page=home] { --home-section-space: 48px; }
 .hero-copy { padding-block: 80px; }
 .hero-copy h1 { font-size: 32px; }
 .hero-tagline, .hero-description { font-size: 16px; }
 .hero-actions { display: flex; flex-direction: column; max-width: 360px; }
 .hero-actions .button { width: 100%; min-height: 52px; }
 .home-section h2 { font-size: 28px; }
 .home-section p { font-size: 16px; }
 .home-section-heading { margin-bottom: 28px; }
 .home-metrics { gap: 12px; }
 .home-metrics > div { padding: 24px 12px; }
 .home-metrics dd { font-size: 22px; }
 .home-reform-grid, .home-service, .home-company, .home-benefits, .home-start-steps { grid-template-columns: minmax(0,1fr); gap: 24px; }
 .home-service:nth-child(even) .home-service-visual { order: 0; }
 .home-service-visual { height: 260px; }
 .home-service-list { gap: 40px; }
 .home-service h3 { font-size: 24px; }
 .home-benefit, .home-benefit:first-child { padding: 24px; }
 .home-benefit h3 { font-size: 22px; }
 .home-refund-flow li { font-size: 16px; padding: 20px 12px; }
 .home-company-visual img { height: 280px; }
 .home-start-steps { gap: 20px; }
 .home-start-steps li { font-size: 16px; }
 .home-traveler { align-items: flex-start; flex-direction: column; gap: 20px; }
}
@media (max-width: 360px) { .hero-copy h1 { font-size: 28px; } .home-metrics dd { font-size: 20px; } }
@media (prefers-reduced-motion: reduce) { .home-inline-link { transition: none; } .home-inline-link:hover { transform: none; } }

.hero-description { text-wrap: pretty; }
.hero-overlay, .hero-heading, .hero-detail { display: contents; }
@media (max-width: 767px) {
 body[data-page=home] .corporate-hero { display: grid; grid-template-columns: minmax(0,1fr); grid-template-rows: 1fr 1fr; min-height: calc(100svh - 76px); margin: 0; border-radius: 0; overflow: hidden; background: #161b1d; }
 .corporate-hero .hero-light-field { display: none; }
 .corporate-hero::before { display: block; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(0deg,rgba(22,27,29,.94) 0%,rgba(22,27,29,.88) 30%,rgba(22,27,29,.60) 43%,rgba(22,27,29,0) 50%,rgba(22,27,29,0) 100%); }
 .corporate-hero .hero-content, .corporate-hero .hero-copy { display: contents; }
 .corporate-hero .hero-overlay { display: block; grid-row: 2; grid-column: 1; align-self: end; z-index: 2; margin: 0 24px 24px; padding-top: 24px; animation: none; }
 .corporate-hero .hero-heading { display: block; margin: 0; padding: 0; border-radius: 0; background: transparent; animation: none; }
 .corporate-hero .hero-tagline { color: #fff; font-size: 12px; font-weight: 600; letter-spacing: .04em; line-height: 1.7; margin-bottom: 12px; max-width: none; text-shadow: 0 1px 8px rgba(0,0,0,.5); }
 .corporate-hero .hero-heading h1 { color: #fff; font-size: clamp(22px,6.8vw,30px); line-height: 1.45; letter-spacing: -.025em; margin: 0; }
 .corporate-hero .hero-title-accent { color: #f5d94f; }
 .corporate-hero .hero-film { position: absolute; inset: 0; z-index: 0; height: 100%; min-height: 0; margin: 0; overflow: hidden; border-radius: 0; }
 .corporate-hero .hero-video { object-position: 50% center; animation: none; }
 .corporate-hero .video-control { position: absolute; top: 12px; right: 12px; bottom: auto; margin: 0; z-index: 3; }
 .corporate-hero .hero-detail { display: block; padding: 0; animation: none; }
 .corporate-hero .hero-description { color: #fff; font-size: 14px; font-weight: 500; line-height: 1.8; margin: 16px 0 0; line-break: strict; word-break: normal; overflow-wrap: break-word; text-wrap: pretty; text-shadow: 0 1px 8px rgba(0,0,0,.4); }
 .corporate-hero .hero-description .hero-keep { white-space: nowrap; }
 .corporate-hero .hero-actions { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(0,1fr); max-width: none; margin-top: 20px; gap: 10px; }
 .corporate-hero .hero-actions .button { min-width: 0; min-height: 52px; padding: 12px 10px; font-size: 12px; line-height: 1.5; }
 .corporate-hero .hero-actions .button::after { width: 16px; height: 16px; flex: 0 0 16px; margin-inline-start: 6px; }
 .corporate-hero .button-hero-secondary { background: rgba(22,27,29,.55); border: 2px solid #fff; color: #fff; }
 .corporate-hero .button-hero-secondary:is(:hover,:focus-visible) { background: rgba(22,27,29,.80); color: #fff; }
}

/* マーケティング紹介の画像 */
.home-service-visual:has(.home-magazine-fan) { background: white; padding: 8px; }
.home-service-visual > .home-magazine-fan { width: min(100%,378px); height: auto; aspect-ratio: 4 / 3; max-height: none; object-fit: contain; }

/* PCの文字周辺を暗くする */
@media (min-width: 768px) {
 .corporate-hero .hero-video { object-position: 50% center; }
 body[data-page=home] .corporate-hero::before { background: linear-gradient(90deg,rgba(22,27,29,.88) 0%,rgba(22,27,29,.80) 30%,rgba(22,27,29,.50) 42%,rgba(22,27,29,0) 50%,rgba(22,27,29,0) 100%); }
 .corporate-hero .hero-tagline { font-size: 18px; font-weight: 700; letter-spacing: .055em; line-height: 1.8; }
 .corporate-hero .hero-description { max-width: min(500px, 42vw); font-size: 20px; font-weight: 500; line-height: 1.85; color: #fff; line-break: strict; word-break: normal; overflow-wrap: break-word; text-wrap: pretty; text-shadow: 0 1px 8px rgba(22,27,29,.35); }
 .corporate-hero .hero-description .hero-keep { white-space: nowrap; }
 .corporate-hero .button-hero-secondary { background: rgba(22,27,29,.72); border: 2px solid #fff; color: #fff; font-weight: 600; }
 .corporate-hero .button-hero-secondary:is(:hover,:focus-visible) { background: rgba(22,27,29,.90); color: #fff; }
 .corporate-hero .button-hero-secondary:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
}



/* 見出しを文節ごとに表示 */
@media (min-width: 768px) {
 .corporate-hero .hero-title-accent { color: #f5d94f; }
 .corporate-hero .hero-title-line > span:has(> .hero-title-accent) { animation: none; }
 .corporate-hero .hero-accent-part { display: inline-block; animation: hero-accent-reveal .62s cubic-bezier(.22,1,.36,1) .32s both; }
 .corporate-hero .hero-accent-part:nth-child(2) { animation-delay: .50s; }
}
@keyframes hero-accent-reveal { from { opacity: 0; transform: translateY(.18em); } to { opacity: 1; transform: translateY(0); } }
@media (min-width: 768px) and (prefers-reduced-motion: reduce) {
 .corporate-hero .hero-accent-part { animation: none; }
}

@media (max-width: 767px) {
 .client-logos { padding: 16px 0 20px; }
 .client-logo-viewport { padding-inline: 16px; }
}

/* 名称に合わせて高さを確保 */
.client-logos.has-names .client-logo-group { align-items: stretch; }
.client-logos.has-names .client-logo-group > li { height: auto; min-height: 84px; align-items: stretch; }
.client-logos.has-names .client-logo-link { flex-direction: column; justify-content: flex-start; height: auto; padding-block: 4px 8px; gap: 6px; }
.client-logos.has-names .client-logo-group img { flex-shrink: 0; }
.client-logo-name { display: block; flex: 0 0 auto; width: 100%; font-size: 11px; line-height: 1.5; text-align: center; color: var(--muted); overflow-wrap: anywhere; }
@media (max-width: 767px) { .client-logo-name { font-size: 10px; } }

/* メインビジュアルの文言切替 */
.corporate-hero .hero-heading.is-rotating { display: block; transition: opacity .22s ease; }
.corporate-hero .hero-heading.is-switching { opacity: 0; }
.corporate-hero .hero-heading.hero-slide-measure { display: block; position: absolute; inset: 0 auto auto 0; visibility: hidden; pointer-events: none; height: auto; min-height: 0; }
.hero-heading.is-rotating .hero-title-line > span { animation: none; }
.hero-message-controls { display: flex; align-items: center; gap: 8px; margin-top: 16px; color: white; font-size: 12px; }
.hero-message-controls button { width: 36px; height: 36px; border: 1px solid rgba(255,255,255,.5); border-radius: 50%; color: white; background: rgba(22,27,29,.35); cursor: pointer; }
.hero-message-controls button:focus-visible { outline: 2px solid white; outline-offset: 3px; }
@media (max-width:767px) { .hero-message-controls button { width: 44px; height: 44px; } }
@media (prefers-reduced-motion:reduce) { .corporate-hero .hero-heading.is-rotating { transition: none; } }

/* モノクロロゴのホバー表示 */
.client-logo-link:focus-visible img:not([data-display-mode=color]) { filter: none; opacity: 1; transform: scale(1.06); }
@media (hover:hover) and (pointer:fine) {
 .client-logo-link:hover img:not([data-display-mode=color]) { filter: none; opacity: 1; transform: scale(1.06); }
}
@media (prefers-reduced-motion:reduce) {
 .client-logo-group img { transition: none; }
 .client-logo-link:is(:hover,:focus-visible) img { transform: none; }
}

.home-trust .home-trust-scope { margin: 0 0 16px; color: #ac4b18; font-size: 14px; font-weight: 700; }
.home-metrics.home-metrics--regional { grid-template-columns: repeat(4,minmax(0,1fr)); }
.home-trust .home-trust-note { margin: 12px 0 0; color: #737b78; font-size: 12px; line-height: 1.6; text-align: right; }
.home-network-metric { display: flex; align-items: center; gap: 18px; margin-top: 32px; }
.home-network-metric .home-metric-icon { flex: none; margin: 0; }
.home-network-metric p { display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px 24px; margin: 0; }
.home-network-metric span { color: #626966; font-size: 14px; }
.home-network-metric strong { font-size: 24px; color: var(--ink); }
@media (max-width: 900px) { .home-metrics.home-metrics--regional { grid-template-columns: repeat(2,minmax(0,1fr)); } }

/* 支給アイコンの余白をそろえて表示 */
.home-flow-icon { position:relative;display:block;flex-shrink:0;width:88px;height:88px;overflow:hidden;margin:4px 0; }
.home-flow-icon img { position:absolute;display:block;width:var(--flow-image-size);height:var(--flow-image-size);max-width:none;left:var(--flow-image-left);top:var(--flow-image-top); }
@media(max-width:767px) { .home-flow-icon { width:72px;height:72px; } }

/* 買い物イラストの余白 */
.home-service-visual:has(.home-shopping-art) { padding: 18px; }

.home-metrics .home-metric-icon { width: 64px; height: 64px; object-fit: contain; flex: none; margin-bottom: 16px; }
@media (max-width: 767px) { .home-metrics .home-metric-icon { width: 52px; height: 52px; margin-bottom: 14px; } }
