:root{
  --yellow:#ffe009;--cream:#fffbdb;--teal:#00a5b7;--teal-d:#4aa3b5;--red:#e4443e;
  --navy:#02518a;--blue:#1c73b3;--sky:#e7f4ff;--ink:#333;--gray:#8b8b8b;--line:#06c755;
  --jp:"Hiragino Kaku Gothic ProN","ヒラギノ角ゴ ProN","Noto Sans JP","Yu Gothic",Meiryo,sans-serif;
  --num:"Lato","Noto Sans JP",sans-serif;--en:"Bebas Neue","Oswald",sans-serif;
  --w:1040px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{font-family:var(--jp);color:var(--ink);line-height:1.8;font-size:16px;-webkit-text-size-adjust:100%;background:#fff}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
.wrap{width:min(100% - 40px,var(--w));margin-inline:auto}
.narrow{width:min(100% - 40px,760px);margin-inline:auto}
section{padding:72px 0}
.sec-title{text-align:center;font-size:clamp(24px,4.4vw,34px);font-weight:700;line-height:1.5;margin-bottom:40px}
.sec-title .q{color:var(--teal)}
.hl{color:var(--blue)}
.red{color:var(--red)}
b,strong{font-weight:700}
.pc{display:none}
@media(min-width:841px){.pc{display:inline}.sp{display:none}}

/* header */
.header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:blur(6px);box-shadow:0 1px 0 rgba(0,0,0,.05)}
.header .wrap{display:flex;align-items:center;justify-content:space-between;height:72px}
.header .logo img{width:64px}
.btn-line-o{display:inline-flex;align-items:center;gap:8px;border:2px solid var(--navy);color:var(--navy);border-radius:999px;padding:10px 26px;font-weight:700;text-decoration:none;font-size:15px;transition:.2s}
.btn-line-o:hover{background:var(--navy);color:#fff}

/* hero */
.hero{position:relative;background:var(--yellow) url(/img/hero-bg.webp) center bottom/cover no-repeat;overflow:hidden;padding:24px 0 0}
.hero-inner{position:relative;width:min(100%,1100px);margin:auto;min-height:620px;display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 20px 40px}
.hero .bubbles{display:flex;gap:16px;justify-content:center;margin-bottom:10px}
.hero .bubbles img{width:min(40vw,230px)}
.hero .lead{font-weight:700;font-size:clamp(18px,3.6vw,28px);line-height:1.6}
.hero .lead span{background:#fff;padding:0 .2em;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.hero .brand{font-family:var(--en);font-size:clamp(64px,15vw,128px);line-height:1;letter-spacing:.02em;margin:8px 0 0}
.hero .brand-sub{font-weight:700;font-size:clamp(18px,3.6vw,28px);letter-spacing:.1em}
.hero .svc{font-weight:700;font-size:clamp(20px,4vw,32px);line-height:1.5;margin-top:6px}
.hero .svc em{font-style:normal;color:var(--navy);font-size:1.15em}
.hero .man,.hero .woman{position:absolute;bottom:0;width:min(20vw,240px);z-index:1;pointer-events:none}
.hero .man{left:max(-30px,calc(50% - 600px))}
.hero .woman{right:max(-20px,calc(50% - 590px));width:min(19vw,225px)}
.hero .bubbles,.hero .lead,.hero h1,.hero .photos,.hero .badges{position:relative;z-index:2}
.hero .machine{position:absolute;right:max(0px,calc(50% - 400px));bottom:0;width:min(22vw,230px);z-index:0}
.hero .photos{display:flex;gap:16px;margin:18px 0 10px;position:relative;z-index:2}
.hero .photos img{width:min(30vw,240px);border:4px solid #fff;border-radius:6px;box-shadow:0 4px 12px rgba(0,0,0,.15)}
.hero .badges{display:flex;gap:10px;justify-content:center;position:relative;z-index:2}
.hero .badges img{width:min(26vw,170px)}
@media(max-width:840px){
  .hero-inner{min-height:0}
  .hero .man,.hero .woman{width:30vw;opacity:.98}
  .hero .man{left:-6vw;bottom:auto;top:120px}
  .hero .woman{right:-4vw;bottom:auto;top:130px}
  .hero .machine{display:none}
  .hero .brand,.hero .lead,.hero .svc,.hero .brand-sub{position:relative;z-index:2}
}

/* CTA strip */
.cta-strip{background:var(--sky);text-align:center;padding:26px 20px 30px}
.cta-strip .catch{font-weight:700;font-size:clamp(18px,3.4vw,24px);margin-bottom:10px}
.cta-strip .catch .big{font-size:1.5em;color:var(--red);font-family:var(--num);font-weight:900}
.btn-main{display:inline-flex;justify-content:center;align-items:center;min-width:min(100%,340px);padding:16px 36px;border-radius:999px;color:#fff;font-weight:700;font-size:19px;text-decoration:none;
  background:linear-gradient(#65ff65 0%,#4ccc5b 40%,#1e9412 100%);box-shadow:0 5px 0 #157010,0 8px 16px rgba(0,0,0,.15);text-shadow:0 1px 2px rgba(0,0,0,.25);transition:transform .15s}
.btn-main:hover{transform:translateY(2px);box-shadow:0 3px 0 #157010,0 6px 12px rgba(0,0,0,.15)}
.btn-main::after{content:"";width:9px;height:9px;border-top:3px solid #fff;border-right:3px solid #fff;transform:rotate(45deg);margin-left:14px}

/* worries */
.worries{background:linear-gradient(var(--sky),#fff 70%)}
.worry-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px 22px}
.worry-grid li{list-style:none;background:#fff;border-radius:999px;padding:20px 26px;text-align:center;font-weight:700;line-height:1.6;box-shadow:0 4px 14px rgba(2,81,138,.08);display:flex;align-items:center;justify-content:center;min-height:92px}
.worries .person{width:170px;margin:20px auto 0}
.worries .note{margin-top:24px;text-align:center;font-weight:700;background:#fff;border:3px solid var(--yellow);border-radius:14px;padding:22px}
@media(max-width:600px){.worry-grid{grid-template-columns:1fr}.worry-grid li{border-radius:20px;min-height:0}}

/* cases */
.cases{background:var(--cream)}
.cases .sec-title small{display:block;font-size:.85em}
.case{background:#fff;border-radius:16px;padding:22px 22px 30px;margin:0 auto 46px;max-width:760px;position:relative}
.case .tag{position:absolute;top:-22px;left:50%;transform:translateX(-50%);background:#fff;border:3px solid var(--yellow);border-radius:999px;padding:6px 30px;font-weight:700;font-size:15px;white-space:nowrap}
.case .photo{aspect-ratio:628/300;object-fit:cover;width:100%;border-radius:10px;margin-top:14px}
.case .spec{display:grid;grid-template-columns:1.3fr 1fr 1.1fr;text-align:center;margin:18px 0}
.case .spec>div{padding:4px 8px}
.case .spec>div+div{border-left:2px dashed #999}
.case .spec dt{color:var(--gray);font-size:14px}
.case .spec dd{font-weight:700;line-height:1.4}
.case .price{font-family:var(--num);color:var(--red);font-size:clamp(34px,6vw,46px);font-weight:700}
.case .price small{font-size:14px;font-family:var(--jp)}
.case .spec .em{font-family:var(--num);font-size:24px}
.case .before{display:flex;align-items:center;justify-content:center;gap:14px;font-weight:700;font-size:15px;line-height:1.7}
.case .before img{width:40px}
.case .down{width:30px;margin:10px auto}
.case .after{text-align:center;font-weight:700;line-height:1.8}
@media(max-width:600px){.case .spec{grid-template-columns:1fr 1fr 1fr;font-size:13px}.case .spec .em{font-size:18px}}

/* services */
.services .head{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:40px}
.services .head .circle{width:108px;height:108px;border-radius:50%;background:var(--yellow);display:flex;align-items:center;justify-content:center;font-family:var(--en);font-size:16px;color:var(--navy);text-align:center;line-height:1.1}
.services .head h2{font-size:clamp(24px,4.4vw,34px)}
.svc-block{margin-bottom:70px;position:relative}
.svc-block h3{text-align:center;font-size:clamp(24px,4vw,32px);padding-bottom:12px;border-bottom:4px solid var(--red);width:fit-content;margin:0 auto 26px;min-width:min(100%,360px)}
.svc-block .desc{margin-bottom:24px}
.svc-block .special{position:absolute;right:0;top:150px;width:150px}
.price-box{background:var(--yellow);text-align:center;padding:20px;font-weight:700;margin-bottom:8px}
.price-box .yen{font-family:var(--num);font-size:clamp(40px,7vw,56px);line-height:1.2}
.price-box .yen small,.price-box .tax small{font-size:16px}
.price-box .tax{font-size:16px}.price-box .tax span{font-family:var(--num);font-size:28px}
.detail{display:grid;grid-template-columns:140px 1fr;border:6px solid var(--yellow);margin-bottom:10px}
.detail .label{background:var(--yellow);display:flex;align-items:center;justify-content:center;font-weight:700;text-align:center;line-height:2}
.detail .body{padding:18px 20px;font-weight:700;line-height:1.7}
.detail .body p+p{margin-top:8px}
.svc-photos{display:grid;gap:10px}
.svc-photos img{width:100%;aspect-ratio:667/300;object-fit:cover;border:6px solid var(--yellow)}
.tip{text-align:center;font-weight:700;font-size:clamp(17px,3vw,22px);background:var(--cream);border-radius:12px;padding:18px}
@media(min-width:841px){.svc-photos{grid-template-columns:repeat(3,1fr)}.svc-photos img{aspect-ratio:4/3}}
@media(max-width:600px){.detail{grid-template-columns:96px 1fr}.svc-block .special{width:110px;top:auto;bottom:-10px;position:relative;margin:-20px 0 10px auto}}

/* reasons */
.reasons{background:var(--cream)}
.reasons .sec-title .big{font-size:1.3em;color:var(--red);font-family:var(--num)}
.reason{display:grid;grid-template-columns:1fr 240px;gap:24px;align-items:center;margin-bottom:56px}
.reason:nth-child(even){grid-template-columns:240px 1fr}
.reason:nth-child(even) .card{order:2}
.reason .card{position:relative;border:2px solid var(--teal-d);background:#fff;padding:56px 24px 24px;margin-top:78px}
.reason .no{position:absolute;top:-96px;left:14px;font-family:var(--num);font-size:64px;font-weight:700;color:var(--teal-d);line-height:1}
.reason h3{position:absolute;top:-2px;left:12px;right:-12px;transform:translateY(-40%);background:var(--teal-d);color:#fff;text-align:center;padding:12px;font-size:clamp(18px,3vw,22px);box-shadow:4px 4px 0 rgba(0,0,0,.12)}
.reason .card p{margin-top:18px;line-height:1.8}
@media(max-width:640px){.reason,.reason:nth-child(even){grid-template-columns:1fr}.reason:nth-child(even) .card{order:0}.reason img{width:200px;margin:auto}}

/* flow */
.flow{background:url(/img/flow-bg.webp) center/cover;position:relative}
.flow::before{content:"";position:absolute;inset:0;background:rgba(255,255,255,.55)}
.flow .wrap{position:relative}
.steps{list-style:none;max-width:400px;margin:auto}
.steps li{background:#fff;border:2px solid var(--teal);border-radius:10px;text-align:center;padding:34px 20px 22px;position:relative;margin-top:34px}
.steps li+li::before{content:"";position:absolute;top:-34px;left:50%;width:22px;height:30px;transform:translateX(-50%);background:url(/img/flow-arrow.webp) center/contain no-repeat}
.steps .num{position:absolute;top:-2px;left:50%;transform:translate(-50%,-14px);background:var(--yellow);width:52px;height:48px;display:flex;align-items:center;justify-content:center;font-family:var(--num);font-weight:900;font-size:22px;clip-path:polygon(0 0,100% 0,100% 80%,50% 100%,0 80%)}
.steps img{width:100px;margin:6px auto 10px}
.steps p{font-weight:700}
.steps p em{font-style:normal;color:var(--teal)}

/* voices */
.voices{background:var(--cream)}
.voice{background:#fff;border-radius:16px;padding:30px clamp(20px,5vw,60px);margin:0 auto 28px;max-width:760px}
.voice .who{display:flex;justify-content:center;align-items:center;gap:6px;margin-bottom:10px}
.voice .who img{width:140px}
.voice .who span{border:2px solid var(--teal);color:var(--teal);border-radius:50%;width:92px;height:92px;display:flex;align-items:center;justify-content:center;text-align:center;font-weight:700;font-size:14px;line-height:1.4;margin-left:-30px;background:#fff}
.voice h3{text-align:center;color:var(--teal);font-weight:400;font-size:clamp(17px,3vw,20px);margin-bottom:18px}
.voice p{font-size:16px;line-height:1.85}

/* contact band */
.contact-band{background:var(--yellow);text-align:center}
.contact-band .pre{display:inline-block;background:#fff;border-radius:6px;padding:8px 26px;margin-bottom:10px}
.contact-band .ttl{display:flex;align-items:center;justify-content:center;gap:0;flex-wrap:wrap}
.contact-band .ttl img{width:120px;margin-right:-20px}
.contact-band h2{color:#fff;font-size:clamp(22px,4.4vw,34px);text-shadow:0 2px 0 rgba(0,0,0,.15);line-height:1.3}
.contact-band h2 .en{font-family:var(--en);font-size:1.25em;letter-spacing:.03em;font-weight:400}
.contact-band .sub{margin:10px 0 20px}
.contact-box{background:#fff;border-radius:12px;padding:26px 20px;max-width:640px;margin:auto}
.tel{display:inline-flex;align-items:center;gap:8px;font-family:var(--num);font-weight:700;font-size:clamp(32px,7vw,46px);text-decoration:none;line-height:1.2}
.tel img{width:40px}
.hours{font-weight:700;font-size:20px;margin-bottom:14px}
.btn{display:block;width:min(100%,330px);margin:10px auto 0;padding:14px;border-radius:6px;color:#fff;text-decoration:none;font-size:17px;transition:opacity .2s}
.btn:hover{opacity:.85}
.btn-line{background:#4cbe62}.btn-form{background:#d94a44}

/* faq */
.faq{background:#e9f1f3}
.faq dl{max-width:760px;margin:auto}
.qa{background:#fff;border-radius:10px;padding:20px 24px;margin-bottom:16px}
.qa dt,.qa dd{display:grid;grid-template-columns:44px 1fr;gap:14px;align-items:center}
.qa dt{font-weight:700;margin-bottom:10px}
.qa dd{color:#777}
.qa dt::before,.qa dd::before{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--num);font-weight:700}
.qa dt::before{content:"Q";background:var(--teal-d);color:#fff}
.qa dd::before{content:"A";background:#eee;color:var(--teal-d)}

/* form */
.form-sec{background:#f4f4f4}
.form-sec .chips{display:flex;flex-direction:column;align-items:center;gap:12px;margin-bottom:24px}
.chip{background:var(--yellow);border-radius:999px;padding:10px 24px;font-weight:700}
.chip span{font-weight:400}
.form-sec .msg{text-align:center;font-weight:700;margin-bottom:20px}
.form-sec .msg big{font-size:clamp(18px,3.4vw,22px);display:block}
.form-sec .urgent{text-align:center;font-weight:700}
.form-sec .tel-wrap{text-align:center;margin-bottom:30px}
form.contact{max-width:640px;margin:auto}
.field{margin-bottom:22px}
.field>label,.field>.lbl{display:flex;align-items:center;gap:10px;font-weight:700;margin-bottom:8px}
.req,.opt{font-size:11px;color:#fff;border-radius:999px;padding:1px 9px;font-weight:700}
.req{background:var(--red)}.opt{background:#888}
.field input[type=text],.field input[type=tel],.field input[type=email],.field input[type=date],.field textarea{width:100%;font:inherit;font-size:16px;border:1px solid #ddd;background:#fff;border-radius:4px;padding:12px 14px}
.field textarea{min-height:140px;resize:vertical}
.field input:focus,.field textarea:focus{outline:2px solid var(--teal);border-color:transparent}
.checks{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.checks label{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #ddd;border-radius:4px;padding:10px 12px;cursor:pointer}
.checks input,.agree input{width:18px;height:18px;accent-color:var(--teal)}
.agree{text-align:center;margin:26px 0}
.agree label{display:inline-flex;gap:8px;align-items:center;cursor:pointer}
.agree a{color:var(--blue)}
.submit{display:block;width:min(100%,320px);margin:auto;border:0;border-radius:999px;background:var(--teal);color:#fff;font:inherit;font-weight:700;font-size:18px;padding:16px;cursor:pointer;transition:opacity .2s}
.submit:hover{opacity:.85}.submit:disabled{opacity:.5;cursor:wait}
.form-error{color:var(--red);text-align:center;font-weight:700;margin-top:14px;min-height:1.5em}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* footer */
.footer{background:#333;color:#fff;text-align:center;padding:28px 20px 110px;font-size:13px}
.footer a{color:#fff;margin:0 8px}
.fixed-bar{position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;gap:10px;justify-content:center;align-items:center;background:rgba(255,255,255,.97);box-shadow:0 -2px 10px rgba(0,0,0,.1);padding:10px 12px}
.fixed-bar .ftel{display:flex;flex-direction:column;align-items:center;text-decoration:none;line-height:1.2;flex:1;max-width:280px}
.fixed-bar .ftel b{font-family:var(--num);font-size:22px}
.fixed-bar .ftel small{font-size:11px}
.fixed-bar .fline{flex:1;max-width:280px;background:var(--line);color:#fff;text-decoration:none;font-weight:700;border-radius:999px;text-align:center;padding:12px 10px}

/* sub pages */
.page-hero{background:var(--yellow);text-align:center;padding:60px 20px}
.page-hero h1{font-size:clamp(22px,4vw,30px)}
.page-hero p{font-family:var(--en);font-size:clamp(40px,8vw,64px);line-height:1;letter-spacing:.04em}
.policy{padding:50px 0 80px}
.policy h2{font-size:19px;margin:34px 0 10px;padding-left:12px;border-left:5px solid var(--teal)}
.policy p{margin-bottom:8px}
.thanks{text-align:center;padding:60px 20px 90px}
.thanks h2{font-size:24px;margin-bottom:24px}
.btn-home{display:inline-block;margin-top:36px;background:var(--yellow);border-radius:999px;padding:12px 50px;font-weight:700;text-decoration:none}

/* reveal */
.rv{opacity:0;transform:translateY(24px);transition:opacity .7s,transform .7s}
.rv.on{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}
