@import url('https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=Noto+Sans+JP:wght@400;500;600;700&display=swap');

:root { --ink:#10253f; --navy:#081a30; --paper:#f7f3ec; --sand:#e9dfd0; --amber:#d99b3e; --amber-dark:#a96719; --green:#3c826b; --ruby:#9f414b; --muted:#597080; --white:#fffdf8; --line:rgba(16,37,63,.14); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:'Noto Sans JP',sans-serif; font-size:15px; line-height:1.9; }
img { max-width:100%; display:block; }
a { color:inherit; text-decoration:none; }
.skip { position:absolute; left:-999px; top:0; background:var(--amber); color:var(--navy); padding:8px 16px; z-index:99; }.skip:focus{left:8px}
.site-header { height:78px; display:flex; align-items:center; justify-content:space-between; gap:24px; padding:0 clamp(22px,5vw,76px); background:rgba(255,253,248,.92); backdrop-filter:blur(12px); position:sticky; top:0; z-index:30; border-bottom:1px solid rgba(16,37,63,.07); }
.brand { display:flex; align-items:center; gap:11px; letter-spacing:.08em; font-weight:700; font-size:18px; white-space:nowrap; }.brand-mark{width:29px;height:29px;border-radius:50% 45% 50% 40%;background:conic-gradient(var(--amber) 0 25%,var(--green) 0 50%,#337eae 0 75%,var(--ruby) 0);box-shadow:0 0 0 4px var(--paper)}
.nav-list { display:flex; align-items:center; gap:28px; padding:0; margin:0; list-style:none; font-size:13px; font-weight:600; letter-spacing:.04em; }.nav-list a{position:relative}.nav-list a:not(.nav-cta)::after{content:'';position:absolute;left:0;bottom:-5px;width:100%;height:1px;background:var(--amber);transform:scaleX(0);transform-origin:right;transition:.25s}.nav-list a:hover::after,.nav-list a[aria-current='page']::after{transform:scaleX(1);transform-origin:left}.nav-cta,.button{display:inline-flex;justify-content:center;align-items:center;gap:8px;background:var(--amber);color:var(--navy);padding:11px 18px;border:1px solid var(--amber);font-weight:700;letter-spacing:.03em;transition:.25s}.nav-cta{padding:8px 13px}.button:hover,.nav-cta:hover{background:var(--amber-dark);border-color:var(--amber-dark);color:white;transform:translateY(-2px)}.button.outline{background:transparent;color:var(--white);border-color:rgba(255,255,255,.75)}.button.outline:hover{background:white;color:var(--ink)}
.menu-toggle{display:none;width:44px;height:44px;border:0;background:transparent;color:var(--ink);cursor:pointer}.menu-toggle span{display:block;width:23px;height:2px;background:currentColor;margin:5px auto;transition:.25s}
.hero { min-height:700px; display:grid; align-items:end; position:relative; color:white; overflow:hidden; }.hero::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,20,37,.9) 0%,rgba(5,25,46,.65) 45%,rgba(5,25,46,.12) 100%);z-index:1}.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-content{position:relative;z-index:2;max-width:730px;margin:0 clamp(22px,8vw,138px) clamp(80px,12vh,124px)}.eyebrow{font-size:12px;letter-spacing:.2em;font-weight:700;text-transform:uppercase;color:var(--amber);display:flex;align-items:center;gap:10px}.eyebrow::before{content:'';width:34px;height:1px;background:currentColor}.hero h1{font-size:clamp(38px,5.3vw,76px);line-height:1.32;margin:20px 0 20px;font-weight:500;letter-spacing:.05em}.hero p{font-size:clamp(15px,1.45vw,18px);max-width:580px;margin:0 0 32px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}
.section{padding:100px clamp(22px,8vw,138px)}.section.alt{background:#eee5d8}.section.dark{background:var(--navy);color:var(--white)}.section-heading{max-width:710px;margin-bottom:48px}.section-heading h2,.page-intro h1{font-family:'DM Serif Display','Noto Sans JP',serif;font-size:clamp(32px,4vw,56px);line-height:1.3;font-weight:400;letter-spacing:.04em;margin:10px 0 0}.section-heading p{margin:18px 0 0;color:var(--muted)}.dark .section-heading p{color:#c9d4de}.grid{display:grid;gap:24px}.grid.three{grid-template-columns:repeat(3,1fr)}.grid.two{grid-template-columns:repeat(2,1fr)}
.card{background:var(--white);border:1px solid rgba(16,37,63,.08);padding:30px;box-shadow:0 12px 35px rgba(16,37,63,.05);transition:.3s}.card:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(16,37,63,.1)}.card h3{font-size:19px;margin:12px 0 10px;line-height:1.55}.card p{margin:0;color:#506270}.number{font-family:'DM Serif Display',serif;color:var(--amber);font-size:35px;line-height:1}.icon{font-size:23px;display:inline-flex;width:42px;height:42px;align-items:center;justify-content:center;border:1px solid var(--amber);border-radius:50%;color:var(--amber)}
.split{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:clamp(35px,6vw,92px)}.split img{width:100%;height:470px;object-fit:cover}.split-copy h2{font-family:'DM Serif Display','Noto Sans JP',serif;font-size:clamp(31px,3.5vw,49px);line-height:1.35;font-weight:400;margin:13px 0 20px}.split-copy p{color:var(--muted);margin:0 0 16px}.dark .split-copy p{color:#c9d4de}
.quote{font-family:'DM Serif Display','Noto Sans JP',serif;font-size:clamp(25px,3vw,40px);line-height:1.6;font-weight:400;color:var(--white);max-width:880px;margin:0}.quote::before{content:'“';color:var(--amber);font-size:1.8em;line-height:0;vertical-align:-.25em;margin-right:10px}.note{font-size:13px;color:var(--muted)}
.page-hero{background:linear-gradient(120deg,#0a1d33,#164054);color:white;padding:90px clamp(22px,8vw,138px) 80px;position:relative;overflow:hidden}.page-hero::after{content:'';position:absolute;width:330px;height:330px;border-radius:50%;right:-70px;top:-145px;background:conic-gradient(transparent 0 24%,rgba(217,155,62,.6) 0 48%,rgba(60,130,107,.55) 0 72%,rgba(159,65,75,.55) 0);filter:blur(1px);opacity:.75}.page-intro{max-width:740px;position:relative;z-index:1}.page-intro p{max-width:600px;color:#d1dce7;margin:18px 0 0}
.timeline{border-left:1px solid rgba(217,155,62,.7);padding-left:28px;display:grid;gap:28px}.timeline h3{margin:0;font-size:17px}.timeline p{margin:4px 0 0;color:var(--muted)}.timeline .year{display:block;color:var(--amber);font-weight:700;font-size:13px}.check-list{list-style:none;padding:0;margin:22px 0}.check-list li{padding:9px 0 9px 28px;border-bottom:1px solid var(--line);position:relative}.check-list li::before{content:'✦';color:var(--amber);position:absolute;left:2px}
.plan{padding:34px;position:relative;overflow:hidden}.plan.featured{background:var(--ink);color:white;border-color:var(--ink);transform:translateY(-12px)}.plan.featured p,.plan.featured .plan-detail{color:#d4dee6}.plan-label{font-size:12px;letter-spacing:.14em;color:var(--amber);font-weight:700}.plan h3{font-size:24px;margin:12px 0 4px}.price{font-family:'DM Serif Display',serif;font-size:43px;line-height:1.1;margin:18px 0 12px}.price small{font-family:'Noto Sans JP',sans-serif;font-size:13px}.plan-detail{font-size:13px;color:var(--muted);margin:0}.plan .check-list{font-size:14px}.plan.featured .check-list li{border-color:rgba(255,255,255,.18)}
.session{display:grid;grid-template-columns:1.1fr .9fr;background:var(--white);box-shadow:0 10px 32px rgba(16,37,63,.06)}.session img{width:100%;height:100%;min-height:370px;object-fit:cover}.session-copy{padding:44px}.session-copy h2{font-size:28px;line-height:1.5;margin:12px 0}.schedule{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:25px}.schedule span{background:var(--sand);padding:12px 8px;text-align:center;font-size:12px;font-weight:700}.schedule span b{display:block;color:var(--amber-dark);font-size:20px;font-family:'DM Serif Display',serif}
.gallery{display:grid;grid-template-columns:repeat(12,1fr);gap:18px}.gallery figure{margin:0;overflow:hidden;position:relative;cursor:pointer;background:var(--navy)}.gallery figure:nth-child(1){grid-column:span 7}.gallery figure:nth-child(2){grid-column:span 5}.gallery figure:nth-child(3){grid-column:span 5}.gallery figure:nth-child(4){grid-column:span 7}.gallery img{width:100%;height:300px;object-fit:cover;transition:.5s}.gallery figure:nth-child(1) img,.gallery figure:nth-child(4) img{height:360px}.gallery figure:hover img{opacity:.75;transform:scale(1.05)}.gallery figcaption{position:absolute;bottom:0;left:0;right:0;padding:42px 20px 17px;color:white;background:linear-gradient(transparent,rgba(4,20,37,.87));font-size:13px}.gallery figcaption b{display:block;font-size:17px}.modal{position:fixed;inset:0;background:rgba(4,16,28,.9);z-index:100;display:none;align-items:center;justify-content:center;padding:30px}.modal.open{display:flex}.modal img{max-height:80vh;max-width:min(100%,1100px);object-fit:contain}.modal button{position:absolute;right:22px;top:18px;color:white;background:transparent;border:0;font-size:38px;cursor:pointer}
.contact-layout{display:grid;grid-template-columns:.75fr 1.25fr;gap:48px;align-items:start}.contact-details h2{font-family:'DM Serif Display','Noto Sans JP',serif;font-weight:400;font-size:34px;line-height:1.4}.contact-details dl{margin:24px 0}.contact-details dt{font-size:12px;color:var(--amber-dark);font-weight:700;letter-spacing:.1em;margin-top:18px}.contact-details dd{margin:2px 0}.form{background:var(--white);padding:clamp(26px,4vw,46px);box-shadow:0 12px 32px rgba(16,37,63,.07)}.form-row{display:grid;gap:7px;margin-bottom:18px}.form label{font-size:13px;font-weight:700}.form input,.form select,.form textarea{font:inherit;border:1px solid #c8c2b7;background:#fffefa;padding:12px 13px;color:var(--ink);border-radius:0}.form textarea{min-height:150px;resize:vertical}.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid rgba(217,155,62,.55);border-color:var(--amber)}.form button{cursor:pointer}.form-status{display:none;margin-top:18px;padding:15px;background:#e4f2ed;color:#174b3e}.form-status.error{background:#f9e5e1;color:#872e27}.form-status.show{display:block}
.cta{background:linear-gradient(120deg,#102b45,#0a1c30);color:white;padding:72px clamp(22px,8vw,138px);display:flex;align-items:center;justify-content:space-between;gap:24px}.cta h2{font-family:'DM Serif Display','Noto Sans JP',serif;font-size:clamp(28px,3vw,43px);font-weight:400;margin:0}.cta p{margin:7px 0 0;color:#c8d6df}.site-footer{background:#061426;color:#aebfca;padding:48px clamp(22px,5vw,76px) 26px}.footer-top{display:flex;justify-content:space-between;gap:30px;align-items:flex-start}.footer-top .brand{color:white}.footer-links{display:flex;gap:19px;flex-wrap:wrap;font-size:13px}.copyright{border-top:1px solid rgba(255,255,255,.12);margin-top:34px;padding-top:18px;font-size:12px}
.manual{max-width:940px;margin:auto;padding:70px 28px}.manual h1{font-family:'DM Serif Display','Noto Sans JP',serif;line-height:1.3;font-size:44px}.manual h2{margin-top:44px;padding-top:15px;border-top:2px solid var(--amber);font-size:24px}.manual h3{font-size:18px;margin-top:25px}.manual code{background:#e9dfd0;padding:2px 5px;word-break:break-all}.manual .code{white-space:pre-wrap;background:#0b2138;color:#e7f0f4;padding:24px;overflow:auto;line-height:1.55;font-size:12px}
@media (max-width:820px){.site-header{height:66px;padding:0 20px}.menu-toggle{display:block;z-index:2}.nav-list{display:none;position:absolute;top:65px;left:0;right:0;background:var(--white);padding:20px;box-shadow:0 15px 26px rgba(9,26,48,.12);align-items:stretch;gap:0}.nav-list.open{display:flex;flex-direction:column}.nav-list li,.nav-list a{width:100%}.nav-list a{display:block;padding:10px 3px}.nav-cta{text-align:center}.hero{min-height:640px}.hero::before{background:linear-gradient(0deg,rgba(4,20,37,.9),rgba(5,25,46,.36))}.hero-content{margin:0 22px 65px}.section{padding:70px 22px}.grid.three,.grid.two,.split,.contact-layout{grid-template-columns:1fr}.split{gap:32px}.split img{height:340px}.split-copy{order:-1}.plan.featured{transform:none}.session{grid-template-columns:1fr}.session img{min-height:250px;max-height:320px}.session-copy{padding:28px}.schedule{grid-template-columns:repeat(2,1fr)}.gallery{grid-template-columns:1fr}.gallery figure,.gallery figure:nth-child(n){grid-column:auto}.gallery figure img,.gallery figure:nth-child(n) img{height:280px}.cta,.footer-top{display:block}.cta .button{margin-top:25px}.footer-links{margin-top:20px}.page-hero{padding:70px 22px}.page-intro h1{font-size:37px}}
