/* FPVコースLP（odschool.jp/fpv/）。C案（variants/mugen）の master-v2.css・style.css・content.css・テーマを1つにまとめた（2026-10-23）。 */
/* Approved reference: visual-master-v2, 1024 × 1536 per panel.
   The layout stays at the approved 1024px width on large displays. */
:root{--ink:#0b2c36;--orange:#f2620c;--line:#ccd4da;--sky:#edf6f9;--font:"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic",Meiryo,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:#fff;color:var(--ink);font-family:var(--font);font-size:17px;font-weight:400;line-height:1.55}h1,h2,h3,p,ul,figure,dl,dd{margin:0}h1,h2,h3{font-weight:600;letter-spacing:.01em}h2{font-size:34px;line-height:1.4}h3{font-size:24px;line-height:1.4}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:default}a{color:inherit;text-underline-offset:4px}img{display:block;max-width:100%;height:auto}button,a,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #105ab4;outline-offset:5px}[hidden]{display:none!important}.page{max-width:1024px;margin-inline:auto}.content{width:calc(100% - 76px);margin-inline:auto}.skip-link{position:absolute;left:12px;top:-100px;z-index:100;background:#fff;padding:10px}.skip-link:focus{top:10px}.button{display:inline-flex;justify-content:center;align-items:center;background:var(--orange);color:#fff;border:0;border-radius:999px;min-height:60px;font-size:23px;font-weight:600;text-decoration:none;line-height:1.4;padding:12px 25px;transition:background .15s}.button:hover{background:#db5103}.header{height:84px;padding:0 37px 0 57px;display:flex;align-items:center;justify-content:space-between;gap:28px;background:#fff}.brand{display:block;flex-shrink:0}.brand img{width:216px;height:auto}.nav{display:flex;align-items:center;gap:32px;font-size:14px;font-weight:600}.nav>a{text-decoration:none;white-space:nowrap}.header-button{min-height:48px;min-width:201px;font-size:15px;padding:10px 21px}.menu-toggle{display:none}.hero{height:574px;position:relative;isolation:isolate;color:#fff;background:#174d68;overflow:hidden}.hero-background{position:absolute;inset:0;z-index:-2}.hero-background img,.hero-background video{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.hero-background video{opacity:0}.hero[data-video-ready="true"] video{opacity:1}.hero:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#002c4d45,#002c4d0a 75%)}.hero-copy{padding:126px 57px 0}.hero-audience{font-size:16px;font-weight:500;letter-spacing:.08em;margin-bottom:43px}.hero h1{font-size:44px;font-weight:500;line-height:1.44;letter-spacing:.07em}.hero-lead{font-size:23px;font-weight:500;line-height:1.58;letter-spacing:.035em;margin-top:21px}.hero-button{width:360px;height:64px;margin-top:26px}.video-toggle{position:absolute;right:31px;bottom:29px;border:0;width:39px;height:39px;border-radius:50%;background:#062414bd;color:#fff;display:grid;place-items:center;font-family:Arial,sans-serif;font-size:21px;font-weight:700}.video-toggle:focus-visible{outline-color:#fff}.facts{height:69px;list-style:none;display:grid;grid-template-columns:repeat(4,1fr);align-items:center;text-align:center;padding:0 30px;font-size:21px;font-weight:500}.facts li+li{border-left:1px solid var(--line)}.introduction{display:grid;grid-template-columns:599fr 336fr;gap:14px;margin-top:28px;align-items:stretch}.intro-side{display:flex;flex-direction:column;justify-content:space-between;padding-top:10px}.intro-copy{padding-left:13px}.intro-copy h2{font-size:28px;font-weight:600;line-height:1.4;white-space:nowrap;margin-bottom:12px;letter-spacing:0}.intro-copy p{font-size:17px;line-height:1.52}.intro-copy p+p{margin-top:14px}.intro-secondary{margin-top:26px}.island{margin-top:37px}.island h2{font-size:32px;margin-bottom:14px}.island-grid{display:grid;grid-template-columns:697fr 218fr;gap:33px;align-items:stretch}.island-points{list-style:none;padding:0;display:flex;flex-direction:column;font-size:18px;font-weight:500}.island-points li{display:flex;align-items:center;flex:1;padding:8px 0}.island-points li+li{border-top:1px solid var(--line)}
/* Only the photo rectangles from the approved design are clipped. Text remains real HTML. */
.photo-crop{position:relative;overflow:hidden;align-self:start;width:100%;aspect-ratio:var(--w) / var(--h);background:#dce8eb}.photo-crop>img{position:absolute;max-width:none;width:calc(1024 / var(--w) * 100%);height:auto;left:calc(var(--x) / var(--w) * -100%);top:calc(var(--y) / var(--h) * -100%)}
[data-photo="practice"]{--x:38;--y:755;--w:599;--h:421}[data-photo="controller"]{--x:652;--y:989;--w:336;--h:187}[data-photo="island"]{--x:38;--y:1274;--w:697;--h:224}[data-photo="starter"]{--x:47;--y:116;--w:448;--h:240}[data-photo="basic"]{--x:47;--y:390;--w:448;--h:246}[data-photo="setting"]{--x:47;--y:875;--w:293;--h:181}[data-photo="flight"]{--x:369;--y:873;--w:286;--h:185}[data-photo="review"]{--x:684;--y:873;--w:294;--h:185}[data-photo="kit"]{--x:47;--y:1271;--w:634;--h:217}[data-photo="use-wide"]{--x:39;--y:85;--w:613;--h:371}[data-photo="use-drone"]{--x:665;--y:85;--w:322;--h:174}[data-photo="use-monitor"]{--x:665;--y:271;--w:322;--h:185}[data-photo="access"]{--x:38;--y:673;--w:460;--h:251}
.courses{margin-top:56px;padding:0 9px}.courses h2{font-size:36px}.section-lead{font-size:17px;margin-top:4px;margin-bottom:16px}.course-row{display:grid;grid-template-columns:448fr 451fr;gap:33px;padding:0 0 14px;border-bottom:1px solid var(--line);margin-bottom:18px}.course-row+.course-row{padding-bottom:16px;margin-bottom:0}.course-copy{padding-top:1px;display:flex;flex-direction:column;min-width:0}.course-copy h3{font-size:31px;line-height:1.4;font-weight:600}.course-duration{font-size:20px;line-height:1.5;margin-top:0}.course-description{font-size:17px;line-height:1.6;margin-top:8px;white-space:nowrap}.course-prices{display:grid;grid-template-columns:1fr 1.12fr;position:relative;margin-top:auto;padding-bottom:17px;padding-top:20px}.course-prices>div+div{border-left:1px solid #bfc9d0;padding-left:32px}.price-label{font-size:18px;font-weight:500;line-height:1.35}.price{color:#ed5105;font-family:Arial,"Hiragino Sans",sans-serif;font-size:40px;line-height:1.25;font-weight:500;white-space:nowrap;font-variant-numeric:tabular-nums;letter-spacing:-.035em;margin-top:3px}.yen{font-family:var(--font);font-size:23px;font-weight:500;letter-spacing:0}.tax{font-size:12px;white-space:nowrap;align-self:end;position:absolute;right:-8px;bottom:14px;transform:translateX(25%)}.course-prices>div:last-of-type{padding-right:23px}.creator-row{display:grid;grid-template-columns:295fr 230fr 405fr;align-items:center;min-height:76px;gap:0}.creator-row h3{font-size:22px;font-weight:600;white-space:nowrap}.creator-row h3 span{font-size:20px}.creator-duration{font-size:16px;border-left:1px solid #bfc9d0;padding:2px 23px;white-space:nowrap}.creator-prices{display:grid;grid-template-columns:1fr 1fr;position:relative;border-left:1px solid #bfc9d0;padding-left:37px;gap:25px}.creator-prices>div+div{border-left:1px solid #bfc9d0;padding-left:31px}.creator-prices .price-label{font-size:16px;font-weight:400}.creator-prices .price{font-size:27px;margin-top:0}.creator-prices .yen{font-size:15px}.creator-prices .tax{right:-1px;bottom:0;transform:translateX(0)}.course-note{font-size:16px;line-height:1.5;margin-top:5px}.campaign-notice{font-size:15px;background:#fff3e9;padding:12px;margin:0 0 16px}.curriculum{margin-top:36px;padding:0 9px}.curriculum h2{font-size:36px;margin-bottom:9px}.curriculum-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:29px;align-items:start}.curriculum-grid h3{font-size:22px;margin-top:8px;line-height:1.35;font-weight:600}.curriculum-grid p{font-size:16px;line-height:1.5;margin-top:7px}.curriculum-note{text-align:right;font-size:13px;margin-top:7px}.equipment{margin-top:14px;padding:0 9px}.equipment h2{font-size:36px;margin-bottom:8px}.equipment-grid{display:grid;grid-template-columns:634fr 261fr;gap:35px}.kit-list{list-style:none;padding:0;font-size:20px;line-height:1.5;display:flex;flex-direction:column}.kit-list li{flex:1;display:flex;align-items:center}.kit-list li+li{border-top:1px solid var(--line)}.uses{margin-top:58px}.uses h2{font-size:36px;margin-bottom:12px}.uses-collage{display:grid;grid-template-columns:613fr 322fr;gap:13px}.uses-stack{display:flex;flex-direction:column;gap:12px}.use-categories{list-style:none;padding:26px 0 0;display:grid;grid-template-columns:.87fr 1.23fr 1.08fr .87fr;text-align:center;font-size:21px;font-weight:500}.use-categories li+li{border-left:1px solid #bfc9d0}.use-scope{font-size:17px;line-height:1.6;margin:26px 11px 0}.attendance{margin-top:43px}.attendance h2{font-size:36px;margin-bottom:12px}.attendance-grid{display:grid;grid-template-columns:460fr 458fr;gap:31px;align-items:start}.attendance-table{font-size:17px;line-height:1.55}.attendance-table>div{display:grid;grid-template-columns:145px 1fr;border-bottom:1px solid var(--line);padding:10px 9px;min-height:46px}.attendance-table>div:first-child{padding-top:1px;min-height:37px}.attendance-table dt{font-weight:500}.attendance-note{font-size:15px;margin:12px 9px 0;line-height:1.55}.faq{margin-top:50px}.faq h2{font-size:36px;margin-bottom:12px}.faq-list{border-top:1px solid var(--line)}.faq details{border-bottom:1px solid var(--line)}.faq summary{list-style:none;cursor:pointer;min-height:54px;padding:13px 45px 13px 12px;position:relative;font-size:18px;font-weight:500;line-height:1.5}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";position:absolute;right:15px;top:9px;font-size:30px;line-height:1.2;font-weight:300}.faq details[open] summary:after{content:"−"}.faq details>p{font-size:16px;padding:0 45px 20px 12px;line-height:1.7}.contact{margin-top:30px;text-align:center;background:var(--sky);padding:25px 30px 33px}.contact h2{font-size:36px;line-height:1.4}.contact p{font-size:17px;line-height:1.55;margin-top:10px}.contact-button{width:437px;max-width:100%;min-height:60px;margin-top:19px;font-size:23px}.footer{background:var(--sky);padding:0 31px}.footer p{border-top:1px solid var(--line);padding:10px 4px;font-size:12px;text-align:right}.design-tools{font-size:12px;line-height:1.7;padding:12px 38px 20px;background:#fff}.design-tools>summary{cursor:pointer;width:fit-content}.design-tools-inner{padding-top:16px}.design-tools p+p{margin-top:10px}.design-tools-inner>details{margin-top:16px;border-top:1px solid var(--line);padding-top:10px}.design-tools-inner>details>summary{cursor:pointer}.design-tools-inner>details>p{margin-top:10px}.rate-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:16px}.rate-controls button{border:1px solid var(--line);background:#fff;padding:7px 12px;color:var(--ink);border-radius:3px}.rate-controls button[aria-pressed="true"]{background:var(--ink);color:#fff;border-color:var(--ink)}.source-list{padding-left:20px;margin-top:10px}.source-list li{margin:6px 0}.design-links{margin-top:18px}dialog{border:1px solid var(--line);border-radius:4px;padding:30px;max-width:500px;width:calc(100% - 32px);color:var(--ink);max-height:90vh;overflow:auto}dialog::backdrop{background:#001d2b80}dialog h2{font-size:23px;padding-right:16px}.dialog-close{position:absolute;right:8px;top:5px;border:0;background:transparent;color:var(--ink);font-size:30px;padding:0 7px}.dialog-notice{font-size:14px;margin-top:12px}dialog fieldset{padding:0;border:0;margin:20px 0 0;display:grid;gap:8px}dialog label{font-size:14px}dialog input,dialog select,dialog textarea{width:100%;margin-bottom:8px;border:1px solid var(--line);border-radius:2px;background:#f4f6f7;min-height:38px;padding:8px;color:var(--ink);opacity:1}dialog .button{font-size:17px;min-height:48px;margin-top:6px}dialog .button:disabled{opacity:.65}
@media(max-width:950px) and (min-width:801px){.header{padding:0 30px;gap:20px}.brand img{width:190px}.nav{gap:20px;font-size:12px}.header-button{min-width:180px;font-size:13px}.intro-copy h2{font-size:24px;white-space:normal}.intro-copy p{font-size:15px}.intro-secondary{margin-top:15px}.course-copy h3{font-size:28px}.course-duration{font-size:18px}.course-description{font-size:15px;white-space:normal}.price{font-size:30px}.yen{font-size:19px}.course-prices>div+div{padding-left:20px}.creator-row h3{font-size:18px}.creator-row h3 span{font-size:16px}.creator-duration{font-size:14px;padding-inline:12px}.creator-prices{padding-left:18px;gap:15px}.creator-prices>div+div{padding-left:18px}.creator-prices .price{font-size:23px}.tax{font-size:10px;right:-9px}.creator-prices .tax{right:-8px;bottom:-12px}.island-points{font-size:16px}.attendance-table{font-size:15px}.attendance-table>div{grid-template-columns:125px 1fr}.attendance-note{font-size:13px}.use-categories{font-size:18px}}
@media(max-width:800px){body{font-size:16px}.content{width:calc(100% - 40px)}.header{height:74px;padding:0 20px;gap:12px;position:relative;z-index:10}.brand img{width:190px}.menu-toggle{display:block;padding:8px 10px;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:3px;font-size:12px}.nav{display:none;position:absolute;left:0;right:0;top:74px;background:#fff;padding:18px 20px 24px;box-shadow:0 10px 12px #00243514;font-size:15px;align-items:stretch;gap:0}.nav.open{display:flex;flex-direction:column}.nav>a{padding:12px 0}.header-button{align-self:start;margin-top:10px;min-width:200px}.hero{height:560px}.hero-copy{padding:103px 24px 0}.hero-audience{font-size:13px;letter-spacing:.015em;margin-bottom:34px}.hero h1{font-size:clamp(28px,7.8vw,44px);line-height:1.5;letter-spacing:.015em}.hero-lead{font-size:17px;line-height:1.7;letter-spacing:0;margin-top:24px}.hero-button{width:290px;max-width:100%;font-size:19px;height:58px;min-height:58px;margin-top:30px}.video-toggle{right:18px;bottom:18px;width:36px;height:36px;font-size:18px}.facts{height:auto;min-height:93px;padding:16px 18px;grid-template-columns:repeat(2,1fr);gap:12px 0;font-size:16px;line-height:1.5}.facts li:nth-child(3){border-left:0}.introduction{margin-top:25px;display:flex;flex-direction:column;gap:20px}.intro-side{padding:0;display:grid;grid-template-columns:1fr;gap:19px}.intro-copy{padding:0}.intro-copy h2{font-size:25px;white-space:normal;margin-bottom:12px}.intro-copy p{font-size:16px;line-height:1.7}.intro-secondary{margin:0;width:68%;align-self:end;justify-self:end}.island{margin-top:32px}.island h2{font-size:27px;line-height:1.5;margin-bottom:14px}.island-grid{display:flex;flex-direction:column;gap:16px}.island-points{font-size:16px;display:grid;grid-template-columns:1fr}.island-points li{min-height:46px;padding:10px 0}.courses,.curriculum,.equipment{padding:0}.courses{margin-top:36px}.courses h2,.curriculum h2,.equipment h2,.uses h2,.attendance h2,.faq h2{font-size:29px;line-height:1.5;margin-bottom:12px}.section-lead{font-size:15px;margin-top:0;margin-bottom:18px}.course-row{display:block;padding-bottom:25px;margin-bottom:24px}.course-row+.course-row{padding-bottom:25px}.course-copy{padding-top:17px}.course-copy h3{font-size:27px}.course-duration{font-size:17px;margin-top:2px}.course-description{font-size:15px;white-space:normal;margin-top:9px}.course-prices{padding-top:20px;padding-bottom:8px;grid-template-columns:1fr 1fr;margin-top:0}.course-prices>div+div{padding-left:20px}.price-label{font-size:16px}.price{font-size:clamp(29px,8.1vw,40px);letter-spacing:-.04em}.yen{font-size:18px}.tax{right:0;bottom:-7px;transform:none;font-size:10px}.creator-row{grid-template-columns:1fr;gap:10px;padding:20px 0 14px}.creator-row h3{font-size:22px}.creator-row h3 span{font-size:18px}.creator-duration{padding:0;border:0;font-size:16px}.creator-prices{padding:7px 0 5px;border:0;gap:0}.creator-prices>div+div{padding-left:20px}.creator-prices .price-label{font-size:16px}.creator-prices .price{font-size:29px}.creator-prices .yen{font-size:18px}.creator-prices .tax{bottom:-6px}.course-note{font-size:14px;line-height:1.7;margin-top:10px}.curriculum{margin-top:35px}.curriculum-grid{grid-template-columns:1fr;gap:28px}.curriculum-grid h3{font-size:22px;margin-top:10px}.curriculum-grid p{font-size:15px;line-height:1.7;margin-top:6px}.curriculum-note{font-size:12px;margin-top:16px}.equipment{margin-top:30px}.equipment-grid{display:block}.kit-list{margin-top:15px;font-size:17px}.kit-list li{min-height:46px;padding:10px 0}.uses{margin-top:38px}.uses-collage{display:flex;flex-direction:column;gap:12px}.uses-stack{display:grid;grid-template-columns:1fr 1fr;gap:12px}.use-categories{grid-template-columns:1fr 1fr;font-size:17px;gap:14px 0;padding-top:21px}.use-categories li:nth-child(3){border-left:0}.use-scope{font-size:15px;line-height:1.8;margin:22px 0 0}.attendance{margin-top:32px}.attendance-grid{display:block}.attendance-table{font-size:15px;margin-top:18px}.attendance-table>div{grid-template-columns:115px 1fr;min-height:46px;padding:10px 4px}.attendance-table>div:first-child{padding-top:10px;min-height:46px}.attendance-note{font-size:13px;margin:13px 4px 0}.faq{margin-top:35px}.faq summary{font-size:16px;min-height:60px;padding:16px 32px 16px 2px}.faq summary:after{right:3px;top:12px;font-size:27px}.faq details>p{font-size:15px;line-height:1.8;padding:0 14px 18px 2px}.contact{margin-top:28px;padding:29px 20px 30px}.contact h2{font-size:26px}.contact p{font-size:15px;line-height:1.8;margin-top:14px}.contact p br{display:none}.contact-button{font-size:19px;min-height:57px;width:330px;margin-top:22px}.footer{padding:0 20px}.footer p{font-size:10px;line-height:1.7;text-align:center;padding:12px 0}.design-tools{padding:14px 20px 24px;font-size:12px}dialog{padding:25px 20px}dialog h2{font-size:21px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}}

/* C案 2026-10-23
   実写の空撮、左揃えの組版、余白と罫線を中心とした構成。
   ロゴ・オレンジの丸型CTA・共通の操作コードは既存を使用。 */
:root {
  --ink: #17201f;
  --red: #17201f;
  --line: #d3d5cf;
  --orange: #f2620c;
  --paper: #f6f5f1;
  --gutter: clamp(24px, 6.25vw, 90px);
}
body {background: #fff; color: var(--ink); font-size: 16px; line-height: 1.9;}
.page {max-width: 1440px; background: #fff;}
.content {width: 100%;}
h1, h2, h3 {font-weight: 500; letter-spacing: .015em;}
h2 {font-size: 30px; line-height: 1.65;}
h3 {font-size: 22px; line-height: 1.65;}
.header {height: 90px; padding: 0 44px; gap: 24px;}
.brand img {width: 210px;}
.nav {gap: 26px; font-size: 13px; font-weight: 400;}
.button {font-size: 16px; font-weight: 500; min-height: 56px; padding: 15px 27px; gap: 22px; box-shadow: none;}
.button::after {content: ""; width: 6px; height: 6px; border-top: 1px solid currentColor; border-right: 1px solid currentColor; transform: rotate(45deg); flex-shrink: 0;}
.header-button {min-width: 192px; min-height: 46px; padding: 12px 21px; font-size: 13px; gap: 12px;}
.hero {height: clamp(600px, 49vw, 706px); min-height: 600px; background: #173833; isolation: isolate;}
.hero-background {inset: 0; width: 100%; height: 100%; z-index: -2; clip-path: none;}
.hero-background img, .hero-background video {object-position: center 52%;}
.hero::before {display: block; background: linear-gradient(90deg, rgba(9,25,26,.62), rgba(9,25,26,.18) 53%, rgba(9,25,26,.04));}
.hero-copy {position: relative; z-index: 1; max-width: 800px; padding: 113px var(--gutter) 74px;}
.hero-audience {font-size: 13px; font-weight: 400; letter-spacing: .02em; margin: 0 0 25px;}
.hero-audience::after {display: none;}
.hero h1 {font-size: clamp(38px, 3.8vw, 51px); font-weight: 500; line-height: 1.55; letter-spacing: .015em; text-shadow: none;}
.hero-lead {font-size: 17px; font-weight: 400; line-height: 1.95; letter-spacing: .015em; margin-top: 24px;}
.hero-button {width: 288px; height: auto; min-height: 58px; margin-top: 32px;}
.video-toggle {right: 27px; bottom: 24px; top: auto; width: 36px; height: 36px; background: #102b2ca8; border: 1px solid #ffffff7a; font-size: 15px; font-weight: 400;}
.facts {height: 80px; min-height: 0; padding: 0 var(--gutter); font-size: 15px; font-weight: 400; border-bottom: 1px solid var(--line); background: #fff;}
.facts li {padding: 0 12px;}
.facts li + li {border-color: var(--line);}
.introduction {display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.1fr); gap: 70px; align-items: center; margin: 0; padding: 108px var(--gutter) 104px; background: #fff; color: var(--ink);}
.intro-side {display: block; padding: 0;}
.intro-copy {margin: 0; padding: 0;}
.intro-eyebrow {font-size: 12px !important; margin: 0 0 24px !important;}
.intro-copy h2 {font-size: 30px; line-height: 1.7; font-weight: 500; white-space: normal; margin: 0 0 25px;}
.intro-copy h2::after {display: none;}
.intro-copy p {font-size: 15px; line-height: 2; max-width: 520px;}
.intro-copy p + p {margin-top: 16px;}
.editorial-photo {min-width: 0; margin: 0;}
.editorial-photo img {width: 100%; height: auto; object-fit: cover;}
.editorial-photo figcaption {font-size: 11px; line-height: 1.8; margin-top: 9px; color: var(--ink);}
.intro-main {clip-path: none; width: 100%;}
.intro-main img {aspect-ratio: 4 / 3;}
.intro-secondary {display: none;}
.section-heading {min-width: 0; margin-bottom: 40px;}
.section-heading h2 {font-size: 30px; font-weight: 500; line-height: 1.65; letter-spacing: .015em; margin: 0; text-align: left;}
.section-heading h2::after {display: none;}
.section-heading .section-intro, .section-heading .section-lead {max-width: 730px; margin: 19px 0 0; font-size: 15px; line-height: 1.95; text-align: left;}
.courses, .curriculum, .equipment, .attendance, .faq, .island {margin: 0; padding: 94px var(--gutter); color: var(--ink);}
.courses {background: #fff;}
.course-grid {display: block;}
.course-row, .course-row + .course-row {display: block; margin: 0; padding: 35px 0 38px; border: 0; border-top: 1px solid var(--line); background: transparent;}
.course-copy {display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 50px; padding: 0; align-items: center;}
.course-info {min-width: 0;}
.course-copy h3 {font-size: 27px; font-weight: 500; line-height: 1.5;}
.course-duration {font-size: 14px; line-height: 1.7; margin-top: 7px;}
.course-description {font-size: 15px; line-height: 1.9; white-space: normal; margin-top: 14px; max-width: 480px;}
.course-prices {display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin: 0; padding: 16px 0 28px; border: 0;}
.course-prices > div + div {border-left: 1px solid var(--line); padding-left: 24px;}
.course-prices > div:last-of-type {padding-right: 0;}
.price-label {font-size: 13px; font-weight: 400; line-height: 1.7;}
.price {font-size: clamp(28px, 2.6vw, 36px); color: var(--ink); font-weight: 400; letter-spacing: -.035em; margin-top: 9px; line-height: 1.2;}
.yen {font-size: 15px; font-weight: 400; margin-left: 3px;}
.tax {font-size: 11px; right: 0; bottom: 0; transform: none;}
.creator-row {display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .75fr) minmax(0, 1.5fr); gap: 24px; padding: 28px 0; margin-top: 12px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);}
.creator-row h3 {font-size: 19px; font-weight: 500; white-space: normal;}
.creator-row h3 span {font-size: 13px; font-weight: 400; display: block; margin-top: 5px;}
.creator-duration {font-size: 13px; border: 0; padding: 0; white-space: normal;}
.creator-prices {grid-template-columns: 1fr 1fr; border: 0; padding: 0 0 17px; gap: 18px;}
.creator-prices > div + div {padding-left: 18px; border-color: var(--line);}
.creator-prices .price-label {font-size: 12px;}
.creator-prices .price {font-size: 25px; font-weight: 400; margin-top: 7px;}
.creator-prices .yen {font-size: 13px;}
.creator-prices .tax {bottom: -4px; right: 0; font-size: 10px;}
.course-note {font-size: 12px; line-height: 1.85; margin-top: 16px;}
.course-note br {display: none;}
.campaign-notice {font-size: 14px; margin: 0 0 20px; background: #fff3e9; color: var(--ink);}
.equipment {display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.6fr); gap: 64px; align-items: start; padding-bottom: 48px; background: var(--paper);}
.equipment-grid {display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 32px; align-items: center;}
.equipment .section-heading {margin: 0;}
.kit-list {font-size: 14px; line-height: 1.7;}
.kit-list li {padding: 12px 0; min-height: 0;}
.kit-list li + li {border-color: var(--line);}
.curriculum {display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.6fr); gap: 0 64px; background: #fff; border-top: 1px solid var(--line);}
.curriculum .section-heading {grid-column: 1; margin: 0;}
.curriculum-grid {display: flex; flex-direction: column; gap: 32px; max-width: none; margin: 0; counter-reset: steps;}
.curriculum-grid article {display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.2fr); align-items: start; gap: 28px; counter-increment: steps; padding: 0 0 30px; border-bottom: 1px solid var(--line);}
.curriculum-grid .photo-crop {clip-path: none; align-self: start;}
.step-copy {min-width: 0; max-width: none; padding: 0;}
.step-copy::before {content: "0" counter(steps); display: block; font-family: Arial, sans-serif; font-size: 12px; font-weight: 400; letter-spacing: .04em; color: var(--ink); margin-bottom: 10px;}
.curriculum-grid h3 {font-size: 20px; line-height: 1.6; font-weight: 500; margin: 0 0 11px;}
.curriculum-grid p {font-size: 14px; line-height: 1.95; margin: 0;}
.curriculum-note {grid-column: 2; margin: 22px 0 0; font-size: 12px; line-height: 1.9; text-align: left; color: var(--ink);}
.island {padding-top: 35px; background: #fff;}
.island .section-heading {display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: start;}
.island .section-heading p {margin: 0;}
.island-grid {display: block;}
.island-grid .editorial-photo img {aspect-ratio: 2.5 / 1; object-position: center 58%;}
.island-points {display: flex; flex-direction: row; flex-wrap: wrap; gap: 18px 35px; padding: 25px 0 0; font-size: 14px; font-weight: 400;}
.island-points li {display: block; padding: 0; flex: 0 1 auto; min-height: 0;}
.island-points li + li {border: 0;}
.attendance {display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.6fr); gap: 0 64px; background: var(--paper);}
.attendance .section-heading {margin: 0;}
.attendance-grid {display: block; min-width: 0;}
.attendance-table {font-size: 14px; line-height: 1.8;}
.attendance-table > div {grid-template-columns: 108px minmax(0, 1fr); min-height: 0; padding: 17px 0; gap: 20px;}
.attendance-table > div:first-child {padding-top: 0; min-height: 0;}
.attendance-note {font-size: 12px; line-height: 1.9; margin: 18px 0 0;}
.attendance > .included-grid, .attendance > .access-guidance {grid-column: 2;}
.faq {display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.6fr); gap: 64px; padding-top: 60px; padding-bottom: 112px;}
.faq .section-heading {margin: 0;}
.faq-list {min-width: 0; margin: 0; width: 100%; max-width: none;}
.faq summary {font-size: 15px; font-weight: 400; padding: 22px 32px 22px 0; line-height: 1.8;}
.faq summary::after {font-size: 24px; top: 22px; right: 1px; color: var(--ink);}
.faq details > p {font-size: 14px; line-height: 1.95; padding: 0 28px 25px 0;}
.contact {position: relative; margin: 0; padding: 90px var(--gutter) 84px; background: #182421; color: #fff; text-align: left;}
.contact h2 {font-size: 30px; font-weight: 500; line-height: 1.7; letter-spacing: .015em;}
.contact p {font-size: 15px; line-height: 1.95; margin-top: 20px;}
.contact-button {width: auto; max-width: 100%; min-height: 58px; font-size: 16px; margin-top: 30px; padding-inline: 30px;}
.footer {background: #182421; color: #fff; padding: 0 var(--gutter);}
.footer p {border-top: 1px solid #ffffff40; padding: 22px 0; font-size: 11px; text-align: left;}
.design-tools {background: #fff; padding: 20px var(--gutter) 30px; font-size: 12px; line-height: 1.85;}
.design-tools-inner {max-width: 1050px; margin: 0;}
.design-links a {display: inline-block; margin-top: 8px;}
.source-list li {margin: 9px 0;}
@media (max-width: 1100px) and (min-width: 801px) {
  .header {padding-inline: 26px; gap: 20px;}
  .brand img {width: 175px;}
  .nav {gap: 17px; font-size: 12px;}
  .header-button {min-width: 174px; font-size: 12px; padding-inline: 16px;}
  .introduction {gap: 42px;}
  .intro-copy h2 {font-size: 26px;}
  .course-copy {gap: 30px;}
  .course-prices {gap: 18px;}
  .course-prices > div + div {padding-left: 18px;}
  .creator-row {grid-template-columns: 1fr .8fr 1.4fr; gap: 14px;}
  .creator-prices .price {font-size: 22px;}
  .equipment, .curriculum, .attendance, .faq {grid-template-columns: minmax(0, .7fr) minmax(0, 1.7fr); gap: 0 36px;}
  .equipment-grid {grid-template-columns: 1fr; gap: 22px;}
  .kit-list {display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px;}
  .curriculum-grid article {gap: 20px;}
}
@media (max-width: 800px) {
  :root {--gutter: 24px;}
  body {font-size: 15px;}
  .header {height: 76px; padding: 0 22px;}
  .brand img {width: 186px;}
  .menu-toggle {border: 0; background: transparent; font-size: 12px; padding: 12px 0;}
  .nav {top: 76px; font-size: 14px; font-weight: 400;}
  .nav.open {display: flex;}
  .hero {height: 650px; min-height: 0;}
  .hero-background img, .hero-background video {object-position: center;}
  .hero::before {background: linear-gradient(90deg, #102c2c94, #102c2c18), linear-gradient(0deg, #102c2c40, #102c2c10);}
  .hero-copy {padding: 96px 24px 70px; max-width: 100%;}
  .hero-audience {font-size: 11px; margin-bottom: 25px; letter-spacing: 0;}
  .hero h1 {font-size: clamp(28px, 7.3vw, 39px); line-height: 1.6; letter-spacing: .005em;}
  .hero-lead {font-size: 15px; line-height: 1.95; margin-top: 23px;}
  .hero-button {width: 267px; max-width: 100%; min-height: 56px; margin-top: 30px; font-size: 15px;}
  .video-toggle {right: 18px; bottom: 18px;}
  .facts {height: auto; min-height: 96px; padding: 20px 20px; font-size: 13px; line-height: 1.6; gap: 13px 0;}
  .facts li {padding: 0 4px;}
  .introduction {display: flex; flex-direction: column; gap: 30px; align-items: stretch; padding: 65px var(--gutter) 66px;}
  .intro-copy h2 {font-size: 27px; line-height: 1.7; margin-bottom: 22px;}
  .intro-eyebrow {font-size: 11px !important; margin-bottom: 18px !important;}
  .intro-copy p {font-size: 15px; line-height: 1.95; max-width: 100%;}
  .intro-main img {aspect-ratio: 4 / 3;}
  .section-heading {margin-bottom: 30px;}
  .section-heading h2 {font-size: 26px; line-height: 1.65;}
  .section-heading .section-intro, .section-heading .section-lead {font-size: 14px; line-height: 1.95; margin-top: 18px;}
  .courses, .curriculum, .equipment, .attendance, .faq, .island {display: block; padding: 64px var(--gutter);}
  .course-row, .course-row + .course-row {padding: 28px 0 31px;}
  .course-copy {display: block;}
  .course-copy h3 {font-size: 25px;}
  .course-duration {font-size: 13px;}
  .course-description {font-size: 14px;}
  .course-prices {padding: 23px 0 22px; margin-top: 10px; gap: 22px;}
  .course-prices > div + div {padding-left: 22px;}
  .price {font-size: clamp(29px, 7.5vw, 37px); margin-top: 7px;}
  .price-label {font-size: 13px;}
  .yen {font-size: 13px;}
  .tax {font-size: 10px;}
  .creator-row {display: block; padding: 25px 0; margin: 0;}
  .creator-row h3 {font-size: 20px;}
  .creator-row h3 span {display: inline; font-size: 12px;}
  .creator-duration {padding: 0; margin-top: 9px; font-size: 13px;}
  .creator-prices {border: 0; padding: 22px 0 20px; gap: 22px;}
  .creator-prices > div + div {padding-left: 22px;}
  .creator-prices .price {font-size: 27px;}
  .creator-prices .tax {bottom: 0; right: 0;}
  .equipment .section-heading, .curriculum .section-heading, .attendance .section-heading, .faq .section-heading {margin-bottom: 30px;}
  .equipment {padding-bottom: 26px;}
  .equipment-grid {display: block;}
  .kit-list {display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; font-size: 14px; margin-top: 20px;}
  .kit-list li {padding: 11px 0;}
  .curriculum-grid {gap: 27px;}
  .curriculum-grid article {grid-template-columns: 112px minmax(0, 1fr); gap: 20px; padding-bottom: 26px;}
  .curriculum-grid .photo-crop {aspect-ratio: var(--w) / var(--h);}
  .curriculum-grid h3 {font-size: 19px; margin-bottom: 10px;}
  .curriculum-grid p {font-size: 14px;}
  .step-copy::before {font-size: 11px; margin-bottom: 6px;}
  .curriculum-note {font-size: 11px; margin-top: 23px;}
  .island {padding-top: 20px;}
  .island .section-heading {display: block;}
  .island .section-heading p {margin-top: 18px;}
  .island-grid .editorial-photo img {aspect-ratio: 4 / 3; object-position: center;}
  .island-points {gap: 9px; padding-top: 18px; font-size: 13px; flex-direction: column;}
  .attendance-table {font-size: 14px;}
  .attendance-table > div {grid-template-columns: 88px minmax(0, 1fr); gap: 15px; padding: 15px 0;}
  .attendance-note {font-size: 12px;}
  .faq {padding-top: 35px; padding-bottom: 64px;}
  .faq summary {font-size: 14px; line-height: 1.9; padding: 20px 26px 20px 0;}
  .faq summary::after {top: 19px; font-size: 23px;}
  .faq details > p {font-size: 14px; padding: 0 20px 24px 0;}
  .contact {padding: 62px var(--gutter);}
  .contact h2 {font-size: 25px; line-height: 1.75;}
  .contact p {font-size: 14px; margin-top: 21px;}
  .contact p br {display: none;}
  .contact-button {width: 100%; max-width: 350px; font-size: 15px; margin-top: 26px; padding-inline: 22px;}
  .footer p {font-size: 10px; line-height: 1.8;}
  .design-tools {padding: 20px var(--gutter) 25px; font-size: 11px;}
}
@media (max-width: 380px) {
  :root {--gutter: 20px;}
  .hero-copy {padding-inline: 20px;}
  .hero h1 {font-size: 27px;}
  .course-prices {gap: 16px;}
  .course-prices > div + div {padding-left: 16px;}
  .price {font-size: 27px;}
  .curriculum-grid article {grid-template-columns: 1fr;}
  .curriculum-grid .photo-crop {max-width: 210px; aspect-ratio: var(--w) / var(--h);}
}

/* C案の本文。写真の大小と読みやすい行幅で情報の流れをつくる。 */
.content-section {
  margin: 0;
  padding: 96px var(--gutter);
  background: #fff;
  color: #17201f;
}
.content-section .section-heading {min-width: 0; margin-bottom: 48px;}
.content-section > h2,
.content-section .section-heading > h2 {
  margin: 0 0 22px;
  font-size: 29px;
  font-weight: 500;
  line-height: 1.65;
  text-align: left;
  letter-spacing: .015em;
}
.content-section > h2::after,
.content-section .section-heading > h2::after {content: none;}
.section-intro {
  max-width: 750px;
  margin: 0;
  color: var(--ink);
  font-size: 15px;
  line-height: 2;
  text-align: left;
}
.content-section h3 {font-size: 23px; line-height: 1.65; font-weight: 500; letter-spacing: .01em;}
.content-section p {overflow-wrap: anywhere;}
.item-number {
  display: block;
  color: var(--ink);
  font-family: Arial, sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: .02em;
  font-variant-numeric: tabular-nums;
}
.small-label {
  display: block;
  margin-bottom: 13px;
  color: var(--ink);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: .06em;
}
.outcomes, .differences, .benefits, .enrollment {
  display: grid;
  grid-template-columns: minmax(0, .83fr) minmax(0, 1.8fr);
  column-gap: clamp(36px, 5vw, 76px);
  align-items: start;
}
.outcomes > .section-heading, .differences > .section-heading,
.benefits > .section-heading, .enrollment > .section-heading {margin-bottom: 0;}
.outcomes .section-heading > h2, .differences .section-heading > h2,
.benefits .section-heading > h2, .enrollment .section-heading > h2 {font-size: 27px;}
.outcome-grid {min-width: 0; border-top: 1px solid #d8dcd6;}
.outcome-grid > article {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 10px 22px;
  min-width: 0;
  padding: 28px 0 31px;
  border-bottom: 1px solid #d8dcd6;
}
.outcome-grid .item-number {grid-column: 1; grid-row: 1 / 3; padding-top: 3px;}
.outcome-grid h3 {grid-column: 2; margin: 0; font-size: 22px;}
.outcome-grid p {grid-column: 2; max-width: 680px; font-size: 15px; line-height: 1.95; color: var(--ink);}

.possibilities {background: #f6f5f1;}
.possibilities > .section-heading {display: grid; grid-template-columns: minmax(0, .83fr) minmax(0, 1.8fr); column-gap: clamp(36px, 5vw, 76px);}
.possibilities .section-heading > h2 {margin-bottom: 0;}
.application-feature {
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(32px, 4vw, 60px);
  margin: 0 0 76px;
}
.application-feature > img {width: 100%; aspect-ratio: 4 / 3; object-fit: cover;}
.application-feature > .application-visual {margin: 0;}
.application-feature > .application-visual img {aspect-ratio: 4 / 3;}
.application-feature > .photo-crop {align-self: center;}
.application-copy, .application-body {min-width: 0;}
.application-copy h3 {font-size: 27px; margin-bottom: 21px;}
.application-copy p {font-size: 16px; line-height: 2; color: var(--ink);}
.application-copy p + p {margin-top: 14px;}
.evidence-link {
  display: inline-block;
  max-width: 100%;
  margin-top: 21px;
  color: var(--ink);
  font-size: 12px;
  line-height: 1.9;
  text-decoration-thickness: 1px;
  text-underline-offset: 5px;
  overflow-wrap: anywhere;
}
.visual-note {max-width: 880px; margin: 0 0 24px; color: var(--ink); font-size: 12px; line-height: 1.85;}
.application-visual {min-width: 0; margin: 0 0 26px;}
.application-visual img {display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover;}
.application-visual figcaption {margin-top: 10px; font-size: 11px; line-height: 1.85; color: var(--ink);}
.generated-label {display: inline-block; margin-left: 8px; font-size: 10px; letter-spacing: .02em; white-space: nowrap; color: var(--ink);}
.application-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 54px 42px;
}
.application-grid > article {min-width: 0;}
.application-grid > article:first-child {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
  align-items: center;
  gap: clamp(32px, 4vw, 60px);
  padding: 0 0 52px;
  border-bottom: 1px solid #d5d9d1;
}
.application-grid > article:first-child .application-visual {margin: 0;}
.application-grid > article:first-child .application-body {max-width: 600px;}
.application-grid h3 {font-size: 24px; margin-bottom: 17px;}
.application-grid p {font-size: 15px; line-height: 1.95; color: var(--ink);}
.related-use {
  display: grid;
  grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr);
  gap: clamp(32px, 4vw, 60px);
  align-items: center;
  margin-top: 58px;
  padding: 37px 0;
  border-top: 1px solid #d5d9d1;
  border-bottom: 1px solid #d5d9d1;
}
.related-use .application-visual {margin-bottom: 0;}
.related-use-copy {min-width: 0; max-width: 670px;}
.related-use h3 {font-size: 22px; margin-bottom: 16px;}
.related-use p {font-size: 15px; line-height: 1.95; color: var(--ink);}
.related-use .evidence-link {margin-top: 16px;}
.scope-note {max-width: 1000px; margin-top: 25px; font-size: 12px; line-height: 1.95; color: var(--ink);}

.difference-list {min-width: 0; margin: 0; border-top: 1px solid #d8dcd6;}
.difference-list > article {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  align-items: start;
  gap: 22px;
  padding: 28px 0 31px;
  border-bottom: 1px solid #d8dcd6;
}
.difference-list .item-number {padding-top: 3px; font-size: 16px;}
.difference-list h3 {margin: 0 0 12px; font-size: 22px;}
.difference-list p {max-width: 680px; font-size: 15px; line-height: 1.95; color: var(--ink);}
.school-comparison {background: #f6f5f1;}
.school-comparison > .section-heading {max-width: 780px;}
.table-scroll {width: 100%; overflow-x: auto; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch;}
.table-scroll:focus-visible {outline: 3px solid #105ab4; outline-offset: 5px;}
.comparison-table {
  width: 100%;
  min-width: 850px;
  border-collapse: collapse;
  table-layout: fixed;
  background: #fff;
  font-size: 14px;
  line-height: 1.9;
}
.comparison-table caption {padding: 0 0 17px; color: var(--ink); font-size: 12px; line-height: 1.8; text-align: left;}
.comparison-table th, .comparison-table td {
  padding: 22px;
  border-bottom: 1px solid #d8dcd6;
  border-right: 1px solid #e3e5df;
  vertical-align: top;
  text-align: left;
  overflow-wrap: anywhere;
}
.comparison-table tr > :last-child {border-right: 0;}
.comparison-table thead th {background: #fff; color: #17201f; font-size: 15px; font-weight: 500; border-top: 1px solid #b9c2b9; border-bottom-color: #b9c2b9;}
.comparison-table thead th:first-child {width: 16%;}
.comparison-table thead th:nth-child(2), .comparison-table tbody td:nth-child(2) {background: #efeee6;}
.comparison-table tbody th {font-weight: 400; color: var(--ink); background: #fff;}
.comparison-table td p + p {margin-top: 8px;}
.comparison-table a {font-size: 13px;}
.comparison-note {max-width: 900px; margin-top: 21px; font-size: 12px; line-height: 1.9; color: var(--ink);}
.school-comparison > p:last-child {font-size: 12px; line-height: 1.9;}
.school-comparison .evidence-link {color: var(--ink); margin-top: 12px; margin-right: 20px;}
.school-comparison .source-list {font-size: 13px; color: var(--ink);}

.consult-band {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 40px;
  row-gap: 14px;
  align-items: center;
  margin: 0;
  padding: 56px var(--gutter);
  background: #fff;
  color: #17201f;
  text-align: left;
  border-block: 1px solid #d8dcd6;
}
.consult-band h2 {grid-column: 1; font-size: 25px; font-weight: 500; line-height: 1.65;}
.consult-band p {grid-column: 1; max-width: 650px; margin: 0; font-size: 15px; line-height: 1.95; color: var(--ink);}
.consult-band .button {grid-column: 2; grid-row: 1 / 3; margin: 0; min-width: 310px; max-width: 100%; font-size: 16px; min-height: 60px;}
.course-fit {margin-top: 16px; color: var(--ink); font-size: 15px; line-height: 1.85; font-weight: 500;}
.course-targets {padding: 0 0 0 1.15em; margin-top: 10px; font-size: 15px; line-height: 1.85;}
.course-targets li + li {margin-top: 6px;}
.course-choice-note {margin-top: 31px; padding: 24px 0 0; border-top: 1px solid var(--line);}
.course-choice-note h3 {font-size: 20px; line-height: 1.65; margin-bottom: 11px; font-weight: 500;}
.course-choice-note p {max-width: 1000px; font-size: 15px; line-height: 1.95; color: var(--ink);}

.benefits {background: #f6f5f1;}
.benefit-grid {min-width: 0; border-top: 1px solid #d5d9d1;}
.benefit-grid > article {min-width: 0; border-bottom: 1px solid #d5d9d1; padding: 27px 0 30px;}
.benefit-grid h3 {font-size: 22px; margin-bottom: 12px;}
.benefit-grid p {max-width: 680px; font-size: 15px; line-height: 1.95; color: var(--ink);}
.benefit-grid ul {margin-top: 14px; padding-left: 1.15em; font-size: 15px; line-height: 1.95; color: var(--ink);}
.benefit-grid li + li {margin-top: 5px;}
.kit-difference {grid-column: 2; min-width: 0; margin: 31px 0 0; padding-top: 0;}
.kit-difference > h3 {font-size: 20px; line-height: 1.65; margin-bottom: 15px;}
.kit-difference > p {font-size: 15px; line-height: 1.95; margin-bottom: 19px; color: var(--ink);}
.kit-difference dl {display: grid; grid-template-columns: 1fr; gap: 0;}
.kit-difference dl > div {min-width: 0; display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 20px; padding: 14px 0; border-bottom: 1px solid #d5d9d1;}
.kit-difference dt {font-size: 15px; line-height: 1.8;}
.kit-difference dd {font-size: 22px; line-height: 1.7; font-weight: 500; color: #17201f; white-space: nowrap; font-variant-numeric: tabular-nums;}
.kit-difference dd > span {font-size: 12px; font-weight: 400; margin-left: 3px;}
.small-note {grid-column: 2; max-width: 980px; margin: 22px 0 0; font-size: 12px; line-height: 1.95; color: var(--ink);}
.lesson-points {margin-top: 18px; padding-left: 1.15em; font-size: 15px; line-height: 1.9; color: inherit;}
.lesson-points li + li {margin-top: 6px;}

.included-grid {display: grid; grid-template-columns: 1fr 1fr; gap: 42px; margin-top: 36px;}
.included-grid > div {border-top: 1px solid var(--line); padding-top: 24px;}
.included-grid h3 {font-size: 21px; line-height: 1.65; margin-bottom: 14px; font-weight: 500;}
.included-grid ul {padding-left: 1.15em; font-size: 15px; line-height: 1.95;}
.included-grid li + li {margin-top: 5px;}
.access-guidance {margin-top: 30px; padding-top: 24px; border-top: 1px solid var(--line);}
.access-guidance h3 {font-size: 21px; margin-bottom: 12px; line-height: 1.65; font-weight: 500;}
.access-guidance p {max-width: 1000px; font-size: 15px; line-height: 1.95; color: var(--ink);}
.access-guidance p + p {margin-top: 12px;}
.access-guidance > a {display: inline-block; margin-top: 14px; font-size: 14px; line-height: 1.8;}
.enrollment {padding-bottom: 65px;}
.enrollment-steps {
  min-width: 0;
  list-style: none;
  padding: 0;
  margin: 0;
  border-top: 1px solid #d8dcd6;
  counter-reset: enrollment;
}
.enrollment-steps > li {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 10px 22px;
  min-width: 0;
  padding: 27px 0 30px;
  border-bottom: 1px solid #d8dcd6;
  counter-increment: enrollment;
}
.enrollment-steps > li::before {
  content: "0" counter(enrollment);
  grid-column: 1;
  grid-row: 1 / 3;
  display: block;
  padding-top: 3px;
  color: var(--ink);
  font-family: Arial, sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: .02em;
}
.enrollment-steps h3 {grid-column: 2; font-size: 22px; margin: 0;}
.enrollment-steps p {grid-column: 2; font-size: 15px; line-height: 1.95; color: var(--ink);}
.consult-topics {display: flex; justify-content: flex-start; flex-wrap: wrap; gap: 8px 28px; margin: 22px 0 0; padding: 0; list-style: none; max-width: 820px; font-size: 14px; line-height: 1.9; color: #d9e2e6;}
.consult-topics li {position: relative; padding-left: 14px;}
.consult-topics li::before {content: ""; position: absolute; top: .8em; left: 0; width: 4px; height: 4px; background: #b4beb3;}
.mobile-consult {display: none;}

@media (min-width: 801px) and (max-width: 1150px) {
  .header {padding-inline: 28px; gap: 18px;}
  .brand img {width: 186px;}
  .nav {gap: 17px; font-size: 12px;}
  .header-button {min-width: 177px; padding-inline: 16px; font-size: 12px;}
  .content-section {padding-block: 76px;}
  .content-section .section-heading > h2 {font-size: 26px;}
  .outcomes, .differences, .benefits, .enrollment,
  .possibilities > .section-heading {grid-template-columns: minmax(0, .85fr) minmax(0, 1.8fr); column-gap: 34px;}
  .outcome-grid > article, .difference-list > article,
  .enrollment-steps > li {grid-template-columns: 30px minmax(0, 1fr); column-gap: 15px;}
  .outcome-grid h3, .difference-list h3, .benefit-grid h3, .enrollment-steps h3 {font-size: 20px;}
  .application-feature, .application-grid > article:first-child, .related-use {gap: 30px;}
  .application-copy h3 {font-size: 24px;}
  .application-grid {gap: 42px 30px;}
  .application-grid h3 {font-size: 22px;}
  .consult-band {column-gap: 25px;}
  .consult-band h2 {font-size: 23px;}
  .consult-band .button {min-width: 265px; font-size: 14px; padding-inline: 23px;}
}
@media (max-width: 800px) {
  body {padding-bottom: calc(78px + env(safe-area-inset-bottom, 0px));}
  html {scroll-padding-bottom: calc(90px + env(safe-area-inset-bottom, 0px));}
  .content-section {padding: 60px 24px;}
  .content-section .section-heading {margin-bottom: 30px;}
  .content-section > h2, .content-section .section-heading > h2 {font-size: 26px; line-height: 1.65; margin-bottom: 18px;}
  .section-intro {font-size: 15px; line-height: 1.95;}
  .content-section h3 {font-size: 21px;}
  .outcomes, .differences, .benefits, .enrollment,
  .possibilities > .section-heading {display: block;}
  .outcomes .section-heading > h2, .differences .section-heading > h2,
  .benefits .section-heading > h2, .enrollment .section-heading > h2 {font-size: 26px;}
  .item-number {font-size: 15px;}
  .small-label {font-size: 12px; margin-bottom: 11px;}
  .outcome-grid > article, .difference-list > article, .enrollment-steps > li {
    grid-template-columns: 27px minmax(0, 1fr);
    gap: 10px 14px;
    padding: 24px 0 27px;
  }
  .outcome-grid h3, .difference-list h3, .enrollment-steps h3 {font-size: 20px;}
  .outcome-grid p, .difference-list p, .enrollment-steps p {font-size: 15px; line-height: 1.95;}
  .possibilities .section-heading > h2 {margin-bottom: 18px;}
  .application-feature {grid-template-columns: 1fr; gap: 26px; margin-bottom: 45px;}
  .application-copy h3 {font-size: 24px; margin-bottom: 17px;}
  .application-copy p {font-size: 15px; line-height: 1.95;}
  .application-grid {grid-template-columns: 1fr; gap: 38px;}
  .application-grid > article:first-child {display: block; grid-column: auto; padding: 0 0 35px;}
  .application-grid > article:first-child .application-visual {margin-bottom: 23px;}
  .application-grid h3 {font-size: 22px; margin-bottom: 14px;}
  .application-grid p {font-size: 15px; line-height: 1.95;}
  .evidence-link {font-size: 12px; margin-top: 17px;}
  .visual-note {margin-bottom: 20px;}
  .application-visual {margin-bottom: 23px;}
  .related-use {grid-template-columns: 1fr; gap: 24px; margin-top: 38px; padding-block: 28px;}
  .related-use h3 {font-size: 20px;}
  .related-use p {font-size: 15px; line-height: 1.95;}
  .scope-note {font-size: 12px; line-height: 1.95; margin-top: 22px;}
  .difference-list .item-number {font-size: 15px; padding-top: 3px;}
  .difference-list h3 {margin-bottom: 11px;}
  .comparison-table {min-width: 800px; font-size: 13px;}
  .comparison-table th, .comparison-table td {padding: 17px;}
  .comparison-table thead th {font-size: 14px;}
  .comparison-note {font-size: 12px; margin-top: 17px;}
  .school-comparison .evidence-link {font-size: 12px; margin-right: 12px;}
  .consult-band {display: block; padding: 35px 24px 40px;}
  .consult-band h2 {font-size: 24px; line-height: 1.65;}
  .consult-band p {font-size: 15px; line-height: 1.95; margin-top: 16px;}
  .consult-band p br {display: none;}
  .consult-band .button {min-width: 0; width: 310px; min-height: 58px; padding-inline: 19px; font-size: 16px; margin-top: 25px;}
  .course-fit, .course-targets {font-size: 14px;}
  .course-choice-note {margin-top: 25px; padding-top: 22px;}
  .course-choice-note h3 {font-size: 20px;}
  .course-choice-note p {font-size: 15px;}
  .benefit-grid > article {padding: 24px 0 27px;}
  .benefit-grid h3 {font-size: 21px; margin-bottom: 12px;}
  .benefit-grid p, .benefit-grid ul {font-size: 15px;}
  .kit-difference {margin-top: 29px;}
  .kit-difference > h3 {font-size: 20px;}
  .kit-difference dt {font-size: 14px;}
  .kit-difference dd {font-size: 21px;}
  .small-note {font-size: 12px; margin-top: 20px;}
  .lesson-points {font-size: 14px; margin-top: 16px;}
  .included-grid {grid-template-columns: 1fr; gap: 24px; margin-top: 30px;}
  .included-grid > div {padding-top: 21px;}
  .included-grid h3, .access-guidance h3 {font-size: 20px; margin-bottom: 12px;}
  .included-grid ul, .access-guidance p {font-size: 15px;}
  .access-guidance {margin-top: 25px; padding-top: 22px;}
  .access-guidance > a {font-size: 13px;}
  .enrollment {padding-bottom: 38px;}
  .enrollment-steps > li::before {font-size: 15px;}
  .consult-topics {gap: 6px 20px; font-size: 13px; margin-top: 20px;}
  .contact-button {font-size: 16px; padding-inline: 18px; gap: 12px;}
  .mobile-consult {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr);
    align-items: center;
    gap: 12px;
    position: fixed;
    inset: auto 0 0;
    z-index: 50;
    padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px));
    background: #fff;
    color: #17201f;
    border-top: 1px solid #d8dcd6;
  }
  .mobile-consult > a {font-size: 13px; line-height: 1.6; font-weight: 500; text-align: center; text-decoration: none; padding: 11px 0;}
  .mobile-consult .button {font-size: 15px; min-height: 52px; padding: 12px 15px; gap: 11px; width: 100%;}
}
@media (max-width: 420px) {
  .content-section {padding-left: 20px; padding-right: 20px;}
  .content-section > h2, .content-section .section-heading > h2 {font-size: 25px;}
  .outcomes .section-heading > h2, .differences .section-heading > h2,
  .benefits .section-heading > h2, .enrollment .section-heading > h2 {font-size: 25px;}
  .consult-band {padding-left: 20px; padding-right: 20px;}
  .consult-band h2 {font-size: 23px;}
  .mobile-consult {grid-template-columns: 77px minmax(0, 1fr); gap: 8px; padding-left: 12px; padding-right: 12px;}
  .mobile-consult .button {font-size: 14px; padding-inline: 12px; gap: 8px;}
}
@media (prefers-reduced-motion: reduce) {
  .table-scroll {scroll-behavior: auto;}
}

/* ===== テーマ（C案の style#oshin-course-theme） ===== */
/* このプレビューのブランド調整。高知校の公開CSSの配色・書体・部品に合わせる。 */
:root {
  --ink: #0b2c36; --red: #0b2c36; --navy: #04262f;
  --cyan: #09b5c5; --lightblue: #d5f1fb; --paleblue: #eef8fd;
  --cream: #fff7d2; --yellow: #ffd91c; --orange: #f2620c;
  --paper: #eef8fd; --line: #cfe3ea; --radius: 16px;
  --shadow: 0 6px 20px rgba(4,38,47,.10);
  --font: "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
  --round: "corporate-logo-ver2", "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
}
html {scroll-padding-top: 100px;}
body {font-family: var(--font); color: var(--ink);}
.header {height: 84px; position: sticky; top: 0; z-index: 100; border-bottom: 1px solid var(--line); background: #fff;}
.nav {font-weight: 700;}
.nav > a:hover {text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 6px;}
.button {font-family: var(--font); font-weight: 900; background: linear-gradient(180deg,#f47c35,var(--orange)); box-shadow: 0 5px 0 #b84a05, var(--shadow); transition: transform .18s, box-shadow .18s;}
.button:hover {background: linear-gradient(180deg,#f47c35,var(--orange)); transform: translateY(2px); box-shadow: 0 3px 0 #b84a05;}
.header-button {box-shadow: 0 3px 0 #c24d06;}
.hero {height: 584px; min-height: 0; background: var(--paleblue); color: var(--ink);}
.hero::before {background: linear-gradient(90deg,rgba(255,255,255,.98),rgba(255,255,255,.88) 39%,rgba(255,255,255,.30) 69%,rgba(255,255,255,.04));}
.hero-copy {max-width: 880px; padding: 68px var(--gutter) 64px;}
.hero-audience {display: inline-block; color: var(--ink); background: var(--lightblue); border-radius: 999px; padding: 9px 19px; font-size: 14px; font-weight: 700; letter-spacing: 0; margin-bottom: 22px;}
.hero h1 {font-family: var(--round); font-size: clamp(36px,3.8vw,52px); font-weight: 700; line-height: 1.6; letter-spacing: 0;}
.hero-title-highlight {background: linear-gradient(transparent 66%,var(--yellow) 66%); padding-inline: 3px; box-decoration-break: clone; -webkit-box-decoration-break: clone;}
.hero-lead {font-size: 18px; font-weight: 700; line-height: 1.85; margin-top: 20px; letter-spacing: 0;}
.hero-button {font-size: 18px; min-height: 62px; width: 320px; margin-top: 26px;}
.hero-mascot {position: absolute; right: 8%; bottom: 30px; z-index: 1; width: clamp(124px,13vw,180px); height: auto; filter: drop-shadow(0 5px 4px rgba(4,38,47,.12)); pointer-events: none;}
.video-toggle {right: 24px; bottom: 22px; width: 44px; height: 44px; background: var(--navy);}
.facts {height: auto; min-height: 110px; gap: 16px; padding: 24px var(--gutter); background: var(--paleblue); border: 0;}
.facts li {padding: 12px 10px; border-radius: 999px; background: #fff; border: 1px solid var(--line); font-weight: 700; font-size: 15px;}
.facts li + li {border: 1px solid var(--line);}
.facts li:first-child {background: var(--cream); border-color: #eddb7d;}
.intro-copy h2, .section-heading h2, .content-section .section-heading > h2,
.course-copy h3, .creator-row h3, .curriculum-grid h3, .difference-list h3,
.benefit-grid h3, .enrollment-steps h3, .consult-band h2, .contact h2 {
  font-family: var(--round); color: var(--ink); font-weight: 700;
}
.intro-copy h2, .section-heading h2, .content-section .section-heading > h2 {font-size: clamp(28px,2.6vw,36px); line-height: 1.6;}
.intro-copy p, .section-intro, .section-heading .section-intro, .section-heading .section-lead {font-size: 16px; line-height: 1.95;}
.intro-eyebrow {font-weight: 700; letter-spacing: .08em;}
.editorial-photo img, .application-visual img {border-radius: var(--radius);}
.intro-main {padding: 10px 10px 0; background: #fff; box-shadow: var(--shadow); border-radius: 8px; transform: rotate(2deg);}
.intro-main img {border-radius: 4px;}
.intro-main figcaption {padding: 4px 6px 12px; font-size: 12px; font-weight: 700;}
.courses {background: var(--paleblue);}
.courses > .section-heading {text-align: center;}
.courses > .section-heading h2 {text-align: center;}
.courses > .section-heading .section-lead {margin-inline: auto; text-align: center; max-width: 820px;}
.course-grid {display: grid; grid-template-columns: 1fr 1fr; gap: 26px;}
.course-row, .course-row + .course-row {margin: 0; padding: 30px; border: 0; border-top: 6px solid var(--cyan); border-radius: var(--radius); box-shadow: var(--shadow); background: #fff;}
.course-row + .course-row {border-top-color: var(--orange);}
.course-copy {display: block; padding: 0;}
.course-info {text-align: center;}
.course-copy h3 {font-size: 30px;}
.course-duration {display: inline-block; background: var(--lightblue); border-radius: 999px; padding: 5px 14px; margin-top: 14px; font-weight: 700; font-size: 14px;}
.course-row + .course-row .course-duration {background: var(--cream);}
.course-fit {font-size: 16px; font-weight: 700; line-height: 1.8; margin-top: 18px;}
.course-description {font-size: 15px; line-height: 1.95; margin: 12px auto 0;}
.course-prices {gap: 20px; margin-top: 26px; padding: 22px 0 25px; border-top: 1px dashed var(--line);}
.course-prices > div + div {padding-left: 20px;}
.price {font-family: "Oswald",var(--font); font-weight: 600; font-size: clamp(30px,3.2vw,44px); color: var(--ink); letter-spacing: 0;}
.price-label {font-weight: 700; font-size: 14px;}
.yen {font-family: var(--font); font-size: 14px;}
.creator-row {margin-top: 28px; padding: 24px; background: #fff; border: 1px dashed var(--line); border-radius: var(--radius);}
.creator-row h3 {font-size: 20px;}
.creator-prices .price {font-size: 29px;}
.course-choice-note {border-top: 0; padding: 24px; background: #fff; border-radius: var(--radius);}
.course-choice-note h3, .included-grid h3, .access-guidance h3 {font-family: var(--round); font-weight: 700;}
.included-grid {gap: 24px;}
.included-grid > div {background: #fff; padding: 24px; border: 0; border-radius: var(--radius);}
.included-grid > div:first-child {border-top: 4px solid var(--cyan);}
.included-grid > div + div {border-top: 4px solid #eddb7d;}
.curriculum {display: block; border-top: 0;}
.curriculum > .section-heading {margin-bottom: 38px;}
.curriculum > .section-heading h2 {text-align: center;}
.curriculum > .section-heading .section-intro {max-width: 800px; margin: 18px auto 0; text-align: center;}
.curriculum-grid {display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 26px;}
.curriculum-grid article {display: block; padding: 0; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; background: #fff; box-shadow: var(--shadow);}
.curriculum-grid .photo-crop {aspect-ratio: var(--w) / var(--h);}
.curriculum-grid .step-copy {padding: 24px;}
.step-copy::before {display: inline-block; padding: 4px 13px; margin-bottom: 12px; border-radius: 999px; background: var(--cream); font-family: "Oswald",sans-serif; font-size: 18px; font-weight: 600;}
.curriculum-grid h3 {font-size: 23px;}
.curriculum-grid p {font-size: 16px; line-height: 1.9;}
.curriculum-note {font-size: 13px;}
.differences {background: var(--paleblue);}
.difference-list {display: grid; grid-template-columns: 1fr 1fr; gap: 22px; border: 0;}
.difference-list > article {display: block; border: 0; padding: 24px; background: #fff; border-radius: var(--radius); box-shadow: var(--shadow);}
.difference-list .item-number {width: 38px; height: 38px; padding: 5px 0; margin-bottom: 14px; text-align: center; background: var(--lightblue); border-radius: 50%; font-family: "Oswald",sans-serif; font-size: 20px; font-weight: 600;}
.difference-list h3 {font-size: 22px;}
.difference-list p, .benefit-grid p, .benefit-grid ul {font-size: 16px; line-height: 1.95;}
.content-section, .consult-band {color: var(--ink);}
.consult-band {background: var(--cream); border: 0;}
.consult-band h2 {font-size: 28px;}
.benefits {background: #fff;}
.benefit-grid {border-top: 0;}
.benefit-grid > article {border-bottom: 1px dashed var(--line);}
.benefit-grid .small-label {font-weight: 700;}
.benefit-grid .editorial-photo {margin-bottom: 12px;}
.kit-difference {background: var(--paleblue); border-radius: var(--radius); padding: 24px;}
.kit-difference dd {color: var(--ink); font-family: "Oswald",var(--font); font-size: 29px;}
.kit-difference dd > span {font-family: var(--font);}
.island {background: var(--cream); padding-top: 72px;}
.island-points {font-weight: 700;}
.attendance {background: var(--paleblue);}
.attendance-table {font-size: 16px;}
.attendance-table > div {border-bottom: 1px dashed #b7d4df;}
.attendance-table dt {font-weight: 700;}
.access-guidance {background: #fff; border: 0; padding: 24px; border-radius: var(--radius);}
.enrollment {background: #fff;}
.enrollment-steps {border-color: var(--line);}
.enrollment-steps > li {border-color: var(--line);}
.enrollment-steps > li::before {font-family: "Oswald",sans-serif; font-weight: 600; font-size: 23px;}
.possibilities {background: var(--paleblue);}
.scope-note {padding: 18px 22px; margin: 0 0 30px; max-width: none; background: var(--cream); border-radius: 12px; font-size: 14px;}
.application-copy h3, .application-body h3, .related-use h3 {font-family: var(--round); font-weight: 700;}
.application-visual figcaption, .evidence-link {color: var(--ink);}
.school-comparison {background: #fff;}
.comparison-table {color: var(--ink);}
.comparison-table thead th {background: var(--lightblue); color: var(--ink); font-weight: 700;}
.comparison-table thead th:nth-child(2), .comparison-table tbody td:nth-child(2) {background: var(--cream);}
.comparison-table tbody th {color: var(--ink);}
.faq {background: var(--paleblue);}
.faq summary {font-weight: 700; font-size: 16px;}
.faq details {background: #fff; border: 1px solid var(--line); border-radius: 12px; margin-bottom: 12px; padding-left: 20px;}
.faq-list {border: 0;}
.faq summary::after {right: 15px;}
.faq details > p {font-size: 16px;}
.contact {background: var(--cream); text-align: center; color: var(--ink);}
.contact h2 {font-size: clamp(27px,3vw,36px);}
.contact p {font-size: 17px;}
.contact .consult-topics {justify-content: center; margin-inline: auto; color: var(--ink);}
.consult-topics li::before {background: var(--ink);}
.contact-button {font-size: 18px; padding: 18px 40px;}
.footer {background: var(--navy); color: #fff;}
.footer p {text-align: center; padding: 24px 0; border: 0; font-size: 12px;}
.mobile-consult {color: var(--ink);}
dialog {border-radius: var(--radius); box-shadow: var(--shadow);}
dialog h2 {font-family: var(--round); font-weight: 700;}
@media (min-width: 801px) and (max-width: 1100px) {
  .course-grid {grid-template-columns: 1fr;}
  .course-copy {display: grid; grid-template-columns: minmax(0,1.1fr) minmax(0,1fr); gap: 28px;}
  .course-info {text-align: left;}
  .course-prices {margin-top: 0; border-top: 0;}
  .curriculum-grid {gap: 18px;}
  .curriculum-grid .step-copy {padding: 19px;}
  .curriculum-grid h3 {font-size: 21px;}
  .differences {display: block;}
  .differences > .section-heading {margin-bottom: 28px;}
  .hero-mascot {right: 6%;}
}
@media (min-width: 1024px) {
  .intro-copy p, .section-intro, .section-heading .section-intro,
  .section-heading .section-lead, .course-description, .difference-list p,
  .benefit-grid p, .benefit-grid ul, .enrollment-steps p {font-size: 17px;}
}
@media (max-width: 800px) {
  html {scroll-padding-top: 90px;}
  .header {height: 76px; position: sticky;}
  .menu-toggle {border: 1px solid var(--line); border-radius: 8px; padding: 10px 12px; font-weight: 700;}
  .nav {top: 76px;}
  .hero {height: 610px;}
  .hero::before {background: linear-gradient(180deg,rgba(255,255,255,.96),rgba(255,255,255,.86) 60%,rgba(255,255,255,.14));}
  .hero-copy {padding: 42px 24px 0; max-width: 100%;}
  .hero-audience {font-size: 12px; padding: 8px 13px; margin-bottom: 20px;}
  .hero h1 {font-size: clamp(28px,7.3vw,43px); line-height: 1.7;}
  .hero-lead {font-size: 16px; margin-top: 20px;}
  .hero-button {width: 300px; max-width: 100%; font-size: 16px; margin-top: 24px; min-height: 58px;}
  .hero-mascot {right: 55px; bottom: 14px; width: 106px;}
  .video-toggle {right: 14px; bottom: 16px;}
  .facts {grid-template-columns: 1fr 1fr; gap: 12px; padding: 20px; min-height: 132px;}
  .facts li, .facts li + li {font-size: 13px; padding: 10px 6px; border: 1px solid var(--line);}
  .facts li:first-child {border-color: #eddb7d;}
  .intro-copy h2, .section-heading h2, .content-section .section-heading > h2,
  .outcomes .section-heading > h2, .differences .section-heading > h2,
  .benefits .section-heading > h2, .enrollment .section-heading > h2 {font-size: 28px;}
  .intro-copy p, .section-intro, .section-heading .section-intro, .section-heading .section-lead {font-size: 15px;}
  .course-grid {grid-template-columns: 1fr; gap: 24px;}
  .course-row, .course-row + .course-row {padding: 26px 22px 22px;}
  .course-copy {display: block;}
  .course-copy h3 {font-size: 28px;}
  .course-fit {font-size: 15px;}
  .course-duration {font-size: 13px; padding-inline: 12px;}
  .course-description {font-size: 15px;}
  .course-prices {gap: 16px; margin-top: 20px; padding-top: 20px;}
  .course-prices > div + div {padding-left: 16px;}
  .price {font-size: clamp(30px,8vw,40px);}
  .creator-row {padding: 22px;}
  .creator-prices .price {font-size: 30px;}
  .course-choice-note, .included-grid > div {padding: 22px;}
  .curriculum-grid {grid-template-columns: 1fr; gap: 24px;}
  .curriculum-grid article {display: block;}
  .curriculum-grid .photo-crop {max-width: none;}
  .curriculum-grid .step-copy {padding: 24px;}
  .curriculum-grid p {font-size: 15px;}
  .curriculum > .section-heading .section-intro {text-align: left;}
  .difference-list {grid-template-columns: 1fr; gap: 20px;}
  .difference-list p, .benefit-grid p, .benefit-grid ul {font-size: 15px;}
  .consult-band h2 {font-size: 26px;}
  .kit-difference {padding: 22px;}
  .kit-difference dl > div {display: block;}
  .kit-difference dd {font-size: 29px; margin-top: 6px;}
  .island {padding-top: 60px;}
  .scope-note {font-size: 13px; padding: 17px; margin-bottom: 28px;}
  .attendance-table {font-size: 15px;}
  .faq details {padding-left: 16px;}
  .faq summary {font-size: 15px; padding-right: 42px;}
  .faq details > p {font-size: 15px; padding-right: 20px;}
  .contact p {font-size: 15px;}
  .contact-button {font-size: 16px; padding-inline: 22px;}
}
@media (max-width: 380px) {
  .hero-copy {padding-inline: 20px;}
  .hero h1 {font-size: 27px;}
  .course-row, .course-row + .course-row {padding-inline: 18px;}
  .course-prices {gap: 12px;}
  .course-prices > div + div {padding-left: 12px;}
  .price {font-size: 28px;}
  .price-label {font-size: 12px;}
  .creator-row {padding-inline: 18px;}
  .creator-prices {gap: 12px;}
  .creator-prices > div + div {padding-left: 12px;}
  .creator-prices .price {font-size: 27px;}
}
@media (prefers-reduced-motion: reduce) {
  html {scroll-behavior: auto;}
  .button {transition: none; animation: none;}
  .button:hover {transform: none;}
}
/* 写真・動画を中心にした短い本文とキャンペーン価格 */
.hero-background {animation: island-drift 18s ease-in-out infinite alternate; transform-origin: 65% 50%;}
.hero::before {background: linear-gradient(90deg,rgba(255,255,255,.98),rgba(255,255,255,.86) 32%,rgba(255,255,255,.16) 67%,transparent);}
.hero-mascot {animation: mascot-float 5s ease-in-out infinite;}
@keyframes island-drift {from {transform: scale(1);} to {transform: scale(1.045);}}
@keyframes mascot-float {0%,100% {transform: translateY(0) rotate(-2deg);} 50% {transform: translateY(-9px) rotate(1deg);}}
.button[data-contact] {position: relative; isolation: isolate; overflow: hidden;}
.button[data-contact]::before {content: ""; position: absolute; inset: -35% auto -35% -65%; width: 45%; background: linear-gradient(105deg,transparent,rgba(255,255,255,.65),transparent); transform: skewX(-20deg); animation: oshin-cta-shine 4s ease-in-out infinite; pointer-events: none;}
@keyframes oshin-cta-shine {0%,35% {left: -65%; opacity: 0;} 38% {opacity: 1;} 64% {left: 130%; opacity: 1;} 65%,100% {left: 130%; opacity: 0;}}
.button[data-contact]::after {position: relative;}
.visual-story {padding: 76px var(--gutter); background: #fff;}
.visual-story > .section-heading {text-align: center; margin-bottom: 36px;}
.visual-story > .section-heading h2, .visual-story > .section-heading p {text-align: center;}
.visual-story > .section-heading p {margin-inline: auto;}
.story-grid {display: grid; grid-template-columns: 1.15fr .85fr; gap: 26px; align-items: center;}
.story-grid figure {min-width: 0; margin: 0;}
.story-grid video, .story-grid img {display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; border-radius: var(--radius); box-shadow: var(--shadow); background: var(--paleblue);}
.story-grid video {object-fit: contain; background: var(--navy);}
.story-grid figcaption {font-size: 12px; line-height: 1.8; color: var(--ink); margin-top: 12px;}
.experience-notes, .price-includes {list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 24px; padding: 0; margin-top: 30px; font-size: 15px; font-weight: 700; color: var(--ink);}
.experience-notes li::before, .price-includes li::before {content: "✓"; display: inline-block; margin-right: 7px;}
.courses {padding-block: 76px;}
.campaign-notice {padding: 24px 28px; margin: 0 0 28px; text-align: center; border: 5px solid transparent; border-radius: var(--radius); background: linear-gradient(#fff,#fff) padding-box,repeating-linear-gradient(-45deg,var(--orange) 0 10px,#fff 10px 20px) border-box; box-shadow: var(--shadow);}
.campaign-kicker {display: inline-block; font-family: var(--round); font-size: 27px; font-weight: 700; background: linear-gradient(transparent 62%,var(--yellow) 62%);}
.campaign-notice p {font-size: 18px; font-weight: 700; margin: 10px 0 5px;}
.campaign-notice small {font-size: 13px;}
.course-copy {display: block;}
.course-row {position: relative; transition: transform .25s,box-shadow .25s;}
.course-row:hover {transform: translateY(-5px); box-shadow: 0 12px 28px rgba(4,38,47,.14);}
.course-off {width: fit-content; margin: 20px auto 0; padding: 6px 22px; color: var(--ink); background: var(--yellow); border-radius: 999px; font-family: "Oswald",var(--font); font-size: 30px; line-height: 1.35; font-weight: 600;}
.course-off span {font-family: var(--font); font-size: 16px; font-weight: 900; margin-left: 4px;}
.course-prices {margin-top: 20px; gap: 20px;}
.regular-price {font-size: 12px; color: var(--ink); margin-top: 8px; line-height: 1.8;}
.regular-price s {white-space: nowrap;}
.course-prices .price {font-size: clamp(34px,3.8vw,52px); display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px;}
.course-prices .yen {margin-left: 0;}
[data-rate-mode="campaign"] .course-prices [data-price] {background: linear-gradient(transparent 72%,var(--yellow) 72%);}
[data-rate-mode="regular"] .campaign-only {display: none;}
.price-includes {margin-top: 30px;}
.creator-preview {margin-top: 28px; border-top: 1px solid var(--line); padding-top: 20px;}
.creator-preview > summary {width: fit-content; cursor: pointer; font-size: 14px; font-weight: 700; line-height: 1.8;}
.creator-preview .creator-row {margin-top: 18px;}
.curriculum {padding-block: 76px;}
.curriculum-grid .step-copy {padding: 22px;}
.curriculum-grid h3 {font-size: 23px;}
.curriculum-grid p {font-size: 16px; line-height: 1.85;}
.curriculum-note {max-width: 100%; margin-top: 22px;}
.visual-kit {padding-block: 70px; gap: 0 40px;}
.visual-kit .section-heading {margin-bottom: 24px;}
.visual-kit .equipment-grid {grid-template-columns: minmax(0,1.25fr) minmax(0,1fr); gap: 26px;}
.visual-kit .kit-list {font-size: 16px;}
.visual-kit .kit-list li {display: block;}
.kit-note {grid-column: 2; font-size: 13px; line-height: 1.9; margin-top: 20px;}
.island-panorama {margin: 0; position: relative; overflow: hidden;}
.island-panorama img {width: 100%; height: auto; aspect-ratio: 3 / 1; object-fit: cover; object-position: center 60%;}
.island-panorama figcaption {position: absolute; bottom: 20px; right: 24px; padding: 6px 13px; border-radius: 999px; background: #fff; color: var(--ink); font-size: 12px;}
.attendance {padding-block: 70px;}
.attendance-grid {width: 100%;}
.attendance-note {font-size: 13px; margin-inline: 0;}
.faq {padding-block: 70px;}
.extra-info {padding: 24px var(--gutter) 34px; background: #fff; color: var(--ink);}
.extra-info > summary {font-family: var(--round); font-size: 20px; font-weight: 700; cursor: pointer; width: fit-content;}
.extra-info > .scope-note {margin-top: 24px;}
.compact-usecases {display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px;}
.compact-usecases h3 {font-family: var(--round); font-size: 20px; margin-bottom: 10px;}
.compact-usecases p, .compact-usecases a {font-size: 14px; line-height: 1.9;}
.compact-usecases a {display: inline-block; margin-top: 12px;}
.contact {padding-block: 76px;}
.motion-toggle {position: fixed; right: 16px; bottom: 16px; z-index: 45; min-height: 44px; padding: 10px 16px; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: var(--ink); font-size: 12px; box-shadow: var(--shadow);}
[data-reveal] {opacity: 1; transform: none;}
.page[data-reveal-ready="true"] [data-reveal] {opacity: 0; transform: translateY(22px); transition: opacity .7s ease,transform .7s ease;}
.page[data-reveal-ready="true"] [data-reveal].is-visible,
.page[data-reveal-ready="true"] [data-reveal]:focus-within {opacity: 1; transform: none;}
body[data-motion="paused"] *, body[data-motion="paused"] *::before, body[data-motion="paused"] *::after {animation: none !important; transition: none !important;}
body[data-motion="paused"] .course-row:hover {transform: none;}
@media (min-width: 801px) and (max-width: 1100px) {
  .course-copy {display: block;}
  .course-grid {grid-template-columns: 1fr 1fr;}
  .course-row, .course-row + .course-row {padding-inline: 22px;}
  .course-info {text-align: center;}
  .course-prices {border-top: 1px dashed var(--line);}
  .course-prices .price {font-size: 36px;}
  .course-prices {gap: 12px;}
  .course-prices > div + div {padding-left: 12px;}
  .visual-kit {display: block;}
  .visual-kit .equipment-grid {grid-template-columns: 1.15fr 1fr;}
}
@media (max-width: 800px) {
  .hero::before {background: linear-gradient(180deg,rgba(255,255,255,.95),rgba(255,255,255,.83) 56%,rgba(255,255,255,.08));}
  .visual-story, .courses, .curriculum, .visual-kit, .attendance, .faq {padding: 56px 24px;}
  .story-grid {grid-template-columns: 1fr; gap: 28px;}
  .story-grid video, .story-grid img {aspect-ratio: 16 / 10;}
  .story-grid figcaption {font-size: 11px;}
  .experience-notes {gap: 10px 16px; font-size: 13px;}
  .campaign-notice {padding: 20px 14px; border-width: 4px;}
  .campaign-kicker {font-size: 23px;}
  .campaign-notice p {font-size: 15px; line-height: 1.85;}
  .campaign-notice small {font-size: 12px;}
  .course-off {font-size: 29px; margin-top: 18px;}
  .course-off span {font-size: 15px;}
  .course-prices .price {font-size: clamp(32px,8.8vw,42px);}
  .regular-price {font-size: 11px;}
  .price-includes {gap: 9px 16px; font-size: 13px;}
  .visual-kit .equipment-grid {display: block;}
  .visual-kit .kit-list {display: grid; grid-template-columns: 1fr 1fr; gap: 0 22px; font-size: 14px;}
  .kit-note {font-size: 12px; margin-top: 22px;}
  .island-panorama img {aspect-ratio: 4 / 3;}
  .island-panorama figcaption {font-size: 11px; bottom: 16px; right: 16px;}
  .extra-info {padding: 24px 24px 32px;}
  .extra-info > summary {font-size: 18px;}
  .compact-usecases {grid-template-columns: 1fr; gap: 28px;}
  .contact {padding: 56px 24px;}
  .motion-toggle {bottom: calc(92px + env(safe-area-inset-bottom,0px)); right: 12px;}
}
@media (max-width: 380px) {
  .visual-story, .courses, .curriculum, .visual-kit, .attendance, .faq, .extra-info {padding-inline: 20px;}
  .course-prices .price {font-size: 30px;}
  .course-prices {gap: 10px;}
  .course-prices > div + div {padding-left: 10px;}
  .regular-price {font-size: 10px;}
}
@media (prefers-reduced-motion: reduce) {
  .hero-background, .hero-mascot, .button[data-contact]::before {animation: none !important; transform: none !important;}
  .course-row {transition: none !important;}
  .course-row:hover {transform: none;}
  .page[data-reveal-ready="true"] [data-reveal] {opacity: 1 !important; transform: none !important; transition: none !important;}
  .motion-toggle {display: none;}
}


/* ===== 本番用の追加（2026-10-23 ブラッシュアップ） ===== */
.sp-only {display: none;}
.hero-button {text-decoration: none;}
.hero-note {font-size: 14px; font-weight: 700; line-height: 1.8; margin-top: 14px;}
.hero {height: 624px;}
.header-button {text-decoration: none; color: #fff;}

/* このコースでできること */
.can-do-title {font-family: var(--round); font-size: 19px; font-weight: 700; margin-top: 26px;}
.can-do {list-style: none; padding: 0; margin: 12px 0 0; display: grid; gap: 8px;}
.can-do li {position: relative; padding: 10px 14px 10px 44px; background: var(--paleblue); border-radius: 12px; font-weight: 700; font-size: 15px; line-height: 1.7;}
.can-do li::before {content: "✓"; position: absolute; left: 14px; top: 9px; width: 22px; height: 22px; border-radius: 50%; background: var(--yellow); text-align: center; font-size: 13px; line-height: 22px; font-weight: 900;}

/* 料金のよくある質問 */
.price-faq {margin-top: 24px; display: grid; gap: 10px;}
.price-faq details {background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 0 18px;}
.price-faq summary {list-style: none; cursor: pointer; position: relative; padding: 15px 34px 15px 0; font-weight: 700; font-size: 16px; line-height: 1.6;}
.price-faq summary::-webkit-details-marker {display: none;}
.price-faq summary::after {content: "+"; position: absolute; right: 2px; top: 10px; font-size: 26px; font-weight: 400;}
.price-faq details[open] summary::after {content: "−";}
.price-faq details > p {padding: 0 0 16px; font-size: 15px; line-height: 1.9;}

/* セクションの中の相談ボタン */
.section-cta {text-align: center; margin-top: 30px;}
.section-button {min-width: 320px; max-width: 100%; font-size: 17px; min-height: 58px; color: #fff;}

/* 講習の流れの写真 */
.curriculum-grid .step-photo {margin: 0; aspect-ratio: 16 / 10; overflow: hidden; background: #dce8eb;}
.curriculum-grid .step-photo img {width: 100%; height: 100%; object-fit: cover;}
/* 3枚目は承認済みデザイン画像の切り抜き（photo-crop の縦横比 294:185 のまま使う） */

/* 滞在と受講 */
#stay .attendance-grid {margin-top: 34px;}
#stay .attendance-table {background: #fff; border-radius: var(--radius); padding: 12px 18px;}
.contact-tel {font-size: 15px; font-weight: 700; margin-top: 18px;}
.contact-tel a {font-family: "Oswald", var(--font); font-size: 22px; margin-left: 6px;}

/* フッター */
.site-footer {background: var(--navy); color: #fff; padding: 40px var(--gutter, 38px) 110px;}
.site-footer-inner {max-width: 960px; margin-inline: auto; font-size: 14px; line-height: 1.9;}
.site-footer a {color: #fff;}
.site-footer-name {font-size: 15px;}
.site-footer-nav {display: flex; flex-wrap: wrap; gap: 6px 20px; margin: 18px 0; padding: 16px 0; border-top: 1px solid rgba(255,255,255,.25); border-bottom: 1px solid rgba(255,255,255,.25);}
.site-footer-note {font-size: 13px;}
.site-footer small {display: block; margin-top: 12px; font-size: 12px;}

/* スマホの固定バー：FVのボタンが見えている間は隠す */
.mobile-consult {transition: transform .25s, opacity .25s;}
.mobile-consult.is-hidden {transform: translateY(110%); opacity: 0; pointer-events: none;}
.mobile-consult .button {text-decoration: none; color: #fff;}

/* 主ボタンの強調（画面に入ったときだけ光が横に走る） */
.hero-button, .contact-button {position: relative; overflow: hidden;}
.hero-button::before, .contact-button::before {content: ""; position: absolute; top: 0; left: -60%; width: 40%; height: 100%; background: linear-gradient(100deg, rgba(255,255,255,0), rgba(255,255,255,.45), rgba(255,255,255,0)); transform: skewX(-20deg); animation: cta-shine 3.2s ease-in-out 1.2s infinite;}
@keyframes cta-shine {0% {left: -60%;} 45%, 100% {left: 130%;}}

@media (min-width: 1024px) {
  body {font-size: 17px;}
  .hero-note {font-size: 15px;}
  .can-do li {font-size: 16.5px;}
  .price-faq summary {font-size: 17px;}
  .price-faq details > p, .faq details > p, .attendance-table, .access-guidance p, .island .section-intro, .comparison-table td, .comparison-table th {font-size: 16.5px;}
  .faq summary {font-size: 17px;}
  .site-footer-inner {font-size: 15px;}
}
@media (max-width: 800px) {
  .sp-only {display: inline;}
  .hero-note {font-size: 13px; margin-top: 12px;}
  .can-do li {font-size: 14.5px;}
  .section-button {min-width: 0; width: 100%; font-size: 16px;}
  .price-faq details {padding: 0 14px;}
  .price-faq summary {font-size: 15px;}
  .contact-tel a {display: inline-block; margin: 4px 0 0;}
  .site-footer {padding: 32px 20px 120px;}
}
@media (prefers-reduced-motion: reduce) {
  .hero-button::before, .contact-button::before {animation: none !important; display: none;}
  .mobile-consult {transition: none;}
}

/* ===== 相談フォーム・完了ページ（contact/） ===== */
.contact-page .header {justify-content: space-between;}
.header-back {font-size: 14px; font-weight: 700; color: var(--ink);}
.form-hero {background: var(--paleblue); padding: 48px var(--gutter) 40px; text-align: center;}
.form-crumb {font-size: 13px; margin-bottom: 14px;}
.form-hero h1 {font-family: var(--round); font-size: clamp(30px, 3.4vw, 42px); font-weight: 700; line-height: 1.5;}
.h1-sub {display: block; font-family: var(--font); font-size: 15px; font-weight: 700; margin-top: 8px;}
.form-lead {max-width: 680px; margin: 18px auto 0; font-size: 16px; line-height: 1.9;}
.mini-flow {list-style: none; counter-reset: flow; padding: 0; margin: 26px auto 0; max-width: 860px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; text-align: left;}
.mini-flow li {counter-increment: flow; background: #fff; border-radius: 12px; padding: 14px 16px 14px 52px; position: relative; font-size: 14px; font-weight: 700; line-height: 1.7;}
.mini-flow li::before {content: counter(flow); position: absolute; left: 14px; top: 13px; width: 28px; height: 28px; border-radius: 50%; background: var(--yellow); text-align: center; line-height: 28px; font-family: "Oswald", sans-serif;}
.form-body {max-width: 720px; margin: 0 auto; padding: 36px 20px 72px;}
.error-banner {background: #fff3e9; border: 2px solid var(--orange); border-radius: 12px; padding: 16px 18px; margin-bottom: 24px; font-size: 15px; line-height: 1.8;}
.form-card {background: #fff; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); padding: 30px 32px;}
.form-row {margin: 0 0 20px;}
.form-row label {display: block; font-weight: 700; font-size: 15px; margin-bottom: 6px;}
.req, .opt {display: inline-block; font-size: 11px; font-weight: 700; border-radius: 4px; padding: 1px 6px; margin-left: 6px; vertical-align: 2px;}
.req {background: var(--orange); color: #fff;}
.opt {background: var(--lightblue); color: var(--ink);}
.form-hint {display: block; font-size: 13px; line-height: 1.7; margin-bottom: 6px;}
.contact-form input[type="text"], .contact-form input[type="email"], .contact-form input[type="tel"], .contact-form select, .contact-form textarea {width: 100%; min-height: 50px; padding: 11px 14px; border: 1px solid #a9c4ce; border-radius: 10px; background: #fff; color: var(--ink); font-size: 16px; line-height: 1.6;}
.contact-form textarea {min-height: 150px; resize: vertical;}
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus {outline: 3px solid #9fdcec; border-color: var(--cyan);}
.hp-field {position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden;}
.turnstile-box {margin: 8px 0 6px; min-height: 65px;}
.form-wait {font-size: 14px; font-weight: 700; min-height: 1.6em;}
.form-fact {font-size: 14px; font-weight: 700; text-align: center; margin-top: 10px;}
.form-submit {text-align: center; margin-top: 10px;}
.form-button {width: 100%; max-width: 420px; min-height: 62px; font-size: 18px;}
.form-button:disabled {opacity: .7;}
.form-assure {text-align: center; font-size: 14px; font-weight: 700; line-height: 1.8; margin-top: 12px;}
.form-note {text-align: center; font-size: 13px; line-height: 1.8; margin-top: 14px;}
.tel-alt {text-align: center; font-size: 15px; font-weight: 700; margin-top: 26px;}
.tel-alt a {font-family: "Oswald", var(--font); font-size: 22px; margin-left: 6px;}
.line-box {background: #fff; border: 2px solid #00b900; border-radius: var(--radius); padding: 24px; text-align: center;}
.line-t {font-family: var(--round); font-size: 21px; font-weight: 700;}
.line-d {font-size: 15px; line-height: 1.8; margin-top: 8px;}
.line-btn {margin-top: 16px;}
.line-cta {display: inline-flex; align-items: center; gap: 10px; background: #00b900; color: #fff; border-radius: 999px; padding: 12px 28px; font-weight: 900; font-size: 17px; text-decoration: none; min-height: 56px;}
.line-cta img {width: 32px; height: auto;}
.thanks-h {font-family: var(--round); font-size: 24px; font-weight: 700; margin-top: 40px; text-align: center;}
.thanks-steps {margin: 18px 0 0; padding-left: 1.5em; font-size: 16px; line-height: 1.9;}
.thanks-steps li + li {margin-top: 8px;}
.thanks-note {font-size: 14px; line-height: 1.8; margin-top: 24px;}
.back-link {text-align: center; margin-top: 30px;}
.contact-page .site-footer {padding-bottom: 40px;}
@media (min-width: 1024px) {
  .form-lead, .thanks-steps {font-size: 17px;}
  .form-row label {font-size: 16px;}
}
@media (max-width: 800px) {
  .header-back {font-size: 12px;}
  .form-hero {padding: 34px 20px 30px;}
  .h1-sub {font-size: 13px;}
  .form-lead {font-size: 15px; text-align: left;}
  .mini-flow {grid-template-columns: 1fr;}
  .form-body {padding: 26px 16px 56px;}
  .form-card {padding: 22px 18px;}
  .line-cta {font-size: 16px; padding-inline: 20px;}
}

/* 調整中のこと（料金の欄に1つにまとめる・2026-10-23 レビュー反映） */
.pending-box {margin-top: 24px; padding: 20px 24px; background: var(--cream); border-radius: var(--radius);}
.pending-box h3 {font-family: var(--round); font-size: 19px; font-weight: 700;}
.pending-box p {font-size: 15px; line-height: 1.8; margin-top: 6px;}
.pending-box ul {margin: 10px 0 0; padding-left: 1.3em; font-size: 15px; line-height: 1.9;}
@media (min-width: 1024px) {.pending-box p, .pending-box ul {font-size: 16.5px;}}

/* ===== 2026-10-24 追従CTA・動き・画像と動画の仮置き ===== */
/* 仮置きの印（差し替え前の素材であることを、たんとが見て分かるように） */
.placeholder-tag {display: inline-block; margin-left: 8px; padding: 1px 8px; border-radius: 999px; background: var(--ink); color: #fff; font-size: 11px; font-weight: 700; line-height: 1.7; vertical-align: 1px;}

/* ジャンプメニュー */
.quick-nav {display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; padding: 0 var(--gutter) 26px; background: var(--paleblue);}
.quick-nav a {display: inline-flex; align-items: center; gap: 6px; padding: 8px 16px; border-radius: 999px; background: #fff; border: 1px solid var(--line); font-size: 14px; font-weight: 700; text-decoration: none; color: var(--ink); transition: background .2s, transform .2s;}
.quick-nav a::after {content: ""; width: 6px; height: 6px; border-right: 2px solid var(--orange); border-bottom: 2px solid var(--orange); transform: rotate(45deg) translateY(-2px);}
.quick-nav a:hover {background: var(--cream); transform: translateY(-2px);}

/* FV：マーカーを引く・おしんがふわっと浮く */
.hero-title-highlight {background: linear-gradient(transparent 66%, var(--yellow) 66%) no-repeat 0 0 / 100% 100%; transition: background-size .9s cubic-bezier(.2,.7,.2,1);}
.js-reveal .hero-title-highlight:not(.is-drawn) {background-size: 0% 100%;}
.hero-mascot {animation: fuwa 3.6s ease-in-out infinite;}
@keyframes fuwa {0%, 100% {transform: translateY(0);} 50% {transform: translateY(-10px);}}

/* 画面に入ったらふわっと出す（JS が動いたときだけ隠す） */
.js-reveal .reveal {opacity: 0; transform: translateY(26px); transition: opacity .7s ease, transform .7s ease;}
.js-reveal .reveal.is-in {opacity: 1; transform: none;}
.js-reveal .reveal-group > * {opacity: 0; transform: translateY(22px); transition: opacity .6s ease, transform .6s ease;}
.js-reveal .reveal-group.is-in > * {opacity: 1; transform: none;}
.js-reveal .reveal-group.is-in > :nth-child(2) {transition-delay: .12s;}
.js-reveal .reveal-group.is-in > :nth-child(3) {transition-delay: .24s;}
.js-reveal .reveal-group.is-in > :nth-child(4) {transition-delay: .36s;}
.js-reveal .reveal-group.is-in > :nth-child(5) {transition-delay: .48s;}

/* 導入：ゴーグルに映る景色（仮の映像）と海岸の写真 */
.intro-visuals {display: grid; gap: 26px; align-items: start;}
.goggle-view {margin: 0;}
.goggle-frame {position: relative; aspect-ratio: 16 / 9; border-radius: 120px / 90px; overflow: hidden; background: #0b2c36; border: 10px solid #1c2b30; box-shadow: var(--shadow), inset 0 0 0 2px rgba(255,255,255,.15);}
.goggle-frame::after {content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(ellipse at center, transparent 58%, rgba(0,0,0,.35) 100%);}
.goggle-video {width: 100%; height: 100%; object-fit: cover; display: block;}
.goggle-view figcaption {font-size: 13px; font-weight: 700; margin-top: 10px; text-align: center;}

/* コースのカード：画像・対象のバッジ・コース別の相談リンク */
.course-photo {border-radius: 12px; margin-bottom: 18px;}
.course-photo .placeholder-tag {position: absolute; left: 10px; top: 10px; margin: 0;}
.course-badge {display: inline-block; margin: 0 0 6px; padding: 4px 14px; border-radius: 999px; background: var(--cyan); color: #fff; font-size: 13px; font-weight: 700;}
.course-badge-basic {background: var(--orange);}
.course-row {text-align: center;}
.course-link {text-align: center; margin-top: 4px;}
.course-link a {display: inline-flex; align-items: center; gap: 8px; font-weight: 700; font-size: 15px; color: var(--ink); text-decoration: underline; text-decoration-color: var(--orange); text-decoration-thickness: 2px; text-underline-offset: 6px;}
.course-link a::after {content: "→"; color: var(--orange); transition: transform .2s;}
.course-link a:hover::after {transform: translateX(4px);}

/* セクションの相談ボタンの上の一言 */
.cta-lead {font-size: 15px; font-weight: 700; margin-bottom: 12px;}

/* 相談の帯：おしんと吹き出し */
.consult-band {grid-template-columns: auto minmax(0, 1fr) auto;}
.consult-chara {grid-column: 1; grid-row: 1 / 3; position: relative; width: 130px;}
.consult-chara img {width: 110px; height: auto; animation: fuwa 3.6s ease-in-out infinite;}
.consult-band .consult-bubble {position: absolute; left: 0; top: -54px; width: max-content; max-width: none; padding: 8px 14px; background: #fff; border: 2px solid var(--ink); border-radius: 16px; font-family: var(--round); font-size: 14px; font-weight: 700; line-height: 1.5;}
.consult-band h2, .consult-band > p {grid-column: 2;}
.consult-band .button {grid-column: 3;}

/* 滞在：講習の様子の動画を入れる場所（仮置き） */
.video-slot {margin: 30px 0 0;}
.video-slot-box {position: relative; aspect-ratio: 16 / 9; max-height: 420px; width: 100%; border-radius: var(--radius); overflow: hidden; border: 3px dashed var(--ink);}
.video-slot-box img {width: 100%; height: 100%; object-fit: cover; filter: brightness(.55);}
.video-slot-text {position: absolute; inset: 0; display: grid; place-content: center; text-align: center; color: #fff; font-weight: 700; font-size: 16px; line-height: 1.8;}
.video-slot-text .placeholder-tag {justify-self: center; margin: 0 0 8px; background: var(--yellow); color: var(--ink);}

/* 追従の相談ボタン：スマホは下の帯（既存）、PC は右下に浮かぶ形 */
.follow-chara, .follow-note {display: none;}
@media (min-width: 1101px) {
  .mobile-consult.follow-cta {display: flex; flex-direction: column; align-items: center; gap: 6px; position: fixed; right: 24px; bottom: 24px; z-index: 60; width: 270px; padding: 16px 16px 14px; background: #fff; border-radius: 20px; box-shadow: 0 12px 30px rgba(4,38,47,.22); border: 2px solid var(--yellow);}
  .follow-chara {display: block; position: absolute; top: -62px; left: 14px; width: 54px; height: auto; animation: fuwa 3.6s ease-in-out infinite;}
  .follow-note {display: block; font-size: 13px; font-weight: 700;}
  .follow-cta .follow-button {width: 100%; min-height: 54px; font-size: 16px; padding-inline: 14px; gap: 10px; white-space: nowrap; animation: follow-pulse 2.6s ease-in-out infinite;}
  .follow-cta .follow-link {font-size: 13px; font-weight: 700; text-decoration: underline; text-underline-offset: 4px; color: var(--ink);}
  .mobile-consult.follow-cta.is-hidden {transform: translateY(140%);}
}
@keyframes follow-pulse {0%, 100% {box-shadow: 0 5px 0 #b84a05, 0 0 0 0 rgba(242,98,12,.45);} 50% {box-shadow: 0 5px 0 #b84a05, 0 0 0 10px rgba(242,98,12,0);}}

@media (min-width: 1024px) {
  .cta-lead {font-size: 16px;}
}
@media (max-width: 800px) {
  .quick-nav {gap: 8px; padding: 0 16px 20px; justify-content: flex-start;}
  .quick-nav a {font-size: 13px; padding: 7px 12px;}
  .goggle-frame {border-width: 7px; border-radius: 80px / 60px;}
  .consult-chara {width: auto; display: flex; align-items: flex-end; gap: 10px; margin-bottom: 14px;}
  .consult-chara img {width: 76px;}
  .consult-band .consult-bubble {position: static; font-size: 13px;}
  .video-slot-text {font-size: 14px;}
  .cta-lead {font-size: 14px;}
}
@media (prefers-reduced-motion: reduce) {
  .hero-mascot, .consult-chara img, .follow-chara, .follow-cta .follow-button {animation: none !important;}
  .hero-title-highlight {transition: none; background-size: 100% 100% !important;}
  .js-reveal .reveal, .js-reveal .reveal-group > * {opacity: 1 !important; transform: none !important; transition: none !important;}
  .quick-nav a, .course-link a::after {transition: none;}
}
/* 出し終えたコースのカードは、マウスを乗せたときの浮き上がりを残す */
.js-reveal .course-row.reveal.is-in:hover {transform: translateY(-5px);}
@media (prefers-reduced-motion: reduce) {.js-reveal .course-row.reveal.is-in:hover {transform: none !important;}}

/* ===== 2026-10-24 レビュー反映 ===== */
/* 5. 仮置きの札・枠と「ゴーグルに映る景色」（中身は空撮）は、本番（odschool.jp）では出さない。プレビューと手元のファイルだけで出す */
html:not(.is-preview) .placeholder-tag, html:not(.is-preview) .video-slot, html:not(.is-preview) .goggle-view {display: none !important;}
/* 6. コースの画像が AI で作ったものだと分かる札（本番でも出す） */
.generated-tag {position: absolute; left: 10px; top: 10px; padding: 1px 8px; border-radius: 999px; background: rgba(255,255,255,.9); color: var(--ink); font-size: 11px; font-weight: 700; line-height: 1.7;}
/* 7. ゴーグルの映像の一時停止のボタン */
.goggle-toggle {position: absolute; right: 18px; bottom: 14px; z-index: 1; width: 38px; height: 38px; border: 0; border-radius: 50%; background: rgba(4,38,47,.8); color: #fff; font-size: 15px; display: grid; place-items: center;}
.goggle-toggle:focus-visible {outline-color: #fff;}
/* 11. コースのカード：出す動きと、マウスを乗せたときの影の動きを両方残す */
.js-reveal .course-row.reveal {transition: opacity .7s ease, transform .7s ease, box-shadow .25s;}
/* 8. 801〜1100px（タブレット）は、右下のカードではなくスマホと同じ下の帯にする */
@media (min-width: 801px) and (max-width: 1100px) {
  .mobile-consult.follow-cta {display: grid; grid-template-columns: 120px minmax(0, 1fr); align-items: center; gap: 14px; position: fixed; inset: auto 0 0; z-index: 50; padding: 10px 24px calc(10px + env(safe-area-inset-bottom, 0px)); background: #fff; border-top: 1px solid #d8dcd6;}
  .follow-cta .follow-link {order: -1; font-size: 14px; font-weight: 700; text-align: center; text-decoration: none; color: var(--ink);}
  .follow-cta .follow-button {min-height: 52px; font-size: 16px; width: 100%;}
  body {padding-bottom: 80px;}
  /* 13. 中段の相談の帯：おしんと本文を横に並べ、ボタンはその下 */
  .consult-band {grid-template-columns: auto minmax(0, 1fr);}
  .consult-band .button {grid-column: 1 / -1; grid-row: auto; justify-self: center; margin-top: 10px;}
}
/* 12. スマホの下の帯：DOM はボタン → リンクの順なので、見た目はリンクを左に */
@media (max-width: 800px) {
  .follow-cta .follow-link {order: -1;}
}

/* ===== 2026-10-24 開校キャンペーン（先着10名）。終了したら data-campaign の要素を HTML から外す ===== */
/* FV のバッジ（主ボタンの上） */
.hero {height: 680px;}
.hero-campaign {display: inline-flex; align-items: stretch; margin-top: 20px; border-radius: 12px; overflow: hidden; box-shadow: 0 4px 0 #c9a800, var(--shadow); animation: badge-pop .6s cubic-bezier(.2,1.4,.4,1) .3s both;}
.hero-campaign-label {display: grid; place-items: center; padding: 8px 14px; background: var(--orange); color: #fff; font-weight: 900; font-size: 15px; letter-spacing: .04em;}
.hero-campaign-body {display: grid; place-items: center; padding: 8px 18px; background: var(--yellow); color: var(--ink); font-weight: 900; font-size: 17px;}
.hero-campaign-body b {font-family: "Oswald", var(--font); font-size: 28px; font-weight: 600; line-height: 1; margin: 0 2px;}
.hero-campaign + .hero-button {margin-top: 18px;}
@keyframes badge-pop {0% {opacity: 0; transform: scale(.85);} 100% {opacity: 1; transform: none;}}

/* 料金の欄の上のキャンペーンの箱 */
.campaign-box {position: relative; margin: 6px 0 30px; padding: 26px 28px 22px; background: #fff; border: 3px solid var(--orange); border-radius: var(--radius); box-shadow: var(--shadow); text-align: center;}
.campaign-box-label {position: absolute; left: 50%; top: -17px; transform: translateX(-50%); padding: 4px 20px; border-radius: 999px; background: var(--orange); color: #fff; font-weight: 900; font-size: 15px; white-space: nowrap;}
.campaign-box-title {font-family: var(--round); font-size: clamp(20px, 2.2vw, 26px); font-weight: 700; line-height: 1.6;}
.campaign-box-title b {font-family: "Oswald", var(--font); font-size: 1.5em; font-weight: 600; background: linear-gradient(transparent 62%, var(--yellow) 62%); padding-inline: 2px;}
.campaign-box-note {font-size: 14px; line-height: 1.8; margin-top: 10px; text-align: left;}

/* 料金のカードの中：キャンペーン価格と終了後の価格 */
.price-campaign-label {display: inline-block; margin-bottom: 2px; padding: 1px 10px; border-radius: 999px; background: var(--orange); color: #fff; font-size: 12px; font-weight: 700;}
.course-prices .price, .creator-prices .price {position: relative;}
.course-prices .price-campaign-label + .price span[data-price] {background: linear-gradient(transparent 64%, var(--yellow) 64%); padding-inline: 2px;}
.price-after {font-size: 13px; font-weight: 700; margin-top: 2px;}
.price-after span {font-family: "Oswald", var(--font); font-size: 15px; font-weight: 600;}

/* 追従の相談のキャンペーンの一言 */
.follow-campaign {display: none;}
@media (min-width: 1101px) {
  .follow-campaign {display: block; padding: 2px 12px; border-radius: 999px; background: var(--yellow); font-size: 13px; font-weight: 900;}
}

@media (min-width: 1024px) {
  .campaign-box-note {font-size: 15.5px;}
}
@media (max-width: 800px) {
  .hero {height: 720px;}
  .hero-campaign {margin-top: 16px;}
  .hero-campaign-label {font-size: 12px; padding: 6px 10px;}
  .hero-campaign-body {font-size: 14px; padding: 6px 12px;}
  .hero-campaign-body b {font-size: 22px;}
  .hero-campaign + .hero-button {margin-top: 14px;}
  .campaign-box {padding: 26px 16px 18px; margin-top: 14px;}
  .campaign-box-label {font-size: 13px;}
  .campaign-box-note {font-size: 13px;}
  .price-campaign-label {font-size: 11px;}
  .price-after {font-size: 12px;}
}
@media (max-width: 380px) {
  .hero {height: 750px;}
  .hero-campaign-body {font-size: 13px;}
}
@media (prefers-reduced-motion: reduce) {
  .hero-campaign {animation: none !important;}
}
