:root{
  --bg:#FFFFFF; --paper:#F4F5FA; --ink:#1E2650; --sub:#5A6080; --line:#E2E4EE; --panel:#FFFFFF;
  --navy:#1E2650; --onnavy:#D9DCF0;
  --c1:#F4B400; --c2:#E85A8C; --c3:#3FA66B; --c4:#3F9FDB; --c5:#F26B3A;
  --line-green:#06C755;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){--bg:#141933;--paper:#1B2142;--ink:#EEF0FA;--sub:#B4B9D6;--line:#2F3766;--panel:#1F2650;--navy:#0F1330;}
}
:root[data-theme="dark"]{--bg:#141933;--paper:#1B2142;--ink:#EEF0FA;--sub:#B4B9D6;--line:#2F3766;--panel:#1F2650;--navy:#0F1330;}
html{scroll-padding-top:env(safe-area-inset-top,0px);scroll-behavior:smooth}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);
  font-family:"Zen Kaku Gothic New","Hiragino Sans","Noto Sans JP",sans-serif;
  font-size:16px;line-height:1.9;padding-bottom:80px;-webkit-font-smoothing:antialiased}
h1,h2,h3{margin:0;font-weight:700;line-height:1.45}
p{margin:0}
a{color:inherit}
a:focus-visible,summary:focus-visible{outline:3px solid var(--c1);outline-offset:3px;border-radius:4px}
.wrap{max-width:720px;margin:0 auto;padding:0 22px}
.latin{font-family:"Outfit","Helvetica Neue",Arial,sans-serif}

/* header */
.top{display:flex;align-items:center;justify-content:space-between;padding:16px 0}
.mark{font-family:"Outfit","Helvetica Neue",Arial,sans-serif;font-weight:600;font-size:19px;letter-spacing:.02em;text-decoration:none}
.mark small{display:block;font-family:"Zen Kaku Gothic New",sans-serif;font-weight:400;font-size:11px;color:var(--sub);letter-spacing:.04em;line-height:1.2}
.top nav a{font-size:14px;color:var(--sub);text-decoration:none;margin-left:16px}
@media (max-width:520px){.top nav{display:none}}

/* hero */
.hero{padding:28px 0 0}
.hero h1{font-size:clamp(28px,7.2vw,42px);letter-spacing:.01em}
.hero .lead{margin-top:16px;color:var(--sub);max-width:32em}
.street{display:block;width:100%;margin-top:28px}
.win{opacity:.12}
.street.on .win{animation:light .45s ease-out forwards}
.street.on .w2{animation-delay:.2s}.street.on .w3{animation-delay:.4s}.street.on .w4{animation-delay:.6s}.street.on .w5{animation-delay:.8s}
@keyframes light{to{opacity:1}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.win{opacity:1}.street.on .win{animation:none}}
.stripe{display:flex;height:10px}
.stripe span{flex:1}

section{padding:56px 0 0}
section h2{font-size:24px;margin-bottom:16px}
.muted{color:var(--sub)}
.small{font-size:13px;color:var(--sub)}

/* worries */
.worries{list-style:none;margin:0;padding:0}
.worries li{padding:14px 0 14px 28px;border-top:1px solid var(--line);position:relative}
.worries li:last-child{border-bottom:1px solid var(--line)}
.worries li::before{content:"";position:absolute;left:4px;top:24px;width:10px;height:10px;border-radius:50%;background:var(--dot)}

/* services */
.svc{display:grid;gap:28px;margin-top:8px}
.svc h3{font-size:19px;display:flex;align-items:center;gap:10px}
.svc h3::before{content:"";width:6px;height:22px;border-radius:3px;background:var(--bar)}
.svc p{margin-top:6px}

