*{margin:0;padding:0;box-sizing:border-box;}
:root{--cream:#eef4f6;--card:#fff;--ink:#27353c;--ink-soft:#52646c;--ink-mute:#869199;--amber:#3f87a6;--amber-bright:#e3c486;--navy:#2c5564;--navy-deep:#163542;--lgreen:#06c755;--line:rgba(39,53,60,.1);--amber-100:#dde9ee;--grad:linear-gradient(135deg,#4f97b3 0%,#356d8a 100%);--shadow-sm:0 4px 16px rgba(40,70,85,.08);--shadow:0 20px 50px rgba(40,70,85,.14);--shadow-dark:0 24px 60px rgba(12,32,40,.4);}
body{font-family:'Noto Sans JP',sans-serif;background:var(--cream);color:var(--ink);line-height:1.95;-webkit-font-smoothing:antialiased;}
.shead{position:sticky;top:0;z-index:50;background:rgba(247,243,236,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);}
.shead__in{display:flex;align-items:center;justify-content:space-between;padding:16px 22px;max-width:840px;margin:0 auto;}
.slogo{font-family:'Shippori Mincho',serif;font-weight:700;font-size:19px;letter-spacing:.08em;color:var(--ink);text-decoration:none;}
.sback{color:var(--ink-soft);text-decoration:none;font-size:13.5px;font-weight:500;display:inline-flex;align-items:center;gap:6px;transition:color .2s;}
.sback:hover{color:var(--amber);}
.swrap{max-width:760px;margin:0 auto;padding:14px 22px 100px;}
.crumb{font-size:12.5px;color:var(--ink-mute);padding:18px 0 6px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.crumb a{color:var(--ink-soft);text-decoration:none;}
.crumb a:hover{color:var(--amber);}
.crumb svg{width:12px;height:12px;opacity:.6;}
/* hero */
.shero{padding:30px 0 8px;}
.shero__en{font-size:11px;letter-spacing:.34em;color:var(--amber);font-weight:700;text-transform:uppercase;margin-bottom:14px;display:flex;align-items:center;gap:12px;}
.shero__en::before{content:'';width:34px;height:1px;background:linear-gradient(90deg,var(--amber-bright),var(--amber));}
.shero h1{font-family:'Shippori Mincho',serif;font-size:clamp(28px,5vw,42px);font-weight:700;letter-spacing:.06em;color:#2e4d59;line-height:1.4;margin-bottom:14px;}
.shero__sub{font-family:'Shippori Mincho',serif;font-size:clamp(17px,2.6vw,21px);font-weight:600;color:var(--amber);letter-spacing:.04em;margin-bottom:18px;line-height:1.6;}
.shero__lead{color:var(--ink-soft);font-size:14.5px;line-height:2.1;}
/* section */
.sec{margin-top:46px;}
.sec__ttl{font-family:'Shippori Mincho',serif;font-size:clamp(20px,3vw,24px);font-weight:700;color:#2e4d59;letter-spacing:.05em;margin-bottom:20px;padding-top:16px;border-top:2px solid var(--amber-bright);display:inline-block;}
.sec__lead{color:var(--ink-soft);font-size:14.5px;line-height:2.1;margin-bottom:18px;}
.sec p{color:var(--ink-soft);font-size:14.5px;line-height:2.1;margin-bottom:14px;}
.sec p:last-child{margin-bottom:0;}
/* check list */
.clist{list-style:none;display:flex;flex-direction:column;gap:11px;}
.clist li{position:relative;padding-left:36px;font-size:15px;color:#314650;line-height:1.7;font-weight:500;}
.clist li::before{content:'';position:absolute;left:0;top:-1px;width:24px;height:24px;border-radius:7px;background:var(--amber-100);}
.clist li::after{content:'';position:absolute;left:7px;top:6px;width:10px;height:6px;border-left:2.4px solid var(--amber);border-bottom:2.4px solid var(--amber);transform:rotate(-45deg);}
/* dot list (box) */
.dlist{list-style:none;background:#fff;border:1px solid var(--amber-100);border-radius:16px 16px 16px 6px;box-shadow:var(--shadow-sm);padding:20px 26px;display:flex;flex-direction:column;gap:9px;}
.dlist li{position:relative;padding-left:20px;font-size:14.5px;color:var(--ink-soft);line-height:1.85;}
.dlist li::before{content:'';position:absolute;left:2px;top:12px;width:6px;height:6px;border-radius:50%;background:var(--amber-bright);}
/* ordered steps */
.osteps{list-style:none;counter-reset:st;display:flex;flex-direction:column;gap:0;}
.osteps li{position:relative;counter-increment:st;padding:0 0 22px 52px;}
.osteps li::before{content:counter(st);position:absolute;left:0;top:-2px;width:34px;height:34px;border-radius:50%;background:var(--grad);color:#fff;font-weight:700;font-size:15px;display:flex;align-items:center;justify-content:center;font-family:'Shippori Mincho',serif;}
.osteps li:not(:last-child)::after{content:'';position:absolute;left:16px;top:34px;bottom:6px;width:2px;background:var(--amber-100);}
.osteps li:last-child{padding-bottom:0;}
.osteps .st-ttl{font-size:15px;font-weight:700;color:#314650;line-height:1.7;padding-top:4px;}
.osteps .st-d{font-size:13.5px;color:var(--ink-soft);line-height:1.9;margin-top:3px;}
/* phase cards */
.phases{display:flex;flex-direction:column;gap:14px;}
.phase{background:#fff;border:1px solid var(--line);border-radius:20px 20px 20px 7px;box-shadow:var(--shadow-sm);padding:24px 26px;position:relative;overflow:hidden;}
.phase__no{font-size:11px;letter-spacing:.16em;color:var(--amber);font-weight:700;text-transform:uppercase;margin-bottom:6px;}
.phase h3{font-family:'Shippori Mincho',serif;font-size:20px;font-weight:700;color:#2e4d59;letter-spacing:.04em;margin-bottom:12px;}
.phase p{font-size:13.5px;color:var(--ink-soft);line-height:1.95;margin:0;}
.phase__big{position:absolute;right:18px;top:8px;font-family:'Shippori Mincho',serif;font-size:60px;font-weight:700;color:rgba(63,135,166,.08);line-height:1;}
/* gift cards */
.gifts{display:flex;flex-direction:column;gap:13px;}
.gift{display:flex;gap:16px;background:#fdfaf2;border:1px solid rgba(227,196,134,.5);border-radius:18px 18px 18px 6px;padding:22px 24px;}
.gift__ic{flex-shrink:0;font-size:26px;line-height:1.3;}
.gift__bd h4{font-size:15.5px;font-weight:700;color:#2e4d59;margin-bottom:7px;letter-spacing:.02em;}
.gift__bd p{font-size:13.5px;color:var(--ink-soft);line-height:1.9;margin:0 0 6px;}
.gift__bd p:last-child{margin:0;}
.gift__note{font-size:12.5px;color:var(--ink-mute);}
/* price */
.price{background:linear-gradient(150deg,var(--navy),var(--navy-deep));border:1px solid rgba(227,196,134,.3);border-radius:22px 22px 22px 8px;box-shadow:var(--shadow-dark);padding:30px 32px;color:#fff;}
.price__dur{font-size:13px;letter-spacing:.12em;color:var(--amber-bright);font-weight:700;margin-bottom:6px;}
.price__amt{font-family:'Shippori Mincho',serif;font-size:34px;font-weight:700;letter-spacing:.02em;}
.price__amt small{font-size:16px;font-weight:500;margin-left:4px;}
.price__note{font-size:13px;color:rgba(255,255,255,.78);line-height:1.85;margin-top:12px;}
.price__hr{border:none;border-top:1px solid rgba(255,255,255,.16);margin:18px 0;}
.price__old{font-size:13px;color:rgba(255,255,255,.6);}
.price__old s{margin-left:4px;}
.price__feat{font-size:12.5px;letter-spacing:.1em;color:#2e4d59;background:var(--amber-bright);display:inline-block;padding:4px 14px;border-radius:999px;font-weight:700;margin-bottom:12px;}
/* disclaimer */
.disc{background:#f3f6f7;border:1px solid var(--line);border-radius:16px;padding:22px 26px;}
.disc p{font-size:13px;color:var(--ink-mute);line-height:1.95;margin-bottom:10px;}
.disc p:last-child{margin-bottom:0;}
/* closing */
.closing{text-align:center;margin-top:40px;}
.closing p{font-family:'Shippori Mincho',serif;font-size:clamp(17px,2.6vw,20px);color:#2e4d59;line-height:1.9;letter-spacing:.03em;}
/* CTA */
.cta{margin-top:38px;text-align:center;}
.cta__lead{font-size:14px;color:var(--ink-soft);margin-bottom:16px;}
.btn-line{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--lgreen);color:#fff;text-decoration:none;font-weight:700;font-size:16px;padding:18px 40px;border-radius:999px;box-shadow:0 14px 30px rgba(6,199,85,.32);transition:transform .2s,filter .2s;letter-spacing:.04em;}
.btn-line:hover{transform:translateY(-2px);filter:brightness(1.04);}
.btn-line svg{width:20px;height:20px;}
.cta__sub{font-size:12.5px;color:var(--ink-mute);margin-top:14px;}
/* footer */
.sfooter{background:var(--navy-deep);padding:42px 22px;text-align:center;color:rgba(255,255,255,.55);font-size:12.5px;}
.sfooter a{color:rgba(255,255,255,.78);text-decoration:none;}
.sfooter a:hover{color:var(--amber-bright);}
.sfooter__copy{margin-top:14px;color:rgba(255,255,255,.4);font-size:12px;}
a:focus-visible,.btn-line:focus-visible{outline:3px solid var(--amber-bright);outline-offset:3px;}
