/* パルスノート 公式サイト v3
   骨格: シープラッツLP基本骨格_デザインMD(タイプスケール・余白・グリッド)
   トンマナ: シープラッツ コーポレート(白紙・明朝・1pxヘアライン・角丸0・影なし・輪郭円)
   色: アプリの桃色 #DB2777 をブランド1色として、線・図形・ボタン・数値にだけ使う */

:root{
  /* 色 */
  --ink:#212121;
  --ink-dark:#111111;
  --gray:#989898;
  --gray-light:#C4C4C4;
  --hairline:#E3E3E3;
  --face:#F2F2F2;
  --face-weak:#F7F7F7;
  --pink:#DB2777;
  --pink-pale:#FDF2F8;
  --pink-line:#F3CCE0;
  --white:#fff;

  /* 書体 */
  --font-jp:"Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho",serif;
  --font-ui:"Noto Sans JP","Hiragino Sans",sans-serif;
  --font-en:"Work Sans","Helvetica Neue",Arial,sans-serif;

  /* タイプスケール (390→1206px) */
  --fs-h1a:clamp(20px,calc(20px + 10*(100vw - 390px)/816),30px);
  --fs-h1b:clamp(34px,calc(34px + 20*(100vw - 390px)/816),54px);
  --fs-h2:clamp(24px,calc(24px + 16*(100vw - 390px)/816),40px);
  --fs-h3:clamp(21px,calc(21px + 9*(100vw - 390px)/816),30px);
  --fs-conclusion:clamp(20px,calc(20px + 10*(100vw - 390px)/816),30px);
  --fs-card:clamp(18px,calc(18px + 4*(100vw - 390px)/816),22px);
  --fs-lead-l:clamp(15px,calc(15px + 4*(100vw - 390px)/816),19px);
  --fs-lead:clamp(15px,calc(15px + 3*(100vw - 390px)/816),18px);
  --fs-label:clamp(11px,calc(11px + 2*(100vw - 390px)/816),13px);
  --fs-body:clamp(14px,calc(14px + 2*(100vw - 390px)/816),16px);
  --fs-btn:clamp(14px,calc(14px + 2*(100vw - 390px)/816),16px);
  --fs-big:clamp(44px,calc(44px + 28*(100vw - 390px)/816),72px);
  --fs-note:13px;

  /* 余白・寸法 */
  --container:1206px;
  --container-narrow:1000px;
  --container-cta:930px;
  --pad-x:clamp(25px,3vw,42px);
  --sec-y:clamp(72px,calc(72px + 48*(100vw - 390px)/816),120px);
  --head-gap:clamp(48px,calc(48px + 32*(100vw - 390px)/816),80px);
  --block-gap:clamp(72px,calc(72px + 56*(100vw - 390px)/816),128px);
  --card-pad:clamp(22px,2.6vw,32px);

  /* アイコン */
  --ico-l:clamp(64px,calc(64px + 28*(100vw - 390px)/816),92px);
  --ico-m:clamp(52px,calc(52px + 16*(100vw - 390px)/816),68px);
  --ico-mark:24px;

  /* 字間 */
  --ls-body:.12em;
  --ls-head:.16em;
  --ls-label:.3em;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0;font-family:var(--font-jp);font-size:16px;line-height:2;letter-spacing:var(--ls-body);color:var(--ink);background:var(--white);-webkit-font-smoothing:antialiased;font-feature-settings:"palt"}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4,p,ul,ol,dl,dd,figure{margin:0}
ul,ol{padding:0;list-style:none}
em{font-style:normal}
.num{font-family:var(--font-en);font-weight:300;letter-spacing:0}
.unit{font-size:.5em;margin-left:.15em;font-family:var(--font-jp);font-weight:500}
.pc{display:inline}.sp{display:none}

.container{max-width:var(--container);margin-inline:auto;padding-inline:var(--pad-x)}
.container--narrow{max-width:var(--container-narrow)}
.container--cta{max-width:var(--container-cta)}
.section{padding-block:var(--sec-y)}
.bg-tint{background:var(--face-weak)}
.bg-grad{background:var(--face)}
.bg-dark{background:var(--pink-pale)}

