/* ==========================================================
   CLINIC WEBCARE LP v3 — ma-kes.jp の設計を継承（白基調・紺1色・8px グリッド）
   ========================================================== */
:root{
  --navy-900:#131f38; --navy-800:#1a2b52; --navy-700:#24396b; --navy-600:#2e4a85; --navy-500:#3c5c9e; --navy-100:#e2e8f3; --navy-50:#f2f5fa;
  --n-900:#111827; --n-700:#374151; --n-600:#4b5563; --n-500:#6b7280; --n-400:#9ca3af; --n-300:#d1d5db; --n-200:#e5e7eb; --n-100:#f3f4f6; --n-50:#f9fafb;
  --bg:#fff; --bg-alt:var(--n-50);
  --sans:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic","Noto Sans JP",sans-serif;
  --serif:"Shippori Mincho","Hiragino Mincho ProN","Yu Mincho",serif;
  --latin:"Cormorant Garamond","Shippori Mincho",serif;
  --display:clamp(1.75rem,4.2vw,2.75rem); --h-xl:clamp(1.5rem,3vw,2rem); --h-lg:1.5rem; --h-md:1.25rem; --h-sm:1.125rem;
  --body:1rem; --body-sm:.875rem; --cap:.75rem;
  --s1:.25rem;--s2:.5rem;--s3:.75rem;--s4:1rem;--s5:1.25rem;--s6:1.5rem;--s8:2rem;--s10:2.5rem;--s12:3rem;--s16:4rem;--s20:5rem;--s24:6rem;
  --max:70rem; --narrow:45rem; --hd:4rem; --r:.5rem; --r-lg:.75rem;
  --ease:cubic-bezier(.22,.61,.36,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--n-900);font-family:var(--sans);font-size:var(--body);line-height:1.9;letter-spacing:.01em;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img,svg{max-width:100%;height:auto;display:block}
h1,h2,h3,h4{margin:0;font-weight:600;line-height:1.5;letter-spacing:.02em}
h1,h2,.serif{font-family:var(--serif);font-weight:500}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
button{font:inherit}
.container{max-width:var(--max);margin-inline:auto;padding-inline:var(--s5)}
.narrow{max-width:var(--narrow);margin-inline:auto}
.rv{opacity:0;transform:translateY(12px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.rv.in,.shot .rv{opacity:1;transform:none}
.rv.d1{transition-delay:.08s}.rv.d2{transition-delay:.16s}.rv.d3{transition-delay:.24s}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}}
.tnum{font-variant-numeric:tabular-nums}

/* header */
.site-header{position:fixed;inset:0 0 auto 0;z-index:20;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-bottom:1px solid transparent;transition:border-color .3s}
.site-header.on{border-color:var(--n-200)}
.site-header__inner{height:var(--hd);display:flex;align-items:center;justify-content:space-between;gap:var(--s6)}
.logo img{height:30px;width:auto}
.nav{display:flex;gap:var(--s6);font-size:var(--body-sm)}
.nav a{color:var(--n-700);padding:var(--s2) 0;position:relative}
.nav a::after{content:"";position:absolute;left:0;right:100%;bottom:4px;height:1px;background:var(--navy-700);transition:right .3s var(--ease)}
.nav a:hover::after{right:0}
@media (max-width:860px){.nav{display:none}.logo img{height:22px}}

/* buttons（ma-kes の線が伸びる矢印） */
.btn{position:relative;display:inline-flex;align-items:center;min-height:48px;padding:var(--s3) 3.5rem var(--s3) var(--s6);border-radius:var(--r);font-size:var(--body-sm);font-weight:600;letter-spacing:.04em;line-height:1.3;transition:background .25s,color .25s,transform .15s}
.btn::before{content:"";position:absolute;right:1.5rem;top:50%;width:1.1rem;height:1px;background:currentColor;transition:width .3s var(--ease)}
.btn::after{content:"";position:absolute;right:1.5rem;top:50%;width:6px;height:6px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:translateY(-50%) rotate(45deg);opacity:.9}
.btn:hover::before{width:1.75rem}
.btn:active{transform:scale(.98)}
.btn--primary{background:var(--navy-800);color:#fff}
.btn--primary:hover{background:var(--navy-600)}
.btn--outline{background:var(--n-100);color:var(--n-900)}
.btn--outline:hover{background:var(--navy-50)}
.btn--lg{min-height:52px;padding:var(--s4) 4rem var(--s4) var(--s8);font-size:var(--body)}
.btn--sm{min-height:40px;padding:var(--s2) 2.8rem var(--s2) var(--s4);font-size:var(--cap)}
.btn--sm::before{right:1rem}.btn--sm::after{right:1rem}

/* hero */
.hero{position:relative;height:min(78vh,760px);min-height:460px;margin-top:var(--hd);overflow:hidden;background:var(--n-100)}
.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 55%}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,0) 55%,rgba(255,255,255,.92) 100%),radial-gradient(60% 45% at 50% 46%,rgba(19,31,56,.28),rgba(19,31,56,0) 70%),linear-gradient(0deg,rgba(19,31,56,.10),rgba(19,31,56,.10))}
.hero__tag{position:absolute;z-index:1;left:0;right:0;top:46%;transform:translateY(-50%);text-align:center;color:#fff;font-family:var(--sans);font-weight:300;font-size:clamp(1.1rem,2.2vw,1.6rem);letter-spacing:.22em;line-height:1.9;text-shadow:0 1px 18px rgba(19,31,56,.35);padding-inline:var(--s5)}
@media (max-width:860px){.hero{height:62vh;min-height:400px}}
.shot .hero{height:720px}
@media (max-width:860px){.shot .hero{height:440px}}

/* intro */
.intro{padding-block:var(--s16) var(--s20)}
.eyebrow{font-family:var(--latin);font-size:.9rem;letter-spacing:.24em;color:var(--navy-600);text-transform:uppercase;margin-bottom:var(--s4)}
.intro h1{font-size:var(--display);line-height:1.5;max-width:22em}
.intro h1 span,h2 span{display:inline-block}
.intro__lead{margin-top:var(--s6);color:var(--n-600);max-width:38em;font-size:1.02rem}
.intro__cta{margin-top:var(--s8);display:flex;flex-wrap:wrap;align-items:center;gap:var(--s4) var(--s6)}
.intro__note{font-size:var(--body-sm);color:var(--n-500)}
.intro__meta{margin-top:var(--s8);display:flex;flex-wrap:wrap;gap:var(--s2) var(--s8);font-size:var(--body-sm);color:var(--n-500)}
.intro__meta span{display:inline-flex;align-items:center;gap:var(--s2)}
.intro__meta span::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--navy-500)}

