@charset "utf-8";
/* =========================================================
   drone-license.or.jp  静的リニューアル案
   DBA（協会）ブランド：濃紺 #0f2233 ／ 深コバルト #1c6f9c ／ 白基調
   書体：和文 Noto Sans JP ／ 数字・英字ラベル Montserrat
   ========================================================= */

:root{
  --navy:#0f2233;
  --navy-2:#1a3348;
  --cobalt:#1c6f9c;
  --ink:#24303c;
  --mute:#5f6f7d;
  --faint:#93a1ad;
  --line:#e4e9ed;
  --hair:#eef2f5;
  --soft:#f6f8fa;
  --w:1140px;
  --pad:28px;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:112px}
body{
  font-family:'Noto Sans JP',-apple-system,BlinkMacSystemFont,'Hiragino Kaku Gothic ProN',sans-serif;
  color:var(--ink);background:#fff;font-size:15px;line-height:2;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto;display:block}
ul,ol{list-style:none}
strong{font-weight:700;color:var(--navy)}
.wrap{max-width:var(--w);margin:0 auto;padding:0 var(--pad)}
.nb{white-space:nowrap}

.eyebrow{
  font-family:'Montserrat',sans-serif;font-weight:800;font-size:.72rem;
  letter-spacing:.24em;color:var(--cobalt);display:block;margin-bottom:14px;
}
.preview-note{
  background:#fff8e1;border-bottom:1px solid #f0e0b0;color:#7a5c00;
  font-size:.78rem;text-align:center;padding:7px 12px;
}

/* =============== ヘッダー =============== */
.hd{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:80}
.hd-in{
  max-width:var(--w);margin:0 auto;padding:16px var(--pad);
  display:flex;align-items:center;justify-content:space-between;gap:20px;
}
.brand{display:flex;align-items:center;gap:14px}
.brand-mark{width:38px;height:38px;flex-shrink:0}
.brand-txt{display:flex;flex-direction:column;line-height:1.45}
.brand-name{font-size:1.06rem;font-weight:700;color:var(--navy);letter-spacing:.04em}
.brand-org{font-size:.72rem;color:var(--faint)}
.hd-contact{text-align:right;line-height:1.5}
.hd-tel{
  display:block;font-family:'Montserrat',sans-serif;font-weight:800;
  font-size:1.18rem;color:var(--navy);letter-spacing:.03em;
}
.hd-hours{font-size:.72rem;color:var(--faint)}

.gnav{border-top:1px solid var(--hair);background:#fff}
.gnav-in{
  max-width:var(--w);margin:0 auto;padding:0 var(--pad);
  display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;
}
.gnav-in::-webkit-scrollbar{display:none}
.gnav a{
  padding:13px 18px;font-size:.86rem;font-weight:700;color:var(--mute);
  white-space:nowrap;border-bottom:2px solid transparent;transition:all .2s;
}
.gnav a:first-child{padding-left:0}
.gnav a:hover{color:var(--navy);border-bottom-color:var(--cobalt)}
.burger{display:none;width:38px;height:34px;background:none;border:0;cursor:pointer;padding:8px 4px}
.burger span{display:block;height:2px;background:var(--navy);margin:5px 0;transition:.25s}
.burger.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger.is-open span:nth-child(2){opacity:0}
.burger.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* =============== ヒーロー =============== */
.hero{position:relative;background:var(--navy);overflow:hidden}
.hero-img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 45%;
  opacity:.62;
}
.hero::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(105deg,rgba(15,34,51,.92) 0%,rgba(15,34,51,.7) 48%,rgba(15,34,51,.24) 100%);
}
.hero-body{
  position:relative;z-index:2;max-width:var(--w);margin:0 auto;
  padding:104px var(--pad) 96px;color:#fff;
}
.hero .eyebrow{color:#7fb4d4}
.hero-h{
  font-size:clamp(2rem,4.6vw,3.2rem);font-weight:900;line-height:1.34;
  letter-spacing:.04em;margin-bottom:22px;
}
.hero-p{font-size:clamp(.94rem,1.5vw,1.06rem);line-height:2.05;color:rgba(255,255,255,.86)}
.hero-p strong{color:#fff}
.hero-cta{margin-top:34px;display:flex;gap:12px;flex-wrap:wrap}

.btn{
  display:inline-block;padding:13px 30px;background:#fff;color:var(--navy);
  font-size:.88rem;font-weight:700;border-radius:2px;transition:opacity .2s,background .2s;
  letter-spacing:.02em;
}
.btn:hover{opacity:.86}
.btn.is-ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.45)}
.btn.is-ghost:hover{background:rgba(255,255,255,.1);opacity:1}
.btn.is-dark{background:var(--navy);color:#fff}
.btn.is-white{background:#fff;color:var(--navy)}

/* =============== 要点 =============== */
.facts{border-bottom:1px solid var(--hair);background:var(--soft)}
.facts-in{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.fact{
  padding:34px 28px;display:flex;align-items:baseline;gap:14px;
  border-left:1px solid var(--line);
}
.fact:first-child{border-left:0;padding-left:0}
.fact-n{
  font-family:'Montserrat',sans-serif;font-weight:900;font-size:2.6rem;
  color:var(--navy);line-height:1;letter-spacing:-.02em;
}
.fact-n.is-txt{font-family:'Noto Sans JP',sans-serif;font-size:1.7rem;font-weight:900;white-space:nowrap}
.fact-n.is-txt.is-3{font-size:1.35rem;letter-spacing:.02em}
.fact-l{font-size:.92rem;font-weight:700;color:var(--navy);display:flex;flex-direction:column;line-height:1.6}
.fact-l em{font-style:normal;font-size:.74rem;font-weight:400;color:var(--faint);margin-top:3px;line-height:1.6}

/* =============== セクション共通 =============== */
.sec{padding:88px 0}
.sec.is-soft{background:var(--soft)}
.sec-h{
  font-size:clamp(1.6rem,3vw,2.1rem);font-weight:900;color:var(--navy);
  line-height:1.45;letter-spacing:.03em;
}
.sec-lead{margin-top:18px;font-size:.98rem;color:var(--mute);line-height:2.1}

.note{
  margin-top:34px;padding:22px 26px;background:#fff;border:1px solid var(--line);
  border-left:3px solid var(--cobalt);border-radius:2px;
}
.sec.is-soft .note{background:#fff}
.note p{font-size:.86rem;color:var(--mute);line-height:2}
.note p + p{margin-top:10px}

/* --- 2カード --- */
.cards2{margin-top:40px;display:grid;grid-template-columns:1fr 1fr;gap:20px}
.card{background:#fff;border:1px solid var(--line);border-radius:2px;padding:34px 32px}
.sec.is-soft .card{background:#fff}
.card-rank{
  display:inline-block;font-weight:900;font-size:.8rem;letter-spacing:.14em;
  color:#fff;background:var(--navy);padding:4px 14px;border-radius:2px;margin-bottom:18px;
}
.card-rank.is-alt{background:var(--cobalt);font-family:'Montserrat',sans-serif;font-weight:800}
.card-h{font-size:1.16rem;font-weight:700;color:var(--navy);line-height:1.6}
.card-p{margin-top:12px;font-size:.9rem;color:var(--mute);line-height:2.05}
.card.is-link{transition:border-color .2s,transform .2s}
.card.is-link:hover{border-color:var(--cobalt);transform:translateY(-2px)}
.card-go{display:inline-block;margin-top:16px;font-size:.82rem;font-weight:700;color:var(--cobalt)}
.card-go::after{content:' →'}

/* --- ステップ --- */
.steps{margin-top:40px}
.step{display:grid;grid-template-columns:88px 1fr;gap:24px;padding:30px 0;border-top:1px solid var(--line)}
.step:last-child{border-bottom:1px solid var(--line)}
.step-n{
  font-family:'Montserrat',sans-serif;font-weight:900;font-size:1.9rem;
  color:var(--cobalt);line-height:1.1;letter-spacing:-.01em;
}
.step-h{font-size:1.14rem;font-weight:700;color:var(--navy);line-height:1.6}
.step-p{margin-top:9px;font-size:.9rem;color:var(--mute);line-height:2.05}
.step-req{
  margin-top:14px;padding:12px 16px;background:var(--soft);border-radius:2px;
  font-size:.82rem;color:var(--mute);line-height:1.95;
}
.sec.is-soft .step-req{background:#fff;border:1px solid var(--line)}

/* --- 費用 --- */
.fee-grid{margin-top:40px;display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}
.fee-box{border:1px solid var(--line);border-radius:2px;padding:28px 26px 22px;background:#fff}
.fee-h{
  font-size:1.06rem;font-weight:700;color:var(--navy);
  display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;
  padding-bottom:14px;border-bottom:2px solid var(--navy);
}
.fee-unit{font-family:'Montserrat',sans-serif;font-weight:800;font-size:1.02rem;color:var(--cobalt);letter-spacing:.01em}
.tbl{width:100%;border-collapse:collapse;margin-top:6px}
.tbl th{
  font-size:.74rem;font-weight:800;color:var(--faint);letter-spacing:.1em;
  text-align:left;padding:11px 8px;border-bottom:1px solid var(--line);
}
.tbl th:not(:first-child),.tbl td:not(:first-child){text-align:right}
.tbl td{
  font-size:.92rem;padding:12px 8px;border-bottom:1px solid var(--hair);
  font-weight:700;color:var(--navy);
}
.tbl td:first-child{font-weight:500;color:var(--mute)}
.tbl td em{font-style:normal;font-weight:500;font-size:.8rem;color:var(--faint);margin-left:2px}
.tbl-note{margin-top:12px;font-size:.78rem;color:var(--faint)}

.fee-list{margin-top:20px;display:grid;grid-template-columns:repeat(5,1fr);gap:0;border:1px solid var(--line);background:#fff}
.fee-item{padding:22px 18px;border-left:1px solid var(--hair);display:flex;flex-direction:column;gap:6px}
.fee-item:first-child{border-left:0}
.fi-l{font-size:.78rem;color:var(--faint);font-weight:700;letter-spacing:.04em}
.fi-v{font-family:'Montserrat',sans-serif;font-weight:800;font-size:1.06rem;color:var(--navy)}
.fi-v em{font-family:'Noto Sans JP',sans-serif;font-style:normal;font-weight:400;font-size:.72rem;color:var(--faint)}

.cta-inline{
  margin-top:40px;padding:30px 34px;background:var(--soft);border-radius:2px;
  display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;
}
.sec.is-soft .cta-inline{background:#fff;border:1px solid var(--line)}
.cta-inline p{font-size:.92rem;color:var(--mute);max-width:56ch;line-height:2}

/* --- 会場 --- */
.venues{
  margin-top:36px;display:grid;grid-template-columns:repeat(3,1fr);gap:0;
  border-top:1px solid var(--line);
}
.venue{
  display:flex;align-items:baseline;gap:14px;padding:16px 18px;
  border-bottom:1px solid var(--line);border-right:1px solid var(--hair);background:#fff;
}
.venue:nth-child(3n){border-right:0}
.v-pref{
  font-size:.74rem;font-weight:800;color:#fff;background:var(--cobalt);
  padding:3px 9px;border-radius:2px;flex-shrink:0;letter-spacing:.04em;
}
.v-name{font-size:.92rem;font-weight:700;color:var(--navy)}

/* --- 開催日程の帯 --- */
.schedule{background:var(--navy);color:#fff;padding:72px 0}
.sch-in{display:flex;align-items:center;justify-content:space-between;gap:44px;flex-wrap:wrap}
.sch-l{flex:1 1 460px}
.schedule .eyebrow{color:#7fb4d4}
.sch-h{font-size:clamp(1.4rem,2.6vw,1.9rem);font-weight:900;line-height:1.5;letter-spacing:.02em}
.sch-p{margin-top:16px;font-size:.92rem;line-height:2.1;color:rgba(255,255,255,.82);max-width:62ch}
.sch-r{display:flex;flex-direction:column;gap:18px;align-items:flex-start}
.sch-tel{
  font-family:'Montserrat',sans-serif;font-weight:800;font-size:1.2rem;color:#fff;
  display:flex;flex-direction:column;line-height:1.35;
}
.sch-tel span{font-family:'Noto Sans JP',sans-serif;font-weight:400;font-size:.68rem;color:rgba(255,255,255,.6)}

/* --- aotori --- */
.aotori{
  margin-top:44px;padding:38px 36px;border:1px solid var(--line);border-radius:2px;
  display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap;background:#fff;
}
.ao-l{flex:1 1 460px}
.ao-h{font-size:1.3rem;font-weight:900;color:var(--navy);letter-spacing:.02em}
.ao-p{margin-top:12px;font-size:.9rem;color:var(--mute);line-height:2.05;max-width:60ch}

/* --- FAQ --- */
.faq{margin-top:36px;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line);background:#fff}
.faq summary{
  padding:20px 46px 20px 22px;font-size:.98rem;font-weight:700;color:var(--navy);
  cursor:pointer;position:relative;list-style:none;line-height:1.7;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:'';position:absolute;right:24px;top:50%;width:9px;height:9px;
  border-right:2px solid var(--cobalt);border-bottom:2px solid var(--cobalt);
  transform:translateY(-70%) rotate(45deg);transition:transform .2s;
}
.faq details[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.faq p{padding:0 22px 22px;font-size:.9rem;color:var(--mute);line-height:2.05}

/* =============== フッター =============== */
.ft{background:var(--navy);color:rgba(255,255,255,.78);padding:56px 0 26px}
.ft-in{display:flex;align-items:flex-start;justify-content:space-between;gap:36px;flex-wrap:wrap}
.ft-l{max-width:60ch}
.ft-en{
  font-family:'Montserrat',sans-serif;font-weight:800;font-size:.64rem;
  letter-spacing:.2em;color:rgba(255,255,255,.42);margin-bottom:7px;
}
.ft-org{font-size:.92rem;font-weight:700;color:#fff;letter-spacing:.02em}
.ft-adr{font-size:.78rem;margin-top:5px;color:rgba(255,255,255,.6);line-height:1.9}
.ft-adr a{color:rgba(255,255,255,.85);border-bottom:1px solid rgba(255,255,255,.3)}
.ft-nav{display:flex;flex-direction:column;gap:9px;text-align:right}
.ft-nav a{font-size:.82rem;color:rgba(255,255,255,.8)}
.ft-nav a:hover{color:#fff}
.ft-cr{
  margin-top:36px;padding-top:18px;border-top:1px solid rgba(255,255,255,.12);
  font-family:'Montserrat',sans-serif;font-size:.68rem;letter-spacing:.08em;color:rgba(255,255,255,.4);
}

/* =========================================================
   レスポンシブ
   ========================================================= */
@media (max-width:900px){
  .cards2,.fee-grid{grid-template-columns:1fr}
  .fee-list{grid-template-columns:repeat(2,1fr)}
  .fee-item{border-left:1px solid var(--hair);border-top:1px solid var(--hair)}
  .fee-item:nth-child(odd){border-left:0}
  .fee-item:nth-child(-n+2){border-top:0}
  .venues{grid-template-columns:repeat(2,1fr)}
  .venue:nth-child(3n){border-right:1px solid var(--hair)}
  .venue:nth-child(2n){border-right:0}
}
@media (max-width:768px){
  :root{--pad:20px}
  body{font-size:14.5px}
  html{scroll-padding-top:74px}
  .hd-in{padding:12px var(--pad)}
  .hd-contact{display:none}
  .burger{display:block}
  .brand-mark{width:32px;height:32px}
  .brand-name{font-size:.96rem}
  .brand-org{font-size:.66rem}
  .gnav{display:none;border-top:1px solid var(--line)}
  .gnav.is-open{display:block}
  .gnav-in{flex-direction:column;padding:6px var(--pad) 14px;overflow:visible}
  .gnav a{padding:13px 0;border-bottom:1px solid var(--hair);border-left:0}
  .gnav a:first-child{padding-left:0}

  .hero-body{padding:64px var(--pad) 58px}
  .hero-h{letter-spacing:.02em}
  .hero-cta{gap:10px}
  .btn{padding:12px 22px;font-size:.84rem}

  .facts-in{grid-template-columns:1fr}
  .fact{border-left:0;border-top:1px solid var(--line);padding:22px 0}
  .fact:first-child{border-top:0}
  .fact-n{font-size:2.1rem}

  .sec{padding:56px 0}
  .step{grid-template-columns:1fr;gap:8px;padding:24px 0}
  .step-n{font-size:1.5rem}
  .fee-h{flex-direction:column;gap:4px;align-items:flex-start}
  .fee-list{grid-template-columns:1fr}
  .fee-item{border-left:0;border-top:1px solid var(--hair)}
  .fee-item:first-child{border-top:0}
  .cta-inline{padding:24px 22px;flex-direction:column;align-items:flex-start}
  .venues{grid-template-columns:1fr}
  .venue{border-right:0}
  .venue:nth-child(3n),.venue:nth-child(2n){border-right:0}
  .schedule{padding:52px 0}
  .sch-in{flex-direction:column;align-items:flex-start;gap:26px}
  .aotori{padding:28px 24px;gap:22px}
  .ft-in{flex-direction:column;gap:24px}
  .ft-nav{text-align:left;flex-direction:row;flex-wrap:wrap;gap:8px 18px}
}
@media (max-width:390px){
  .hero-h{font-size:1.86rem}
  .fact-n{font-size:1.9rem}
  .faq summary{padding:18px 40px 18px 16px;font-size:.92rem}
  .faq p{padding:0 16px 18px}
}

/* =========================================================
   TOP（総合ライセンスサイト）専用
   ========================================================= */

/* --- 3つの入口 --- */
.gates{border-bottom:1px solid var(--hair);background:var(--soft)}
.gates-in{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.gate{
  padding:32px 30px;border-left:1px solid var(--line);
  display:flex;flex-direction:column;gap:6px;transition:background .2s;
}
.gate:first-child{border-left:0;padding-left:0}
.gate:hover{background:#fff}
.gate-n{
  font-family:'Montserrat',sans-serif;font-weight:900;font-size:.86rem;
  color:var(--cobalt);letter-spacing:.1em;
}
.gate-t{font-size:1.14rem;font-weight:900;color:var(--navy);letter-spacing:.02em;line-height:1.5}
.gate-t::after{content:' →';font-size:.9rem;color:var(--cobalt)}
.gate-p{font-size:.8rem;color:var(--mute);line-height:1.8}

/* --- 講習グループ --- */
.grp{margin-top:56px}
.grp:first-of-type{margin-top:44px}
.grp-hd{display:flex;align-items:baseline;gap:14px;padding-bottom:13px;border-bottom:2px solid var(--navy)}
.grp-en{
  font-family:'Montserrat',sans-serif;font-weight:900;font-size:1.16rem;
  color:var(--navy);letter-spacing:.1em;
}
.grp-ja{font-size:.82rem;font-weight:700;color:var(--faint);letter-spacing:.08em}

/* --- 講習の行 --- */
.crs{margin-top:2px}
.crs-i{
  --c:var(--faint);
  display:grid;grid-template-columns:1fr 268px;gap:36px;align-items:start;
  padding:30px 24px 30px 22px;border-bottom:1px solid var(--hair);position:relative;background:#fff;
}
.crs-i::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--c);opacity:.85}
.crs-i.is-main{background:#fbfcfd}
.crs-badge{
  display:inline-block;font-size:.68rem;font-weight:800;letter-spacing:.1em;
  color:#fff;background:var(--c);padding:3px 11px;border-radius:2px;margin-bottom:11px;
}
.crs-badge.is-dbt{font-family:'Montserrat',sans-serif}
.crs-t{font-size:1.18rem;font-weight:700;color:var(--navy);line-height:1.55;letter-spacing:.01em}
.crs-i.is-main .crs-t{font-size:1.34rem;font-weight:900}
.crs-p{margin-top:10px;font-size:.9rem;color:var(--mute);line-height:2.05;max-width:62ch}
.crs-p b{font-weight:700;color:var(--navy)}
.crs-go{
  display:inline-block;margin-top:14px;font-size:.84rem;font-weight:700;color:var(--cobalt);
}
.crs-go::after{content:' →'}

.crs-m{border-left:1px solid var(--line);padding-left:26px}
.crs-m > div{display:flex;gap:14px;padding:7px 0;align-items:baseline}
.crs-m dt{
  font-size:.72rem;font-weight:800;color:var(--faint);letter-spacing:.08em;
  flex-shrink:0;width:34px;
}
.crs-m dd{font-size:.92rem;font-weight:700;color:var(--navy);line-height:1.7}
.crs-m dd em{font-style:normal;font-size:.7rem;font-weight:400;color:var(--faint);margin-left:5px}
.crs-m dd.is-ask{font-size:.82rem;font-weight:500;color:var(--mute)}

/* --- 学びの順路 --- */
.floors{margin-top:40px}
.floor{
  display:grid;grid-template-columns:96px 1fr;gap:28px;align-items:center;
  padding:32px 30px;background:#fff;border:1px solid var(--line);
}
.floor.is-2f{border-bottom:0;background:var(--navy);color:#fff;border-color:var(--navy)}
.floor-n{
  font-family:'Montserrat',sans-serif;font-weight:900;font-size:2.2rem;
  color:var(--cobalt);line-height:1;letter-spacing:-.02em;
}
.floor.is-2f .floor-n{color:#7fb4d4}
.floor-h{font-size:1.2rem;font-weight:900;letter-spacing:.03em;color:var(--navy)}
.floor.is-2f .floor-h{color:#fff}
.floor-p{margin-top:8px;font-size:.88rem;color:var(--mute);line-height:2}
.floor.is-2f .floor-p{color:rgba(255,255,255,.78)}

/* --- 下層ページのナビ先頭 --- */
.gnav-back{color:var(--navy)!important;font-weight:800!important}
.gnav-back::before{content:'‹ '}

@media (max-width:900px){
  .crs-i{grid-template-columns:1fr;gap:18px}
  .crs-m{border-left:0;border-top:1px solid var(--line);padding-left:0;padding-top:12px;
    display:grid;grid-template-columns:repeat(3,1fr);gap:0 18px}
  .crs-m > div{flex-direction:column;gap:2px;padding:4px 0}
  .crs-m dt{width:auto}
}
@media (max-width:768px){
  .gates-in{grid-template-columns:1fr}
  .gate{border-left:0;border-top:1px solid var(--line);padding:22px 0}
  .gate:first-child{border-top:0}
  .grp{margin-top:42px}
  .crs-i{padding:24px 14px 24px 18px}
  .crs-t{font-size:1.08rem}
  .crs-i.is-main .crs-t{font-size:1.18rem}
  .crs-m{grid-template-columns:1fr;gap:0}
  .crs-m > div{flex-direction:row;gap:14px;padding:6px 0}
  .crs-m dt{width:34px}
  .floor{grid-template-columns:1fr;gap:10px;padding:24px 22px}
  .floor-n{font-size:1.7rem}
}

/* =========================================================
   Q&A（疑問に答えるTOP）
   ========================================================= */
.qnav{background:var(--navy);border-bottom:1px solid rgba(255,255,255,.08)}
.qnav-in{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.qn{
  padding:26px 24px;border-left:1px solid rgba(255,255,255,.12);
  display:flex;flex-direction:column;gap:8px;transition:background .2s;
}
.qn:first-child{border-left:0;padding-left:0}
.qn:hover{background:rgba(255,255,255,.06)}
.qn-n{
  font-family:'Montserrat',sans-serif;font-weight:900;font-size:.86rem;
  color:#7fb4d4;letter-spacing:.12em;
}
.qn-t{font-size:1rem;font-weight:700;color:#fff;line-height:1.55;letter-spacing:.02em}
.qn-t::after{content:' ↓';color:rgba(255,255,255,.5);font-size:.85rem}

.qa .q-label{
  display:inline-block;font-family:'Montserrat',sans-serif;font-weight:900;
  font-size:.78rem;letter-spacing:.16em;color:#fff;background:var(--cobalt);
  padding:4px 13px;border-radius:2px;margin-bottom:16px;
}
.q-h{font-size:clamp(1.6rem,3vw,2.1rem);font-weight:900;color:var(--navy);line-height:1.45;letter-spacing:.03em}
.q-a{
  margin-top:20px;font-size:clamp(1.02rem,1.8vw,1.2rem);font-weight:500;
  color:var(--ink);line-height:1.95;padding-left:18px;border-left:3px solid var(--cobalt);
}
.q-p{margin-top:22px;font-size:.94rem;color:var(--mute);line-height:2.15;max-width:70ch}
.q-note{margin-top:18px;font-size:.82rem;color:var(--faint);line-height:1.95}

/* 特定飛行 */
.sp-grid{margin-top:32px;display:grid;grid-template-columns:1fr 1fr;gap:20px}
.sp-box{background:#fff;border:1px solid var(--line);border-radius:2px;padding:26px 28px}
.sec.is-soft .sp-box{background:#fff}
.sp-h{
  font-size:.8rem;font-weight:800;color:var(--faint);letter-spacing:.12em;
  padding-bottom:12px;border-bottom:1px solid var(--line);
}
.sp-list{margin-top:6px}
.sp-list li{
  font-size:.92rem;font-weight:500;color:var(--navy);padding:10px 0 10px 20px;
  border-bottom:1px solid var(--hair);position:relative;line-height:1.75;
}
.sp-list li:last-child{border-bottom:0}
.sp-list li::before{
  content:'';position:absolute;left:2px;top:19px;width:6px;height:6px;
  background:var(--cobalt);border-radius:50%;
}

/* カテゴリー */
.cats{margin-top:20px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.cat{
  display:flex;gap:16px;padding:22px 24px;background:var(--soft);border-radius:2px;
  align-items:flex-start;
}
.sec.is-soft .cat{background:#fff;border:1px solid var(--line)}
.cat-n{
  font-family:'Montserrat',sans-serif;font-weight:900;font-size:1.4rem;
  color:var(--cobalt);line-height:1.2;flex-shrink:0;
}
.cat h4{font-size:.94rem;font-weight:800;color:var(--navy);line-height:1.5}
.cat p{margin-top:5px;font-size:.82rem;color:var(--mute);line-height:1.9}

/* 限定 */
.limits{margin-top:32px;padding:28px 30px;background:#fff;border:1px solid var(--line);border-radius:2px}
.lim-h{font-size:1.02rem;font-weight:700;color:var(--navy);padding-bottom:14px;border-bottom:2px solid var(--navy)}
.lim-grid{margin-top:4px}
.lim{display:flex;gap:20px;padding:14px 0;border-bottom:1px solid var(--hair);align-items:baseline}
.lim:last-child{border-bottom:0}
.lim-l{font-size:.78rem;font-weight:800;color:var(--faint);letter-spacing:.08em;width:92px;flex-shrink:0}
.lim-v{font-size:.92rem;font-weight:500;color:var(--navy);line-height:1.8}

/* 取ると何ができるか */
.gains{margin-top:36px}
.gain{display:grid;grid-template-columns:66px 1fr;gap:22px;padding:26px 0;border-top:1px solid var(--line)}
.gain:last-child{border-bottom:1px solid var(--line)}
.gain-n{
  font-family:'Montserrat',sans-serif;font-weight:900;font-size:1.7rem;
  color:var(--cobalt);line-height:1.1;
}
.gain h3{font-size:1.12rem;font-weight:700;color:var(--navy);line-height:1.6}
.gain p{margin-top:8px;font-size:.9rem;color:var(--mute);line-height:2.05;max-width:64ch}

/* 取り方 */
.ways{margin-top:34px;display:grid;grid-template-columns:1.25fr 1fr;gap:20px;align-items:start}
.way{background:#fff;border:1px solid var(--line);border-radius:2px;padding:30px 30px 26px}
.way.is-main{border-color:var(--cobalt);border-top:3px solid var(--cobalt)}
.way-badge{
  display:inline-block;font-size:.7rem;font-weight:800;letter-spacing:.08em;
  color:#fff;background:var(--cobalt);padding:3px 11px;border-radius:2px;margin-bottom:13px;
}
.way-h{font-size:1.14rem;font-weight:700;color:var(--navy);line-height:1.6}
.way-p{margin-top:11px;font-size:.9rem;color:var(--mute);line-height:2.05}
.way-go{display:inline-block;margin-top:15px;font-size:.84rem;font-weight:700;color:var(--cobalt)}
.way-go::after{content:' →'}

.mini-h{
  margin-top:48px;font-size:1.06rem;font-weight:800;color:var(--navy);
  padding-bottom:12px;border-bottom:1px solid var(--line);letter-spacing:.03em;
}
.exam-grid{margin-top:18px;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.exam{background:#fff;border:1px solid var(--line);border-radius:2px;padding:22px 24px}
.exam h4{font-size:.96rem;font-weight:800;color:var(--navy);padding-bottom:10px;border-bottom:1px solid var(--hair)}
.exam-p{margin-top:11px;font-size:.85rem;color:var(--mute);line-height:1.95}
.exam-p b{font-weight:700;color:var(--navy);margin-right:4px}
.exam-s{display:block;margin-top:9px;font-size:.78rem;color:var(--faint);line-height:1.85}

.proc{margin-top:18px;background:#fff;border:1px solid var(--line);border-radius:2px}
.proc li{display:flex;gap:18px;align-items:center;padding:15px 24px;border-bottom:1px solid var(--hair)}
.proc li:last-child{border-bottom:0}
.proc-n{
  font-family:'Montserrat',sans-serif;font-weight:900;font-size:.9rem;color:#fff;
  background:var(--navy);width:26px;height:26px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.proc div{font-size:.92rem;color:var(--mute);line-height:1.8}
.proc b{font-weight:700;color:var(--navy)}

@media (max-width:900px){
  .qnav-in{grid-template-columns:1fr 1fr}
  .qn:nth-child(3){border-left:0;padding-left:0}
  .qn:nth-child(n+3){border-top:1px solid rgba(255,255,255,.12)}
  .qn:first-child{padding-left:0}
  .cats{grid-template-columns:1fr}
  .ways{grid-template-columns:1fr}
  .exam-grid{grid-template-columns:1fr}
}
@media (max-width:768px){
  .qnav-in{grid-template-columns:1fr}
  .qn{border-left:0;padding:18px 0;border-top:1px solid rgba(255,255,255,.12)}
  .qn:first-child{border-top:0}
  .qn:nth-child(3){padding-left:0}
  .sp-grid{grid-template-columns:1fr}
  .sp-box{padding:22px 20px}
  .q-a{font-size:1rem;padding-left:14px}
  .limits{padding:22px 20px}
  .lim{flex-direction:column;gap:4px}
  .lim-l{width:auto}
  .gain{grid-template-columns:1fr;gap:6px;padding:22px 0}
  .gain-n{font-size:1.4rem}
  .way{padding:24px 22px}
  .proc li{padding:13px 18px;gap:14px}
  .mini-h{margin-top:36px}
}

/* --- 国家資格の上に積むビジネスライセンス --- */
.stack{
  margin-top:38px;padding:38px 40px;background:var(--navy);color:#fff;border-radius:2px;
}
.stack .eyebrow{color:#7fb4d4}
.stack-h{font-size:clamp(1.3rem,2.4vw,1.7rem);font-weight:900;letter-spacing:.03em;line-height:1.5}
.stack-p{margin-top:15px;font-size:.92rem;line-height:2.1;color:rgba(255,255,255,.84);max-width:66ch}
.stack-p b{font-weight:700;color:#fff}
.stack-go{
  display:inline-block;margin-top:20px;padding:11px 26px;background:#fff;color:var(--navy);
  font-size:.85rem;font-weight:700;border-radius:2px;transition:opacity .2s;
}
.stack-go:hover{opacity:.86}
@media (max-width:768px){
  .stack{padding:28px 22px}
}

/* =========================================================
   ブラッシュアップ（2026-08-04）
   タイポグラフィの階層・行長・余白・段落の見直し
   ========================================================= */

/* --- 行長：日本語は35〜45字が読みやすい。長すぎる指定を締める --- */
.q-body{margin-top:26px}
.q-body p{
  font-size:.95rem;color:var(--mute);line-height:2.15;letter-spacing:.02em;
  max-width:40em;
}
.q-body p + p{margin-top:1.15em}
.q-body b{font-weight:700;color:var(--navy)}
.q-p{max-width:40em}
.sec-lead{max-width:44em;letter-spacing:.02em}
.crs-p{max-width:44em}
.gain p{max-width:42em}
.card-p{letter-spacing:.015em}
.way-p{max-width:40em;letter-spacing:.015em}

/* --- 見出しの字間を役割ごとに整える --- */
.eyebrow{letter-spacing:.2em;font-size:.7rem;margin-bottom:16px}
.q-h{letter-spacing:.045em;line-height:1.5}
.sec-h{letter-spacing:.045em}
.hero-h{letter-spacing:.05em}
.mini-h{letter-spacing:.05em}

/* --- Q の答えを一段強くする（役割で階層をつくる） --- */
.q-a{
  margin-top:26px;font-size:clamp(1.1rem,2vw,1.42rem);font-weight:700;
  color:var(--navy);line-height:1.85;letter-spacing:.03em;
  padding-left:22px;border-left:4px solid var(--cobalt);max-width:34em;
}
.q-a strong{font-weight:900}

/* --- セクションの間合い：大きな区切りを深く --- */
.sec{padding:104px 0}
.qa + .qa{border-top:1px solid var(--hair)}
.mini-h{margin-top:56px}

/* --- Q1「それでも学んでほしい」の転換ブロック --- */
.turn{margin-top:56px;border-top:1px solid var(--line);padding-top:52px}
.turn-h{
  font-size:clamp(1.24rem,2.3vw,1.62rem);font-weight:900;color:var(--navy);
  letter-spacing:.045em;line-height:1.55;
}
.turn-body{margin-top:20px}
.turn-body p{font-size:.95rem;color:var(--mute);line-height:2.15;letter-spacing:.02em;max-width:40em}
.turn-body p + p{margin-top:1.15em}
.turn-list{margin-top:34px;border-top:1px solid var(--line)}
.turn-list li{
  display:grid;grid-template-columns:270px 1fr;gap:28px;
  padding:20px 4px;border-bottom:1px solid var(--hair);align-items:baseline;
}
.tl-name{font-size:1rem;font-weight:800;color:var(--navy);letter-spacing:.02em;line-height:1.7}
.tl-p{font-size:.89rem;color:var(--mute);line-height:2;letter-spacing:.015em}

/* --- 国家資格の、その先に --- */
.beyond{position:relative;background:var(--navy);overflow:hidden}
.beyond-img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  object-position:70% 50%;opacity:.5;
}
.beyond::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(100deg,rgba(15,34,51,.95) 0%,rgba(15,34,51,.86) 42%,rgba(15,34,51,.34) 100%);
}
.beyond-in{position:relative;z-index:2;padding-top:104px;padding-bottom:104px}
.beyond-body{max-width:44em;color:#fff}
.beyond .eyebrow{color:#8fc0dd}
.beyond-h{
  font-size:clamp(1.7rem,3.4vw,2.5rem);font-weight:900;letter-spacing:.05em;line-height:1.5;
}
.beyond-p{
  margin-top:26px;font-size:clamp(1rem,1.8vw,1.18rem);font-weight:500;
  line-height:2.05;letter-spacing:.03em;color:#fff;
}
.beyond-p2{
  margin-top:22px;font-size:.94rem;line-height:2.15;letter-spacing:.02em;
  color:rgba(255,255,255,.8);max-width:38em;
}
.beyond-p2 b{font-weight:700;color:#fff}
.beyond-go{
  display:inline-block;margin-top:30px;padding:13px 30px;background:#fff;color:var(--navy);
  font-size:.87rem;font-weight:700;border-radius:2px;transition:opacity .2s;letter-spacing:.02em;
}
.beyond-go:hover{opacity:.86}

/* --- 学びの道すじ（横方向・上下関係を作らない） --- */
.road{margin-top:44px;display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.road-i{
  position:relative;background:#fff;border:1px solid var(--line);border-radius:2px;
  padding:28px 24px 26px;display:flex;flex-direction:column;
}
.road-i::after{
  content:'';position:absolute;right:-10px;top:50%;width:8px;height:8px;
  border-top:2px solid var(--line);border-right:2px solid var(--line);
  transform:translateY(-50%) rotate(45deg);z-index:2;
}
.road-i:last-child::after{display:none}
.road-n{
  font-family:'Montserrat',sans-serif;font-weight:900;font-size:1.02rem;
  color:var(--cobalt);letter-spacing:.1em;margin-bottom:12px;
}
.road-h{font-size:1.06rem;font-weight:800;color:var(--navy);letter-spacing:.03em;line-height:1.6}
.road-p{margin-top:9px;font-size:.84rem;color:var(--mute);line-height:1.95;flex:1}
.road-c{
  margin-top:16px;padding-top:13px;border-top:1px solid var(--hair);
  font-size:.78rem;font-weight:700;color:var(--navy);letter-spacing:.02em;line-height:1.6;
}

@media (max-width:900px){
  .turn-list li{grid-template-columns:1fr;gap:6px;padding:18px 2px}
  .road{grid-template-columns:1fr 1fr;gap:12px}
  .road-i:nth-child(2)::after{display:none}
}
@media (max-width:768px){
  .sec{padding:64px 0}
  .beyond-in{padding-top:64px;padding-bottom:64px}
  .q-a{padding-left:16px;font-size:1.06rem}
  .turn{margin-top:40px;padding-top:36px}
  .road{grid-template-columns:1fr}
  .road-i::after{
    right:auto;left:50%;top:auto;bottom:-10px;
    transform:translateX(-50%) rotate(135deg);
  }
  .road-i:nth-child(2)::after{display:block}
  .mini-h{margin-top:40px}
}

/* --- 1階／2階の積み上げ（優劣ではなく、基礎の上に応用） --- */
.floors{margin-top:40px;display:flex;flex-direction:column}
.floor{
  display:grid;grid-template-columns:190px 1fr;gap:32px;align-items:center;
  padding:34px 34px;background:#fff;border:1px solid var(--line);
}
.floor + .floor{border-top:0}
.floor.is-2f{background:var(--navy);border-color:var(--navy);color:#fff}
.floor.is-base{background:var(--soft);border-top:0}
.sec.is-soft .floor.is-base{background:#eef2f5}
.floor-l{display:flex;align-items:baseline;gap:14px}
.floor-n{
  font-family:'Montserrat',sans-serif;font-weight:900;font-size:2.1rem;
  color:var(--cobalt);line-height:1;letter-spacing:-.01em;
}
.floor.is-2f .floor-n{color:#8fc0dd}
.floor-n.is-ground{
  font-family:'Noto Sans JP',sans-serif;font-size:1.02rem;font-weight:800;
  color:var(--faint);letter-spacing:.1em;
}
.floor-t{font-size:1.02rem;font-weight:800;color:var(--navy);letter-spacing:.06em}
.floor.is-2f .floor-t{color:#fff}
.floor-h{font-size:1.14rem;font-weight:800;color:var(--navy);letter-spacing:.04em;line-height:1.6}
.floor.is-2f .floor-h{color:#fff}
.floor-p{margin-top:9px;font-size:.88rem;color:var(--mute);line-height:2.05;letter-spacing:.015em;max-width:46em}
.floor.is-2f .floor-p{color:rgba(255,255,255,.8)}
.floor.is-base .floor-p{margin-top:0;font-size:.85rem}

@media (max-width:768px){
  .floor{grid-template-columns:1fr;gap:12px;padding:24px 22px}
  .floor-n{font-size:1.7rem}
}

/* --- 飛行のレベル --- */
.levels{margin-top:20px;border-top:1px solid var(--line)}
.lv{
  display:grid;grid-template-columns:118px 1fr 96px;gap:26px;align-items:center;
  padding:20px 18px;border-bottom:1px solid var(--hair);background:#fff;
  border-left:3px solid transparent;
}
.lv.is-on{border-left-color:var(--cobalt);background:#fbfcfd}
.lv.is-top{border-left-color:var(--navy)}
.lv-n{
  font-size:.78rem;font-weight:700;color:var(--faint);letter-spacing:.06em;
  display:flex;align-items:baseline;gap:5px;
}
.lv-n b{font-family:'Montserrat',sans-serif;font-weight:900;font-size:1.42rem;color:var(--navy);letter-spacing:-.01em}
.lv.is-on .lv-n b{color:var(--cobalt)}
.lv.is-top .lv-n b{color:var(--navy)}
.lv-b h4{font-size:1rem;font-weight:700;color:var(--navy);line-height:1.6;letter-spacing:.02em}
.lv-b p{margin-top:6px;font-size:.85rem;color:var(--mute);line-height:1.95;letter-spacing:.015em;max-width:44em}
.lv-need{
  justify-self:end;font-size:.8rem;font-weight:800;color:#fff;background:var(--cobalt);
  padding:5px 14px;border-radius:2px;letter-spacing:.06em;white-space:nowrap;
}
.lv.is-top .lv-need{background:var(--navy)}
.lv-need.is-none{background:transparent;color:var(--faint);font-weight:500;font-size:.74rem;padding:5px 0}

/* --- その先に：実績の数字 --- */
.beyond-facts{
  margin-top:32px;display:flex;gap:44px;flex-wrap:wrap;
  padding-top:26px;border-top:1px solid rgba(255,255,255,.16);
}
.beyond-facts > div{display:flex;align-items:baseline;gap:8px}
.beyond-facts dt{
  font-family:'Montserrat',sans-serif;font-weight:900;font-size:2.2rem;
  color:#fff;line-height:1;letter-spacing:-.02em;
}
.beyond-facts dd{font-size:.88rem;font-weight:700;color:#fff;display:flex;flex-direction:column;line-height:1.5}
.beyond-facts dd span{font-size:.7rem;font-weight:400;color:rgba(255,255,255,.6);margin-top:2px;letter-spacing:.02em}

@media (max-width:900px){
  .lv{grid-template-columns:104px 1fr;gap:8px 20px}
  .lv-need{grid-column:2;justify-self:start;margin-top:4px}
}
@media (max-width:768px){
  .lv{grid-template-columns:1fr;gap:6px;padding:18px 14px}
  .lv-need{grid-column:1}
  .beyond-facts{gap:22px 30px;margin-top:26px}
  .beyond-facts dt{font-size:1.7rem}
}

/* ── 図版（国土交通省の資料など）2026-08-06 追加 ───────────── */
.fig{margin:30px 0 0;border:1px solid var(--line);border-radius:4px;overflow:hidden;background:#fff}
.fig img{display:block;width:100%;height:auto}
.fig figcaption{
  padding:12px 18px;border-top:1px solid var(--hair);background:var(--soft);
  font-size:.78rem;color:var(--faint);letter-spacing:.02em;line-height:1.8;
}
.fig-2{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:30px;align-items:start}
.fig-2 .fig{margin-top:0}
@media(max-width:820px){ .fig-2{grid-template-columns:1fr} }

/* 手続きの外部リンク一覧 */
.links{margin-top:30px;border-top:1px solid var(--line)}
.links a{
  display:grid;grid-template-columns:auto 1fr;gap:4px 18px;align-items:baseline;
  padding:18px 4px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink);
}
.links a:hover .lk-t{color:var(--cobalt);text-decoration:underline}
.lk-n{font-family:Montserrat,sans-serif;font-weight:800;font-size:.72rem;
  letter-spacing:.22em;color:var(--faint);white-space:nowrap}
.lk-t{font-size:1.02rem;font-weight:700;line-height:1.7}
.lk-u{grid-column:2;font-family:Montserrat,sans-serif;font-size:.74rem;color:var(--faint);word-break:break-all}
@media(max-width:600px){
  .links a{grid-template-columns:1fr}
  .lk-u,.links a .lk-t{grid-column:1}
}

/* ── 講習の写真（2026-08-06 追加）─────────────────────────
   「どんな現場か」を文字ではなく写真で伝える。実写のみ。 */
.crs-i.has-img{grid-template-columns:214px 1fr 268px}
.crs-img{
  width:214px;aspect-ratio:4/3;object-fit:cover;border-radius:2px;
  background:var(--soft);
}
@media(max-width:900px){
  .crs-i.has-img{grid-template-columns:1fr}
  .crs-img{width:100%;aspect-ratio:16/9}
}