/* 見出しブロック: 40px線 + 英字ラベル → 和文見出し → 40px短罫線 */
.sec-head{text-align:center;margin-bottom:var(--head-gap)}
.sec-head--left{text-align:left}
.label{display:inline-flex;align-items:center;gap:14px;font-family:var(--font-en);font-size:var(--fs-label);font-weight:500;letter-spacing:var(--ls-label);line-height:1;color:var(--gray);margin-bottom:18px;text-transform:uppercase}
.label::before{content:"";width:40px;height:1px;background:var(--pink)}
.h2{font-size:var(--fs-h2);font-weight:500;line-height:1.5;letter-spacing:var(--ls-head)}
.rule{width:40px;height:1px;background:var(--ink);margin:26px auto 0}
.sec-head--left .rule{margin-inline:0}
.lead{font-size:var(--fs-lead-l);line-height:2;margin-top:clamp(28px,4vw,40px);color:var(--ink)}

/* ボタン: 角丸0。主=桃ベタ白文字 / 副=1.5px桃枠・Ink文字。矢印は26px線+チェブロン */
.btn{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;height:clamp(54px,calc(54px + 6*(100vw - 390px)/816),60px);padding:0 24px 0 32px;font-family:var(--font-jp);font-size:var(--fs-btn);font-weight:500;letter-spacing:.14em;line-height:1;white-space:nowrap;transition:opacity .3s}
.btn:hover{opacity:.75}
.btn::after{content:"";width:34px;height:8px;flex:0 0 34px;background:no-repeat center/34px 8px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 8'%3E%3Cpath d='M0 7h33M26 1l7 6' fill='none' stroke='%23fff' stroke-width='1'/%3E%3C/svg%3E")}
.btn--primary{background:var(--pink);color:var(--white)}
.btn--ghost{background:transparent;color:var(--ink);border:1.5px solid var(--pink)}
.btn--ghost::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 8'%3E%3Cpath d='M0 7h33M26 1l7 6' fill='none' stroke='%23DB2777' stroke-width='1'/%3E%3C/svg%3E")}
.btn--white{background:var(--pink);color:var(--white)}
.btn-row{display:flex;flex-wrap:wrap;gap:clamp(14px,2.5vw,24px);align-items:center}
.btn-note{font-size:var(--fs-note);line-height:2;color:var(--gray);letter-spacing:.08em}

/* ヘッダー */
.header{position:sticky;top:0;z-index:50;height:75px;background:rgba(255,255,255,.96);border-bottom:1px solid var(--hairline)}
.header__inner{max-width:1440px;margin-inline:auto;padding-inline:var(--pad-x);height:100%;display:flex;align-items:center;gap:32px}
.brand{display:flex;align-items:center;gap:12px;font-weight:500;font-size:17px;letter-spacing:.14em;white-space:nowrap;line-height:1.2}
.brand img{width:36px;height:36px;border-radius:8px}
.brand small{display:block;font-family:var(--font-en);font-weight:400;font-size:10px;letter-spacing:.3em;color:var(--gray);line-height:1;margin-top:4px}
.nav{display:flex;gap:32px;margin-left:auto;font-size:14px;font-weight:500;letter-spacing:.14em}
.nav a{padding-bottom:4px;border-bottom:1px solid transparent}
.nav a:hover{border-bottom-color:var(--pink)}
.header .btn{height:44px;padding:0 18px 0 22px;font-size:14px;gap:18px;min-width:0}
.header .btn::after{width:26px;flex-basis:26px;background-size:26px 8px}

/* FV: 白紙 + 淡い円弧帯 */
.fv{position:relative;overflow:hidden;background:var(--white)}
.fv::before{content:"";position:absolute;right:-12vw;top:-30vw;width:70vw;height:70vw;max-width:920px;max-height:920px;border-radius:50%;border:clamp(40px,7vw,96px) solid var(--pink-pale);pointer-events:none}
.fv::after{content:"";position:absolute;right:6vw;top:-20vw;width:40vw;height:40vw;max-width:520px;max-height:520px;border-radius:50%;border:clamp(20px,3.5vw,48px) solid var(--face-weak);pointer-events:none}
.fv__inner{position:relative;z-index:1;display:grid;grid-template-columns:1fr 440px;gap:clamp(28px,6vw,80px);align-items:center;min-height:calc(100vh - 75px);padding-block:clamp(48px,7vw,88px)}
.tag{display:inline-flex;align-items:center;gap:12px;font-family:var(--font-en);font-size:var(--fs-label);font-weight:500;letter-spacing:var(--ls-label);color:var(--gray);line-height:1;text-transform:uppercase}
.tag::before{content:"";width:40px;height:1px;background:var(--pink)}
.h1{margin-top:26px;font-weight:500;line-height:1.3;letter-spacing:var(--ls-head)}
.h1 .a{display:block;font-size:var(--fs-h1a);line-height:1.6;color:var(--ink);font-weight:400;letter-spacing:.14em;margin-bottom:10px}
.h1 .b{display:block;font-size:var(--fs-h1b);line-height:1.35}
.h1 .b strong{font-weight:500;color:var(--ink);background:linear-gradient(var(--pink),var(--pink)) left bottom/100% 1px no-repeat;padding-bottom:.06em}
.fv__lead{font-size:var(--fs-lead);line-height:2.1;margin-top:28px;max-width:34em;color:var(--ink)}
.proofs{display:grid;grid-template-columns:repeat(3,1fr);margin-top:40px;max-width:600px;border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline)}
.proof{padding:22px 10px;text-align:center;border-left:1px solid var(--hairline)}
.proof:first-child{border-left:0}
.proof .num{display:block;font-size:var(--fs-big);line-height:1;color:var(--pink)}
.proof .num .unit{color:var(--ink);font-size:.3em;letter-spacing:.1em}
.proof .cap{display:block;font-size:12px;font-weight:500;line-height:1.7;margin-top:10px;letter-spacing:.08em;color:var(--ink)}
.fv .btn-row{margin-top:40px}