/* samples */
.samples-scroll{overflow-x:auto;margin:20px -22px 0;padding:4px 22px 12px;-webkit-overflow-scrolling:touch}
.samples{display:flex;gap:18px;width:max-content}
.sample{width:210px}
.phone{width:210px;height:400px;border-radius:30px;padding:9px;background:#1A1E33;box-shadow:0 10px 30px rgba(30,38,80,.18)}
.screen{width:100%;height:100%;border-radius:22px;overflow:hidden;position:relative;font-size:10px;line-height:1.6}
.sample h3{font-size:15px;margin-top:14px}
.sample p{font-size:14px;color:var(--sub);line-height:1.7;margin-top:2px}
/* sample 1: izakaya */
.s1{background:#2B1E19;color:#F6E9D8}
.s1 .hd{padding:30px 14px 16px;background:radial-gradient(circle at 80% 30%,#7A2E22 0,#2B1E19 70%)}
.s1 .tt{font-size:20px;font-weight:700;letter-spacing:.1em}
.s1 .chou{position:absolute;right:18px;top:26px;width:26px;height:36px;border-radius:50%/45%;background:#D8402E;box-shadow:0 0 18px #E8693F}
.s1 .bd{padding:12px 14px}
.s1 .row{display:flex;justify-content:space-between;border-bottom:1px solid #4A3A32;padding:5px 0}
.s1 .btn{margin:14px;display:block;text-align:center;background:#E8B04A;color:#2B1E19;border-radius:20px;padding:7px;font-weight:700}
/* sample 2: seitai */
.s2{background:#F3F7F2;color:#2E4A3A}
.s2 .hd{height:140px;background:linear-gradient(160deg,#CFE3D3,#9CC4A8);position:relative}
.s2 .leaf{position:absolute;right:16px;bottom:-18px;width:46px;height:46px;border-radius:0 50% 0 50%;background:#5E9C70}
.s2 .bd{padding:22px 14px 0}
.s2 .tt{font-size:16px;font-weight:700}
.s2 .chip{display:inline-block;background:#fff;border:1px solid #CFE3D3;border-radius:12px;padding:1px 8px;margin:6px 4px 0 0}
.s2 .btn{position:absolute;left:14px;right:14px;bottom:16px;text-align:center;background:#2E6B48;color:#fff;border-radius:8px;padding:8px;font-weight:700}
/* sample 3: cafe */
.s3{background:#FBF5EC;color:#4A3426}
.s3 .hd{padding:26px 14px 10px}
.s3 .tt{font-size:18px;font-weight:700}
.s3 .img{margin:4px 14px;height:110px;border-radius:12px;background:
  radial-gradient(circle at 50% 55%,#6B4430 0 22px,#F1E2CC 23px 30px,transparent 31px),
  linear-gradient(135deg,#E9C98F,#D9A86A)}
.s3 .bd{padding:10px 14px}
.s3 .hours{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;margin-top:6px}
.s3 .btn{margin:10px 14px;display:block;text-align:center;border:1.5px solid #4A3426;border-radius:20px;padding:6px;font-weight:700}

/* price */
.price{margin-top:8px;border-top:2px solid var(--ink)}
.price .item{display:grid;grid-template-columns:1fr auto;gap:4px 16px;padding:18px 0;border-bottom:1px solid var(--line)}
.price .name{font-weight:700;font-size:17px}
.price .yen{font-family:"Outfit","Helvetica Neue",Arial,sans-serif;font-weight:600;font-size:24px;text-align:right;white-space:nowrap}
.price .yen small{font-family:"Zen Kaku Gothic New",sans-serif;font-size:13px;font-weight:500;color:var(--sub)}
.price .desc{grid-column:1/-1;color:var(--sub);font-size:15px}

/* flow */
.flow{list-style:none;margin:8px 0 0;padding:0;counter-reset:f}
.flow li{position:relative;padding:0 0 22px 50px}
.flow li::before{counter-increment:f;content:counter(f);position:absolute;left:0;top:0;width:34px;height:34px;border-radius:50%;
  display:grid;place-items:center;font-family:"Outfit",sans-serif;font-weight:600;color:#fff;background:var(--navy)}
.flow li:not(:last-child)::after{content:"";position:absolute;left:16px;top:38px;bottom:4px;width:2px;background:var(--line)}
.flow b{display:block}
.flow span{color:var(--sub);font-size:15px}

/* faq */
details{border-top:1px solid var(--line);padding:4px 0}
details:last-of-type{border-bottom:1px solid var(--line)}
summary{cursor:pointer;list-style:none;padding:12px 32px 12px 0;font-weight:700;position:relative}
summary::-webkit-details-marker{display:none}
summary::after{content:"＋";position:absolute;right:4px;top:12px;color:var(--sub);transition:transform .2s}
details[open] summary::after{transform:rotate(45deg)}
details p{padding:0 0 14px;color:var(--sub)}

/* profile */
.profile{display:grid;grid-template-columns:72px 1fr;gap:18px;align-items:start}
.avatar{width:72px;height:72px;border-radius:50%;background:var(--paper);display:grid;place-items:center;font-family:"Outfit",sans-serif;font-weight:600;font-size:22px;border:2px solid var(--line)}
.profile .nm{font-weight:700;font-size:18px}
.profile .nm span{font-weight:400;font-size:13px;color:var(--sub);margin-left:8px}
.profile p+p{margin-top:8px}

/* contact */
.contact{margin-top:56px;background:var(--navy);color:#fff;padding:44px 0 40px}
.contact h2{font-size:24px}
.contact p{color:var(--onnavy);margin-top:10px}
.btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
.btn-line{background:var(--line-green);color:#fff;text-decoration:none;font-weight:700;padding:13px 26px;border-radius:999px}
.btn-mail{color:#fff;text-decoration:none;font-weight:700;padding:11px 24px;border-radius:999px;border:2px solid #fff}
footer{background:var(--navy);color:var(--onnavy);font-size:13px;padding:0 0 28px}
footer .wrap{border-top:1px solid rgba(255,255,255,.15);padding-top:18px}

/* fixed bar */
.bar{position:fixed;left:0;right:0;bottom:0;z-index:10;display:flex;gap:10px;padding:10px 14px;
  padding-bottom:calc(10px + env(safe-area-inset-bottom,0px));background:var(--bg);border-top:1px solid var(--line)}
.bar a{flex:1;text-align:center;text-decoration:none;font-weight:700;padding:12px 8px;border-radius:999px}
.bar .l{background:var(--line-green);color:#fff}
.bar .p{border:2px solid var(--ink);color:var(--ink)}
