/* ==========================================================================
   COURSE — システム開発コース（独立ランディングページ）
   ブランドサイトと同じトークンを使いつつ、密度を上げて読ませる設計にする。
   ========================================================================== */

/* コースページではセクションを1画面に押し込めない（読ませることを優先） */
.aa-body--course .aa-section{ min-height:auto }

/* --- HERO --- */
.aa-course-hero{ min-height:100svh; overflow:hidden; padding-top:calc(var(--space-block) + 60px) }
.aa-course-hero__stage{
	position:absolute; inset:0; z-index:-1;
	background:
		radial-gradient(58% 48% at 22% 18%, rgb(127 168 255/.26), transparent 64%),
		radial-gradient(52% 46% at 84% 26%, rgb(184 166 245/.22), transparent 66%),
		linear-gradient(178deg,#fbfcfe,#eef2f8);
}
.aa-course-hero__inner{ display:grid; gap:clamp(18px,3svh,32px); max-width:min(1080px,100%) }
.aa-course-hero__eyebrow{
	font-family:var(--font-mono); font-size:var(--fs-label);
	letter-spacing:var(--ls-label); color:var(--fg-sub);
}
.aa-course-hero__title{
	font-family:var(--font-display); font-weight:500;
	font-size:clamp(2rem,5.2vw,4.5rem); line-height:var(--lh-tight);
}
.aa-course-hero__lead{ font-size:var(--fs-lead); color:var(--fg-sub); max-width:46ch }

.aa-course-meta{
	display:flex; flex-wrap:wrap; gap:clamp(20px,3vw,52px);
	padding-block:clamp(16px,2.4svh,26px);
	border-block:1px solid var(--rule);
}
.aa-course-meta__item dt{
	font-family:var(--font-mono); font-size:.62rem;
	letter-spacing:.18em; color:var(--fg-sub); margin-bottom:.4em;
}
.aa-course-meta__item dd{ display:flex; align-items:baseline; gap:.25em; font-size:1rem }
.aa-course-meta__item b{
	font-family:var(--font-display); font-weight:600;
	font-size:clamp(1.4rem,2.6vw,2rem); letter-spacing:.01em;
}
.aa-course-meta__item span{ font-size:.72rem; color:var(--fg-sub) }

.aa-course-hero__actions{ display:grid; gap:1em; justify-items:start }
.aa-course-hero__actions .aa-button{ justify-self:start }
.aa-course-hero__note{ font-size:.82rem; color:var(--fg-sub); line-height:1.8; max-width:40ch }

/* --- こんな方へ --- */
.aa-course-problem__list{ display:grid; gap:1px; background:var(--rule); border-block:1px solid var(--rule) }
.aa-course-problem__item{
	background:var(--bg); padding:clamp(16px,2vw,26px) clamp(18px,2.4vw,32px);
	font-size:clamp(.95rem,1.3vw,1.15rem); display:flex; gap:1em; align-items:baseline;
}
.aa-course-problem__item::before{ content:"—"; color:var(--c-signal); flex:0 0 auto }
.aa-course-problem__answer{
	margin-top:clamp(28px,5svh,56px); text-align:center;
	font-family:var(--font-display); font-weight:500;
	font-size:clamp(1.2rem,2.8vw,2.2rem); line-height:1.6;
}

/* --- 4ステップの流れ（中核） --- */
.aa-course-flow__list{ display:grid; gap:0 }
.aa-course-flow__step{ display:grid; grid-template-columns:auto 1fr; gap:clamp(16px,2.4vw,36px) }
.aa-course-flow__marker{ display:grid; justify-items:center; gap:8px }
.aa-course-flow__num{
	width:clamp(40px,5vw,58px); aspect-ratio:1; border-radius:50%;
	display:grid; place-items:center;
	font-family:var(--font-mono); font-size:.72rem; letter-spacing:.1em;
	border:1px solid var(--rule); background:#fff; color:var(--fg);
}
.aa-course-flow__rail{
	flex:1; width:1px; min-height:100%;
	background:linear-gradient(180deg,var(--c-signal),var(--rule));
}
.aa-course-flow__body{ padding-bottom:clamp(32px,5svh,64px); display:grid; gap:.6em; align-content:start }
.aa-course-flow__who{
	font-family:var(--font-mono); font-size:.62rem; letter-spacing:.2em; color:var(--c-signal);
}
.aa-course-flow__title{ font-size:clamp(1.1rem,2vw,1.6rem); font-weight:400; line-height:1.5 }
.aa-course-flow__text{ color:var(--fg-sub); font-size:.95rem; max-width:52ch }
.aa-course-flow__badge{
	justify-self:start; margin-top:.4em;
	font-family:var(--font-mono); font-size:.62rem; letter-spacing:.16em;
	padding:.6em 1.2em; border-radius:999px;
	border:1px solid var(--c-signal); color:var(--c-signal);
}

/* --- 持ち帰れるもの --- */
.aa-course-outcome__list{
	display:grid; gap:1px; background:var(--rule); border:1px solid var(--rule);
	grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));
}
.aa-course-outcome__item{ background:var(--bg); padding:clamp(24px,3vw,40px); display:grid; gap:.7em; align-content:start }
.aa-course-outcome__name{ font-size:clamp(1rem,1.4vw,1.25rem); font-weight:400 }
.aa-course-outcome__text{ color:var(--fg-sub); font-size:.9rem; line-height:1.85 }