/* 画面イメージ(端末の枠は描かない。1pxの紙として置く) */
.phone{width:100%;max-width:400px;margin-inline:auto;background:var(--white);border:1px solid var(--hairline);position:relative}
.phone::before{content:"";position:absolute;left:-14px;top:-14px;width:40px;height:40px;border-top:1px solid var(--pink);border-left:1px solid var(--pink)}
.phone::after{content:"";position:absolute;right:-14px;bottom:-14px;width:40px;height:40px;border-bottom:1px solid var(--pink);border-right:1px solid var(--pink)}
.phone__screen{display:flex;flex-direction:column;font-family:var(--font-ui);font-size:12px;line-height:1.6;color:var(--ink);letter-spacing:0}
.phone__bar{padding:18px 22px 14px;display:flex;align-items:baseline;justify-content:space-between;border-bottom:1px solid var(--hairline)}
.phone__bar b{font-size:13px;font-weight:700}
.phone__bar span{font-family:var(--font-en);font-size:11px;color:var(--gray);font-weight:400}
.phone__list{padding:18px 22px;display:flex;flex-direction:column;gap:14px}
.utt{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start}
.utt .who{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 8px;font-weight:700;font-size:11px;white-space:nowrap;border:1px solid currentColor}
.utt .who::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.utt .who.a{color:var(--pink)}
.utt .who.b{color:#538AD8}
.utt .who.c{color:#59B275}
.utt p{font-size:12px;line-height:1.7}
.utt time{display:block;font-family:var(--font-en);font-size:10px;color:var(--gray);margin-top:2px}
.phone__rec{margin:6px 22px 22px;height:48px;border:1px solid var(--pink);color:var(--pink);display:flex;align-items:center;justify-content:center;gap:12px;font-weight:700;font-size:12px;letter-spacing:.1em}
.phone__rec > i{display:block;width:10px;height:10px;background:var(--pink)}
.wave{display:flex;align-items:center;gap:3px;height:16px}
.wave i{display:block;width:2px;background:var(--pink);height:30%}
.wave i:nth-child(2){height:70%}.wave i:nth-child(3){height:100%}.wave i:nth-child(4){height:55%}.wave i:nth-child(5){height:80%}

.utt.hl{background:var(--pink-pale);margin:0 -10px;padding:8px 10px;border-left:2px solid var(--pink)}
.utt.hl + .utt.hl{margin-top:-14px;padding-top:0}
.hl-mark{display:flex;align-items:center;gap:8px;font-family:var(--font-ui);font-size:10px;font-weight:700;letter-spacing:.12em;color:var(--pink);margin-bottom:-6px}
.hl-mark i{display:block;width:10px;height:10px;border-radius:50%;border:1.5px solid var(--pink);background:radial-gradient(circle,var(--pink) 0 2px,transparent 2.5px)}
.hl-mark time{font-family:var(--font-en);font-weight:400;letter-spacing:0;color:var(--gray)}

/* 結論(問題→答え)。面はグレー、黒ベタは使わない */
.conclusion{text-align:center}
.conclusion .before{font-size:var(--fs-lead-l);font-weight:400;letter-spacing:.14em;color:var(--ink)}
.conclusion .arrow{display:block;width:1px;height:44px;margin:26px auto;background:var(--pink);position:relative}
.conclusion .arrow::after{content:"";position:absolute;left:-6px;bottom:0;width:12px;height:12px;border-right:1px solid var(--pink);border-bottom:1px solid var(--pink);transform:rotate(45deg);transform-origin:center;bottom:1px;left:-5.5px}
.conclusion .after{font-size:var(--fs-conclusion);font-weight:500;line-height:1.7;letter-spacing:var(--ls-head)}

/* POINT(2カラム) */
.point{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,88px);align-items:center}
.point + .point{margin-top:var(--block-gap)}
.point--rev .point__fig{order:-1}
.point__num{display:inline-flex;align-items:center;gap:14px;font-family:var(--font-en);font-weight:500;font-size:var(--fs-label);letter-spacing:var(--ls-label);color:var(--gray);line-height:1}
.point__num::before{content:"";width:40px;height:1px;background:var(--pink)}
.point .h3{font-size:var(--fs-h3);font-weight:500;line-height:1.6;letter-spacing:var(--ls-head);margin-top:20px}
.point .body{font-size:var(--fs-body);line-height:2.1;margin-top:22px;color:var(--ink)}
.checks{margin-top:26px;display:flex;flex-direction:column;gap:12px}
.checks li{display:flex;gap:14px;align-items:flex-start;font-size:var(--fs-body);font-weight:500;line-height:1.8}
.checks li::before{content:"";flex:0 0 var(--ico-mark);width:var(--ico-mark);height:var(--ico-mark);border-radius:50%;border:1.5px solid var(--pink);background:center/11px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 6.5l2.6 2.5L10 3.5' fill='none' stroke='%23DB2777' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");margin-top:2px}

/* 図(1pxヘアラインの紙) */
.fig{background:var(--white);border:1px solid var(--hairline);padding:var(--card-pad)}
.fig--tint{background:var(--white)}
.fig__title{font-family:var(--font-en);font-size:11px;font-weight:500;letter-spacing:.3em;color:var(--gray);margin-bottom:18px;text-transform:uppercase;display:flex;align-items:center;gap:12px}
.fig__title::before{content:"";width:24px;height:1px;background:var(--pink)}
.flow{display:grid;grid-template-columns:1fr 18px 1fr 18px 1fr;gap:10px;align-items:start}
.flow .step{padding:8px 6px;text-align:center}
.flow .step .ico{width:var(--ico-m);height:var(--ico-m);margin:0 auto 14px;border-radius:50%;border:1.5px solid var(--pink);display:grid;place-items:center;color:var(--pink);font-family:var(--font-en);font-weight:300;font-size:26px}
.flow .step b{display:block;font-size:14px;font-weight:500;line-height:1.7;letter-spacing:.1em}
.flow .step span{display:block;font-size:12px;color:var(--gray);line-height:1.8;margin-top:4px;letter-spacing:.06em}
.flow .arr{align-self:center;margin-top:calc(var(--ico-m) / 2 - 5px);width:10px;height:10px;border-right:1px solid var(--pink);border-bottom:1px solid var(--pink);transform:rotate(-45deg)}
.compare{display:grid;grid-template-columns:1fr auto 1fr;gap:16px;align-items:center}
.compare .box{padding:20px;font-size:14px;line-height:1.9;letter-spacing:.08em}
.compare .before{background:var(--face-weak);color:var(--ink)}
.compare .after{background:var(--pink-pale);border:1px solid var(--pink);color:var(--ink)}
.compare .box small{display:block;font-family:var(--font-en);font-size:10px;letter-spacing:.3em;font-weight:500;margin-bottom:8px;color:var(--gray);text-transform:uppercase}
.compare .box mark{background:transparent;color:inherit;text-decoration:underline wavy var(--gray-light);text-underline-offset:4px}
.compare .after mark{text-decoration:none;color:var(--pink);font-weight:500}
.compare .arr{width:10px;height:10px;border-right:1px solid var(--pink);border-bottom:1px solid var(--pink);transform:rotate(-45deg)}
.minis{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--hairline);border-left:1px solid var(--hairline)}
.mini{padding:18px 18px 20px;border-right:1px solid var(--hairline);border-bottom:1px solid var(--hairline);min-height:100px}
.mini b{display:block;font-size:14px;font-weight:500;line-height:1.7;letter-spacing:.1em}
.mini span{display:block;font-size:12px;color:var(--gray);line-height:1.8;margin-top:6px;letter-spacing:.06em}

/* カードグリッド */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.cards--2{grid-template-columns:repeat(2,1fr);max-width:1060px;margin-inline:auto}
.card{background:var(--white);border:1px solid var(--hairline);padding:var(--card-pad);display:flex;gap:20px;align-items:flex-start}
.card .ico{flex:0 0 var(--ico-l);width:var(--ico-l);height:var(--ico-l);border-radius:50%;border:1.5px solid var(--pink);display:grid;place-items:center}
.card .ico svg{width:50%;height:50%;stroke:var(--pink);fill:none;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}
.card h3{font-size:var(--fs-card);font-weight:500;line-height:1.6;letter-spacing:.12em}
.card p{font-size:var(--fs-body);line-height:2;color:var(--ink);margin-top:10px}

/* 書き出し形式 */
.formats{display:flex;align-items:center;gap:clamp(28px,6vw,80px);flex-wrap:wrap}
.formats .big{flex:0 0 auto;display:flex;align-items:baseline;gap:8px}
.formats .big .num{font-size:clamp(72px,11vw,128px);line-height:1;color:var(--pink);font-weight:300}
.formats .big .unit{display:block;font-family:var(--font-jp);font-weight:500;font-size:18px;letter-spacing:.2em;color:var(--ink)}
.chips{display:flex;flex-wrap:wrap;gap:10px;flex:1;min-width:280px}
.chip{display:inline-flex;align-items:center;height:44px;padding:0 20px;background:var(--white);border:1px solid var(--hairline);font-family:var(--font-en);font-weight:400;font-size:14px;letter-spacing:.08em}
.chip.jp{font-family:var(--font-jp);font-weight:500;letter-spacing:.12em}

.drive{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,88px);align-items:center;margin-top:var(--block-gap);padding-top:var(--head-gap);border-top:1px solid var(--hairline)}
.drive .h3{font-size:var(--fs-h3);font-weight:500;line-height:1.6;letter-spacing:var(--ls-head);margin-top:20px}
.drive .body{font-size:var(--fs-body);line-height:2.1;margin-top:22px}
.files{display:flex;flex-direction:column;font-family:var(--font-ui);font-size:12px;letter-spacing:0}
.files li{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:12px 4px;border-bottom:1px solid var(--hairline)}
.files li:last-child{border-bottom:0}
.files__ico{width:16px;height:20px;border:1px solid var(--pink);position:relative}
.files__ico::after{content:"";position:absolute;right:-1px;top:-1px;width:5px;height:5px;background:var(--white);border-left:1px solid var(--pink);border-bottom:1px solid var(--pink)}
.files time{font-family:var(--font-en);color:var(--gray);font-size:11px}

