@theme {
	--color-primary: #bd5500;
	--color-primary-50: #fff7ed;
	--color-primary-100: #ffead1;
	--color-primary-500: #bd5500;
	--color-primary-600: #9a4400;
	--color-primary-700: #7f3700;
	--color-primary-900: #542500;
	--color-secondary: #3f78b5;
	--color-secondary-50: #f5f9fc;
	--color-secondary-100: #e8f1f8;
	--color-secondary-200: #cedfec;
	--color-secondary-500: #5c91c8;
	--color-secondary-700: #315f91;
	--color-secondary-900: #173a5f;
	--color-neutral: #17283a;
	--color-background: #f9fbfd;
	--color-sand: #eef4f8;
	--color-deep: #0f2742;
	--color-renew: #2c6e8f;
	--font-sans: "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
	--font-serif: "Shippori Mincho", "Yu Mincho", serif;
	--text-sm: 0.875rem;
	--text-base: 1rem;
	--text-lg: 1.125rem;
	--text-xl: 1.25rem;
	--text-2xl: 1.5rem;
	--text-3xl: 1.875rem;
	--text-4xl: 2.25rem;
	--text-5xl: 3rem;
}

@layer base {
	:root { --jma-accent:#bd5500; --jma-deep:#0f2742; --jma-ink:#17283a; --jma-sand:#eef4f8; --jma-cream:#f9fbfd; --jma-line:#d7e2ec; --jma-renew:#2c6e8f; }
	html { scroll-behavior:smooth; }
	body { margin:0; background:var(--jma-cream); color:var(--jma-ink); font-family:"Noto Sans JP",sans-serif; line-height:1.8; -webkit-font-smoothing:antialiased; }
	* { box-sizing:border-box; }
	a { text-underline-offset:3px; }
	h1,h2,h3,p { margin-top:0; }
}

@layer components {
	.jma-header { position:sticky; top:0; z-index:60; background:rgba(255,255,255,.96); backdrop-filter:blur(14px); border-bottom:1px solid rgba(15,39,66,.10); }
	.jma-header__inner { max-width:1180px; margin:0 auto; padding:8px 24px; display:flex; justify-content:space-between; align-items:center; gap:18px; }
	.jma-brand { display:flex; align-items:center; gap:10px; color:var(--jma-deep); text-decoration:none; font-size:13px; line-height:1.25; }
	.jma-brand img { width:46px; height:auto; display:block; }
	.jma-brand strong { font-size:15px; }
	.jma-header-actions { display:flex; align-items:center; gap:10px; }
	.jma-header-cta { min-height:42px; padding:8px 17px; border-radius:999px; display:inline-flex; align-items:center; justify-content:center; background:var(--jma-accent); color:#fff; text-decoration:none; font-weight:800; font-size:13px; box-shadow:0 8px 22px rgba(242,140,40,.24); }
	.jma-menu { position:relative; }
	.jma-menu summary { list-style:none; cursor:pointer; min-height:40px; padding:7px 14px; border:1px solid rgba(16,40,50,.22); border-radius:999px; display:flex; align-items:center; background:#fff; font-size:13px; font-weight:800; color:var(--jma-deep); }
	.jma-menu summary::-webkit-details-marker { display:none; }
	.jma-menu[open] summary { background:var(--jma-deep); color:#fff; }
	.jma-menu__panel { position:absolute; right:0; top:calc(100% + 10px); width:min(350px,calc(100vw - 28px)); padding:10px; display:grid; background:#fff; border:1px solid rgba(16,40,50,.12); border-radius:18px; box-shadow:0 22px 54px rgba(11,34,44,.2); }
	.jma-menu__panel a { padding:10px 12px; border-radius:10px; color:var(--jma-deep); text-decoration:none; font-size:14px; font-weight:650; }
	.jma-menu__panel a:hover { background:#f4f7f6; }

	.jma-main { width:100%; overflow:hidden; }
	.jma-container { width:min(1080px,calc(100% - 48px)); margin:0 auto; }
	.jma-container--narrow { width:min(880px,calc(100% - 48px)); }
	.jma-section { padding:92px 0; }
	.jma-section h2,.jma-final-cta h2 { margin-bottom:22px; font-family:"Shippori Mincho",serif; color:var(--jma-deep); font-size:clamp(32px,4.2vw,50px); line-height:1.34; font-weight:600; letter-spacing:.01em; }
	.jma-section h3 { color:var(--jma-deep); font-size:21px; line-height:1.5; }
	.jma-eyebrow,.jma-kicker { margin:0 0 12px; color:var(--jma-accent); font-size:12px; font-weight:800; letter-spacing:.18em; text-transform:uppercase; }
	.jma-section__lead { max-width:790px; color:#516169; font-size:17px; }

	.jma-hero { position:relative; min-height:700px; display:flex; align-items:flex-end; background:url("https://yamaguchi.jma-drone.or.jp/wp-content/uploads/2026/09/山口LP-ヒーロー用ドローンイメージ.jpg") center/cover no-repeat; color:#fff; }
	.jma-hero__overlay { position:absolute; inset:0; background:linear-gradient(90deg,rgba(15,39,66,.88) 0%,rgba(15,39,66,.66) 46%,rgba(15,39,66,.25) 78%,rgba(15,39,66,.10) 100%); }
	.jma-hero:after { content:""; position:absolute; left:0; right:0; bottom:0; height:8px; background:linear-gradient(90deg,var(--jma-accent) 0 29%,#4a90e2 29% 63%,#a9cceb 63% 100%); }
	.jma-hero__inner { position:relative; z-index:2; width:min(1180px,calc(100% - 56px)); margin:0 auto; padding:125px 0 78px; }
	.jma-hero h1 { max-width:840px; margin:8px 0 22px; font-family:"Shippori Mincho",serif; font-size:clamp(46px,6.2vw,78px); line-height:1.15; font-weight:600; color:#fff; letter-spacing:.02em; }
	.jma-kicker { color:#f0b26e; }
	.jma-hero__lead { max-width:720px; margin-bottom:0; color:rgba(255,255,255,.92); font-size:clamp(17px,2vw,21px); line-height:1.9; }
	.jma-hero__actions { margin-top:30px; display:flex; gap:12px; flex-wrap:wrap; }
	.jma-hero__note { margin:12px 0 0; color:rgba(255,255,255,.7); font-size:12px; }

	.jma-btn { min-height:54px; padding:14px 24px; border-radius:999px; display:inline-flex; justify-content:center; align-items:center; text-align:center; text-decoration:none; font-weight:800; font-size:15px; border:2px solid transparent; box-shadow:0 10px 24px rgba(15,40,49,.12); transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease; }
	.jma-btn:hover { transform:translateY(-1px); box-shadow:0 14px 30px rgba(15,40,49,.17); }
	.jma-btn:focus-visible { outline:3px solid #ffd3b5; outline-offset:3px; }
	.jma-btn--accent { background:var(--jma-accent); color:#fff; border-color:var(--jma-accent); }
	.jma-btn--accent:hover { background:#9a4400; border-color:#9a4400; }
	.jma-btn--light { background:#fff; color:var(--jma-deep); border-color:#fff; }
	.jma-btn--dark { background:var(--jma-deep); color:#fff; border-color:var(--jma-deep); }
	.jma-btn--light-dark { background:#fff; color:var(--jma-deep); border-color:#9fb8cc; }
	.jma-btn--apply { background:#315f91; color:#fff; border-color:#315f91; }
	.jma-btn--renew { background:var(--jma-accent); color:#fff; border-color:var(--jma-accent); box-shadow:0 12px 28px rgba(242,140,40,.30); }
.jma-btn--renew:hover { background:#9a4400; border-color:#9a4400; }

	.jma-path-nav { background:#fff; border-bottom:1px solid var(--jma-line); }
	.jma-path-nav__inner { max-width:1180px; margin:0 auto; padding:18px 24px; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; }
	.jma-path-nav__item { position:relative; min-height:114px; padding:17px 18px; border-radius:16px; display:flex; flex-direction:column; justify-content:center; color:var(--jma-deep); text-decoration:none; background:#f7fafc; border:1px solid #dce7f0; transition:.18s ease; }
	.jma-path-nav__item:hover { transform:translateY(-2px); border-color:#b9cee0; box-shadow:0 10px 24px rgba(15,39,66,.08); }
	.jma-path-nav__item span { font-size:11px; font-weight:900; letter-spacing:.12em; color:#566f83; }
	.jma-path-nav__item strong { margin-top:5px; font-size:15px; }
	.jma-path-nav__item small { margin-top:3px; color:#566f83; font-size:11px; }
	.jma-path-nav__item--consult { background:#fff5ea; border-color:#f4c89d; }
	.jma-path-nav__item--apply { background:#edf4fa; border-color:#cbddec; }
	.jma-path-nav__item--renew { background:#f2f7fb; border-color:#d5e3ee; }

	.jma-intro { background:#fff; }
	.jma-intro__grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:70px; align-items:start; }
	.jma-intro p { color:#4c5b61; font-size:17px; }

	.jma-course { background:#eef4f8; color:var(--jma-ink); }
	.jma-course h2,.jma-course h3 { color:var(--jma-deep); }
	.jma-course .jma-section__lead { color:#526779; }
	.jma-course-tags { margin:26px 0 8px; display:flex; flex-wrap:wrap; gap:8px; }
	.jma-course-tags span { padding:7px 13px; border-radius:999px; border:1px solid #bfd2e3; background:#fff; color:#315f91; font-size:13px; font-weight:750; }
	.jma-card-grid { margin-top:34px; display:grid; gap:18px; }
	.jma-card-grid--2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
	.jma-card-grid--3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
	.jma-card { padding:34px; border-radius:20px; border:1px solid #d4e0ea; background:#fff; box-shadow:0 12px 30px rgba(15,39,66,.06); }
	.jma-card p { color:#586d7f; }
	.jma-card__num { color:#315f91 !important; font-size:12px; font-weight:900; letter-spacing:.14em; }
	.jma-actions-center { margin-top:28px; display:flex; justify-content:center; gap:12px; flex-wrap:wrap; }

	.jma-needs { background:#f5f9fc; }
	.jma-soft-card { padding:30px 26px; border-radius:18px; background:#fff; border-top:3px solid var(--jma-accent); box-shadow:0 10px 30px rgba(16,40,50,.05); }
	.jma-soft-card p { color:#526169; }

	.jma-reasons { background:#fff; }
	.jma-reason-list { margin-top:34px; border-top:1px solid var(--jma-line); }
	.jma-reason { display:grid; grid-template-columns:90px 1fr; gap:24px; padding:30px 0; border-bottom:1px solid var(--jma-line); }
	.jma-reason > span { font-family:"Shippori Mincho",serif; font-size:38px; color:#4a90e2; }
	.jma-reason h3 { margin-bottom:8px; }
	.jma-reason p { margin-bottom:0; color:#56656b; }

	.jma-venue { background:#eef4f8; }
	.jma-venue-card { padding:34px; border-radius:20px; background:#fff; border:1px solid #d5e0e9; box-shadow:0 12px 30px rgba(15,39,66,.05); }
	.jma-venue-card--renew { background:#f4f8fb; border-color:#d4e2ed; }
	.jma-venue-card__label { margin-bottom:8px; color:var(--jma-accent); font-size:12px; font-weight:900; letter-spacing:.12em; }
	.jma-venue-card p { color:#526169; }
	.jma-venue-card a { color:var(--jma-deep); font-weight:800; }

	.jma-flow { background:#fff; }
	.jma-flow__list { list-style:none; counter-reset:jma-step; padding:0; margin:34px 0 0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
	.jma-flow__list li { counter-increment:jma-step; position:relative; min-height:182px; padding:56px 22px 22px; border:1px solid #dfe6e3; border-radius:18px; background:#fbfcfb; }
	.jma-flow__list li:before { content:"0" counter(jma-step); position:absolute; top:18px; left:22px; color:var(--jma-accent); font-weight:900; letter-spacing:.12em; font-size:12px; }
	.jma-flow__list strong { display:block; margin-bottom:8px; color:var(--jma-deep); font-size:17px; }
	.jma-flow__list span { display:block; color:#617077; font-size:14px; }
	.jma-registration-box { margin-top:28px; padding:28px; border-radius:20px; background:var(--jma-deep); color:#fff; }
	.jma-registration-box p { margin:4px 0; }
	.jma-registration-box .jma-btn { margin-top:14px; }

	.jma-renewal { background:linear-gradient(120deg,#0f2742 0%,#1d4f7a 56%,#3f78b5 100%); color:#fff; }
	.jma-renewal h2,.jma-renewal .jma-eyebrow { color:#fff; }
	.jma-renewal__grid { display:grid; grid-template-columns:1.15fr .85fr; gap:60px; align-items:center; }
	.jma-renewal p { color:rgba(255,255,255,.86); }
	.jma-renewal__actions { display:grid; gap:16px; }
.jma-renewal__actions .jma-btn { min-height:60px; box-shadow:0 12px 28px rgba(8,25,43,.18); }
.jma-renewal__actions .jma-btn--light-dark { background:#fff; color:var(--jma-deep); border-color:#d4e2ed; }

	.jma-faq { background:#fff; }
	.jma-faq details { border-top:1px solid var(--jma-line); }
	.jma-faq details:last-child { border-bottom:1px solid var(--jma-line); }
	.jma-faq summary { cursor:pointer; padding:22px 44px 22px 0; position:relative; list-style:none; color:var(--jma-deep); font-weight:800; }
	.jma-faq summary::-webkit-details-marker { display:none; }
	.jma-faq summary:after { content:"+"; position:absolute; right:8px; top:17px; font-size:24px; font-weight:400; color:var(--jma-accent); }
	.jma-faq details[open] summary:after { content:"−"; }
	.jma-faq details p { padding:0 44px 22px 0; margin:0; color:#5c6b72; }

	.jma-final-cta { padding:88px 0; background:#e8f1f8; text-align:center; color:var(--jma-deep); }
	.jma-final-cta h2 { color:var(--jma-deep); }
	.jma-final-cta .jma-eyebrow { color:#315f91; }
	.jma-final-cta p { max-width:720px; margin-left:auto; margin-right:auto; color:#526779; }
	.jma-final-cta__buttons { margin-top:28px; display:flex; justify-content:center; gap:12px; flex-wrap:wrap; }

	.jma-footer { background:#091d33; color:#c8d6e2; }
	.jma-footer__inner { max-width:1180px; margin:0 auto; padding:38px 24px 24px; display:flex; justify-content:space-between; gap:32px; font-size:13px; }
	.jma-footer a { color:#fff; }
	.jma-footer__links { display:grid; gap:4px; text-align:right; }
	.jma-footer__credit,.jma-footer__copyright { max-width:1180px; margin:0 auto; padding:0 24px; color:#7f949b; font-size:11px; }
	.jma-footer__copyright { padding-top:6px; padding-bottom:30px; }
	.jma-mobile-cta { display:none; }

	@media (max-width:900px) {
		.jma-path-nav__inner { grid-template-columns:repeat(3,minmax(0,1fr)); }
		.jma-card-grid--3 { grid-template-columns:1fr; }
	}

	@media (max-width:781px) {
		.jma-header__inner { padding:8px 16px; }
		.jma-brand span { display:none; }
		.jma-brand img { width:38px; }
		.jma-header-cta { min-height:40px; padding:7px 13px; font-size:12px; }
		.jma-menu summary { min-height:38px; padding:6px 12px; }
		.jma-container,.jma-container--narrow { width:min(100% - 40px,1080px); }
		.jma-section { padding:68px 0; }
		.jma-hero { min-height:640px; background-position:58% center; }
		.jma-hero__overlay { background:linear-gradient(rgba(15,39,66,.50),rgba(15,39,66,.68)); }
		.jma-hero__inner { width:calc(100% - 40px); padding:102px 0 58px; }
		.jma-hero h1 { font-size:clamp(40px,11.2vw,56px); }
		.jma-hero__lead { font-size:16px; }
		.jma-hero__actions { flex-direction:column; }
		.jma-hero__actions .jma-btn { width:100%; }
		.jma-path-nav__inner { padding:14px 16px; grid-template-columns:1fr 1fr; gap:8px; }
		.jma-path-nav__item { min-height:98px; padding:14px; }
		.jma-path-nav__item--renew { grid-column:1 / -1; }
		.jma-intro__grid,.jma-renewal__grid { grid-template-columns:1fr; gap:26px; }
		.jma-card-grid--2 { grid-template-columns:1fr; }
		.jma-card,.jma-soft-card,.jma-venue-card { padding:26px 22px; }
		.jma-actions-center,.jma-final-cta__buttons { flex-direction:column; align-items:stretch; }
		.jma-actions-center .jma-btn,.jma-final-cta__buttons .jma-btn { width:100%; }
		.jma-reason { grid-template-columns:54px 1fr; gap:12px; }
		.jma-reason > span { font-size:29px; }
		.jma-flow__list { grid-template-columns:1fr; }
		.jma-flow__list li { min-height:auto; }
		.jma-registration-box .jma-btn { width:100%; }
		.jma-renewal__actions .jma-btn { width:100%; }
		.jma-footer__inner { flex-direction:column; padding:32px 20px 18px; }
		.jma-footer__links { text-align:left; }
		.jma-footer__credit,.jma-footer__copyright { padding-left:20px; padding-right:20px; }
		.jma-footer__copyright { padding-bottom:96px; }
		.jma-mobile-cta { position:fixed; left:0; right:0; bottom:0; z-index:80; display:grid; grid-template-columns:1.12fr .88fr; gap:8px; padding:9px 12px calc(9px + env(safe-area-inset-bottom)); background:rgba(249,251,253,.97); border-top:1px solid rgba(15,39,66,.12); box-shadow:0 -10px 28px rgba(15,39,66,.14); backdrop-filter:blur(12px); }
		.jma-mobile-cta a { min-height:48px; border-radius:999px; display:flex; align-items:center; justify-content:center; padding:8px 12px; text-decoration:none; font-size:14px; font-weight:850; }
		.jma-mobile-cta__consult { background:var(--jma-accent); color:#fff; border:2px solid var(--jma-accent); }
		.jma-mobile-cta__info { background:#fff; color:var(--jma-deep); border:2px solid #3d5e6b; }
	}

	@media (max-width:430px) {
		.jma-path-nav__inner { grid-template-columns:1fr; }
		.jma-path-nav__item--renew { grid-column:auto; }
		.jma-path-nav__item { min-height:88px; }
	}

	@media (prefers-reduced-motion:reduce) {
		* { scroll-behavior:auto !important; transition:none !important; }
	}
}
