:root { --ink:#514d49; --paper:#f8f8f5; --line:#d9d9d4; --muted:#7f7b76; --section-beige:#ded3c6; --terracotta:#c06f4a; --serif:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",YuMincho,serif; --display:"Cormorant Garamond",Georgia,serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--serif); font-size:16px; line-height:1.95; letter-spacing:.025em; }
a { color:inherit; text-decoration:none; }
button { font:inherit; }
.site-header { position:absolute; z-index:2; top:0; left:0; display:flex; align-items:center; justify-content:space-between; width:100%; padding:1.25rem; color:#fff; }
.brand { font:500 1.45rem/.9 var(--display); letter-spacing:.04em; text-shadow:0 1px 10px rgba(0,0,0,.2); }
.header-actions { display:flex; align-items:center; gap:1.2rem; }
.back-link,.language-toggle { appearance:none; border:0; border-bottom:1px solid currentColor; padding:0 0 .16rem; color:inherit; background:transparent; font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue",sans-serif; font-size:.64rem; font-weight:500; letter-spacing:.14em; text-transform:uppercase; cursor:pointer; }
.plan-hero { min-height:82svh; position:relative; display:flex; align-items:flex-end; overflow:hidden; padding:0 1.25rem 2.8rem; color:#fff; }
.plan-hero::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.12),transparent 40%,rgba(0,0,0,.55)); }
.plan-hero img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.plan-hero-content { position:relative; z-index:1; width:min(100%,70rem); margin:0 auto; }
.eyebrow,.section-label { font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue",sans-serif; font-size:.63rem; font-weight:500; letter-spacing:.17em; text-transform:uppercase; }
.section-label { color:var(--terracotta); font-size:.7rem; }
.plan-hero h1 { margin:.5rem 0 0; font:500 clamp(3rem,12vw,7rem)/.9 var(--display); letter-spacing:.02em; }
.plan-hero p { max-width:31rem; margin:1.2rem 0 0; font-size:.88rem; }
.section { padding:7.5rem 1.25rem; }
.section-inner { width:min(100%,70rem); margin:0 auto; }
.overview { display:grid; gap:2.8rem; }
.overview h2,.detail-heading,.flow h2,.faq h2,.cta h2 { margin:0; font:400 clamp(1.7rem,4.8vw,3.5rem)/1.32 var(--serif); letter-spacing:.035em; }
.overview-copy { max-width:35rem; margin:0; color:#4d4b48; line-height:2.15; }
.facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin:4rem 0 0; padding:0; border-top:1px solid var(--line); }
.facts div { padding-top:1.2rem; }
.facts dt { color:var(--muted); font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue",sans-serif; font-size:.63rem; letter-spacing:.08em; }
.facts dd { margin:.35rem 0 0; font-size:.9rem; line-height:1.55; }
.details { border-top:1px solid var(--line); }
.detail-grid { display:grid; gap:3.6rem; }
.detail-block { border-top:1px solid var(--line); padding-top:1.5rem; }
.detail-block h3 { margin:0; font:500 1.75rem/1.1 var(--display); letter-spacing:.02em; }
.detail-block p { max-width:31rem; margin:1rem 0 0; color:#66615c; font-size:.88rem; }
.flow { background:var(--section-beige); color:var(--ink); }
.flow .section-label,.cta .section-label { color:var(--terracotta); }
.flow-list { margin:3.2rem 0 0; padding:0; list-style:none; border-top:1px solid rgba(54,51,48,.18); }
.flow-list li { display:grid; grid-template-columns:3rem 1fr; gap:1rem; padding:1.5rem 0; border-bottom:1px solid rgba(54,51,48,.18); }
.flow-list span { color:var(--terracotta); font:500 1rem/1 var(--display); }
.faq-list { margin:3rem 0 0; border-top:1px solid var(--line); }
.faq-item { padding:1.5rem 0; border-bottom:1px solid var(--line); }
.faq-item h3 { margin:0; font-size:.92rem; font-weight:500; }
.faq-item p { margin:.7rem 0 0; color:#66615c; font-size:.86rem; }
.cta { background:var(--section-beige); color:var(--ink); text-align:center; }
.cta p { max-width:35rem; margin:1.5rem auto 0; color:#625d58; font-size:.9rem; }
.cta-links { display:flex; flex-direction:column; align-items:center; gap:1rem; margin-top:2.2rem; }
.cta-link { display:inline-flex; justify-content:center; min-width:16rem; padding:.9rem 1.4rem; border:1px solid currentColor; font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue",sans-serif; font-size:.72rem; font-weight:500; letter-spacing:.1em; }
.cta-link.primary { background:var(--terracotta); color:#fffaf7; border-color:var(--terracotta); }
footer { padding:1.6rem 1.25rem; background:var(--section-beige); border-top:1px solid rgba(54,51,48,.18); color:var(--ink); display:flex; justify-content:space-between; font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue",sans-serif; font-size:.63rem; font-weight:500; letter-spacing:.14em; }
@media (min-width:700px) { .site-header { padding:1.7rem 3rem; } .plan-hero { min-height:88vh; padding:0 3rem 4rem; } .section { padding:10rem 3rem; } .overview { grid-template-columns:1.05fr .95fr; align-items:end; } .facts { grid-column:1/-1; } .detail-grid { grid-template-columns:repeat(3,1fr); gap:2.5rem; } .flow-list li { grid-template-columns:5rem 1fr; padding:2rem 0; } .cta-links { flex-direction:row; justify-content:center; } footer { padding:1.7rem 3rem; } }