/* プライバシー(淡い桃色の面) */
.privacy-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.privacy-item{background:var(--white);border:1px solid var(--pink-line);padding:var(--card-pad)}
.privacy-item .ico{width:var(--ico-m);height:var(--ico-m);border-radius:50%;border:1.5px solid var(--pink);display:grid;place-items:center;margin-bottom:20px}
.privacy-item .ico svg{width:46%;height:46%;stroke:var(--pink);fill:none;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}
.privacy-item h3{font-size:var(--fs-card);font-weight:500;line-height:1.6;letter-spacing:.12em}
.privacy-item p{font-size:var(--fs-body);line-height:2;color:var(--ink);margin-top:10px}
.privacy-note{text-align:center;margin-top:40px}
.privacy-note a{color:var(--ink);font-weight:500;letter-spacing:.14em;border-bottom:1px solid var(--pink);padding-bottom:4px}

/* 動作環境 */
.spec{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline)}
.spec > div{padding:28px 24px;border-left:1px solid var(--hairline)}
.spec > div:first-child{border-left:0}
.spec dt{font-family:var(--font-en);font-size:11px;font-weight:500;letter-spacing:.3em;color:var(--gray);text-transform:uppercase}
.spec dd{font-size:var(--fs-card);font-weight:500;line-height:1.5;margin-top:10px;letter-spacing:.1em}
.spec dd small{display:block;font-size:13px;font-weight:400;color:var(--ink);margin-top:10px;line-height:1.9;letter-spacing:.06em}