/* --- 講師 --- */
.aa-course-teacher__inner{
	display:grid; gap:clamp(28px,4vw,64px); align-items:center;
	grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));
}
.aa-course-teacher__text{ display:grid; gap:1.2em; color:var(--fg-sub); font-size:var(--fs-body) }
.aa-course-teacher .aa-section-head{ margin-bottom:clamp(20px,3svh,36px) }

/* --- 料金 --- */
.aa-course-price__box{
	display:grid; gap:clamp(24px,3vw,48px);
	grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));
	padding:clamp(28px,4vw,56px); background:#fff; border:1px solid var(--rule);
}
.aa-course-price__amount{ display:flex; align-items:baseline; gap:.2em }
.aa-course-price__amount b{
	font-family:var(--font-display); font-weight:600;
	font-size:clamp(2.4rem,6vw,4.4rem); line-height:1; letter-spacing:-.01em;
}
.aa-course-price__amount span{ font-size:.9rem; color:var(--fg-sub) }
.aa-course-price__unit{ margin-top:.8em; font-family:var(--font-mono); font-size:.68rem; letter-spacing:.14em; color:var(--fg-sub) }
.aa-course-price__subtitle{ font-size:.8rem; font-weight:400; color:var(--fg-sub); margin-bottom:.8em }
.aa-course-price__includes{ display:grid; gap:.6em; margin-bottom:1.8em }
.aa-course-price__includes li{ display:flex; gap:.7em; align-items:baseline; font-size:.92rem }
.aa-course-price__includes li::before{ content:"✓"; color:var(--c-signal) }
.aa-course-price__spec{ display:grid; gap:1em; padding-top:1.4em; border-top:1px solid var(--rule) }
.aa-course-price__spec > div{ display:grid; grid-template-columns:5.5em 1fr; gap:1em }
.aa-course-price__spec dt{ font-family:var(--font-mono); font-size:.64rem; letter-spacing:.14em; color:var(--fg-sub); padding-top:.4em }
.aa-course-price__spec dd{ font-size:.9rem; line-height:1.85 }

/* --- 開催日程 --- */
.aa-course-sessions__list{
	display:grid; gap:1px; background:var(--rule); border:1px solid var(--rule);
	grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));
}
.aa-course-sessions__item{ background:var(--bg); padding:clamp(20px,2.4vw,32px); display:grid; gap:.6em }
.aa-course-sessions__date{ font-family:var(--font-display); font-size:clamp(1rem,1.5vw,1.3rem) }
.aa-course-sessions__meta{ display:flex; flex-wrap:wrap; gap:.6em; font-family:var(--font-mono); font-size:.62rem; letter-spacing:.12em }
.aa-course-sessions__format,
.aa-course-sessions__seats{ padding:.45em 1em; border-radius:999px; border:1px solid var(--rule); color:var(--fg-sub) }
.aa-course-sessions__empty{ color:var(--fg-sub); font-size:var(--fs-lead) }

