html{font-size:var(--fz-base);scroll-padding-top:80px}
body{font-family:var(--ff-sans);color:var(--c-text);background:var(--c-bg);line-height:var(--lh-base);font-feature-settings:"palt" 1;-webkit-font-smoothing:antialiased}

a{color:var(--c-brand-deep)}
a:hover{color:var(--c-brand);text-decoration:underline}

p{margin:0 0 1em}
h1,h2,h3,h4,h5{font-family:var(--ff-sans);color:var(--c-heading);line-height:var(--lh-tight);font-weight:700}
h1{font-size:var(--fz-4xl)}
h2{font-size:var(--fz-3xl)}
h3{font-size:var(--fz-2xl)}
h4{font-size:var(--fz-xl)}
h5{font-size:var(--fz-lg)}

::selection{background:rgba(0,102,179,.22);color:var(--c-heading)}

img{max-width:100%}

/* ==== layout ==== */
.container{max-width:var(--container);margin:0 auto;padding:0 var(--sp-4)}
.container--narrow{max-width:var(--container-narrow)}

.section{padding:var(--sp-9) 0}
.section--alt{background:var(--c-bg-alt)}
.section--soft{background:var(--c-bg-soft)}
.section--blue{background:linear-gradient(135deg,var(--c-brand) 0%,var(--c-brand-deep) 100%);color:#fff}
.section--blue h1,.section--blue h2,.section--blue h3{color:#fff}
.section--tight{padding:var(--sp-7) 0}

.section__head{text-align:center;margin-bottom:var(--sp-7)}
.section__eyebrow{display:inline-block;font-size:var(--fz-sm);color:var(--c-brand-deep);font-weight:700;letter-spacing:.18em;text-transform:uppercase;margin-bottom:var(--sp-2)}
.section__title{font-size:var(--fz-3xl);position:relative;display:inline-block;padding-bottom:var(--sp-3)}
.section__title::after{content:"";position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:60px;height:3px;background:var(--c-brand);border-radius:2px}
.section__lead{margin-top:var(--sp-4);color:var(--c-muted);font-size:var(--fz-lg)}

/* ==== utility ==== */
.text-center{text-align:center}
.text-brand{color:var(--c-brand)}
.text-accent{color:var(--c-accent)}
.text-muted{color:var(--c-muted)}
.fw-bold{font-weight:700}
.mt-0{margin-top:0!important}
.mb-0{margin-bottom:0!important}
.mt-4{margin-top:var(--sp-4)}
.mb-4{margin-bottom:var(--sp-4)}
.mt-7{margin-top:var(--sp-7)}
.mb-7{margin-bottom:var(--sp-7)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ==== screen reader skip link ==== */
.skip-link{position:absolute;left:-9999px;top:0;background:#000;color:#fff;padding:8px 12px;z-index:9999}
.skip-link:focus{left:8px;top:8px}

/* ==== reveal-on-scroll ==== */
.reveal{opacity:0;transform:translateY(16px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.reveal.is-visible{opacity:1;transform:translateY(0)}

/* ==================== モバイル全体最適化 ==================== */
@media (max-width:768px){
	html{scroll-padding-top:64px}
	.section{padding:var(--sp-7) 0}
	.section--tight{padding:var(--sp-6) 0}
	.section__head{margin-bottom:var(--sp-5)}
	.section__title{font-size:var(--fz-2xl);line-height:1.4}
	.section__lead{font-size:var(--fz-base);margin-top:var(--sp-3)}
	.container{padding:0 var(--sp-4)}
	h1{font-size:28px;line-height:1.4}
	h2{font-size:24px;line-height:1.4}
	h3{font-size:20px;line-height:1.4}
	h4{font-size:18px;line-height:1.5}
	p{line-height:1.85}
	.page-body{font-size:15px}
}
@media (max-width:480px){
	.section{padding:var(--sp-6) 0}
	.section__head{margin-bottom:var(--sp-4)}
	.section__title{font-size:22px}
	.container{padding:0 var(--sp-3)}
	h1{font-size:24px}
	h2{font-size:21px}
	h3{font-size:18px}
}

/* スマホでは電話番号などの長文 nowrap が画面はみ出ししないよう */
@media (max-width:380px){
	.nowrap{white-space:normal}
}

/* section--blue CTA のモバイル対応 */
@media (max-width:768px){
	.section--blue h2{font-size:22px;margin-bottom:var(--sp-3)}
	.section--blue p{font-size:15px}
}

/* スマホで追従CTAバーが出てる時に下部余白確保（バーの高さ + 余裕） */
@media (max-width:1024px){
	body{padding-bottom:78px}
}
