:root{
  --ink:#23263A;
  --muted:#6B7280;
  --bg:#FFFFFF;
  --bg-soft:#F7F7FC;
  --pink:#E8465C;
  --purple-soft:#EFEAFB;
  --purple:#7C6AE8;
  --blue-soft:#E8F1FC;
  --blue:#4A8FE0;
  --peach-soft:#FDECE4;
  --peach:#E8834A;
  --navy:#171B2E;
}
*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:'Noto Sans JP',sans-serif;color:var(--ink);background:var(--bg);line-height:1.75;-webkit-font-smoothing:antialiased;}
a{text-decoration:none;color:inherit;}
img{max-width:100%;display:block;}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px;}
h1,h2,h3{font-weight:700;}

header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:blur(6px);border-bottom:1px solid #EEEEF2;}
.headbar{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;max-width:1100px;margin:0 auto;gap:16px;}
.brand{display:flex;align-items:center;gap:10px;}
.brand .mark{width:26px;height:26px;background:linear-gradient(135deg,var(--purple),var(--pink));border-radius:7px;flex:none;transform:rotate(45deg);}
.brand .name{font-size:14px;font-weight:700;line-height:1.3;}
.brand .name small{display:block;font-size:10px;font-weight:400;color:var(--muted);letter-spacing:.04em;}
nav{display:none;gap:18px;font-size:12.5px;color:var(--muted);}
@media(min-width:960px){nav{display:flex;}}
.cta-mini{background:var(--pink);color:#fff;font-size:13px;padding:10px 20px;border-radius:100px;white-space:nowrap;font-weight:500;}
@media(max-width:520px){
  .headbar{padding:10px 12px;gap:8px;}
  .brand .mark{display:none;}
  .brand .name{font-size:12px;line-height:1.45;}
  .cta-mini{font-size:11px;padding:8px 12px;}
}

.hero{padding:64px 0 40px;}
.hero-grid{display:grid;grid-template-columns:1fr;gap:40px;align-items:center;}
@media(min-width:920px){.hero-grid{grid-template-columns:1fr 1.20fr;}}
.eyebrow{font-size:12px;color:var(--purple);font-weight:500;margin-bottom:14px;}
.hero h1{font-size:clamp(26px,4.6vw,38px);line-height:1.5;margin-bottom:18px;}
.hero h1 .hi{color:var(--pink);}
.hero p.lead{font-size:16px;color:var(--muted);margin-bottom:26px;max-width:480px;}
.btn-row{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:22px;}
.btn-primary{background:var(--pink);color:#fff;padding:15px 26px;border-radius:100px;font-size:14px;font-weight:500;display:inline-flex;align-items:center;gap:6px;}
.btn-secondary{border:1px solid #D9D9E2;color:var(--ink);padding:14px 24px;border-radius:100px;font-size:14px;}
.tag-row{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:11.5px;color:var(--muted);}
.tag-row span::before{content:"● ";color:var(--pink);font-size:8px;}

.mock-wrap{position:relative;display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;padding:8px 0;}
.device-shot{position:relative;width:100%;max-width:780px;opacity:0;}
.mock-wrap img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:14px;box-shadow:0 24px 50px -20px rgba(30,20,70,.2);display:block;}
.screen-flash{position:absolute;background:#000;opacity:1;pointer-events:none;}
.screen-flash-laptop{left:24.58%;top:13.56%;width:64.17%;height:56%;border-radius:2px;}
.screen-flash-phone{left:9.42%;top:37.11%;width:15.58%;height:47.56%;border-radius:9px;}
.mock-notice{position:static;background:var(--navy);color:#fff;font-size:12px;padding:6px 12px;border-radius:8px;z-index:2;margin-top:16px;}
@media(min-width:920px){
  .hero .mock-wrap .mock-notice{position:absolute;top:auto;left:auto;right:16px;bottom:5%;margin-top:0;}
}

section{padding:58px 0;}
.section-head{text-align:center;margin-bottom:36px;}
.section-head .section-eyebrow{font-size:12px;color:var(--purple);font-weight:500;margin-bottom:8px;}
.section-head h2{font-size:clamp(20px,3.2vw,26px);}
.section-head > p{font-size:14.5px!important;}
.section-head h2 .hi{color:var(--pink);}
.keep-together{white-space:nowrap;}
.mobile-break {
  display: none;
}
@media (min-width: 401px) {
  .section-head h2:has(> .mobile-break) {
    white-space: nowrap;
  }
}
@media (max-width: 400px) {
  .mobile-break {
    display: inline;
  }
}

.grid-3{display:grid;grid-template-columns:1fr;gap:18px;}
@media(min-width:760px){.grid-3{grid-template-columns:repeat(3,1fr);}}
.grid-2{display:grid;grid-template-columns:1fr;gap:16px;}
@media(min-width:600px){.grid-2{grid-template-columns:repeat(2,1fr);}}

.icard{background:#fff;border:1px solid #EEEEF2;border-radius:16px;padding:24px 22px;}
.icard .ico{width:50px;height:50px;border-radius:12px;display:flex;align-items:center;justify-content:center;margin-bottom:16px;font-size:22px;}
.icard.p .ico{background:var(--purple-soft);color:var(--purple);}
.icard.pk .ico{background:#FDEAEE;color:var(--pink);}
.icard.bl .ico{background:var(--blue-soft);color:var(--blue);}
.icard.pe .ico{background:var(--peach-soft);color:var(--peach);}
.icard h3{font-size:16px;margin-bottom:8px;}
.icard p{font-size:14.5px;color:var(--muted);}
.icard .chip{display:inline-block;margin-top:14px;font-size:11px;background:var(--bg-soft);color:var(--muted);padding:5px 12px;border-radius:100px;}

.problem{background:var(--bg-soft);}
.problem-grid{display:grid;grid-template-columns:1fr;gap:16px;}
@media(min-width:760px){.problem-grid{grid-template-columns:1fr .85fr;}}
.photo-slot{background:linear-gradient(135deg,var(--purple-soft),var(--blue-soft));border-radius:20px;display:flex;align-items:center;justify-content:center;min-height:220px;color:var(--muted);font-size:12.5px;text-align:center;padding:20px;border:1.5px dashed #C9C3E8;}
.photo-slot.image-slot{padding:0;overflow:hidden;border-style:solid;}
.photo-slot.image-slot img{width:100%;height:100%;min-height:inherit;object-fit:cover;}
.problem-photo img{object-position:center;}
.planning-photo{height:100%;max-height:440px;}
.planning-photo img{object-position:center;}

.split{display:grid;grid-template-columns:1fr;gap:36px;align-items:center;}
@media(min-width:900px){.split{grid-template-columns:.85fr 1.15fr;}}
.badge-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:30px;justify-content:center;}
.badge-row span{font-size:11px;color:var(--purple);background:var(--purple-soft);padding:6px 14px;border-radius:100px;}

.mobile-row{max-width:100%;margin:0 auto;aspect-ratio:19/10;overflow:hidden;border-radius:16px;box-shadow:0 20px 40px -18px rgba(30,20,70,.2);}
.responsive-devices-image{width:100%;height:100%;object-fit:cover;object-position:center 42%;border-radius:inherit;}
.responsive-notice{position:static;display:table;margin:16px auto 0;}
.responsive-notice + .badge-row{margin-top:16px;}
@media(min-width:920px){.responsive-notice{font-size:16px;}}

.price-wrap{display:grid;grid-template-columns:1fr;gap:16px;}
@media(min-width:900px){.price-wrap{grid-template-columns:.9fr 1.15fr .95fr;}}
.price-card{background:#fff;border:1px solid #EEEEF2;border-radius:18px;padding:26px 22px;}
.price-card .label{font-size:12.5px;color:var(--muted);margin-bottom:10px;}
.price-card .price{font-size:26px;font-weight:700;}
.price-card .price span{font-size:13px;font-weight:400;color:var(--muted);}
.price-card.featured{background:linear-gradient(160deg,#FFF5F6,#fff);border:1.5px solid #FBD3D9;position:relative;}
.price-card.featured .badge{position:absolute;top:-12px;left:20px;background:var(--pink);color:#fff;font-size:10.5px;padding:5px 12px;border-radius:100px;}
ul.plain{margin-top:14px;font-size:12.5px;color:var(--muted);display:flex;flex-direction:column;gap:8px;}
ul.plain li{display:flex;gap:6px;}
ul.checks li::before{content:"✓";color:var(--pink);font-weight:700;}
.price-note{font-size:11px;color:var(--muted);margin-top:10px;line-height:1.8;}

.process-scroll-wrap{position:relative;}
.process-scroll{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 4px 18px;-webkit-overflow-scrolling:touch;scrollbar-width:thin;}
.process-scroll::-webkit-scrollbar{height:5px;}
.process-scroll::-webkit-scrollbar-thumb{background:#E3E3EC;border-radius:10px;}
.process-scroll-wrap::after{content:"";position:absolute;right:0;top:0;bottom:18px;width:36px;background:linear-gradient(to right,transparent,var(--bg));pointer-events:none;}
.swipe-hint{text-align:center;font-size:11px;color:var(--muted);margin-bottom:14px;}
.p-step{background:#fff;border:1px solid #EEEEF2;border-radius:16px;padding:20px 16px;flex:0 0 150px;scroll-snap-align:start;}
.p-step .n{width:26px;height:26px;border-radius:50%;background:var(--purple);color:#fff;font-size:11.5px;display:flex;align-items:center;justify-content:center;margin-bottom:12px;font-weight:700;}
.p-step .ico{font-size:20px;margin-bottom:10px;}
.p-step h3{font-size:14.5px;margin-bottom:6px;}
.p-step p{font-size:11.5px;color:var(--muted);}

.cf-grid{display:grid;grid-template-columns:1fr;gap:18px;}
@media(min-width:860px){.cf-grid{grid-template-columns:.85fr 1.15fr;}}
.contact-card,.faq-card{background:var(--bg-soft);border-radius:18px;padding:30px 26px;}
.contact-card{display:flex;flex-direction:column;justify-content:center;}
.avatar{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,var(--purple),var(--pink));display:flex;align-items:center;justify-content:center;color:#fff;font-size:11px;text-align:center;margin-bottom:18px;padding:0;overflow:hidden;}
.avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%;}
.contact-card h3{font-size:17px;margin-bottom:10px;}
.contact-card p{font-size:14.5px;color:var(--muted);margin-bottom:20px;}
.contact-card .btn-row{margin-bottom:0;}
.faq-card > h3{font-size:16px!important;}
details{border-bottom:1px solid #E9E9F0;padding:16px 4px;}
details:first-of-type{border-top:1px solid #E9E9F0;}
summary{cursor:pointer;font-size:14.5px;font-weight:500;list-style:none;display:flex;justify-content:space-between;gap:10px;}
summary::-webkit-details-marker{display:none;}
summary::after{content:"+";color:var(--pink);font-size:16px;}
details[open] summary::after{content:"−";}
details p{font-size:14.5px;color:var(--muted);margin-top:10px;}

.final-cta{background:linear-gradient(120deg,#FDEAEE,#EAF1FD);border-radius:28px;margin:0 24px 64px;padding:64px 24px;text-align:center;}
.final-cta .wrap{padding:0;}
.final-cta h2{font-size:clamp(20px,3.6vw,38px);margin-bottom:24px;}
.final-cta h2 .hi{color:var(--pink);}
.final-cta .tag-row{justify-content:center;margin-top:20px;}
@media(max-width:480px){.final-cta{margin-left:0;margin-right:0;padding:48px 16px;}}

.mask-outer{overflow:hidden;}
.mask-inner{display:inline-block;will-change:transform,opacity;}

footer{background:var(--navy);color:#9099B0;padding:32px 24px;font-size:12px;}
.foot-inner{max-width:1100px;margin:0 auto;display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;align-items:center;}
.foot-brand{color:#fff;font-weight:700;font-size:13px;}
.fill-in{color:var(--peach);}
