:root{--paper:#fffdf6;--milk:#fffaf0;--white:#fff;--ink:#21352b;--muted:#68786f;--line:#e8e2d5;--green:#06c755;--green-deep:#118449;--green-soft:#e7f9ed;--sky:#d9f2ff;--coral:#ff6f61;--coral-soft:#fff0eb;--butter:#fff0a8;--shadow:0 24px 70px rgba(33,53,43,.14);--soft-shadow:0 12px 34px rgba(33,53,43,.1);--font:"Noto Sans JP","Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font-family:var(--font);font-size:16px;font-weight:400;line-height:1.85;overflow-x:hidden;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
.inner{width:min(1120px,calc(100% - 40px));margin:0 auto}
section{position:relative;padding:92px 0}
.hero{min-height:calc(100vh - 18px);overflow:hidden;padding:28px 0 34px;background:linear-gradient(120deg,#fffdf6 0%,#fffdf6 45%,#edf9ef 100%)}
.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 58%,var(--paper) 100%);z-index:0}
.hero-glow{position:absolute;border-radius:50%;filter:blur(2px);opacity:.68}
.hero-glow-one{width:520px;height:520px;background:radial-gradient(circle,rgba(255,240,168,.85),rgba(255,240,168,0));right:-120px;top:80px}
.hero-glow-two{width:360px;height:360px;background:radial-gradient(circle,rgba(217,242,255,.8),rgba(217,242,255,0));right:22%;bottom:-170px}
.hero .inner{position:relative;z-index:1}
.nav{align-items:center;background:rgba(255,255,255,.72);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.8);border-radius:999px;box-shadow:0 12px 34px rgba(33,53,43,.08);display:flex;justify-content:space-between;margin-bottom:54px;padding:10px 14px 10px 12px}
.brand{align-items:center;display:flex;font-weight:700;gap:10px}
.brand-mark{align-items:center;background:var(--green);border-radius:14px;box-shadow:0 10px 26px rgba(6,199,85,.25);color:#fff;display:inline-flex;height:40px;justify-content:center;width:40px}
.nav-links{align-items:center;color:var(--muted);display:flex;font-size:13px;font-weight:500;gap:22px}
.nav-links a:hover{color:var(--green-deep)}
.nav-cta{align-items:center;background:#fff;border:1px solid var(--line);border-radius:999px;color:var(--green-deep)!important;display:inline-flex;gap:10px;padding:9px 14px 9px 18px}
.arrow{align-items:center;background:var(--green-soft);border-radius:50%;display:inline-flex;height:28px;justify-content:center;width:28px}
.hero-content{max-width:640px;padding-bottom:72px}
.hero-label{align-items:center;background:rgba(255,255,255,.78);border:1px solid rgba(232,226,213,.9);border-radius:999px;box-shadow:0 12px 32px rgba(33,53,43,.08);color:var(--green-deep);display:inline-flex;font-size:13px;font-weight:600;gap:9px;padding:9px 18px}
.dot{background:var(--green);border-radius:50%;box-shadow:0 0 0 5px rgba(6,199,85,.16);height:9px;width:9px}
.hero h1{font-size:clamp(40px,5.1vw,62px);font-weight:700;letter-spacing:-.04em;line-height:1.16;margin-top:26px;max-width:760px}
.hero h1 .line{color:var(--green);letter-spacing:.03em}
.nowrap{white-space:nowrap}
.sp-only{display:none}
.hero-copy{color:#46584f;font-size:17px;font-weight:400;line-height:2;margin-top:24px;max-width:560px}
.hero-actions{align-items:center;display:flex;flex-wrap:wrap;gap:14px;margin-top:34px}
.btn{align-items:center;border-radius:999px;display:inline-flex;font-weight:700;gap:12px;justify-content:center;line-height:1.2;transition:transform .2s ease,box-shadow .2s ease}
.btn:hover{transform:translateY(-2px)}
.btn-main{background:linear-gradient(180deg,#14d466,var(--green));box-shadow:0 14px 30px rgba(6,199,85,.2);color:#fff;font-size:17px;padding:18px 34px}
.btn-main .arrow{background:#fff;color:var(--green-deep)}
.btn-light{background:#fff;border:2px solid var(--line);box-shadow:var(--soft-shadow);color:var(--green-deep);font-size:16px;padding:16px 28px}
.hero-note{color:var(--muted);font-size:12px;margin-top:14px}
.hero-mini{bottom:74px;display:grid;gap:12px;position:absolute;right:22px;width:min(390px,34vw)}
.mini-card{align-items:center;background:rgba(255,255,255,.88);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.76);border-radius:22px;box-shadow:var(--soft-shadow);display:grid;gap:14px;grid-template-columns:54px 1fr;padding:16px}
.mini-icon{align-items:center;background:var(--green-soft);border-radius:18px;color:var(--green-deep);display:flex;font-size:13px;font-weight:700;height:54px;justify-content:center;width:54px}
.mini-card strong{display:block;font-size:14px;font-weight:600;line-height:1.45}
.mini-card span{color:var(--muted);display:block;font-size:12px;line-height:1.6;margin-top:3px}
.next-peek{background:#fff;border-radius:32px 32px 0 0;box-shadow:0 -18px 60px rgba(33,53,43,.08);margin-top:-28px;position:relative;z-index:2}
.peek-grid{display:grid;gap:18px;grid-template-columns:1.25fr repeat(3,1fr);padding:24px 0}
.peek-title{align-items:center;color:var(--green-deep);display:flex;font-size:18px;font-weight:600;gap:12px;line-height:1.45}
.bubble{align-items:center;background:var(--green);border-radius:18px;color:#fff;display:flex;font-size:12px;height:54px;justify-content:center;width:54px}
.peek-item{align-items:center;border-left:1px dashed #cfe5d5;display:grid;gap:12px;grid-template-columns:72px 1fr;padding-left:18px}
.peek-icon{align-items:center;background:#fff;border:1px solid #e6eee8;border-radius:18px;color:var(--green-deep);display:flex;font-size:11px;font-weight:700;height:72px;justify-content:center;width:72px}
.peek-item b{display:block;font-size:15px;font-weight:600}
.peek-item span{color:var(--muted);display:block;font-size:12px;line-height:1.6;margin-top:4px}
.eyebrow{align-items:center;color:var(--green-deep);display:inline-flex;font-size:12px;font-weight:700;gap:10px;letter-spacing:.14em;text-transform:uppercase}
.eyebrow:before{background:var(--coral);border-radius:99px;content:"";height:2px;width:26px}
.sec-head{margin-bottom:46px;text-align:center}
.sec-head h2{font-size:clamp(28px,4.2vw,44px);font-weight:700;letter-spacing:-.03em;line-height:1.42;margin-top:14px}
.sec-head p{color:var(--muted);font-size:15px;margin:16px auto 0;max-width:680px}
.mark{background:linear-gradient(transparent 62%,var(--butter) 62%);font-weight:inherit}
.why-line{background:radial-gradient(circle at 12% 14%,rgba(217,242,255,.56),transparent 26%),radial-gradient(circle at 88% 28%,rgba(231,249,237,.78),transparent 28%),#fff}
.why-grid{display:grid;gap:18px;grid-template-columns:repeat(4,1fr)}
.why-card{background:rgba(255,255,255,.76);border:1px solid rgba(232,226,213,.84);border-radius:22px;box-shadow:0 10px 30px rgba(33,53,43,.06);padding:24px}
.why-card h3{font-size:16px;font-weight:700;line-height:1.55;margin:16px 0 8px}
.why-card p{color:var(--muted);font-size:13px;line-height:1.8}
.story{background:var(--milk)}
.story-grid{align-items:center;display:grid;gap:80px;grid-template-columns:.9fr 1.1fr}
.story-illust{display:grid;min-height:440px;place-items:center}
.line-mock{background:#e4eee7;border:10px solid #fff;border-radius:30px;box-shadow:var(--shadow);padding:20px;transform:rotate(-3deg);width:min(360px,100%)}
.line-mock-head{background:#fff;border-radius:16px;display:flex;flex-direction:column;padding:13px 15px}
.line-mock-head span{color:var(--muted);font-size:11px}
.line-bubble,.line-reply{background:#fff;border-radius:5px 14px 14px;margin-top:16px;padding:11px 14px;font-size:12px}
.reservation-panel{background:#fff;border-radius:18px;box-shadow:0 8px 20px rgba(33,53,43,.08);display:grid;gap:8px;margin-top:13px;padding:16px}
.reservation-panel small{color:var(--muted)}
.reservation-panel div{display:flex;gap:6px}
.reservation-panel div span{border:1px solid var(--line);border-radius:8px;flex:1;font-size:11px;padding:6px;text-align:center}
.reservation-panel .active,.reservation-panel strong{background:var(--green);border-color:var(--green);color:#fff}
.reservation-panel strong{border-radius:9px;font-size:12px;padding:9px;text-align:center}
.line-reply{background:#bdf49d;margin-left:auto;width:max-content}
.story-copy h2{font-size:clamp(28px,3.6vw,40px);font-weight:700;letter-spacing:-.03em;line-height:1.45;margin:14px 0 18px}
.story-copy>p{color:var(--muted);font-size:15px}
.story-list{list-style:none;margin-top:22px}
.story-list li{border-bottom:1px solid var(--line);font-size:14px;padding:13px 0 13px 26px;position:relative}
.story-list li:before{color:var(--green);content:"✓";font-weight:700;left:0;position:absolute}
.problem{background:#fff}
.problem-grid{display:grid;gap:18px;grid-template-columns:repeat(3,1fr)}
.problem-card{background:var(--coral-soft);border-radius:20px;padding:26px}
.problem-card:nth-child(2){background:#fff8df}
.problem-card:nth-child(3){background:var(--green-soft)}
.problem-card h3{font-size:16px;font-weight:700;line-height:1.55;margin-bottom:7px}
.problem-card p{color:var(--muted);font-size:13px}
.bridge{align-items:center;background:var(--ink);border-radius:28px;color:#fff;display:flex;gap:28px;justify-content:space-between;margin-top:24px;overflow:hidden;padding:40px 54px}
.bridge h3{font-size:clamp(22px,3vw,32px);font-weight:700;line-height:1.5}
.bridge p{color:#c9d6d0;font-size:14px;margin-top:10px;max-width:620px}
.bridge-art{background:#fff;border-radius:22px;flex:0 0 280px;overflow:hidden;padding:12px}
.bridge-art img{display:block;height:180px;object-fit:contain;width:100%}
.service{background:var(--milk)}
.service-grid{display:grid;gap:20px;grid-template-columns:repeat(2,minmax(0,1fr))}
.service-card{background:#fff;border:1px solid rgba(232,226,213,.86);border-radius:25px;box-shadow:0 12px 30px rgba(33,53,43,.06);overflow:hidden}
.service-card.large{grid-row:auto}
.service-card-inner{display:flex;flex-direction:column;height:100%}
.service-img{align-items:center;background:#fff;display:flex;height:220px;justify-content:center;padding:24px}
.booking-flow{align-items:center;background:#fff;border-radius:18px;box-shadow:var(--soft-shadow);display:flex;flex-direction:column;gap:8px;padding:20px;width:min(270px,100%)}
.booking-flow span,.booking-flow b{border-radius:10px;font-size:13px;padding:9px 16px;width:100%;text-align:center}
.booking-flow span{background:var(--green-soft);color:var(--green-deep)}
.booking-flow b{background:var(--green);color:#fff}
.booking-flow i{color:var(--green-deep);font-style:normal}
.small-art{color:var(--green-deep);font-size:24px;font-weight:600}
.service-body{padding:24px}
.service-num{color:var(--coral);font-size:11px;font-weight:600;letter-spacing:.1em}
.service-body h3{font-size:18px;font-weight:700;line-height:1.5;margin:10px 0 8px}
.service-body p{color:var(--muted);font-size:13px}
.mini-points{display:flex;flex-wrap:wrap;gap:7px;margin-top:18px}
.mini-points span{background:var(--milk);border-radius:999px;color:var(--green-deep);font-size:11px;padding:5px 9px}
.mid-cta{margin-top:35px;text-align:center}
.scope-price{background:#fff}
.pricing-table-wrap{background:#fff;border:1px solid #e0e6e2;border-radius:12px;margin:0 auto;max-width:1000px;overflow-x:auto}
.pricing-table{border-collapse:separate;border-spacing:0;min-width:720px;width:100%}
.pricing-table caption{height:1px;overflow:hidden;position:absolute;width:1px;clip:rect(0 0 0 0);white-space:nowrap}
.pricing-visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}
.pricing-table th,.pricing-table td{border-bottom:1px solid #e9eeeb;padding:16px 24px;text-align:center;vertical-align:middle}
.pricing-table th:first-child{background:#fafbfa;color:#536159;font-size:13px;font-weight:600;text-align:left;width:40%}
.pricing-table thead th{border-bottom:1px solid #e4e9e6;padding-bottom:22px;padding-top:22px}
.pricing-table thead th:first-child{border-radius:12px 0 0 0}
.pricing-table .plan-column{width:30%}
.pricing-table .plan-column strong{display:block;font-size:23px;letter-spacing:-.02em;line-height:1.2}
.pricing-table .free-column{background:#fff;border-top:3px solid transparent;color:var(--ink)}
.pricing-table .starter-column{background:#fff;border-radius:0 12px 0 0;border-top:3px solid var(--green-deep);box-shadow:inset 1px 0 #dce5df,inset -1px 0 #dce5df;color:var(--ink)}
.pricing-table .price-row th,.pricing-table .price-row td{padding-bottom:24px;padding-top:24px}
.pricing-table .free-price{color:var(--ink);font-size:24px;font-weight:800}
.pricing-table .starter-pricing{color:var(--ink);margin:0 auto;max-width:260px}
.pricing-table .monthly-price{display:block;font-size:13px;line-height:1.5;white-space:nowrap}
.pricing-table .monthly-price b{font-size:27px;letter-spacing:-.03em}
.pricing-table .starter-pricing>small{color:var(--muted);display:block;font-size:10px}
.pricing-table .annual-price{border-top:1px solid #cbdcd2;color:var(--green-deep);display:block;margin:14px auto 0;max-width:230px;padding-top:12px}
.pricing-table .annual-price b,.pricing-table .annual-price small{display:block}
.pricing-table .annual-price b{font-size:13px;line-height:1.5}
.pricing-table .annual-price small{font-size:10px;font-weight:500}
.pricing-table tbody td{background:#fff;color:#33473b;font-size:14px}
.pricing-table tbody td:nth-child(3),.pricing-table td.starter-cell{background:#fbfdfb;box-shadow:inset 1px 0 #dce5df,inset -1px 0 #dce5df}
.pricing-table .available,.pricing-table .check{color:#218343;font-weight:700}
.pricing-table .unavailable{color:#98a69d}
.pricing-table .starter-benefit{color:var(--ink);font-weight:700}
.pricing-table .option-row th,.pricing-table .option-row td{background:#fff}
.pricing-table .option-row th{background:#fafbfa}
.pricing-table .option-row td.starter-cell{background:#fbfdfb}
.pricing-table .optional-label{color:var(--green-deep);display:block;font-size:11px;font-weight:700}
.pricing-table .optional-price{color:var(--ink);display:block;font-weight:700;margin-top:3px}
.pricing-table .optional-price small{color:var(--muted);display:block;font-size:10px;font-weight:500}
.pricing-table tfoot th,.pricing-table tfoot td{border-bottom:0;padding-bottom:22px;padding-top:22px}
.pricing-table tfoot th{border-radius:0 0 0 12px}
.pricing-table tfoot td:nth-child(3){background:#fbfdfb;border-radius:0 0 12px 0;box-shadow:inset 1px 0 #dce5df,inset -1px 0 #dce5df}
.pricing-table .pricing-cta{font-size:14px;padding:12px 20px;white-space:nowrap}
.pricing-table .upgrade-note{color:var(--muted);display:block;font-size:11px;font-weight:600;margin-top:7px}
.pricing-table .pricing-plan-button{color:#fff;font-size:13px;justify-content:center;padding:11px 15px;white-space:nowrap}
.pricing-table .starter-signup-button{background:var(--green-deep)}
.pricing-table .standard-signup-button{background:#7c3aed}
.pricing-table{min-width:860px}
.pricing-table th:first-child{width:34%}
.pricing-table .plan-column{width:22%}
.pricing-table .starter-column{border-radius:0}
.pricing-table .standard-column{background:#faf8ff;border-radius:0 12px 0 0;border-top:3px solid #7c3aed;box-shadow:inset 1px 0 #e3ddf2,inset -1px 0 #e3ddf2;color:var(--ink)}
.pricing-table .plan-status{background:#ede9fe;border-radius:999px;color:#6d28d9;display:inline-block;font-size:10px;font-weight:700;margin-top:7px;padding:3px 7px}
.pricing-table .plan-pricing{color:var(--ink);margin:0 auto;max-width:260px}
.pricing-table .plan-pricing>small{color:var(--muted);display:block;font-size:10px}
.pricing-table .standard-cell{background:#faf8ff;box-shadow:inset 1px 0 #e3ddf2,inset -1px 0 #e3ddf2}
.pricing-table .standard-cell .annual-price{border-color:#ddd6fe;color:#6d28d9}
.pricing-table .standard-benefit{color:#5b21b6;font-weight:700}
.pricing-table .option-row td.standard-cell{background:#faf8ff}
.pricing-table tfoot td.standard-cell{border-radius:0 0 12px 0}
.pricing-scroll-hint{display:none}
.pricing-note{color:var(--muted);font-size:11px;margin-top:18px;text-align:center}
.pricing-actions{display:flex;justify-content:center;margin-top:18px}
.faq{background:var(--milk)}
.faq-list{margin:0 auto;max-width:820px}
.faq details{border-bottom:1px solid var(--line);padding:21px 4px}
.faq summary{cursor:pointer;font-size:15px;font-weight:700;list-style:none;padding-right:30px;position:relative}
.faq summary:after{color:var(--green-deep);content:"＋";font-size:20px;position:absolute;right:4px}
.faq details[open] summary:after{content:"−"}
.faq details p{color:var(--muted);font-size:14px;padding-top:13px}
.final-cta{background:linear-gradient(135deg,#e7f9ed,#dff7e6);padding:90px 0;text-align:center}
.final-cta h2{font-size:clamp(28px,4vw,42px);font-weight:700;margin:14px 0 10px}
.final-cta p{color:var(--muted);font-size:15px}
.final-cta .hero-actions{justify-content:center}
footer{background:var(--ink);color:#fff;padding:36px 0}
.footer-inner{align-items:center;display:grid;gap:20px;grid-template-columns:1fr auto}
.footer-inner nav{display:flex;font-size:13px;gap:20px}
.footer-inner small{color:#aab8b1;font-size:11px;grid-column:1/-1}
.reveal{opacity:1;transform:none}
.js .reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s cubic-bezier(.16,1,.3,1)}
.js .reveal.in{opacity:1;transform:none}
.delay-1{transition-delay:.12s!important}
.delay-2{transition-delay:.24s!important}
.hero .reveal{opacity:1;transform:none}
@media(max-width:900px){.hero-mini{position:relative;bottom:auto;right:auto;width:100%;margin-top:-20px}
.hero-content{padding-bottom:40px}
.why-grid{grid-template-columns:repeat(2,1fr)}
.story-grid{gap:40px;grid-template-columns:1fr}
.story-illust{min-height:300px}
.service-grid{grid-template-columns:1fr 1fr}
.service-card.large{grid-row:auto}
.bridge-art{flex-basis:220px}
}
@media(max-width:620px){.inner{width:min(100% - 28px,1120px)}
.hero{min-height:unset;padding-top:16px}
.nav{margin-bottom:48px;padding:8px 10px}
.nav-links>a:not(.nav-cta){display:none}
.nav-cta{font-size:12px;padding:7px 9px 7px 13px}
.brand-mark{border-radius:12px;height:36px;width:36px}
.hero h1{font-size:clamp(38px,11vw,48px)}
.nowrap{white-space:normal}
.sp-only{display:block}
.hero-copy{font-size:15px;line-height:1.9}
.hero-actions{align-items:stretch;flex-direction:column}
.btn{width:100%}
.hero-mini{margin-top:4px}
.mini-card{grid-template-columns:46px 1fr;padding:13px}
.mini-icon{border-radius:14px;height:46px;width:46px}
.next-peek{border-radius:24px 24px 0 0;margin-top:-15px}
.peek-grid{grid-template-columns:1fr;padding:22px 0}
.peek-item{border-left:0;padding-left:0}
.peek-title br{display:none}
.why-grid,.problem-grid,.service-grid{grid-template-columns:1fr}
.story,.why-line,.problem,.service,.scope-price,.faq{padding:70px 0}
.sec-head{margin-bottom:30px}
.sec-head h2{font-size:29px}
.bridge{align-items:flex-start;flex-direction:column;gap:22px;padding:30px}
.bridge-art{flex-basis:auto;width:100%}
.service-card.large{grid-row:auto}
.pricing-table-wrap{border-radius:20px}
.pricing-table{min-width:760px}
.pricing-table th,.pricing-table td{padding:15px 16px}
.pricing-table .pricing-cta{width:auto}
.pricing-scroll-hint{color:var(--green-deep);display:block;font-size:12px;font-weight:700;margin:0 0 10px;text-align:right}
.footer-inner{grid-template-columns:1fr}
.footer-inner small{grid-column:auto}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
.reveal,.js .reveal{opacity:1;transform:none;transition:none}
.btn{transition:none}
}

/* Generated lifestyle hero image */
.hero{background:var(--paper)}
.hero::before{background:linear-gradient(90deg,rgba(255,253,246,.99) 0%,rgba(255,253,246,.94) 36%,rgba(255,253,246,.24) 67%,rgba(255,253,246,.03) 100%),linear-gradient(180deg,rgba(255,253,246,.02) 0%,rgba(255,253,246,.1) 58%,var(--paper) 100%);z-index:1}
.hero-photo{display:block;height:100%;inset:0;object-fit:cover;object-position:center right;position:absolute;width:100%}
.hero-glow{display:none}
.hero .inner{z-index:2}
.hero-photo-mobile{display:none}
@media(max-width:900px){.hero::before{background:linear-gradient(90deg,rgba(255,253,246,.99) 0%,rgba(255,253,246,.92) 54%,rgba(255,253,246,.44) 100%),linear-gradient(180deg,transparent 58%,var(--paper) 100%)}
}
@media(max-width:620px){.hero::before{display:none}.hero>.hero-photo{display:none}.hero-photo-mobile{border-radius:24px;box-shadow:var(--soft-shadow);display:block;height:250px;margin:30px 0 22px;overflow:hidden}.hero-photo-mobile img{display:block;height:100%;object-fit:cover;object-position:63% center;width:100%}
}

/* Generated feature illustrations */
.peek-icon{background:#fff;overflow:hidden}
.peek-icon img{height:100%;max-width:none;object-fit:contain;padding:4px;transform:scale(1.35);width:100%}
.why-illustration{background:#fff;border-radius:16px;display:block;height:148px;object-fit:contain;padding:8px;width:100%}
.feature-illustration{display:block;height:132px;object-fit:contain;width:100%}
.feature-illustration-main{height:265px;max-width:390px}
.small-art{padding:12px}
.service-img{background:#fff}
@media(max-width:620px){.why-illustration{height:180px}.feature-illustration-main{height:230px}}
