@charset "utf-8";

:root{
  --blue:#0b63c4; --blue-dark:#084b95; --blue-light:#eaf3fc; --blue-pale:#f4f9fe;
  --navy:#1d2f43; --text:#293846; --gray:#5c6b7a; --line:#dde6ee;
  --orange:#f08c1e; --orange-dark:#d97a10; --green:#1a9c6e; --gold:#f5a623;
  --white:#ffffff;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:'Noto Sans JP',sans-serif;font-weight:400;
  color:var(--text);background:var(--white);
  line-height:2.0;font-size:18px;-webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{text-decoration:none;color:inherit;}
.inner{max-width:1080px;margin:0 auto;padding:0 24px;}
.mk{background:linear-gradient(transparent 60%,#ffe08a 60%);padding:0 2px;}
.gbpCopy .gbpKey{color:#fff;font-weight:400;text-decoration:underline;text-decoration-color:#ffd76e;text-decoration-thickness:3px;text-underline-offset:5px;}

/* ---------- header ---------- */
.header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);}
.headerInner{max-width:1080px;margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;height:68px;}
.logo{display:flex;flex-direction:column;line-height:1.3;}
.logoMain{font-weight:700;font-size:18px;color:var(--navy);}
.logoSub{font-size:11px;color:var(--gray);letter-spacing:.05em;}
.headerCta{background:var(--orange);color:#fff;font-weight:700;font-size:15px;padding:11px 24px;border-radius:6px;transition:background .2s;white-space:nowrap;}
.headerCta:hover{background:var(--orange-dark);}

/* ---------- hero ---------- */
.hero{background:linear-gradient(180deg,var(--blue-pale) 0%,#fff 100%);padding:60px 0 50px;border-bottom:1px solid var(--line);}
.heroGrid{display:flex;gap:48px;align-items:flex-start;}
.heroMain{flex:1.55;}
.heroSide{flex:1;display:flex;flex-direction:column;}
.heroBadge{display:inline-block;background:var(--blue);color:#fff;font-size:15px;font-weight:700;letter-spacing:.08em;padding:7px 20px;border-radius:100px;margin-bottom:22px;}
.hero h1{font-family:'Noto Serif JP',serif;font-weight:700;font-size:clamp(23px,5vw,38px);line-height:1.55;color:var(--navy);margin-bottom:22px;}
.hero h1 .marker{background:linear-gradient(transparent 60%,#ffe08a 60%);}
.heroLead{font-size:19px;color:var(--text);margin-bottom:30px;line-height:1.95;}
.heroLead strong{color:var(--navy);}
.heroCtaArea{display:flex;flex-direction:column;gap:12px;max-width:460px;}
.btnCta{display:block;text-align:center;background:var(--orange);color:#fff;font-size:20px;font-weight:700;padding:20px 32px;border-radius:8px;box-shadow:0 4px 14px rgba(240,140,30,.35);transition:transform .15s,box-shadow .15s,background .2s;line-height:1.5;}
.btnCta:hover{background:var(--orange-dark);transform:translateY(-2px);box-shadow:0 6px 18px rgba(240,140,30,.45);}
.btnCta small{display:block;font-size:13.5px;font-weight:400;opacity:.92;margin-top:2px;}
.ctaNote{font-size:14px;color:var(--gray);text-align:center;}
.ctaNoteMeta{font-size:12px;opacity:.8;}

.heroPhoto{border-radius:14px;overflow:hidden;box-shadow:0 10px 30px rgba(29,47,67,.14);position:relative;}
.heroPhoto img{width:100%;height:230px;object-fit:cover;object-position:center 30%;}
.heroPhoto figcaption{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(transparent,rgba(13,31,60,.82));color:#fff;font-size:13px;padding:26px 18px 12px;}

.heroPic,.gbpPic{border-radius:14px;overflow:hidden;box-shadow:0 10px 30px rgba(29,47,67,.14);position:relative;margin-bottom:22px;}
.heroPic img,.gbpPic img{width:100%;height:210px;object-fit:cover;object-position:center 30%;display:block;}
.heroPic figcaption,.gbpPic figcaption{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(transparent,rgba(13,31,60,.82));color:#fff;font-size:17px;font-weight:700;line-height:1.6;padding:30px 18px 14px;}
.heroPic figcaption{text-align:center;}

.checkCard{background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px 28px 22px;box-shadow:0 8px 24px rgba(29,47,67,.08);}
.checkCardTitle{font-weight:700;font-size:18px;color:var(--navy);margin-bottom:14px;padding-bottom:12px;border-bottom:2px solid var(--blue);}
.checkList{list-style:none;}
.checkList li{position:relative;padding:10px 0 10px 34px;font-size:16.5px;line-height:1.7;border-bottom:1px dashed var(--line);}
.checkList li:last-child{border-bottom:none;}
.checkList li::before{content:"";position:absolute;left:0;top:14px;width:22px;height:22px;border-radius:5px;background:var(--blue);
 -webkit-mask:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="black" d="M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z"/></svg>') center/17px no-repeat;
 mask:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="black" d="M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z"/></svg>') center/17px no-repeat;}
.checkCardFoot{margin-top:14px;font-size:15px;color:var(--blue-dark);font-weight:700;}

/* ---------- trust bar ---------- */
.trust{background:var(--blue-light);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:26px 0;}
.trustGrid{display:flex;justify-content:center;max-width:1080px;margin:0 auto;padding:0 24px;}
.trustItem{flex:1;text-align:center;color:var(--navy);padding:4px 12px;border-right:1px solid #c9dcef;}
.trustItem:last-child{border-right:none;}
.trustLabel{font-size:13px;color:var(--blue-dark);letter-spacing:.05em;font-weight:500;}
.trustValue{font-family:'Noto Serif JP',serif;font-size:30px;font-weight:700;line-height:1.4;}
.trustValue span{font-size:15px;font-weight:400;margin-left:2px;}
.trustStar{color:var(--gold);font-size:16px;letter-spacing:1px;}

/* ---------- marquee ---------- */
.marquee{background:var(--blue-pale);border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;padding:22px 0;position:relative;}
.marqueeNote{text-align:center;font-size:12.5px;color:var(--gray);background:var(--blue-pale);border-bottom:1px solid var(--line);padding:0 0 10px;}
.marqueeTrack{display:flex;width:max-content;animation:scroll 30s linear infinite;}
.marqueeItem{color:var(--navy);font-size:20px;font-weight:500;display:flex;align-items:center;white-space:nowrap;padding:0 6px;}
.marqueeItem strong{font-family:'Noto Serif JP',serif;font-size:25px;color:var(--blue);margin:0 6px;font-weight:700;}
.marqueeItem svg{width:22px;height:22px;margin-right:9px;stroke:var(--blue);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;}
.marqueeDot{color:#b9d2ec;padding:0 20px;font-size:11px;}
@keyframes scroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* ---------- section icon ---------- */
.secIcon{width:60px;height:60px;margin:0 auto 16px;border-radius:16px;background:var(--blue-light);display:flex;align-items:center;justify-content:center;}
.secIcon svg{width:32px;height:32px;stroke:var(--blue);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.reality .secIcon{background:rgba(255,255,255,.16);}
.reality .secIcon svg{stroke:#ffd76e;}
.gbp .secIcon{margin:0 auto 20px;background:rgba(255,255,255,.16);}
.gbp .secIcon svg{stroke:#ffd76e;}

/* ---------- section base ---------- */
.section{padding:82px 0;}
.section.alt{background:var(--blue-pale);}
.secLabel{text-align:center;color:var(--blue);font-weight:700;font-size:14px;letter-spacing:.2em;margin-bottom:12px;}
.secTitle{text-align:center;font-family:'Noto Serif JP',serif;font-weight:700;font-size:34px;line-height:1.55;color:var(--navy);margin-bottom:20px;}
.secLead{text-align:center;font-size:17.5px;line-height:1.9;max-width:760px;margin:0 auto 50px;}

/* ---------- 手探り ---------- */
.tesaguriQuotes{display:flex;gap:22px;justify-content:center;flex-wrap:wrap;margin-bottom:44px;}
.quoteBubble{background:#fff;border:1px solid var(--line);border-radius:14px;padding:28px 28px 24px;max-width:340px;flex:1 1 290px;position:relative;font-size:17px;line-height:1.85;box-shadow:0 3px 12px rgba(29,47,67,.06);display:flex;flex-direction:column;}
.quoteBubble::before{content:"“";position:absolute;top:6px;left:20px;font-family:'Noto Serif JP',serif;font-size:56px;color:var(--blue-light);line-height:1;font-weight:700;}
.quoteBubble span{position:relative;z-index:1;padding-top:14px;}
.quoteBubble::after{content:"";position:absolute;bottom:-9px;left:40px;width:16px;height:16px;background:#fff;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transform:rotate(45deg);}
.quoteWho{font-size:13.5px;color:var(--gray);margin-top:auto;padding-top:14px;}
.tesaguriAnswer{max-width:780px;margin:0 auto;text-align:center;font-size:18.5px;line-height:1.9;}
.tesaguriAnswer strong{color:var(--blue-dark);}

/* ---------- 差の現実 ---------- */
.reality{background:var(--blue);color:#fff;padding:78px 0;}
.reality .secLabel{color:#cfe4fa;}
.reality .secTitle{color:#fff;}
.realityBody{max-width:780px;margin:0 auto;text-align:center;font-size:18px;line-height:1.95;color:#fff;}
.realityBody p+p{margin-top:1.3em;}
.realityEm{font-family:'Noto Serif JP',serif;font-size:24px;font-weight:700;color:#ffd76e;display:block;margin-top:30px;line-height:1.7;}

/* ---------- features ---------- */
.features{display:flex;flex-direction:column;gap:26px;max-width:900px;margin:0 auto;}
.feature{display:flex;gap:30px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:16px;padding:36px 40px;box-shadow:0 4px 16px rgba(29,47,67,.06);}
.featureBadge{flex-shrink:0;width:88px;text-align:center;border-right:2px solid var(--blue-light);padding-right:26px;}
.featureIcon{width:56px;height:56px;margin:0 auto 8px;border-radius:14px;background:var(--blue-light);display:flex;align-items:center;justify-content:center;}
.featureIcon svg{width:30px;height:30px;stroke:var(--blue);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.featureNum{font-family:'Noto Serif JP',serif;font-weight:700;font-size:34px;line-height:1;color:var(--blue);}
.featureNum small{display:block;font-size:10px;letter-spacing:.2em;color:var(--gray);font-family:'Noto Sans JP',sans-serif;font-weight:500;margin-bottom:5px;}
.featureTitle{font-size:23px;font-weight:700;color:var(--navy);margin-bottom:10px;line-height:1.5;}
.featureTitle .tag{display:inline-block;vertical-align:4px;background:var(--blue-light);color:var(--blue-dark);font-size:12px;font-weight:700;padding:3px 12px;border-radius:100px;margin-left:10px;letter-spacing:.05em;}
.featureText{font-size:17px;line-height:1.9;}
.featureNote{max-width:900px;margin:28px auto 0;font-size:15px;color:var(--gray);text-align:center;}

/* ---------- GBP spotlight ---------- */
.gbp{background:linear-gradient(135deg,#0d3a6e 0%,#0b63c4 100%);color:#fff;padding:84px 0;}
.gbp .secLabel{color:#ffd76e;}
.gbpGrid{display:flex;gap:52px;align-items:center;max-width:1000px;margin:0 auto;}
.gbpCopy{flex:1.05;}
.gbpCopy h2{font-family:'Noto Serif JP',serif;font-size:clamp(19px,4.2vw,28px);font-weight:700;line-height:1.6;margin-bottom:22px;}
.gbpCopy h2 em{font-style:normal;color:#ffd76e;}
.gbpCopy p{font-size:17.5px;line-height:1.95;color:rgba(255,255,255,.94);margin-bottom:18px;}
.gbpCopy p strong{color:#fff;font-weight:700;}
.gbpPoints{list-style:none;margin-top:8px;}
.gbpPoints li{position:relative;padding:15px 20px 15px 52px;margin-bottom:12px;font-size:18.5px;font-weight:700;line-height:1.6;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.28);border-radius:12px;}
.gbpHot{color:#ff7b7b;font-weight:700;}
.gbpNote{margin-top:14px;text-align:center;font-size:13px;color:rgba(255,255,255,.8);}
.gbpPoints li::before{content:"";position:absolute;left:16px;top:15px;width:24px;height:24px;background:#ffd76e;border-radius:50%;
 -webkit-mask:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="black" d="M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z"/></svg>') center/16px no-repeat;
 mask:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="black" d="M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z"/></svg>') center/16px no-repeat;}
.gbpVisual{flex:1;}
/* Google風モック */
.gcard{background:#fff;border-radius:12px;padding:20px 22px;box-shadow:0 16px 40px rgba(0,0,0,.28);color:#202124;font-family:'Noto Sans JP',sans-serif;max-width:340px;margin:0 auto;}
.gcardOffice{font-size:19px;font-weight:700;color:#1a0dab;line-height:1.4;}
.gcardType{font-size:12.5px;color:#5f6368;margin-bottom:8px;}
.gcardRate{display:flex;align-items:center;gap:8px;margin-bottom:12px;}
.gcardRate .num{font-size:15px;font-weight:700;color:#202124;}
.gcardStars{color:#fbbc04;font-size:16px;line-height:1;letter-spacing:3px;}
.gcardStars .s5{background:linear-gradient(90deg,#fbbc04 50%,#c4c8ce 50%);-webkit-background-clip:text;background-clip:text;color:transparent;}
.gcardRate .cnt{font-size:13px;color:#5f6368;}
.gcardPhotos{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-bottom:12px;}
.gcardPhotos div{height:52px;border-radius:6px;background:linear-gradient(135deg,#dbe6f3,#c3d6ec);}
.gcardPhotos div:nth-child(2){background:linear-gradient(135deg,#e3ecdb,#cfe0c3);}
.gcardPhotos div:nth-child(3){background:linear-gradient(135deg,#f3e7db,#ecd9c3);}
.gcardActions{display:flex;gap:8px;}
.gcardActions button{flex:1;border:1px solid #dadce0;background:#fff;color:#1a73e8;font-size:12px;font-weight:500;padding:8px 4px;border-radius:100px;font-family:inherit;}
.gcardTag{display:inline-block;margin-top:12px;background:#e6f4ea;color:#137333;font-size:11.5px;font-weight:700;padding:3px 12px;border-radius:100px;}

/* ---------- pricing ---------- */
.priceWrap{display:flex;gap:24px;max-width:900px;margin:0 auto 26px;}
.priceBox{flex:1;background:#fff;border-radius:16px;overflow:hidden;border:1px solid var(--line);box-shadow:0 4px 16px rgba(29,47,67,.06);}
.priceHead{background:var(--blue);color:#fff;text-align:center;font-weight:700;font-size:18px;padding:16px;}
.priceBox.sub .priceHead{background:#3a8ede;}
.priceBody{padding:28px 30px;}
.priceMain{font-family:'Noto Serif JP',serif;font-size:23px;font-weight:700;color:var(--navy);text-align:center;margin-bottom:16px;line-height:1.6;}
.priceList{list-style:none;font-size:16px;}
.priceList li{position:relative;padding:9px 0 9px 28px;border-bottom:1px dashed var(--line);line-height:1.6;}
.priceList li:last-child{border:none;}
.priceList li::before{content:"";position:absolute;left:2px;top:14px;width:16px;height:16px;border-radius:50%;background:var(--blue);
 -webkit-mask:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="black" d="M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z"/></svg>') center/13px no-repeat;
 mask:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="black" d="M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z"/></svg>') center/13px no-repeat;}
.priceNote{max-width:900px;margin:0 auto;text-align:center;font-size:15px;line-height:1.85;color:var(--gray);}
.priceNote strong{color:var(--blue-dark);}

/* ---------- flow ---------- */
.flow{display:flex;max-width:980px;margin:0 auto;}
.flowStep{flex:1;position:relative;text-align:center;padding:0 12px;}
.flowStep::after{content:"";position:absolute;top:30px;right:-9px;width:18px;height:18px;border-top:3px solid var(--blue);border-right:3px solid var(--blue);transform:rotate(45deg);}
.flowStep:last-child::after{display:none;}
.flowIcon{width:64px;height:64px;margin:0 auto 14px;border-radius:50%;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Noto Serif JP',serif;font-size:26px;font-weight:700;}
.flowTitle{font-weight:700;font-size:17px;color:var(--navy);margin-bottom:6px;}
.flowText{font-size:14.5px;color:var(--gray);line-height:1.75;}

/* ---------- voices ---------- */
.voices{display:flex;gap:24px;max-width:1020px;margin:0 auto;}
.voice{flex:1;background:#fff;border:1px solid var(--line);border-radius:16px;padding:30px 28px;box-shadow:0 4px 16px rgba(29,47,67,.06);display:flex;flex-direction:column;}
.voiceStars{color:var(--gold);font-size:17px;line-height:1;letter-spacing:3px;margin-bottom:12px;}
.voiceTitle{font-weight:700;font-size:18px;color:var(--navy);margin-bottom:12px;line-height:1.6;}
.voiceText{font-size:16px;line-height:1.9;flex:1;}
.voiceFoot{margin-top:18px;padding-top:16px;border-top:1px solid var(--line);display:flex;align-items:center;gap:14px;}
.voiceAvatar{width:60px;height:60px;border-radius:50%;overflow:hidden;flex-shrink:0;border:1px solid var(--line);}
.voiceAvatar img{width:100%;height:100%;object-fit:cover;}
.voiceWho{font-size:14px;color:var(--gray);line-height:1.5;}
.voiceWho b{display:block;font-size:15px;color:var(--navy);font-weight:700;}
.voiceDisclaimer{max-width:1020px;margin:22px auto 0;font-size:13px;color:var(--gray);text-align:center;}

/* ---------- FAQ ---------- */
.faq{max-width:820px;margin:0 auto;}
.faqItem{background:#fff;border:1px solid var(--line);border-radius:12px;margin-bottom:14px;overflow:hidden;}
.faqQ{width:100%;display:flex;align-items:center;gap:16px;background:none;border:none;cursor:pointer;padding:22px 58px 22px 22px;text-align:left;font-family:inherit;font-size:17.5px;font-weight:700;color:var(--navy);position:relative;line-height:1.6;}
.faqQ::before{content:"Q";flex-shrink:0;width:34px;height:34px;border-radius:50%;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Noto Serif JP',serif;font-size:17px;}
.faqQ::after{content:"";position:absolute;right:24px;top:50%;width:12px;height:12px;margin-top:-9px;border-right:2.5px solid var(--blue);border-bottom:2.5px solid var(--blue);transform:rotate(45deg);transition:transform .3s;}
.faqItem.open .faqQ::after{transform:rotate(225deg);margin-top:-3px;}
.faqA{max-height:0;overflow:hidden;transition:max-height .35s ease;}
.faqAInner{padding:0 24px 24px 72px;font-size:16.5px;line-height:1.9;color:var(--text);}

/* ---------- final CTA ---------- */
.finalCta{background:linear-gradient(135deg,var(--blue-dark) 0%,var(--blue) 100%);padding:84px 0;text-align:center;color:#fff;}
.finalCtaTitle{font-family:'Noto Serif JP',serif;font-size:32px;font-weight:700;line-height:1.65;margin-bottom:16px;}
.finalCtaText{font-size:17.5px;line-height:1.9;opacity:.94;max-width:660px;margin:0 auto 34px;}
.finalCta .btnCta{max-width:460px;margin:0 auto 14px;}
.finalCta .ctaNote{color:rgba(255,255,255,.85);}

/* ---------- entry form ---------- */
body.modalOpen{overflow:hidden;}
.modalOverlay{position:fixed;inset:0;background:rgba(13,31,60,.62);z-index:1000;padding:16px;overflow:hidden;display:flex;align-items:flex-start;justify-content:center;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s ease,background .25s ease;}
.modalOverlay.open{opacity:1;visibility:visible;pointer-events:auto;}
.modalBox{position:relative;background:#fff;border-radius:18px;max-width:600px;width:100%;margin:0 auto;padding:24px 28px 18px;box-shadow:0 24px 64px rgba(0,0,0,.35);max-height:calc(100vh - 32px);overflow-y:auto;transform:translateY(22px) scale(.96);opacity:0;transition:transform .34s cubic-bezier(.19,.9,.35,1.05),opacity .28s ease;}
.modalOverlay.open .modalBox{transform:translateY(0) scale(1);opacity:1;}
.modalClose{position:absolute;top:12px;right:12px;width:32px;height:32px;border-radius:50%;background:var(--blue-pale);border:none;font-size:16px;line-height:1;color:var(--navy);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s;}
.modalClose:hover{background:var(--blue-light);}
.entryForm{}
.efProgress{margin-bottom:8px;}
.efProgressTrack{display:grid;grid-template-columns:26px 34px 26px 34px 26px 34px 26px;align-items:center;justify-content:center;width:fit-content;margin:0 auto;}
.efProgressNum{width:26px;height:26px;border-radius:50%;background:var(--blue-light);color:var(--blue-dark);font-size:12.5px;font-weight:700;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s;}
.efProgressNum.active{background:var(--blue);color:#fff;}
.efProgressNum.done{background:var(--blue-dark);color:#fff;}
.efProgressLine{height:2px;background:var(--line);transition:background .25s;}
.efProgressLine.done{background:var(--blue-dark);}
.efProgressLabels{display:grid;grid-template-columns:26px 34px 26px 34px 26px 34px 26px;width:fit-content;margin:4px auto 0;}
.efProgressLabels span{font-size:10.5px;color:var(--gray);text-align:center;white-space:nowrap;transition:color .2s;}
.efProgressLabels span.active{color:var(--navy);font-weight:700;}
.efProgressLabels span:nth-child(1){grid-column:1;}
.efProgressLabels span:nth-child(2){grid-column:3;}
.efProgressLabels span:nth-child(3){grid-column:5;}
.efProgressLabels span:nth-child(4){grid-column:7;}
.efGroup{display:none;}
.efGroup.active{display:block;animation:efFade .25s ease;}
@keyframes efFade{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}
.efGroupTitle{font-weight:700;color:var(--navy);font-size:14px;margin-bottom:6px;padding-bottom:3px;border-bottom:2px solid var(--blue);}
.efItem{margin-bottom:7px;}
.efItem:last-child{margin-bottom:0;}
.efLabel{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:700;color:var(--navy);margin-bottom:3px;}
.efReq{flex-shrink:0;background:#e0453f;color:#fff;font-size:10px;font-weight:700;padding:2px 6px;border-radius:3px;line-height:1.5;}
.efOpt{flex-shrink:0;background:var(--blue-light);color:var(--blue-dark);font-size:10px;font-weight:700;padding:2px 6px;border-radius:3px;line-height:1.5;}
.efItem input[type=text],.efItem input[type=email],.efItem input[type=tel],.efItem select,.efItem textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:8px 12px;font-size:15px;font-family:inherit;color:var(--text);background:#fff;transition:border-color .15s,box-shadow .15s;}
.efItem input:focus,.efItem select:focus,.efItem textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(11,99,196,.12);}
.efItem textarea{resize:vertical;min-height:60px;}
.ef2col{display:flex;gap:16px;}
.ef2col .efItem{flex:1;margin-bottom:0;}
.entryTitle{font-family:'Noto Serif JP',serif;font-weight:700;font-size:19px;line-height:1.4;color:var(--navy);text-align:center;margin-bottom:4px;}
.entryLead{font-size:13px;line-height:1.5;color:var(--gray);text-align:center;margin-bottom:14px;}
.efNav{display:flex;gap:12px;margin-top:4px;}
.efNav button{font-family:inherit;cursor:pointer;border:none;}
.efNav .btnCta{padding:12px 18px;font-size:16px;}
.efBack{flex:0 0 92px;background:#fff;border:1px solid var(--line) !important;color:var(--text);font-weight:700;font-size:13.5px;border-radius:8px;transition:background .15s;}
.efBack:hover{background:var(--blue-pale);}
.efNext,.efSubmit{flex:1;}
.efBack[hidden],.efNext[hidden],.efSubmit[hidden]{display:none !important;}
.entryNote{text-align:center;font-size:11.5px;color:var(--gray);margin-top:8px;}
.entryHp{position:absolute;left:-9999px;top:-9999px;}
.entrySuccess{display:none;text-align:center;padding:30px 10px 10px;}
.entrySuccess.show{display:block;}
.entrySuccess .okIcon{width:60px;height:60px;margin:0 auto 18px;border-radius:50%;background:var(--blue-light);display:flex;align-items:center;justify-content:center;}
.entrySuccess .okIcon svg{width:30px;height:30px;stroke:var(--blue);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.entrySuccess h3{font-family:'Noto Serif JP',serif;font-size:23px;color:var(--navy);margin-bottom:14px;}
.entrySuccess p{color:var(--text);font-size:16px;line-height:1.9;}
.entryForm.hide{display:none;}
.efErr{display:none;color:#e0453f;font-size:13.5px;margin-top:7px;}

/* ---------- footer ---------- */
.footer{background:var(--blue-pale);color:var(--gray);border-top:1px solid var(--line);padding:40px 0;}
.footerInner{max-width:1080px;margin:0 auto;padding:0 24px;display:flex;justify-content:space-between;align-items:center;font-size:14px;}
.footerName{color:var(--navy);font-weight:500;}

/* ---------- sticky mobile CTA ---------- */
.stickyCta{display:none;position:fixed;left:0;right:0;bottom:0;z-index:200;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.96);border-top:1px solid var(--line);box-shadow:0 -4px 16px rgba(29,47,67,.12);}
.stickyCta .btnCta{font-size:16px;padding:15px 20px;}

/* ---------- responsive ---------- */
@media (max-width:768px){
  body{font-size:16.5px;line-height:1.95;}
  .hero{padding:44px 0 40px;}
  .heroGrid{flex-direction:column;gap:28px;}
  .heroMain,.heroSide{display:contents;}
  .heroBadge{order:1;}
  .heroPic{order:2;}
  .hero h1{order:3;}
  .heroLead{font-size:16.5px;order:4;}
  .heroCtaArea{order:5;}
  .heroSide .checkCard{order:6;}
  .trustItem{padding:2px 6px;}
  .trustValue{font-size:23px;}
  .marqueeItem{font-size:16px;}
  .marqueeItem strong{font-size:20px;}
  .section{padding:56px 0;}
  .secTitle{font-size:26px;}
  .secLead{margin-bottom:36px;font-size:16.5px;}
  .quoteBubble{font-size:16px;}
  .tesaguriAnswer{font-size:16.5px;}
  .realityBody{font-size:16.5px;}
  .realityEm{font-size:20px;}
  .feature{flex-direction:row;gap:18px;padding:26px 22px;}
  .featureBadge{width:64px;padding-right:16px;}
  .featureIcon{width:44px;height:44px;}
  .featureIcon svg{width:24px;height:24px;}
  .featureNum{font-size:26px;}
  .featureTitle{font-size:19px;}
  .featureText{font-size:16px;}
  .gbp{padding:56px 0;}
  .gbpGrid{flex-direction:column;gap:36px;}
  .gbpCopy,.gbpVisual{display:contents;}
  .gbpCopy .secIcon{order:1;}
  .gbpCopy h2{text-align:center;order:2;}
  .gbpPic{order:3;}
  .gbpCopy p{order:4;}
  .gbpCopy .gbpPoints{order:5;}
  .gbpVisual .gcard{order:6;}
  .gbpVisual .gbpNote{order:7;}
  .priceWrap{flex-direction:column;}
  .flow{flex-direction:column;gap:32px;max-width:440px;}
  .flowStep{display:flex;text-align:left;gap:18px;align-items:flex-start;padding:0;min-height:104px;}
  .flowStep:last-child{min-height:0;}
  .flowIcon{margin:0;flex-shrink:0;width:52px;height:52px;font-size:20px;}
  .flowIcon{position:relative;z-index:1;}
  .flowStep::after{display:none;}
  .flowStep::before{content:"▽";position:absolute;top:80px;left:26px;transform:translateX(-50%);color:var(--blue);font-size:24px;line-height:1;background:var(--blue-pale);padding:2px 4px;z-index:2;}
  .flowStep:last-child::before{display:none;}
  .voices{flex-direction:column;}
  .finalCtaTitle{font-size:24px;}
  .finalCtaText{font-size:16px;}
  .modalOverlay{padding:0;}
  .modalBox{margin:0;border-radius:0;min-height:100vh;max-height:none;padding:54px 20px 100px;}
  .efNav{position:sticky;bottom:0;background:#fff;margin:24px -20px -80px;padding:14px 20px calc(14px + env(safe-area-inset-bottom));box-shadow:0 -4px 12px rgba(29,47,67,.08);}
  .ef2col{flex-direction:column;gap:20px;}
  .stickyCta{display:block;}
  .footer{padding-bottom:90px;}
  .footerInner{flex-direction:column;gap:8px;text-align:center;}
  .headerCta{font-size:13px;padding:9px 15px;}
  .logoMain{font-size:15px;}
}