/* FAQ: 1問1行、ヘアラインで区切る */
.faq{display:flex;flex-direction:column;max-width:var(--container-narrow);margin-inline:auto;border-top:1px solid var(--hairline)}
.faq details{border-bottom:1px solid var(--hairline)}
.faq summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:44px 1fr 28px;gap:18px;align-items:center;padding:26px 8px;font-weight:500;font-size:var(--fs-body);line-height:1.8;letter-spacing:.1em}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"Q";font-family:var(--font-en);font-weight:300;font-size:clamp(26px,3vw,34px);line-height:1;color:var(--pink)}
.faq summary::after{content:"";width:12px;height:12px;justify-self:center;background:
  linear-gradient(var(--pink),var(--pink)) center/12px 1px no-repeat,
  linear-gradient(var(--pink),var(--pink)) center/1px 12px no-repeat}
.faq details[open] summary::after{background:linear-gradient(var(--pink),var(--pink)) center/12px 1px no-repeat}
.faq .ans{display:grid;grid-template-columns:44px 1fr;gap:18px;padding:0 8px 30px;font-size:var(--fs-body);line-height:2;color:var(--ink)}
.faq .ans::before{content:"A";font-family:var(--font-en);font-weight:300;font-size:clamp(26px,3vw,34px);line-height:1;color:var(--gray-light)}
.faq .ans a{color:var(--ink);font-weight:500;border-bottom:1px solid var(--pink)}