/* --- FAQ --- */
.aa-course-faq__list{ display:grid; gap:1px; background:var(--rule); border-block:1px solid var(--rule) }
.aa-course-faq__item{ background:var(--bg) }
.aa-course-faq__q{
	list-style:none; cursor:pointer; padding:clamp(18px,2.2vw,28px) clamp(18px,2.4vw,32px);
	display:flex; gap:1em; align-items:baseline; font-size:clamp(.95rem,1.2vw,1.1rem);
	transition:background var(--dur-fast) linear;
}
.aa-course-faq__q::-webkit-details-marker{ display:none }
.aa-course-faq__q::before{ content:"+"; color:var(--c-signal); flex:0 0 auto; transition:rotate var(--dur-fast) var(--ease-out) }
.aa-course-faq__details[open] .aa-course-faq__q::before{ rotate:45deg }
.aa-course-faq__q:hover{ background:rgb(127 168 255/.06) }
.aa-course-faq__a{
	padding:0 clamp(18px,2.4vw,32px) clamp(20px,2.4vw,30px) calc(clamp(18px,2.4vw,32px) + 1.7em);
	color:var(--fg-sub); font-size:.92rem; line-height:1.9; max-width:64ch;
}

/* --- フォーム --- */
.aa-course-form__inner{ max-width:min(760px,100%); margin-inline:auto }
.aa-course-form__body{ margin-block:clamp(20px,3svh,40px) }
.aa-course-form__placeholder{ padding:clamp(24px,3vw,40px); border:1px dashed var(--rule); background:#fff }
.aa-course-form__notice{ font-size:.86rem; color:var(--fg-sub); margin-bottom:1.4em }
.aa-course-form__fields{ display:grid; gap:.7em }
.aa-course-form__fields li{ display:flex; gap:.8em; align-items:center; font-size:.92rem; color:var(--fg-sub) }
.aa-course-form__fields span{
	font-family:var(--font-mono); font-size:.56rem; letter-spacing:.12em;
	padding:.35em .8em; border-radius:999px; background:var(--c-signal); color:#fff;
}
.aa-course-form__privacy{ font-size:.8rem; color:var(--fg-sub) }

/* Contact Form 7 の見た目を最小限に整える */
.aa-course-form .wpcf7-form p{ display:grid; gap:.5em; margin-bottom:1.4em }
.aa-course-form input[type="text"],
.aa-course-form input[type="email"],
.aa-course-form input[type="tel"],
.aa-course-form input[type="number"],
.aa-course-form select,
.aa-course-form textarea{
	width:100%; padding:.9em 1.1em; font:inherit; font-size:.95rem;
	border:1px solid var(--rule); border-radius:4px; background:#fff; color:var(--fg);
}
.aa-course-form textarea{ min-height:11em; line-height:1.9; resize:vertical }
.aa-course-form input:focus-visible,
.aa-course-form textarea:focus-visible,
.aa-course-form select:focus-visible{ outline:2px solid var(--c-signal); outline-offset:2px }
.aa-course-form input[type="submit"]{
	padding:1.1em 2.6em; border-radius:999px; border:0; cursor:pointer;
	background:var(--c-ink); color:var(--c-snow);
	font-family:var(--font-mono); font-size:var(--fs-label); letter-spacing:.16em;
	transition:background var(--dur-fast) linear;
}
.aa-course-form input[type="submit"]:hover{ background:#1a2740 }

/* --- AOS / AOD へ送り出す --- */
.aa-course-brand{ overflow:hidden; text-align:center; min-height:80svh }
.aa-course-brand__stage{
	position:absolute; inset:0; z-index:-1;
	background:
		radial-gradient(52% 44% at 50% 30%, rgb(127 168 255/.28), transparent 68%),
		radial-gradient(46% 42% at 78% 82%, rgb(184 166 245/.2), transparent 70%),
		linear-gradient(178deg,#070c16,#101a2e);
}
.aa-course-brand__inner{ display:grid; gap:clamp(18px,3svh,34px); justify-items:center }
.aa-course-brand__label{ font-family:var(--font-mono); font-size:var(--fs-label); letter-spacing:var(--ls-label); color:var(--fg-sub) }
.aa-course-brand__title{
	font-family:var(--font-display); font-weight:500;
	font-size:clamp(1.5rem,3.6vw,3rem); line-height:var(--lh-tight);
}
.aa-course-brand__text{ color:var(--fg-sub); font-size:var(--fs-lead) }

@media (max-width:599px){
	.aa-course-flow__step{ gap:14px }
	.aa-course-price__spec > div{ grid-template-columns:1fr; gap:.2em }
}
