:root{--ink:#1b2f5e;--pink:#e5006e;--gold:#b8922e;--line:#dce6f0;--paper:#f4f9fd}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:86px}
body{margin:0;overflow-x:clip}
button,a{-webkit-tap-highlight-color:transparent}
button{font:inherit}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #236ca2;outline-offset:5px}
button{cursor:pointer}
img{max-width:100%}
.lp-hero{display:block;width:100%;height:auto}
.copy-section{position:relative;scroll-margin-top:75px}
.section-inner{position:relative}
.copy-heading{overflow-wrap:anywhere}
.copy-heading>span{font-family:"Noto Sans JP","Yu Gothic","Hiragino Kaku Gothic ProN","Noto Sans CJK JP",sans-serif!important}
.lp-nav{position:sticky;top:0;z-index:25;background:rgba(255,255,255,.97);border-bottom:1px solid #eadfca;box-shadow:0 3px 18px #1b2f5e06;backdrop-filter:blur(12px)}
.nav-inner{max-width:1136px;margin:auto;display:flex;align-items:center;gap:28px;min-height:60px;padding:0 20px;overflow-x:auto;scrollbar-width:none}
.nav-inner::-webkit-scrollbar{display:none}
.nav-inner a{display:block;flex:none;text-decoration:none;font-size:13px;font-weight:700;color:var(--ink);padding:19px 0;white-space:nowrap}
.nav-inner a:hover,.nav-inner a.is-active{color:var(--pink)}
.nav-inner .nav-brand{font-family:"Noto Serif JP","Noto Serif CJK JP",serif;font-size:25px;padding:10px 0;margin-right:auto;color:var(--ink)}
.lp-visual{display:block;position:relative;left:50%;transform:translateX(-50%);width:min(1120px,calc(100vw - 56px));margin:40px 0 48px;padding:0;text-align:left;isolation:isolate}
.visual-heading{display:flex;flex-direction:column;align-items:center;gap:9px;text-align:center;margin:0 0 20px;color:var(--ink)}
.visual-kicker{font-size:10px;font-weight:700;letter-spacing:.2em;color:#b68b35}
.visual-title{font-size:18px;font-weight:700;line-height:1.7}
.visual-art{position:relative;overflow:hidden;border-radius:18px;border:1px solid #ffffff;box-shadow:0 10px 40px #1b2f5e12;background:white}
.visual-full{display:block;width:100%;height:auto}
.visual-tools{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:12px 2px 0;font-size:12px}
.visual-hint{color:#748398}
.visual-note{margin:13px auto 0!important;font-size:12px!important;line-height:1.9!important;text-align:center!important;color:#748099;max-width:940px}
.artwork-entry-link{position:absolute;display:block;border-radius:999px;z-index:2;transition:box-shadow .2s}
.artwork-entry-link:hover{box-shadow:0 0 0 3px #ffffffbb,0 0 0 5px #e5006e88}
.mobile-panels{display:none}
#curriculum>.section-inner{max-width:1040px!important}
.curriculum-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:24px!important}
.curriculum-detail-card{height:100%;padding:36px 22px!important}
.curriculum-detail-card .copy-heading{font-size:22px!important}
.curriculum-detail-card>p{line-height:2.05!important}
.faq-list{display:grid;gap:16px}
.faq-item{background:#f4f9fd;border:1px solid #e3ebf4;border-radius:16px;overflow:hidden}
.faq-item summary{padding:24px 52px 24px 24px;position:relative;cursor:pointer;list-style:none}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary:after{content:"＋";position:absolute;right:21px;top:24px;font-size:20px;color:var(--pink)}
.faq-item[open] summary:after{content:"−"}
.faq-item summary p{margin:0!important;font-size:16px!important;line-height:1.8!important}
.faq-answer{padding:0 24px 24px;color:#3b4c63}
.faq-answer p{font-size:15px!important;line-height:2.05!important}
.entry-button:hover{transform:translateY(-2px)}
.entry-button{transition:transform .18s,box-shadow .18s}
.sticky-entry{position:fixed;z-index:35;bottom:18px;left:50%;transform:translateX(-50%);width:min(640px,calc(100vw - 32px));background:#fffffff2;backdrop-filter:blur(12px);border:1px solid #e5d4ad;border-radius:20px;box-shadow:0 8px 36px #1b2f5e24;padding:13px 16px;display:flex;align-items:center;gap:18px}
.sticky-entry[hidden]{display:none}
.sticky-entry-info{display:flex;flex:1;flex-direction:column;gap:4px;min-width:0;color:var(--ink)}
.sticky-entry-info strong{font-family:"Noto Serif JP","Noto Serif CJK JP",serif;font-size:18px}
.sticky-entry-info span{font-size:11px;white-space:nowrap;color:#6b7788}
.sticky-entry-button{background:linear-gradient(120deg,#ff4d9d,#e5006e);border-radius:999px;color:white!important;text-decoration:none;padding:14px 24px;font-weight:700;font-size:15px;white-space:nowrap}
.sticky-entry-button:hover{box-shadow:0 4px 18px #e5006e33}
.entry-dialog::backdrop{background:#101e39aa;backdrop-filter:blur(3px)}
.entry-dialog button{border-radius:999px;border:1px solid #ccd8e6;background:white;padding:8px 14px;color:var(--ink);font-size:13px}
body.has-dialog{overflow:hidden}
.entry-dialog{width:min(480px,calc(100vw - 32px));border:1px solid #d3dfec;border-radius:18px;padding:30px;color:var(--ink)}
.entry-dialog h2{font-size:20px;line-height:1.7;margin:0 0 15px}
.entry-dialog p{font-size:15px;line-height:1.95;color:#64738a}
.entry-dialog button{display:block;margin:20px 0 0 auto;padding:12px 26px;background:var(--ink);color:white}
@media(min-width:1500px){.lp-visual{width:1160px}}
@media(max-width:760px){html{scroll-padding-top:64px}
.copy-section{padding:60px 22px!important;scroll-margin-top:58px}
.copy-section[data-screen-label="ファーストビュー"]{padding-top:46px!important}
.copy-heading{text-wrap:pretty}
.nav-inner{gap:24px;min-height:52px;padding:0 18px}
.nav-inner a{font-size:12px;padding:16px 0}
.nav-inner .nav-brand{font-size:20px;margin-right:6px}
.lp-visual{width:calc(100vw - 28px);margin-top:30px;margin-bottom:34px}
.visual-heading{margin:0 14px 16px;gap:7px}
.visual-title{font-size:16px;line-height:1.6}
.visual-art{border-radius:12px}
.visual-tools{margin:11px 6px 0;flex-wrap:wrap;font-size:11px}
.visual-hint{font-size:11px}
.visual-note{font-size:11px!important;line-height:1.85!important;padding:0 10px;margin-top:12px!important}
.has-mobile-panels>.visual-art{display:none}
.mobile-panels{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:#d4c6d6 #ffffff;overscroll-behavior-x:contain;padding:0 7px 15px;align-items:start}
.mobile-panel{flex:0 0 86%;scroll-snap-align:center;scroll-snap-stop:always;background:#fff;border:1px solid #dce6f0;border-radius:14px;overflow:hidden;box-shadow:0 5px 16px #1b2f5e0a;position:relative}
.mobile-panel-title{font-size:13px!important;font-weight:700;color:var(--ink);line-height:1.7!important;text-align:center!important;padding:10px 14px;margin:0!important;background:#ffffff}
.mobile-panel img{display:block;width:100%;height:auto}
.panel-count{display:block;font-size:11px;letter-spacing:.08em;text-align:right;padding:5px 13px;color:#9c7d37}
.curriculum-detail-grid{grid-template-columns:1fr}
.curriculum-detail-card{padding:34px 19px!important}
.curriculum-detail-card .copy-heading{font-size:21px!important}
.sticky-entry{bottom:10px;gap:10px;padding:10px 12px;width:calc(100vw - 22px);border-radius:16px}
.sticky-entry-info strong{font-size:15px}
.sticky-entry-info span{font-size:9px;letter-spacing:-.01em}
.sticky-entry-button{padding:12px 17px;font-size:14px}
.faq-item summary{padding:20px 42px 20px 18px}
.faq-item summary p{font-size:15px!important}
.faq-item summary:after{right:15px;top:21px}
.faq-answer{padding:0 18px 20px}
.entry-button{padding:21px 20px!important;font-size:16px!important}}
@media(max-width:374px){.copy-section{padding-left:17px!important;padding-right:17px!important}
.sticky-entry-info span{font-size:8px}
.sticky-entry-button{padding:12px 13px}
.nav-inner{gap:18px}
.mobile-panel{flex-basis:92%}
.copy-heading{font-size:23px!important}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
*,*:before,*:after{animation:none!important;transition:none!important}}
@media print{.lp-nav,.sticky-entry,.visual-tools,.artwork-entry-link,dialog{display:none!important}
.copy-section{padding:20px 10px!important;break-inside:auto}
.lp-visual{width:100%;left:auto;transform:none;break-inside:avoid;margin:20px 0}
.visual-art{display:block!important}
.mobile-panels{display:none!important}
.curriculum-detail-grid{grid-template-columns:1fr}
.faq-answer{display:block}
body{overflow:visible}}
@media(min-width:761px){.has-mobile-panels .visual-hint{visibility:hidden}}
/* Only the existing mobile swipe hint remains; no image viewer UI. */
.visual-tools{display:none}
@media(max-width:760px){.has-mobile-panels>.visual-tools{display:flex;justify-content:center;margin-top:5px}.has-mobile-panels>.visual-tools .visual-hint{visibility:visible}}
@media print{.visual-tools{display:none!important}}