/* 最終CTA */
.cta-final{text-align:center;padding-block:clamp(72px,9vw,128px);position:relative;overflow:hidden}
.cta-final::before{content:"";position:absolute;left:-10vw;bottom:-30vw;width:50vw;height:50vw;max-width:640px;max-height:640px;border-radius:50%;border:clamp(28px,5vw,72px) solid var(--white);opacity:.9;pointer-events:none}
.cta-final > .container{position:relative;z-index:1}
.cta-final .app-icon{width:clamp(88px,10vw,112px);height:auto;margin:0 auto 28px;border-radius:22%}
.cta-final .h2{font-size:clamp(26px,calc(26px + 16*(100vw - 390px)/816),42px)}
.cta-final .lead{color:var(--ink)}
.cta-final .btn-row{justify-content:center;margin-top:40px}
.cta-final .btn-note{margin-top:18px}

/* フッター */
.footer{padding-block:clamp(56px,7vw,88px) 40px;background:var(--white);border-top:1px solid var(--hairline)}
.footer__inner{display:flex;flex-wrap:wrap;gap:24px 40px;align-items:center;justify-content:space-between}
.footer__nav{display:flex;flex-wrap:wrap;gap:8px 32px;font-size:13px;font-weight:500;letter-spacing:.14em}
.footer__nav a:hover{color:var(--pink)}
.footer__line{height:1px;background:var(--hairline);margin:36px 0 20px}
.copyright{font-size:12px;color:var(--gray);font-family:var(--font-en);letter-spacing:.1em}
.copyright span{font-family:var(--font-jp);letter-spacing:.1em}

