/* FC ASAKURA · final editorial system */
:root{--paper:#faf9f3;--ink:#191918;--yellow:#f3ce00;--surface-line:#19191826}
::selection{background:#f3ce00;color:#191918}
html{scroll-padding-top:100px}
body{font-feature-settings:'palt';text-rendering:optimizeLegibility}
.skip-link{position:fixed;top:12px;left:16px;z-index:200;padding:12px 20px;background:#191918;color:#fff;transform:translateY(-160%)}
.skip-link:focus{transform:none}
.nav{background:#f3ce00ed;box-shadow:none;backdrop-filter:blur(16px);padding-block:12px}
.nav__cta{box-shadow:none;border-radius:3px;min-height:44px;display:flex;align-items:center}
.nav__cta:hover{box-shadow:none;background:#34342c}
.nav__pages{display:flex;gap:30px;margin-left:auto;margin-right:36px}
.nav__pages a{font-size:12px;font-weight:700;color:var(--ink);text-decoration:none;text-underline-offset:7px}
.nav__pages a:hover{text-decoration:underline}
.nav__progress{position:absolute;left:0;bottom:-1px;width:100%;height:2px;background:#a51c30;transform:scaleX(0);transform-origin:left}
.campaign{background:#f3ce00}
.campaign__bottom{position:relative;z-index:3;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:23px 0 28px;border-top:1px solid #19191840}
.campaign__bottom p{font-size:13px;line-height:1.9;font-weight:600}
.campaign__bottom p small{display:block;font-size:11px;letter-spacing:.04em;font-weight:400}
.campaign__bottom .campaign__cta{margin:0;min-width:250px;justify-content:space-between;min-height:56px}
.campaign__story{background:#f0d754;padding-block:clamp(80px,9vw,140px)}
.campaign__story::before{opacity:.15}
.campaign__story-label{font-size:clamp(22px,2.8vw,40px)}
.campaign__story-label img{width:130px;opacity:.9}
.campaign__prose p{font-weight:500;line-height:2.2;letter-spacing:.01em}
.campaign__prose .campaign__statement,.campaign__prose .campaign__closing{letter-spacing:-.045em;font-weight:800}
.film-caption{display:flex;justify-content:space-between;align-items:center;gap:20px;color:#f8f6ed;padding:0 0 20px;font:600 11px/1.6 'Inter','Noto Sans JP',sans-serif;letter-spacing:.08em}
.film-caption small{display:block;margin-top:5px;font-size:11px;color:#c7c6bc;letter-spacing:.03em;font-weight:400}
.film-toggle{border:1px solid #ffffff55;color:#fff;background:transparent;border-radius:2px;min-height:44px;padding:10px 16px;cursor:pointer;font:500 12px 'Noto Sans JP',sans-serif}
.film-toggle:hover{background:#fff;color:#191918}
.practice-film::before{background:var(--yellow);height:2px}
.practice-film video{box-shadow:none}
.page-guide__inner{max-width:1280px;margin:auto}
.page-guide a{min-height:105px}
.brand-banner{border:0;overflow:hidden}
.brand-banner img{max-height:150px;object-fit:cover}
.section__eyebrow,.poster__eyebrow{padding:0 0 0 24px;border:0;border-radius:0;background:none;position:relative;font:700 10px/1.6 'Inter',sans-serif;letter-spacing:.16em;color:#8b2029;margin-bottom:20px}
.section__eyebrow::before,.poster__eyebrow::before{content:'';position:absolute;width:13px;height:2px;left:0;top:7px;background:currentColor}
.info .section__eyebrow,.poster__eyebrow{color:#f3ce00}
.section__title,.about__heading,.faq__title{line-height:1.3;letter-spacing:-.04em}
.about{background:transparent;border:0;border-radius:0;box-shadow:none;padding:70px 24px;margin:40px auto;max-width:1280px}
.about::before{display:none}
.about__photo img{border:0;border-radius:2px;box-shadow:none;aspect-ratio:4/5}
.about__photo .tag{left:0;bottom:20px;background:#f3ce00;color:#191918;border:0;border-radius:0;box-shadow:none;padding:10px 22px;font-size:12px}
.about__text{font-size:14px;line-height:2.05}
.feature,.youth-card,.coach-card,.kit-card,.fc-flow-step{border-radius:3px;box-shadow:none}
.feature{padding:30px 26px;background:transparent;border:0;border-top:1px solid #19191850}
.feature:hover,.coach-card:hover{box-shadow:none;transform:translateY(-3px)}
.feature__num,.feature:nth-child(2) .feature__num,.feature:nth-child(3) .feature__num{font-family:'Inter',sans-serif;font-size:58px;font-weight:800;letter-spacing:-.08em;color:#191918;-webkit-text-stroke:0;margin-bottom:26px}
.feature__num::after{content:'.';color:#bd2033}
.feature__title{font-size:21px}
.stats{border-radius:4px;box-shadow:none}
.gallery{background:#f0eee5}
.gallery__grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}
.gallery__item{grid-column:auto!important;aspect-ratio:4/3;max-width:none;margin:0;width:100%;border:0;border-radius:2px;box-shadow:none;overflow:hidden}
.gallery__item--1{aspect-ratio:4/5}
.gallery__item--4{aspect-ratio:4/5;margin-top:-23%}
.gallery__item:hover{transform:none;box-shadow:none}
.gallery__item img{transition:transform .7s cubic-bezier(.2,.65,.3,1)}
.gallery__item:hover img{transform:scale(1.025)}
.venue__visual{grid-template-columns:1fr 1fr;gap:12px;padding:0;border:0;border-radius:0;box-shadow:none}
.venue__visual img{border-radius:2px}
.parking__inner,.info__table,.coaches__director,.coach-intro__profile,.media__inner,.cta__contact{border-radius:4px;box-shadow:none}
.fc-flow-finish{border-radius:3px}
.kit-card,.kit-card__art,.kit-card__body{background:#fff}
.kit-card__body{border-top:1px solid #19191820}
.news-preview{background:#f0d754}
.news-item{padding-block:24px}
.media__inner{background:transparent;border:0}
.media__image-frame,.poster__img{border-radius:2px;box-shadow:none}
.media__badge,.poster__badge{display:none}
.media__shops{box-shadow:none;border-radius:3px}
.faq::before{display:none}
.faq__inner{max-width:1200px}
.faq__header{text-align:left;margin-bottom:40px}
.faq__title{font-size:clamp(27px,3.1vw,42px)}
.faq__list{gap:0;max-width:none}
.faq-item{border:0;border-top:1px solid #19191835;border-radius:0;box-shadow:none;background:transparent}
.faq-item:last-child{border-bottom:1px solid #19191835}
.faq-item:hover,.faq-item[open]{box-shadow:none;border-color:#19191855}
.faq-item__q{padding:24px 4px;gap:20px}
.faq-item__q-mark{background:transparent;color:#8b2029;font:700 14px 'Inter',sans-serif}
.faq-item__q-icon{border:0;background:transparent;flex:none}
.faq-item__a{border-top:0;background:#f1efe5;padding:24px;line-height:1.9}
.cta{background:#f3ce00;border-top:0}
.cta::before,.cta::after{display:none}
.cta__logo{width:95px}
.cta__kicker{color:#191918;font:700 11px 'Inter',sans-serif;letter-spacing:.2em}
.cta__title{font-weight:800;font-size:clamp(40px,6.5vw,84px);line-height:1.3}
.cta__title span{background:none}
.cta__contact{background:#faf9f3;text-align:left}
.contact__item a{overflow-wrap:anywhere}
.footer{position:relative;padding:64px 24px 32px}
.footer__logo{font-size:clamp(40px,10.7vw,154px);letter-spacing:-.065em;line-height:1.15;color:#f3ce00}
.footer__wordmark{display:block;width:min(100%,560px);height:auto;margin:0 auto 16px}
.footer__logo-img{width:96px;margin-bottom:24px}
@media(max-width:600px){.footer__wordmark{width:min(100%,390px)}.footer__logo-img{width:68px}}
.footer__tagline{font-size:11px;letter-spacing:.1em;margin-top:16px}
.footer__copy{border-top:1px solid #ffffff25;padding-top:25px;margin-top:40px}
.footer__top{display:inline-block;margin-top:25px;color:#fff;font-size:12px;text-underline-offset:6px}
.scroll-dribbler{opacity:.85;transform:scale(.8);transform-origin:bottom right}
@media(min-width:801px){
 .campaign__poster{padding-top:100px}
 .campaign h1{margin-top:-42px;margin-bottom:-145px}
 .campaign__stage{min-height:580px;padding-top:50px}
 .campaign__players{width:47%;top:45px;max-height:545px}
 .campaign__marks .campaign__crest{width:175px}
 .campaign__slogan{max-width:calc(100% - 200px);width:240px}
 .campaign__stage::before{bottom:12px}
 .faq__inner{display:grid;grid-template-columns:1fr 1.5fr;gap:60px;align-items:start}
 .faq__header{position:sticky;top:110px}
}
@media(max-width:1000px){.nav__pages{gap:18px;margin-right:24px}.nav__pages a{font-size:11px}}
@media(max-width:800px){
 .nav__pages{display:none}
 .campaign__stage{min-height:clamp(410px,110vw,850px)}
 .campaign__bottom{align-items:stretch;flex-direction:column;gap:16px;padding-block:20px 28px}
 .campaign__bottom .campaign__cta{width:100%;min-width:0}
 .campaign__story-label img{display:none}
 .campaign__prose p{font-size:16px;letter-spacing:0}
 .about{padding:40px 24px;margin:30px auto}
 .about__photo img{aspect-ratio:4/3}
 .gallery__heading{display:block}.gallery__heading p{margin-top:12px}
 .gallery__grid{gap:10px}
 .gallery__item--1,.gallery__item--4{max-width:none;aspect-ratio:4/5}
 .gallery__item--4{margin-top:-23%}
 .gallery__item--2,.gallery__item--3{aspect-ratio:4/3}
 .venue__visual{gap:8px}
 .film-caption{font-size:9px;letter-spacing:.03em;gap:10px}
 .film-caption small{font-size:10px}
 .film-toggle{font-size:11px;padding:10px;white-space:nowrap}
 .faq-item__q{padding:22px 0;gap:10px}.faq-item__a{padding:20px 14px}
 .brand-banner img{max-height:85px}
}
@media(prefers-reduced-motion:no-preference){
 .campaign__players{animation:entrance .9s cubic-bezier(.2,.65,.3,1) both}
 @keyframes entrance{from{opacity:0;translate:0 22px}to{opacity:1;translate:0 0}}
 .reveal-ready{opacity:0;translate:0 22px;transition:opacity .65s ease,translate .65s cubic-bezier(.2,.65,.3,1)}
 .reveal-ready.is-revealed{opacity:1;translate:0 0}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.reveal-ready{opacity:1;translate:none}}
/* Keep every member visible in the team photograph. */
.about__photo img{aspect-ratio:4/3}
@media(min-width:801px){.about__grid{align-items:center}.campaign__stage{min-height:540px}.campaign__players{max-height:510px;top:30px}.campaign h1{margin-top:-62px}.campaign__name{max-width:95%}}
/* Preserve the mascot's original visibility and scale, without covering mobile CTAs. */
.scroll-dribbler{opacity:0;transform:translateY(12px) scale(var(--mascot-scale));--mascot-scale:.65}
.scroll-dribbler.is-visible{opacity:1;transform:translateY(0) scale(var(--mascot-scale))}
@media(max-width:650px){.scroll-dribbler{--mascot-scale:.36}}
/* Give the cutout players clear space before the campaign divider. */
@media(min-width:801px){.campaign__stage{min-height:590px}}
@media(max-width:800px){.campaign__stage{min-height:clamp(520px,135vw,960px)}}
.campaign__bottom{padding-top:30px}
.info__value a{color:var(--yellow);text-underline-offset:3px}
.faq-item__a-note a{color:inherit;text-underline-offset:3px}

@media(max-width:800px){.campaign__stage{min-height:clamp(450px,120vw,900px)}}

@media(max-width:800px){
 .gallery__grid{grid-template-columns:minmax(0,1fr);gap:12px}
 .gallery__item,.gallery__item--1,.gallery__item--2,.gallery__item--3,.gallery__item--4{grid-column:1/-1;width:100%;max-width:none;margin:0;aspect-ratio:auto!important}
 .gallery__item img{display:block;width:100%;height:auto;object-fit:contain}
 .gallery__item:hover img{transform:none}
}

.line-share{display:none}
.coach-intro__inner{flex-direction:column;align-items:stretch}
.coach-intro__body,.coach-intro__profile{width:100%;max-width:780px;margin-inline:auto}
.coach-intro__profile{text-align:left;padding:28px 32px}
.coach-intro__career{gap:8px}
.supporters__intro{grid-template-columns:minmax(0,1fr) minmax(240px,320px);gap:clamp(40px,7vw,100px)}
.supporters__story{max-width:680px}
.supporters__heading{margin-bottom:30px}
.supporters__cover{width:min(100%,320px);margin:0 auto;text-align:center;transform:none}
.supporters__cover img{display:block;width:100%;height:auto;border:0;box-shadow:8px 14px 30px #241f1830}
.supporters__cover figcaption{margin-top:15px;color:#5d554a;font:600 12px/1.5 'Inter','Noto Sans JP',sans-serif;letter-spacing:.07em}
@media(max-width:850px){.supporters__intro{grid-template-columns:1fr}.supporters__cover{width:min(70%,300px);margin-top:8px}}
@media(max-width:600px){
 .supporters__list{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:12px}
 .supporters__list li{min-width:0;padding:10px 0;font-size:12px;line-height:1.5;overflow-wrap:anywhere}
}
/* Align the main desktop sections to the same 24px-inset, 1280px shell. */
@media (min-width: 901px){
 .practice-film__inner,.page-guide__inner,.gallery__inner,.info__inner,
 .venue__inner,.fc-flow-inner,.kit-samples__inner,.coach-intro__inner,
 .supporters__inner,.news-preview__inner,.faq__inner{max-width:1232px;margin-inline:auto}
}
@media(max-width:768px){
 .line-share{position:fixed;left:12px;bottom:calc(12px + env(safe-area-inset-bottom, 0px));z-index:200;display:inline-flex;align-items:center;gap:8px;padding:12px 16px;border-radius:999px;background:#06c755;color:#fff;text-decoration:none;font-size:14px;font-weight:800;line-height:1;box-shadow:0 3px 10px #0003;transition:transform .15s ease}
 .line-share svg{width:20px;height:20px;flex:none;fill:currentColor}
 .line-share:focus-visible{outline:3px solid #155bd7;outline-offset:3px}
 .line-share:active{transform:scale(.96)}
}

/* Practice video directly beneath the venue photos. */
.venue__media{min-width:0}
.venue__practice-video{display:block;width:min(100%,320px);height:auto;aspect-ratio:406/720;object-fit:contain;margin:20px auto 0;background:#11120e;border-radius:2px}