/* stat strip（9領域／96タスク の型） */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s6);margin-top:var(--s16);padding-top:var(--s10);border-top:1px solid var(--n-200)}
@media (max-width:720px){.stats{grid-template-columns:1fr;gap:var(--s8)}}
.stat .v{font-family:var(--latin);font-weight:500;font-size:clamp(2.4rem,4vw,3.4rem);line-height:1;color:var(--navy-800);font-variant-numeric:tabular-nums}
.stat .v i{font-style:normal;font-family:var(--sans);font-size:.85rem;color:var(--n-500);margin-left:var(--s2);font-weight:400}
.stat .l{margin-top:var(--s3);font-weight:600;color:var(--n-900);font-size:var(--body-sm)}
.stat .d{font-size:var(--cap);color:var(--n-500);margin-top:var(--s1);line-height:1.7}

/* sections */
.section{padding-block:var(--s20)}
@media (max-width:860px){.section{padding-block:var(--s16)}}
.section--alt{background:var(--bg-alt)}
.section__head{margin-bottom:var(--s10);max-width:46em}
.section__label{font-family:var(--latin);font-size:.85rem;letter-spacing:.24em;color:var(--navy-600);text-transform:uppercase;margin-bottom:var(--s3)}
.section__title{font-size:var(--h-xl);line-height:1.5}
.section__lead{margin-top:var(--s4);color:var(--n-600)}
.fine{font-size:var(--cap);line-height:1.8;color:var(--n-500)}
.fine p+p{margin-top:var(--s1)}