/* 下層ページ */
.page-head{background:var(--white);padding-block:clamp(56px,7vw,96px) clamp(40px,5vw,64px);border-bottom:1px solid var(--hairline);position:relative;overflow:hidden}
.page-head::before{content:"";position:absolute;right:-8vw;top:-26vw;width:44vw;height:44vw;max-width:560px;max-height:560px;border-radius:50%;border:clamp(24px,4vw,56px) solid var(--pink-pale);pointer-events:none}
.page-head > .container{position:relative;z-index:1}
.page-head .label{margin-bottom:18px}
.page-head .h2{font-size:var(--fs-h2)}
.page-head .meta{font-size:13px;color:var(--gray);margin-top:20px;letter-spacing:.08em}
.doc{max-width:var(--container-narrow);margin-inline:auto;padding-block:var(--sec-y)}
.doc > * + *{margin-top:28px}
.doc h2{font-size:var(--fs-card);font-weight:500;line-height:1.6;letter-spacing:.14em;padding-top:36px;margin-top:48px;border-top:1px solid var(--hairline);display:flex;gap:16px;align-items:baseline}
.doc h2:first-child{border-top:0;padding-top:0;margin-top:0}
.doc h3{font-size:var(--fs-body);font-weight:500;margin-top:30px;letter-spacing:.12em;padding-left:16px;border-left:1px solid var(--pink);line-height:1.8}
.doc p,.doc li,.doc dd,.doc dt{font-size:var(--fs-body);line-height:2.1;color:var(--ink)}
.doc ul{padding-left:1.4em;list-style:disc}
.doc ul li{margin-top:6px}
.doc ol{padding-left:1.6em;list-style:decimal}
.doc ol li{margin-top:6px}
.doc strong{color:var(--ink);font-weight:500}
.doc a{color:var(--ink);font-weight:500;border-bottom:1px solid var(--pink)}
.doc .table{width:100%;border-collapse:collapse;font-size:14px;line-height:1.9;letter-spacing:.08em;border-top:1px solid var(--ink)}
.doc .table th{text-align:left;background:var(--face);padding:16px 18px;width:28%;font-weight:500;border-bottom:1px solid var(--hairline);vertical-align:top}
.doc .table td{padding:16px 18px;border-bottom:1px solid var(--hairline);color:var(--ink)}
.doc .box{background:var(--face-weak);padding:var(--card-pad)}
.doc .box b{display:block;color:var(--ink);margin-bottom:8px;font-weight:500;letter-spacing:.1em}
.doc .summary{background:var(--pink-pale);border:1px solid var(--pink-line);padding:var(--card-pad)}
.doc .summary > b{display:block;font-family:var(--font-en);font-size:11px;letter-spacing:.3em;color:var(--gray);text-transform:uppercase;margin-bottom:10px}
.doc .summary li{margin-top:8px;font-weight:500;color:var(--ink);padding-left:30px;position:relative}
.doc .summary ul{list-style:none;padding:0}
.doc .summary li::before{content:"";position:absolute;left:0;top:.55em;width:16px;height:16px;border-radius:50%;border:1.5px solid var(--pink);background:center/8px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 6.5l2.6 2.5L10 3.5' fill='none' stroke='%23DB2777' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.doc .note{font-size:var(--fs-note);line-height:2;color:var(--gray);letter-spacing:.08em}
.contact-card{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;background:var(--white);border:1px solid var(--hairline);padding:var(--card-pad)}
.contact-card b{display:block;font-size:var(--fs-card);color:var(--ink);font-weight:500;letter-spacing:.12em}
.contact-card p{margin-top:8px}
.contact-card .btn{height:54px}
.doc a.btn--primary,.doc a.btn--primary:hover{color:var(--white);border-bottom:0;font-weight:500}
.support-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--hairline);border-left:1px solid var(--hairline)}
.support-grid a{display:block;background:var(--white);border-right:1px solid var(--hairline);border-bottom:1px solid var(--hairline);padding:24px;font-weight:500;color:var(--ink);letter-spacing:.12em;transition:background .3s}
.support-grid a:hover{background:var(--pink-pale)}
.support-grid a span{display:block;font-size:12px;font-weight:400;color:var(--gray);margin-top:8px;letter-spacing:.06em;line-height:1.8}
.steps{counter-reset:s}
.steps li{position:relative;padding-left:52px;margin-top:16px;counter-increment:s}
.steps li::before{content:counter(s);position:absolute;left:0;top:2px;width:34px;height:34px;border-radius:50%;border:1.5px solid var(--pink);color:var(--pink);display:grid;place-items:center;font-family:var(--font-en);font-weight:300;font-size:16px}

