*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{
--ink:#2a2a2a;--ink-light:#5a5650;--ink-faint:#6b6560;
--paper:#ffffff;--paper-warm:#f5f7f8;
--moss:#136b5e;--moss-light:#15795a;
--gold:#9a5e15;--gold-light:#b06e20;
--white:#fff;--black:#1a1a1a;--border:#e2e8ee;
--serif:'Noto Serif JP',serif;--sans:'Noto Sans JP',sans-serif;
--header-h:72px;--max-w:1080px;
--ease:cubic-bezier(0.4,0,0.2,1);
}
html{font-size:16px}
body{font-family:var(--sans);color:var(--ink);background:var(--paper);line-height:1.8;-webkit-font-smoothing:antialiased;display:flex;flex-direction:column;min-height:100vh}
img{max-width:100%;height:auto;display:block}
a{color:var(--moss);text-decoration:none;transition:color .3s var(--ease)}
a:hover{color:var(--gold)}
.container{max-width:var(--max-w);margin:0 auto;padding:0 24px}
.section{padding:100px 0}
.section:nth-child(even){background:var(--paper-warm)}
.section-heading{font-family:var(--serif);font-size:2rem;font-weight:600;text-align:center;margin-bottom:20px;letter-spacing:.06em;line-height:1.45}
.section-lead{text-align:center;color:var(--ink-light);font-size:1rem;line-height:2;margin-bottom:48px;max-width:480px;margin-left:auto;margin-right:auto}
.section-lead--wide{max-width:560px}
.sample-block{max-width:860px;margin-left:auto;margin-right:auto}
.sample-title{text-align:center;margin-bottom:12px;font-family:var(--serif);font-size:1.1rem;font-weight:600;letter-spacing:.04em;color:var(--ink)}
.sample-location{font-weight:400;font-size:.85rem;color:var(--ink-light)}
.sample-desc{text-align:center;margin-bottom:28px;color:var(--ink-light);font-size:.92rem;line-height:1.8}
.sample-note{margin-top:12px;text-align:center;font-size:.92rem;color:var(--ink-light);line-height:1.8}
.sample-footnote{margin-top:28px;font-size:.85rem;color:var(--stone);text-align:center}
.section-tagline{text-align:center;font-family:var(--serif);font-size:1.15rem;font-weight:500;letter-spacing:.06em;color:var(--ink);margin-bottom:16px}
.change-preview{color:#1a6fd4;font-size:.92em;margin-top:4px;margin-bottom:4px;padding:3px 8px;border-left:3px solid #1a6fd4;display:block}
.change-preview-block{color:#1a6fd4;border:1.5px dashed #1a6fd4;border-radius:6px;padding:8px 12px;margin-top:6px;font-size:.92em}
.section-overview{text-align:center;color:var(--ink-light);font-size:.95rem;line-height:2;margin-top:-28px;margin-bottom:48px;max-width:640px;margin-left:auto;margin-right:auto}

/* Version badge */
.version-badge{position:fixed;bottom:12px;left:12px;z-index:9999;background:#136b5e;color:#fff;padding:6px 14px;border-radius:6px;font-size:.75rem;font-weight:700;letter-spacing:.05em;box-shadow:0 2px 10px rgba(0,0,0,.2);opacity:.6}

/* Header */
.site-header{position:fixed;top:0;left:0;right:0;height:var(--header-h);z-index:1000;border-bottom:1px solid transparent;transition:background .4s,border-color .4s,backdrop-filter .4s}
.site-header.at-top{background:transparent}
/* at-top: ロゴ白 */
.site-header.at-top .logo-text,.site-header.at-top .logo-reading{color:var(--white)}
/* at-top: ピル白透過 */
.site-header.at-top .h-pill{color:rgba(255,255,255,.8);border-color:rgba(255,255,255,.35)}
.site-header.at-top .h-pill.active{background:rgba(255,255,255,.22);border-color:rgba(255,255,255,.65);color:#fff}
.site-header.at-top .h-pill:hover:not(.active){border-color:rgba(255,255,255,.7);color:#fff;background:rgba(255,255,255,.1)}
.site-header.at-top .h-pill-ext{color:rgba(255,255,255,.85);border-color:rgba(255,255,255,.4)}
.site-header.at-top .h-pill-ext:hover{background:rgba(255,255,255,.15);color:#fff;border-color:rgba(255,255,255,.7)}
/* at-top: CTA白透過 */
.site-header.at-top .header-cta-btn{background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.45);color:#fff!important}
.site-header.at-top .header-cta-btn:hover{background:rgba(255,255,255,.28)}
.site-header.scrolled{background:rgba(250,248,245,.92);backdrop-filter:saturate(120%) blur(14px);border-bottom-color:var(--border)}
.site-header.scrolled .logo-text{color:var(--ink)}

/* Hero video */
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.hero-fallback{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.header-inner{max-width:1200px;margin:0 auto;padding:0 24px;height:100%;display:flex;align-items:center;justify-content:space-between}
.logo-text{font-family:var(--serif);font-size:1.4rem;font-weight:700;color:var(--ink);letter-spacing:.15em}
.logo-reading{font-size:.65rem;color:var(--ink-faint);letter-spacing:.2em;display:block}

/* Hero */
.hero{position:relative;height:100vh;min-height:600px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:linear-gradient(135deg,#0a3a35 0%,#0d2825 50%,#0a2530 100%)}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,.18)0%,rgba(0,0,0,.52)45%,rgba(0,0,0,.62)100%);z-index:2}
.hero-overlay::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 70% 55% at 50% 52%,rgba(0,0,0,.32)0%,rgba(0,0,0,0)100%)}
.hero-content{position:relative;z-index:3;text-align:center;padding:0 24px}
.hero-tagline{display:inline-block;font-size:.72rem;font-weight:300;color:rgba(255,255,255,.95);background:none;border:none;border-radius:0;padding:0;margin-bottom:12px;letter-spacing:.22em;font-weight:400;opacity:0;transform:translateY(12px);animation:heroFadeUp .8s .1s ease forwards}
.hero-audience-banner{font-size:.88rem;color:rgba(255,255,255,.82);line-height:1.9;margin-bottom:24px;padding:14px 20px;border:1px solid rgba(255,255,255,.18);border-radius:8px;background:rgba(255,255,255,.07);max-width:560px;margin-left:auto;margin-right:auto;text-align:left}
.hero-title{font-family:var(--serif);font-size:3rem;font-weight:700;color:var(--white);letter-spacing:.12em;line-height:1.6;margin-bottom:24px}
.hero-subtitle{font-size:1.05rem;font-weight:300;color:rgba(255,255,255,.88);line-height:2;margin-bottom:40px}
.hero-actions{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.btn{display:inline-block;padding:14px 32px;font-family:var(--sans);font-size:.95rem;font-weight:500;border-radius:8px;border:none;cursor:pointer;transition:all .3s var(--ease);text-align:center;text-decoration:none}
.btn-primary{background:var(--moss);color:var(--white)}
.btn-primary:hover{background:var(--moss-light);color:var(--white);transform:translateY(-2px);box-shadow:0 6px 20px rgba(19,107,94,0.25),0 3px 8px rgba(0,0,0,0.06)}
.btn-hero-cta{background:#fff;color:#136b5e;padding:13px 36px;border-radius:100px;font-size:1rem;font-weight:500;letter-spacing:.03em;border:none;transition:all .3s var(--ease)}
.btn-hero-cta:hover{background:rgba(255,255,255,.88);transform:translateY(-1px)}
.btn-ghost{background:transparent;color:var(--white);border:1px solid rgba(255,255,255,.5)}
.btn-ghost:hover{background:rgba(255,255,255,.12);color:var(--white)}
.btn-lg{padding:18px 48px;font-size:1.05rem}

/* Tab switcher */
.tab-switcher{display:flex;justify-content:center;gap:0;margin-bottom:48px}
.tab-btn{padding:14px 36px;font-family:var(--sans);font-size:.95rem;font-weight:500;border:1px solid var(--border);background:var(--white);color:var(--ink-light);cursor:pointer;transition:all .25s var(--ease)}
.tab-btn:first-child{border-radius:8px 0 0 8px}
.tab-btn:last-child{border-radius:0 8px 8px 0}
.tab-btn.active{background:var(--moss);color:var(--white);border-color:var(--moss)}
.tab-content{display:none}
.tab-content.active{display:block}

/* Pain */
.pain-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:32px}
.pain-card{text-align:center;padding:40px 24px;background:var(--white);border-radius:16px;border:1px solid var(--border);box-shadow:0 1px 4px rgba(0,0,0,0.02),0 4px 12px rgba(0,0,0,0.02)}
.pain-icon{font-size:2.4rem;margin-bottom:16px;color:#136b5e}.pain-icon svg{width:40px;height:40px;stroke:#136b5e}
.pain-card h3{font-family:var(--serif);font-size:1.05rem;margin-bottom:12px;line-height:1.6}
.pain-card p{font-size:.9rem;color:var(--ink-light);line-height:1.8}

/* Features */
.feature-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:32px;margin-bottom:48px}
.feature-card{padding:36px;background:var(--white);border-radius:16px;border:1px solid var(--border);transition:box-shadow .3s,transform .3s;box-shadow:0 1px 4px rgba(0,0,0,0.02),0 4px 12px rgba(0,0,0,0.02)}
.feature-card:hover{box-shadow:0 8px 24px rgba(19,107,94,0.08),0 4px 12px rgba(0,0,0,0.04);transform:translateY(-1px)}
.feature-q{font-family:var(--serif);font-size:1.05rem;font-weight:600;margin-bottom:12px;color:var(--ink);line-height:1.7}
.feature-a{font-size:.9rem;color:var(--ink-light);line-height:1.9}

/* Evidence */
.evidence-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:32px;margin-bottom:32px}
.evidence-card{text-align:center;padding:40px 24px;background:var(--white);border-radius:16px;border:1px solid var(--border);box-shadow:0 1px 4px rgba(0,0,0,0.02),0 4px 12px rgba(0,0,0,0.02)}
.evidence-stat{font-family:var(--serif);font-size:1.6rem;font-weight:700;color:var(--moss);margin-bottom:16px}
.evidence-card h3{font-family:var(--serif);font-size:1rem;margin-bottom:12px}
.evidence-card p{font-size:.85rem;color:var(--ink-light);line-height:1.8}
.evidence-source{text-align:center;font-size:.9rem;color:var(--ink-faint)}
.ev-audience-tabs{display:flex;justify-content:center;gap:0;margin:24px 0 32px}

/* FAQ */
.faq-list{max-width:720px;margin:0 auto}
.faq-item{border-bottom:1px solid var(--border)}
.faq-item summary{padding:20px 0;font-family:var(--serif);font-size:1rem;font-weight:600;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center}
.faq-item summary::after{content:"+";font-size:1.4rem;font-weight:300;color:var(--ink-faint);transition:transform .3s}
.faq-item[open] summary::after{transform:rotate(45deg)}
.faq-item p{padding:0 0 20px;font-size:.9rem;color:var(--ink-light);line-height:1.9}

/* Contact */
.section.section-contact{background:var(--moss);color:var(--white)}
.section.section-contact .section-heading{color:var(--white)}
.section.section-contact .section-lead{color:rgba(255,255,255,.75)}
.cta-offer{text-align:center;color:rgba(255,255,255,.85);font-size:1.05rem;font-weight:600;letter-spacing:.08em;margin-bottom:20px}
.cta-reassure{text-align:center;color:rgba(255,255,255,.6);font-size:.88rem;line-height:1.8;margin-bottom:40px}
.contact-form-wrap{max-width:520px;margin:2rem auto 0;background:var(--white);border-radius:16px;padding:2.5rem 2rem;box-shadow:0 8px 32px rgba(0,0,0,.12)}
.form-group{margin-bottom:1.25rem}
.form-label{display:block;font-size:.875rem;font-weight:500;color:var(--ink);margin-bottom:6px;font-family:var(--sans)}
.form-req{color:#c0392b;font-weight:600}
.form-input{display:block;width:100%;padding:11px 14px;font-size:.95rem;font-family:var(--sans);color:var(--ink);background:var(--paper-warm);border:1.5px solid var(--border);border-radius:8px;transition:border-color .25s var(--ease),box-shadow .25s var(--ease);outline:none;-webkit-appearance:none}
.form-input:focus{border-color:var(--moss);box-shadow:0 0 0 3px rgba(19,107,94,.12)}
.form-select{cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23555' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px}
.form-textarea{resize:vertical;min-height:100px}
.form-submit{display:block;width:100%;padding:14px;font-family:var(--sans);font-size:1rem;font-weight:500;color:var(--white);background:var(--moss);border:none;border-radius:8px;cursor:pointer;transition:all .3s var(--ease);margin-top:.5rem;letter-spacing:.03em}
.form-submit:hover{background:var(--moss-light);transform:translateY(-1px);box-shadow:0 4px 20px rgba(19,107,94,.3)}
.form-submit:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}
.form-operator-link{text-align:center;margin-top:12px;font-size:.78rem}
.contact-success{text-align:center;padding:2rem 0}
.contact-success svg{margin:0 auto 1rem}
.success-heading{font-family:var(--serif);font-size:1.25rem;font-weight:600;color:var(--ink);margin-bottom:.5rem}
.success-text{color:var(--ink-light);font-size:.95rem;line-height:1.8}
@media(max-width:768px){.contact-form-wrap{padding:1.75rem 1.25rem;margin-top:1.5rem}}

/* Flow */
.flow-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-bottom:40px}
.flow-step{text-align:center;padding:32px 16px}
.step-number{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background:var(--moss);color:var(--white);font-family:var(--serif);font-size:1.2rem;font-weight:600;margin-bottom:16px}
.flow-step h3{font-family:var(--serif);font-size:1rem;margin-bottom:10px}
.flow-step p{font-size:.85rem;color:var(--ink-light);line-height:1.8}
.step-icon{display:block;width:80px;height:80px;margin:0 auto 12px}
.step-icon .si-bg{fill:#e8f5f2}
.step-icon .si-s{fill:none;stroke:var(--moss);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.step-icon .si-f{fill:var(--moss)}
.step-icon .si-scr{fill:#b2e0d8;stroke:var(--moss);stroke-width:0.5}
.flow-note{text-align:center;padding:20px;background:var(--moss);color:var(--white);border-radius:8px;font-size:1.1rem}

/* Pricing */
.pricing-card{max-width:520px;margin:0 auto;background:var(--white);border-radius:16px;border:1px solid var(--border);overflow:hidden;text-align:center;box-shadow:0 8px 30px rgba(19,107,94,0.08),0 4px 14px rgba(0,0,0,0.04)}
.pricing-header{padding:40px 32px 32px;background:linear-gradient(135deg,#136b5e 0%,#15795a 100%);color:var(--white)}
.pricing-badge{display:inline-block;padding:4px 16px;background:var(--gold);color:var(--white);font-size:.8rem;font-weight:700;border-radius:20px;margin-bottom:16px;letter-spacing:.1em}
.pricing-amount{display:flex;align-items:baseline;justify-content:center;gap:4px}
.pricing-currency{font-size:1rem;opacity:.8}
.pricing-number{font-family:var(--serif);font-size:3rem;font-weight:700;letter-spacing:.03em}
.pricing-unit{font-size:1rem;opacity:.8}
.pricing-unit small{font-size:.8rem}
.pricing-includes{padding:32px;text-align:left}
.pricing-includes h4{font-size:.85rem;color:var(--ink-faint);margin-bottom:16px;letter-spacing:.1em}
.pricing-includes ul{list-style:none}
.pricing-includes li{padding:8px 0;font-size:.9rem;border-bottom:1px solid var(--border)}
.pricing-includes li::before{content:"✓ ";color:var(--moss);font-weight:700}
.pricing-discount{margin:16px 32px;padding:14px 16px;background:#eaf4f1;border-radius:8px;text-align:center}
.pricing-discount p{font-size:.95rem;color:#0f6e56;line-height:1.8;margin:0}
.pricing-discount small{color:rgba(15,110,86,0.7);font-size:.8rem}
.pricing-note{padding:16px 32px;font-size:.8rem;color:var(--ink-faint)}
.pricing-card .btn{margin:0 32px 32px;width:calc(100% - 64px)}

/* PC hero text sizing */
@media(min-width:769px){.hero-tagline{font-size:.8rem}}
@media(min-width:769px){.h-pill{border-width:2.5px}.site-header.at-top .h-pill{border-color:rgba(255,255,255,.55)}}

/* Responsive */
@media(max-width:768px){
.section{padding:64px 0}
.hero-title{font-size:1.8rem}
.pain-grid,.evidence-grid{grid-template-columns:1fr}
.feature-grid{grid-template-columns:1fr}
.flow-steps{grid-template-columns:1fr 1fr}
.section-heading{font-size:1.5rem}
.tab-btn{padding:10px 10px;font-size:.75rem}
.tab-switcher{flex-wrap:nowrap}
.tab-switcher .tab-btn{flex:1;padding:10px 4px;text-align:center}
.ev-audience-tabs{flex-wrap:nowrap}
.ev-audience-tabs .tab-btn{flex:1;padding:10px 4px;text-align:center}
}
@media(max-width:480px){
.flow-steps{grid-template-columns:1fr}
.hero-actions{flex-direction:column;align-items:center}
.btn-lg{width:100%}
}

/* Map */
.map-wrapper{max-width:640px;margin:0 auto;position:relative;overflow:visible}
.map-loading{text-align:center;padding:80px 0;color:var(--ink-faint);font-size:.9rem}
.map-label{transition:opacity .2s}
.map-video-popup{display:none;position:absolute;z-index:100;width:200px;border-radius:6px;overflow:hidden;box-shadow:0 6px 24px rgba(0,0,0,.25);pointer-events:none;border:2px solid #136b5e}
.map-video-popup video{width:100%;height:auto;display:block}
.map-legend{display:none}
.legend-item{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--ink-light)}
.legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block}
.map-note{text-align:center;margin-top:16px;font-size:.9rem;color:var(--ink-faint)}
.map-source{text-align:center;margin-top:8px;font-size:.7rem;color:var(--ink-faint)}

/* ── Scroll Reveal & Hero Stagger (motion addition) ── */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .75s ease,transform .75s ease}
.reveal.visible{opacity:1;transform:translateY(0)}
.reveal-d1{transition-delay:.1s}
.reveal-d2{transition-delay:.2s}
.reveal-d3{transition-delay:.3s}
.reveal-d4{transition-delay:.4s}
.reveal-d5{transition-delay:.5s}
.reveal-d6{transition-delay:.6s}

/* Hero stagger */
@keyframes heroFadeUp{to{opacity:1;transform:translateY(0)}}
@keyframes heroScrollBounce{0%,100%{transform:translateX(-50%) translateY(0)}55%{transform:translateX(-50%) translateY(7px)}}
.hero-scroll-indicator{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);z-index:3;color:rgba(255,255,255,.6);text-decoration:none;opacity:0;animation:heroFadeUp .8s 1.6s ease forwards;transition:color .2s}
.hero-scroll-indicator:hover{color:rgba(255,255,255,.95)}
.hero-scroll-indicator svg{display:block;animation:heroScrollBounce 2s 2.4s ease-in-out infinite}
.hero-title{opacity:0;transform:translateY(20px);animation:heroFadeUp .9s .3s ease forwards}
.hero-subtitle{opacity:0;transform:translateY(16px);animation:heroFadeUp .9s .65s ease forwards}
.hero-actions{opacity:0;transform:translateY(12px);animation:heroFadeUp .8s 1s ease forwards}

/* ---- 比較表 ---- */
.comp-table-outer{max-width:860px;margin-left:auto;margin-right:auto}
.comp-table-caption{font-family:var(--serif);font-size:1.05rem;font-weight:600;text-align:center;letter-spacing:.08em;margin-bottom:24px;color:var(--ink)}
.comp-table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.comp-table{width:100%;border-collapse:collapse;font-family:var(--sans)}
.comp-th{padding:12px 16px;font-size:.78rem;font-weight:500;letter-spacing:.05em;color:var(--ink-light);text-align:center;border-bottom:1px solid var(--border);white-space:nowrap}
.comp-th-label{padding:12px 0;font-family:var(--serif);font-size:.8rem;font-weight:600;color:var(--ink);border-bottom:1px solid var(--border);min-width:110px}
.comp-th-ours{font-family:var(--serif);font-size:.85rem;font-weight:700;color:var(--moss);background:#eaf4f1;border-bottom:1px solid rgba(19,107,94,.2);position:relative;padding-top:26px}
.comp-ours-badge{position:absolute;top:0;left:50%;transform:translateX(-50%);background:var(--moss);color:#fff;font-size:.65rem;font-weight:500;letter-spacing:.06em;padding:3px 12px;border-radius:0 0 5px 5px;white-space:nowrap;font-family:var(--sans)}
.comp-table tbody tr{border-bottom:1px solid var(--border)}
.comp-table tbody tr:last-child{border-bottom:none}
.comp-table tbody tr:hover{background:transparent}
.comp-table{cursor:default}
.comp-td{padding:14px 16px;font-size:.82rem;color:var(--ink-light);text-align:center;vertical-align:top;line-height:1.5}
.comp-td-label{padding:14px 0;font-family:var(--serif);font-size:.85rem;font-weight:600;color:var(--ink);text-align:left;vertical-align:middle}
.comp-td-ours{background:#eaf4f1;color:var(--ink)}
.comp-good{display:block;color:var(--moss);font-size:.95rem;font-weight:700;line-height:1.8}
.comp-ok{display:block;color:#888;font-size:.9rem;line-height:1.8}
.comp-bad{display:block;color:#aab4bc;font-size:.88rem;line-height:1.8}
.comp-ng{display:block;color:#c8d0d6;font-size:.88rem;line-height:1.8}
.comp-neutral{display:block;color:#bbb;font-size:.88rem;line-height:1.8}
.comp-sub{display:block;font-size:.73rem;color:var(--ink-faint);margin-top:1px;line-height:1.5;font-weight:400}
.comp-td-ours .comp-sub{color:rgba(19,107,94,.7)}
.comp-td-ours .comp-good{font-size:1rem}
.comp-footnote{margin-top:14px;font-size:.72rem;color:var(--ink-faint);line-height:1.9;padding-left:10px;border-left:2px solid var(--border)}
@media(max-width:600px){
  .comp-th,.comp-td,.comp-td-ours{padding:10px 10px}
  .comp-td-label,.comp-th-label{min-width:84px;padding-right:6px;font-size:.8rem}
  .comp-sub{font-size:.7rem}
}

/* ---- 本物宣言セクション ---- */
.authentic-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:8px}
.authentic-card{padding:36px 28px;background:var(--white);border-radius:12px;border:1px solid var(--border)}
.authentic-icon{font-family:var(--serif);font-size:1.5rem;font-weight:700;color:var(--moss);margin-bottom:16px;letter-spacing:.1em}
.authentic-card h3{font-family:var(--serif);font-size:1rem;font-weight:600;margin-bottom:12px;line-height:1.7}
.authentic-card p{font-size:.88rem;color:var(--ink-light);line-height:1.9}
@media(max-width:768px){
  .authentic-grid{grid-template-columns:1fr;gap:16px}
  .authentic-card{padding:28px 20px}
}

/* ---- 料金セクション追加要素 ---- */
.pricing-daily{font-size:.82rem;color:var(--moss);margin-top:8px;letter-spacing:.03em}
.pricing-zero{margin:16px 32px;padding:14px 16px;background:#eaf4f1;border-radius:8px;text-align:center}
.pricing-zero p{font-size:.85rem;color:#0f6e56;line-height:1.8;margin:0}
.pricing-trial{margin:0 32px 16px;text-align:center}
.pricing-trial p{font-size:.82rem;color:var(--ink-light);line-height:1.8;margin:0}

/* ---- 導入想像図セクション ---- */
.intro-image-tabs{max-width:860px;margin:0 auto}
.intro-image-tabs .tab-buttons{display:flex;justify-content:center;margin-bottom:32px}
.intro-tab-content{display:none}
.intro-tab-content.active{display:block}
.intro-image-figure{margin:0;text-align:center}
.intro-image-img{width:100%;max-width:860px;border-radius:12px;box-shadow:0 8px 40px rgba(0,0,0,.12);display:block;margin:0 auto}
.intro-image-caption{display:block;margin-top:20px;font-size:.88rem;color:var(--ink-light);line-height:1.9;letter-spacing:.04em}
@media(max-width:768px){
  .intro-image-img{border-radius:8px}
  .intro-image-caption{font-size:.82rem;margin-top:14px}
}
.intro-image-note{margin-top:10px;font-size:.72rem;color:var(--ink-light);opacity:.45;text-align:center;line-height:1.7}

/* ===== MOBILE TEXT LEFT-ALIGN ===== */
/* Headings / icons / stat numbers / CTAs stay centered. Body text goes left. */
@media(max-width:768px){
  /* LP global */
  .section-lead,.section-overview{text-align:left}
  .pain-card{text-align:left}
  .pain-card .pain-icon{text-align:center}
  .pain-card h3{text-align:center}
  .evidence-card{text-align:left}
  .evidence-card .evidence-stat{text-align:center}
  .evidence-card h3{text-align:center}
  .intro-image-caption{text-align:left}
  .intro-image-note{text-align:left}
  .flow-step{text-align:left}
  .flow-step .step-number{display:flex;width:48px;margin-left:auto;margin-right:auto}
  .flow-step h3{text-align:center}
  .flow-note{text-align:left}
  /* Pricing */
  .pricing-zero,.pricing-trial{text-align:left}
  /* Evidence page shared — stat cards stay centered (short labels) */
  /* Map */
  .map-note,.map-source{text-align:left}
}

/* ===== MOBILE SCROLL REDUCTION ===== */

/* 比較表: モバイルで左列sticky */
@media(max-width:768px){
  .comp-th-label{position:sticky;left:0;z-index:3;background:var(--paper-warm)}
  .comp-td-label{position:sticky;left:0;z-index:2;background:var(--paper-warm)}
  .comp-table-scroll{border:1px solid var(--border);border-radius:8px}
}

/* Feature cards アコーディオン (mobile) */
@media(max-width:768px){
  .feature-card{cursor:pointer;-webkit-tap-highlight-color:transparent}
  .feature-card .feature-a{max-height:0;overflow:hidden;transition:max-height .38s ease,margin-top .38s ease;margin-top:0}
  .feature-card.fc-open .feature-a{max-height:800px;margin-top:10px}
  .feature-q-toggle::after{content:" ＋";font-size:1rem;font-weight:300;color:var(--moss);float:right}
  .feature-card.fc-open .feature-q-toggle::after{content:" －"}
}

/* 本物宣言カード: 本文3行clamp (mobile) */
@media(max-width:768px){
  .authentic-card .auth-text{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
  .authentic-card.auth-expanded .auth-text{display:block;overflow:visible;-webkit-line-clamp:unset}
  .btn-auth-expand{display:inline-block;margin-top:10px;font-size:.8rem;color:var(--moss);background:none;border:none;padding:0;cursor:pointer;font-family:var(--sans)}
}
@media(min-width:769px){.btn-auth-expand{display:none}}

/* 「もっと見る」ボタン */
.btn-show-more{display:block;margin:20px auto 0;padding:10px 32px;font-size:.88rem;font-family:var(--sans);color:var(--moss);background:transparent;border:1px solid var(--moss);border-radius:6px;cursor:pointer;transition:all .25s var(--ease);letter-spacing:.04em}
.btn-show-more:hover{background:var(--moss);color:#fff}
@media(min-width:769px){.btn-show-more{display:none!important}}

/* ペインカード: 4枚目以降hidden (mobile) */
@media(max-width:768px){
  .pain-card-extra{display:none}
  .pain-card-extra.shown{display:block}
}

/* エビデンスカード: 4枚目以降hidden (mobile) */
@media(max-width:768px){
  /* evidence-card-extra: タブ切替方式に移行のため廃止 */
}

/* ===== SECTION NAVIGATION ===== */
/* 共通: セクション定義 */
/* ===== HEADER PILLS — 常時表示ナビ ===== */

/* ピル群コンテナ (header-inner の flex item・常時表示) */
.h-pill-wrap{
  display:flex;
  flex:1;
  min-width:0;
  overflow-x:auto;
  overflow-y:hidden;
  scrollbar-width:none;
  padding:0 4px 0 4px;
  gap:6px;
  align-items:center;
  -webkit-overflow-scrolling:touch;
  position:relative;
  -webkit-mask-image:linear-gradient(to right,transparent 0%,black 24px,black calc(100% - 24px),transparent 100%);
  mask-image:linear-gradient(to right,transparent 0%,black 24px,black calc(100% - 24px),transparent 100%);
}
/* ピル列右端の › ボタン */
.h-pill-scroll-btn{
  flex-shrink:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:26px;
  height:26px;
  border-radius:50%;
  border:1px solid var(--border);
  background:transparent;
  color:var(--ink-light);
  font-size:1.1rem;
  line-height:1;
  cursor:pointer;
  padding:0;
  transition:opacity .2s, background .2s, color .2s;
}
.h-pill-scroll-btn:hover{background:var(--moss);color:#fff;border-color:var(--moss)}
.h-pill-scroll-btn.hidden{opacity:0;pointer-events:none}
/* at-top (ヒーロー上) でのボタン色 */
.site-header.at-top .h-pill-scroll-btn{color:rgba(255,255,255,.8);border-color:rgba(255,255,255,.35)}
.site-header.at-top .h-pill-scroll-btn:hover{background:rgba(255,255,255,.2);color:#fff}
.h-pill-wrap::-webkit-scrollbar{display:none}

/* ページ内スクロールピル */
.h-pill{
  display:inline-flex;
  align-items:center;
  padding:5px 12px;
  border-radius:20px;
  font-size:.78rem;
  font-weight:500;
  font-family:var(--sans);
  color:var(--ink-light);
  background:transparent;
  border:1px solid var(--border);
  cursor:pointer;
  transition:all .2s var(--ease);
  white-space:nowrap;
  flex-shrink:0;
  -webkit-tap-highlight-color:transparent;
  letter-spacing:.03em;
  text-decoration:none;
}
.h-pill.active{background:var(--moss);color:#fff;border-color:var(--moss)}
.h-pill:hover:not(.active){border-color:var(--moss);color:var(--moss)}

/* 別ページリンクピル: Evidence / Simulator */
.h-pill-ext{
  color:var(--moss);
  border-color:var(--moss);
  gap:3px;
  font-style:italic;
}
.h-pill-ext:hover{background:var(--moss);color:#fff}
.h-pill-ext svg{width:10px;height:10px;flex-shrink:0}

/* 右端CTAボタン (常時表示) */
.header-cta-btn{
  display:inline-flex;
  flex-shrink:0;
  align-items:center;
  padding:7px 14px;
  border-radius:6px;
  background:var(--moss);
  color:#fff!important;
  font-size:.8rem;
  font-weight:600;
  white-space:nowrap;
  text-decoration:none;
  letter-spacing:.03em;
  transition:background .2s, border-color .2s;
  border:1px solid transparent;
}
.header-cta-btn:hover{background:#0f5a4e}
.cta-short{display:none}
@media(max-width:768px){
  .header-cta-btn{padding:6px 10px;font-size:.75rem}
  .cta-full{display:none}
  .cta-short{display:inline}
}

/* ---- 比較表 モバイル修正 (sticky廃止・はみ出し封鎖) ---- */
@media(max-width:768px){
  .comp-table-outer{
    margin-left:-24px;margin-right:-24px; /* container padding を突き破って全幅に */
  }
  .comp-table-scroll{
    overflow-x:scroll;
    -webkit-overflow-scrolling:touch;
    border-radius:0;
    border-left:none;border-right:none;
    /* はみ出し封鎖 */
    max-width:100vw;
  }
  /* sticky廃止: Safariでoverflow-x:auto内のstickyは動作保証外 */
  .comp-th-label{position:static!important}
  .comp-td-label{position:static!important}
  /* 列幅を小さくして横スクロール量を減らす */
  .comp-th-label{min-width:72px!important;font-size:.75rem}
  .comp-td-label{min-width:72px!important;font-size:.75rem}
  .comp-th{min-width:90px;font-size:.72rem;padding:8px 8px}
  .comp-td{padding:10px 8px;font-size:.75rem}
  .comp-sub{font-size:.68rem}
  /* スクロールヒント: 右端に薄いグラデーション */
  .comp-table-scroll{
    -webkit-mask-image:linear-gradient(to right,black 85%,transparent 100%);
    mask-image:linear-gradient(to right,black 85%,transparent 100%);
  }
}

/* ---- 比較表 モバイル v2: table-layout固定で確実に幅制御 ---- */
@media(max-width:768px){
  .comp-table-outer{
    margin-left:-24px;
    margin-right:-24px;
  }
  .comp-table-scroll{
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    border-left:none;
    border-right:none;
    border-radius:0;
  }
  /* table-layout:fixedで比率コントロール。min-widthでiPhoneはスクロール、iPadは全幅 */
  .comp-table{
    table-layout:fixed;
    width:100%;
    min-width:560px;
  }
  .comp-th-label,.comp-td-label{ width:76px; font-size:.72rem; padding:10px 4px 10px 8px }
  .comp-th-ours,.comp-td-ours  { width:110px }
  .comp-th,.comp-td            { width:118px; font-size:.72rem; padding:10px 6px }
  .comp-sub{ font-size:.66rem; line-height:1.45 }
  .comp-good,.comp-ok,.comp-bad,.comp-ng,.comp-neutral{ font-size:.82rem }
  .comp-th-label{ position:static!important }
  .comp-td-label{ position:static!important }
}
/* スクロールヒントマスク: iPhoneなど狭い画面のみ */
@media(max-width:600px){
  .comp-table-scroll{
    -webkit-mask-image:linear-gradient(to right,#000 80%,transparent 100%);
    mask-image:linear-gradient(to right,#000 80%,transparent 100%);
  }
}

/* ---- 地図 モバイル: container padding を突き破って全幅に ---- */
@media(max-width:768px){
  #map .container{padding-left:0;padding-right:0}
  #map .section-heading,#map .section-lead,#map .map-note,#map .map-source{
    padding-left:24px;padding-right:24px
  }
  .map-wrapper{max-width:100%;border-radius:0}
}

/* ---- テキストリンクボタン（サブ誘導用） ---- */
.text-link-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 13px;font-size:.8rem;font-weight:500;border:1px solid var(--moss);color:var(--moss);border-radius:6px;background:rgba(19,107,94,.06);cursor:pointer;text-decoration:none;transition:all .2s var(--ease)}
.text-link-btn:hover{background:var(--moss);color:var(--white)}

/* ---- ページ下部ナビ（グローバル） ---- */
.ev-bottom-nav{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-top:48px;padding-top:40px;border-top:1px solid var(--border)}
.ev-bottom-nav a{display:inline-flex;align-items:center;gap:8px;padding:14px 28px;font-size:.95rem;font-weight:500;border-radius:8px;border:1px solid var(--border);color:var(--ink-light);background:var(--white);transition:all .25s var(--ease);text-decoration:none}
.ev-bottom-nav a:hover{color:var(--moss);border-color:var(--moss);background:var(--paper-warm);transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.06)}

/* ---- エビデンスページ 論文カード ---- */
.ev-study{background:var(--white);border:1px solid var(--border);border-radius:16px;padding:36px;margin-bottom:32px;margin-top:32px;box-shadow:0 1px 4px rgba(0,0,0,0.02),0 4px 12px rgba(0,0,0,0.02)}
.ev-study--rct{border-left:3px solid var(--moss);padding-left:20px}
.ev-study-note{background:#f8f5f0;border-left:3px solid var(--ink-light,#aaa);padding:12px 16px;margin-top:16px;font-size:.85rem;color:var(--ink-light,#666);line-height:1.7}
.ev-study-badge{display:inline-block;padding:3px 12px;font-size:.75rem;font-weight:700;letter-spacing:.08em;border-radius:4px;margin-bottom:12px}
.ev-badge-clinical{background:#e8f5f1;color:#136b5e}
.ev-badge-meta{background:#fef3e2;color:#9a5e15}
.ev-badge-neuro{background:#eef0f8;color:#4a5a8a}
.ev-badge-cost{background:#fce8e8;color:#8a4a4a}
.ev-badge-care{background:#f0e8f5;color:#6a4a8a}
.ev-study h3{font-family:var(--serif);font-size:1.15rem;font-weight:600;margin-bottom:8px;line-height:1.6}
.ev-study-meta{font-size:.8rem;color:var(--ink-faint);margin-bottom:16px;line-height:1.6}
.ev-study-body{font-size:.9rem;color:var(--ink-light);line-height:1.9;margin-bottom:16px}
.ev-study-result{background:var(--paper-warm);border-radius:8px;padding:20px 24px;margin-bottom:16px}
.ev-study-result p{font-size:.9rem;line-height:1.8;margin:0}
.ev-study-result strong{color:var(--ink)}
.ev-study-link{font-size:.8rem;color:var(--moss)}
.ev-study-link:hover{color:var(--gold)}

/* Site Footer */
.site-footer{background:var(--ink);padding:20px 0;margin-top:auto}
.site-footer-inner{display:flex;align-items:center;justify-content:space-between;font-size:.78rem;color:rgba(255,255,255,.5)}
.site-footer-copy{margin:0}
.site-footer-links{display:flex;gap:20px}
.site-footer-link{color:rgba(255,255,255,.5);text-decoration:none;transition:color .2s}
.site-footer-link:hover{color:rgba(255,255,255,.8)}

/* Privacy Page */
.section-privacy{padding:120px 0 80px}
.privacy-title{font-family:var(--serif);font-size:1.6rem;font-weight:700;margin-bottom:4px}
.privacy-updated{font-size:.8rem;color:var(--ink-faint);margin-bottom:48px}
.privacy-body h2{font-size:1rem;font-weight:700;margin:32px 0 12px;color:var(--ink)}
.privacy-body p{font-size:.9rem;line-height:1.9;color:var(--ink-light);margin-bottom:12px}
.privacy-table-wrap{overflow-x:auto;margin:16px 0}
.privacy-table{width:100%;border-collapse:collapse;font-size:.85rem}
.privacy-table th{background:var(--paper-warm);padding:10px 16px;text-align:left;font-weight:600;border-bottom:1px solid #ddd}
.privacy-table td{padding:10px 16px;border-bottom:1px solid #eee}
.privacy-list{font-size:.9rem;line-height:1.9;color:var(--ink-light);padding-left:1.4em;margin:8px 0 16px}
.privacy-link{color:var(--moss);text-decoration:underline;text-underline-offset:2px}
.privacy-link:hover{color:var(--gold)}
.privacy-email-img{display:inline-block;height:1.1em;width:auto;vertical-align:baseline;position:relative;top:1px}
.privacy-back{margin-top:48px;padding-top:32px;border-top:1px solid #e8e6e0}

/* Company Page */
.company-table{width:100%;border-collapse:collapse;font-size:.9rem;margin:24px 0}
.company-table th{width:180px;padding:16px 20px;text-align:left;font-weight:600;color:var(--ink);border-bottom:1px solid #e8e6e0;vertical-align:top;white-space:nowrap}
.company-table td{padding:16px 20px;color:var(--ink-light);border-bottom:1px solid #e8e6e0;line-height:1.8}
.company-info-img{display:block;width:auto;max-width:100%;height:auto}

/* ---- ヒーローなしページ: ヘッダー常時scrolled風 ---- */
.page-no-hero .site-header.at-top{background:rgba(250,248,245,.95);backdrop-filter:blur(12px);border-bottom-color:var(--border)}
.page-no-hero .site-header.at-top .logo-text{color:var(--ink)}
.page-no-hero .site-header.at-top .logo-reading{color:var(--ink-faint)}
.page-no-hero .site-header.at-top .h-pill{color:var(--ink-light);border-color:var(--border)}
.page-no-hero .site-header.at-top .h-pill.active{background:var(--moss);color:#fff;border-color:var(--moss)}
.page-no-hero .site-header.at-top .header-cta-btn{background:var(--moss);border:1px solid transparent;color:#fff!important}