/* cards */
.grid{display:grid;gap:var(--s5)}
.grid--2{grid-template-columns:repeat(2,1fr)}
.grid--3{grid-template-columns:repeat(3,1fr)}
.grid--4{grid-template-columns:repeat(4,1fr)}
@media (max-width:960px){.grid--4{grid-template-columns:repeat(2,1fr)}.grid--3{grid-template-columns:1fr}}
@media (max-width:640px){.grid--2,.grid--4{grid-template-columns:1fr}}
.card{position:relative;background:#fff;border:1px solid var(--n-200);border-radius:var(--r-lg);padding:var(--s8) var(--s6);display:flex;flex-direction:column;gap:var(--s3);transition:border-color .25s,transform .25s var(--ease)}
.card:hover{border-color:var(--navy-100);transform:translateY(-2px)}
.card--main{border:2px solid var(--navy-800)}
.card__num{font-family:var(--latin);font-size:1.4rem;color:var(--navy-500);line-height:1}
.card__label{font-family:var(--latin);font-size:.78rem;letter-spacing:.22em;color:var(--navy-600);text-transform:uppercase}
.card__title{font-size:var(--h-md);color:var(--n-900)}
.card__desc{font-size:var(--body-sm);color:var(--n-600);line-height:1.85}
.card ul{display:flex;flex-direction:column;gap:var(--s2)}
.card li{position:relative;padding-left:18px;font-size:var(--body-sm);color:var(--n-600);line-height:1.8}
.card li::before{content:"";position:absolute;left:0;top:.8em;width:8px;height:1px;background:var(--navy-500)}
.badge{position:absolute;top:var(--s4);right:var(--s4);font-size:var(--cap);font-weight:600;letter-spacing:.12em;color:var(--navy-800);background:var(--navy-50);padding:2px 10px;border-radius:999px}
.card--ok .card__num,.card--ng .card__num{font-family:var(--sans);font-size:var(--h-md);font-weight:600;color:var(--n-900);display:flex;align-items:center;gap:var(--s3)}
.card--ok .card__num i,.card--ng .card__num i{font-style:normal;width:28px;height:28px;border-radius:50%;border:1.5px solid currentColor;display:inline-flex;align-items:center;justify-content:center;font-size:.9rem}
.card--ok .card__num i{color:#3d7a5a}.card--ng .card__num i{color:#9a4b43}

/* results */
.results{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--s12);align-items:start}
@media (max-width:960px){.results{grid-template-columns:1fr;gap:var(--s8)}}
.fig{background:#fff;border:1px solid var(--n-200);border-radius:var(--r-lg);padding:var(--s6)}
.fig__title{font-weight:600;font-size:var(--body-sm)}
.fig__sub{font-size:var(--cap);color:var(--n-500);margin-bottom:var(--s4)}
.chart{position:relative}.chart svg{width:100%;height:auto;overflow:visible}
.bar{fill:var(--navy-700);transition:opacity .2s}.bar.first{fill:var(--navy-100)}.bar.hot{opacity:.75}
.grid-l{stroke:var(--n-200)}.axis-l{stroke:var(--n-300)}
.ctext{font-family:var(--sans);fill:var(--n-500);font-size:12px}
.cval{font-family:var(--latin);fill:var(--n-900);font-size:16px;font-weight:600}
.tip{position:absolute;pointer-events:none;background:var(--n-900);color:#fff;font-size:.76rem;line-height:1.5;padding:6px 10px;border-radius:6px;transform:translate(-50%,calc(-100% - 10px));white-space:nowrap;opacity:0;transition:opacity .15s}
.tip.on{opacity:1}.tip b{font-family:var(--latin);font-size:.95rem}
details{font-size:var(--body-sm);margin-top:var(--s3)}
summary{cursor:pointer;color:var(--navy-600);font-weight:600;font-size:var(--cap);letter-spacing:.06em}
table{border-collapse:collapse;width:100%;font-size:var(--cap);margin-top:var(--s3)}
th,td{text-align:right;padding:6px 8px;border-bottom:1px solid var(--n-200);font-variant-numeric:tabular-nums}
th:first-child,td:first-child{text-align:left}th{font-weight:500;color:var(--n-500)}
.notes{display:flex;flex-direction:column;gap:var(--s3)}
.notes li{position:relative;padding-left:22px;font-size:var(--body-sm);color:var(--n-600);line-height:1.8}
.notes li::before{content:counter(nt,decimal-leading-zero);counter-increment:nt;position:absolute;left:0;top:0;font-family:var(--latin);color:var(--navy-500);font-size:.9rem}
.notes{counter-reset:nt}
.did{margin-top:var(--s12);display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s4) var(--s8)}
@media (max-width:960px){.did{grid-template-columns:1fr 1fr}}@media (max-width:640px){.did{grid-template-columns:1fr}}
.did li{padding:var(--s4) 0;border-top:1px solid var(--n-200);font-size:var(--body-sm);color:var(--n-600);line-height:1.8}
.did li b{display:block;color:var(--n-900);font-weight:600;margin-bottom:var(--s1)}

/* pair statement */
.pair{display:grid;grid-template-columns:1fr auto 1fr;gap:var(--s6);align-items:center}
@media (max-width:860px){.pair{grid-template-columns:1fr}}
.pair .who{width:120px;height:120px;border-radius:50%;background:var(--navy-800);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;font-size:var(--cap);letter-spacing:.08em;line-height:1.5;margin-inline:auto}
.pair .who b{font-family:var(--serif);font-weight:500;font-size:1rem;display:block}
.pair .out{grid-column:1/-1;margin-top:var(--s4);padding:var(--s5) var(--s6);background:var(--navy-50);border-radius:var(--r-lg);font-size:var(--body-sm);color:var(--n-600);display:flex;flex-wrap:wrap;gap:var(--s2) var(--s6);align-items:baseline}
.pair .out b{font-family:var(--serif);font-weight:500;color:var(--n-900);font-size:1rem}

/* guideline quote */
.quote{margin-top:var(--s10);padding:var(--s6) var(--s8);border-left:2px solid var(--navy-800);background:#fff;border-radius:0 var(--r-lg) var(--r-lg) 0}
.quote h3{font-size:var(--h-sm);margin-bottom:var(--s2)}
.quote p{font-size:var(--body-sm);color:var(--n-600)}
.quote p+p{margin-top:var(--s2)}

/* scope */
.scope{margin-top:var(--s8);display:grid;grid-template-columns:1fr 1fr;gap:var(--s6)}
@media (max-width:860px){.scope{grid-template-columns:1fr}}
.scope div{font-size:var(--body-sm);color:var(--n-600);line-height:1.85;padding:var(--s5) var(--s6);background:var(--n-50);border-radius:var(--r-lg)}
.scope b{display:block;color:var(--n-900);font-size:var(--cap);letter-spacing:.14em;margin-bottom:var(--s1)}

/* steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s5)}
@media (max-width:960px){.steps{grid-template-columns:1fr 1fr}}@media (max-width:560px){.steps{grid-template-columns:1fr}}
.step{background:#fff;border:1px solid var(--n-200);border-radius:var(--r-lg);padding:var(--s6)}
.step__num{font-family:var(--latin);font-size:1.5rem;color:var(--navy-500);line-height:1;margin-bottom:var(--s3)}
.step h3{font-size:var(--h-sm);margin-bottom:var(--s2)}
.step p{font-size:var(--body-sm);color:var(--n-600);line-height:1.8}
.step .t{display:inline-block;margin-top:var(--s3);font-size:var(--cap);color:var(--navy-700);background:var(--navy-50);padding:2px 10px;border-radius:999px}
.plans{margin-top:var(--s12);display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s5)}
@media (max-width:960px){.plans{grid-template-columns:1fr}}
.plan{background:#fff;border:1px solid var(--n-200);border-radius:var(--r-lg);padding:var(--s8) var(--s6);display:flex;flex-direction:column;gap:var(--s3)}
.plan h3{font-size:var(--h-md)}
.plan .for{font-size:var(--cap);color:var(--n-500);letter-spacing:.06em}
.plan ul{display:flex;flex-direction:column;gap:var(--s2);flex:1}
.plan li{position:relative;padding-left:18px;font-size:var(--body-sm);color:var(--n-600)}
.plan li::before{content:"";position:absolute;left:0;top:.8em;width:8px;height:1px;background:var(--navy-500)}
.plan .price{border-top:1px solid var(--n-200);padding-top:var(--s4);font-size:var(--cap);color:var(--n-500)}
.plan .price strong{display:block;color:var(--navy-700);font-size:var(--h-sm);font-weight:600}

/* company */
.company{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:var(--s12);align-items:start}
.portrait{max-width:320px}
@media (max-width:960px){.company{grid-template-columns:1fr;gap:var(--s8)}.portrait{max-width:240px}}
.portrait{aspect-ratio:4/5;background:var(--n-100);border-radius:var(--r-lg);overflow:hidden;position:relative}
.portrait img{width:100%;height:100%;object-fit:cover}
.portrait .ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s2);color:var(--n-400);font-size:var(--cap);letter-spacing:.12em;text-align:center}
.portrait .ph b{font-family:var(--latin);font-size:1.3rem;font-weight:500;letter-spacing:.08em}
.company .qt{font-family:var(--serif);font-size:clamp(1.15rem,1rem + .7vw,1.4rem);line-height:1.9;margin-bottom:var(--s6)}
.company .bio{color:var(--n-600);font-size:var(--body-sm);line-height:1.95;max-width:40em}
.company .bio p+p{margin-top:var(--s3)}
.company .sig{margin-top:var(--s5);display:flex;align-items:baseline;gap:var(--s3)}
.company .sig b{font-family:var(--serif);font-weight:500;font-size:1.05rem}
.company .sig span{font-size:var(--cap);color:var(--n-500);letter-spacing:.08em}
.facts{margin-top:var(--s8);display:grid;grid-template-columns:1fr 1fr;gap:0 var(--s6)}
@media (max-width:560px){.facts{grid-template-columns:1fr}}
.facts div{padding:var(--s3) 0;border-top:1px solid var(--n-200);font-size:var(--body-sm);color:var(--n-600);line-height:1.7}
.facts b{display:block;font-size:var(--cap);letter-spacing:.14em;color:var(--n-500);font-weight:500}

/* CTA + contact */
.cta-section{background:var(--navy-50);border-top:1px solid var(--navy-100);padding-block:var(--s20)}
.cta-section__inner{max-width:var(--narrow);margin-inline:auto;padding-inline:var(--s5);text-align:center}
.cta-section h2{font-size:var(--h-xl);margin-bottom:var(--s3)}
.cta-section p{color:var(--n-600);font-size:var(--body-sm);margin-bottom:var(--s8)}
.contact{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--s12)}
@media (max-width:960px){.contact{grid-template-columns:1fr;gap:var(--s8)}}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:0 var(--s5)}
@media (max-width:560px){.form .row{grid-template-columns:1fr}}
.form label{display:block;font-size:var(--cap);letter-spacing:.1em;color:var(--n-700);font-weight:600;margin:var(--s5) 0 var(--s2)}
.form label em{font-style:normal;color:var(--navy-600);margin-left:var(--s2);font-weight:500}
.form input,.form textarea,.form select{width:100%;font:inherit;font-size:var(--body);padding:12px 14px;border:1px solid var(--n-300);border-radius:var(--r);background:#fff;color:var(--n-900);min-height:48px;transition:border-color .2s,box-shadow .2s}
.form input:focus,.form textarea:focus,.form select:focus{outline:none;border-color:var(--navy-600);box-shadow:0 0 0 3px var(--navy-100)}
.form textarea{min-height:120px;resize:vertical}
.form .btn{margin-top:var(--s6)}
.form .fine{margin-top:var(--s3)}
.direct .blk{padding:var(--s5) 0;border-top:1px solid var(--n-200)}
.direct .blk:last-child{border-bottom:1px solid var(--n-200)}
.direct .k{font-family:var(--latin);font-size:.8rem;letter-spacing:.2em;color:var(--navy-600)}
.direct .big{font-family:var(--latin);font-size:1.9rem;font-weight:500;line-height:1.3;color:var(--n-900)}
.direct .big a:hover{color:var(--navy-600)}
.direct p{font-size:var(--body-sm);color:var(--n-600);margin-top:var(--s1)}

/* footer */
.site-footer{padding-block:var(--s10);border-top:1px solid var(--n-200);font-size:var(--cap);color:var(--n-500)}
.site-footer__inner{display:flex;flex-wrap:wrap;gap:var(--s4) var(--s8);justify-content:space-between;align-items:center}
.site-footer .logo img{height:20px}
.site-footer nav{display:flex;gap:var(--s5)}
.site-footer a:hover{color:var(--n-900)}
.partner{display:inline-flex;align-items:center;gap:var(--s2)}

/* ---------- price table ---------- */
.price-table{background:#fff;border:1px solid var(--n-200);border-radius:var(--r-lg);padding:var(--s4) var(--s6) var(--s5);overflow-x:auto}
.pt{margin-top:0;font-size:var(--body-sm)}
.pt th{font-size:var(--cap);letter-spacing:.1em;color:var(--n-500);font-weight:500;padding:var(--s3) var(--s3);border-bottom:1px solid var(--n-300)}
.pt th:first-child,.pt td:first-child{text-align:left}
.pt td{padding:var(--s4) var(--s3);border-bottom:1px solid var(--n-200);vertical-align:top;text-align:right}
.pt td b{display:block;color:var(--n-900);font-weight:600}
.pt td span{display:block;font-size:var(--cap);color:var(--n-500);line-height:1.6;margin-top:2px}
.pt td.num{font-family:var(--sans);font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--n-900);font-weight:600}
.pt td.num i{display:block;font-style:normal;font-size:var(--cap);color:var(--n-500);font-weight:400}
.pt tr.sum td{background:var(--navy-50);border-bottom:0}
.pt tr.sum td.num{color:var(--navy-800);font-size:1.05rem}
@media (max-width:640px){.pt th:nth-child(3),.pt td:nth-child(3){display:none}.price-table{padding:var(--s3)}}
.card__desc{margin:0}

/* marketing hero: 図表の密度が高いので、文言は左下の余白へ */
.hero--mk img{object-position:center 40%}
.hero--mk::after{background:linear-gradient(180deg,rgba(255,255,255,0) 50%,rgba(255,255,255,.94) 100%),linear-gradient(90deg,rgba(19,31,56,.38) 0%,rgba(19,31,56,.08) 55%,rgba(19,31,56,0) 100%)}
.hero--mk .hero__tag{top:auto;bottom:22%;transform:none;text-align:left;max-width:var(--max);margin-inline:auto;padding-inline:var(--s5);letter-spacing:.18em}

/* mobile: 9 枚のカードを 2 列にして縦の長さを抑える */
@media (max-width:960px) and (min-width:480px){.grid--3{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.pt td{padding:var(--s3) var(--s2)}}