/* レスポンシブ */
@media (max-width:1100px){.nav{display:none}}
@media (max-width:980px){
  .fv__inner{grid-template-columns:1fr;min-height:0}
  .fv__fig{order:1;padding-top:8px}
  .phone{max-width:360px}
  .point,.point--rev .point__fig{grid-template-columns:1fr;order:0}
  .drive{grid-template-columns:1fr}
  .cards,.cards--2{grid-template-columns:1fr}
  .privacy-grid{grid-template-columns:1fr}
  .spec{grid-template-columns:1fr 1fr}
  .spec > div:nth-child(3){border-left:0}
  .spec > div:nth-child(n+3){border-top:1px solid var(--hairline)}
  .support-grid{grid-template-columns:1fr}
}
@media (max-width:768px){
  .pc{display:none}.sp{display:inline}
  .header{height:64px}
  .header__inner{gap:12px}
  .header .btn{padding:0 14px 0 16px;font-size:13px;height:40px;gap:12px}
  .brand{gap:8px;font-size:15px}
  .brand img{width:32px;height:32px}
  .fv__inner{padding-block:28px 48px}
  .tag{font-size:10px;letter-spacing:.18em;gap:10px}
  .tag::before{width:28px}
  .fv__fig{display:none}
  .fv__inner > div:first-child{display:flex;flex-direction:column}
  .fv .btn-row{order:1;margin-top:30px}
  .proofs{order:2;margin-top:34px}
  .fv__lead{margin-top:20px}
  .h1{margin-top:18px}
  .fv::before{right:-30vw;top:-40vw;width:110vw;height:110vw}
  .fv::after{display:none}
  .proofs{max-width:none}
  .proof{padding:18px 4px}
  .proof .cap{font-size:11px}
  .btn-row{flex-direction:column;align-items:stretch}
  .btn-row .btn{flex:0 0 auto;width:100%}
  .lead{text-align:left}
  .conclusion .lead{text-align:center}
  .flow{grid-template-columns:1fr}
  .flow .arr{transform:rotate(45deg);margin:0 auto}
  .compare{grid-template-columns:1fr}
  .compare .arr{transform:rotate(45deg);margin-inline:auto}
  .minis{grid-template-columns:1fr}
  .card{gap:16px}
  .contact-card{grid-template-columns:1fr}
  .doc .table th,.doc .table td{display:block;width:100%}
  .doc .table th{border-bottom:0}
  .footer__inner{flex-direction:column;align-items:flex-start}
}
@media (max-width:480px){
  .spec{grid-template-columns:1fr}
  .spec > div{border-left:0;border-top:1px solid var(--hairline)}
  .spec > div:first-child{border-top:0}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
}
