@charset "UTF-8";

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; scroll-padding-top: 60px; overflow-x: clip; }
body { font-family: "Noto Sans JP", sans-serif; color: #1a1a2e; line-height: 1.7; background: #fff; overflow-x: hidden; }
.hdr-bg { position: fixed; top: 0; left: 0; width: 100%; height: 60px; background: #fff; /* border-bottom: 2px solid #1565C0; */ border-bottom: 2px solid #800000; box-shadow: 0 2px 8px rgba(21, 101, 192, 0.1); z-index: 990; will-change: transform; }
.hdr { position: fixed; top: 0; left: 0; width: 100%; height: 60px; padding: 0 20px; display: flex; align-items: center; justify-content: space-between; z-index: 1000; pointer-events: none; will-change: transform; }
.hdr-logo-area, .hdr-center, .hdr-right { pointer-events: auto; }
.hdr-logo { width: 200px; height: auto; display: block; margin-left: 0px; margin-top: 7px; }
.hdr-center { flex: 1; font-size: 20px; color: #062b55; text-align: left; }
.hdr-right { display: flex; align-items: center; gap: 15px; flex-shrink: 0; }
.btn-orange { display: inline-block; background: #EF9F27; color: #fff !important; font-size: 1rem; font-weight: 700; padding: 0.7rem 1.5rem; border-radius: 8px; border: none; cursor: pointer; text-decoration: none; white-space: nowrap; transition: background 0.2s; }
.btn-orange:hover { background: #BA7517; }
.hdr-menu { display: block; font-size: 2.5rem; color: #1565C0; cursor: pointer; line-height: 1; margin-left: 10px; width: 40px; text-align: center; }
.sp-menu-overlay { position: fixed; top: 60px; right: 0; width: 100%; max-width: 320px; height: calc(100vh - 60px); overflow-y: auto; background: #fff; box-shadow: -4px 4px 10px rgba(0, 0, 0, 0.1); transform: translateX(100%); opacity: 0; visibility: hidden; transition: all 0.3s ease; z-index: 997; display: flex; flex-direction: column; }
.sp-menu-overlay::-webkit-scrollbar { width: 6px; }
.sp-menu-overlay::-webkit-scrollbar-track { background: #f1f1f1; }
.sp-menu-overlay::-webkit-scrollbar-thumb { background: #1565C0; border-radius: 10px; }
.sp-menu-overlay::-webkit-scrollbar-thumb:hover { background: #0D47A1; }
.sp-menu-overlay.active { transform: translateX(0); opacity: 1; visibility: visible; }
.sp-menu-overlay a, .usage-modal-btn { padding: 0.7rem 1.25rem; border-bottom: 1px solid #ccc; color: #1565C0; text-decoration: none; font-size: 0.95rem; display: block; }
.sp-menu-overlay a:hover, .usage-modal-btn:hover { background: #F0F7FF; cursor: pointer; }
.sp-company-info { margin-top: auto; padding: 1.25rem 1.25rem; font-size: 0.75rem; color: #555; line-height: 1.6; background: #F8FDFF; border-top: 1px solid #eee; }
.modal-overlay { position: fixed; inset: 0; background: rgba(0, 0, 0, 0.6); z-index: 2000; display: flex; align-items: center; justify-content: center; opacity: 0; visibility: hidden; transition: all 0.3s; padding: 20px; }
.modal-overlay.active { opacity: 1; visibility: visible; }
.modal-window { background: #fff; width: 600px; height: 600px; border-radius: 16px; overflow: hidden; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2); transform: translateY(20px); transition: transform 0.3s; position: relative; display: flex; flex-direction: column; border: 10px solid #BBDEFB; /* 水色の10px罫線 */ }

@media (max-width: 768px) {
  .modal-overlay { padding: 0; }
  .modal-window { width: 100%; height: 100%; max-width: none; border-radius: 0; border-width: 10px; }
}

.modal-overlay.active .modal-window { transform: translateY(0); }
.modal-header { background: #F0F7FF; padding: 1.25rem; border-bottom: 1px solid #BBDEFB; display: flex; justify-content: space-between; align-items: center; }
.modal-header h3 { font-size: 1.1rem; color: #0D47A1; margin: 0; }
.modal-body h4 { font-size: 0.95rem; color: #0D47A1; background: #f0f7ff; padding: 0.5rem 0.75rem; border-left: 4px solid #1565C0; margin: 1.5rem 0 0.8rem; font-weight: 700; }
.modal-body h4:first-of-type { margin-top: 0; }
.modal-body h5 { font-size: 0.9rem; color: #333; margin: 1rem 0 0.4rem; font-weight: 700; display: flex; align-items: center; }
.modal-body h5::before { content: "●"; color: #EF9F27; font-size: 0.6rem; margin-right: 0.5rem; }
.modal-body { padding: 1.5rem; flex: 1; overflow-y: auto; font-size: 0.88rem; color: #555; line-height: 1.7; }
.modal-body p { margin-bottom: 1rem; }
.modal-body ul { padding-left: 1.2rem; margin-bottom: 1rem; }
.modal-body li { margin-bottom: 0.5rem; }
.modal-footer { padding: 1rem; text-align: center; border-top: 1px solid #eee; }
.btn-modal-close { background: #1565C0; color: #fff; border: none; padding: 0.6rem 2rem; border-radius: 8px; font-weight: 700; cursor: pointer; }
.hero { width: 100%; height: 800px; box-sizing: border-box; background: linear-gradient(150deg, #fff0f3 0%, #fce4ec 45%, #f8bbd0 100%); padding-top: 60px; position: relative; }
.hero-ecg { position: absolute; inset: 0; pointer-events: none; z-index: 0; overflow: hidden; opacity: 0.7; }
.hero-grid { max-width: 1200px; margin: 0 auto; padding: 0 1rem; position: relative; height: 100%; }
.hero-left { width: 50%; padding-top: 1rem; position: relative; }
.hero-company-link { display: inline-block; font-size: 1.3rem; font-weight: 700; color: #0D47A1; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 4px; margin-bottom: 1rem; }
.hero-h1 { font-family: "Noto Serif JP", serif; font-size: 4.8rem; font-weight: 900; line-height: 1.2; color: #0D47A1; margin-bottom: 1rem; white-space: nowrap; letter-spacing: -4px; }
.hero-h1 em { font-style: normal; color: #FF0000; }
.hero-h1 em span{letter-spacing: -7px; font-size: 3.6rem;}
.hero-h1-tight { letter-spacing: -0.08em; margin-right: -0.4em; }
.hero-h1--no-exid { margin-left: -2.4rem; font-size: 3.8rem;}
.hero-sub { font-family: "Noto Serif JP", serif; font-size: 2rem; color: #484d4d; line-height: 1.6; font-weight: 400; margin-bottom: 2.5rem; white-space: nowrap; }
.hero-sub--sp { display: none; }
.hero-right--sp-inner { display: none; }
.hero-sub strong { font-weight: 700; }
.booth-group { margin: -20px 0 0 0px; }
.booth-box { display: inline-flex; justify-content: center; align-items: center; border: 6px solid #1565C0; border-radius: 12px; overflow: hidden; margin-bottom: 0.5rem; width: 580px; max-width: 100%; height:325px; box-shadow: 0 4px 16px rgba(21, 101, 192, 0.18); }
.booth-box img { width: 100%; height: 100%; display: block; object-fit: cover; }
.booth-cap { font-size: 16px; color: #555; font-weight: 700; margin: 0px 0 2rem 8px; letter-spacing: 0.02em; }
.hero-btns { display: flex; gap: 1rem; align-items: center; display: none; }
.btn-orange-hero { font-size: 1.1rem; padding: 1rem 2.2rem; border-radius: 8px; font-weight: 700; }
.btn-outline-hero { display: inline-block; background: rgba(255, 255, 255, 0.85); color: #1565C0 !important; font-size: 1.1rem; font-weight: 700; padding: 0.95rem 2.2rem; border-radius: 8px; border: 2px solid #1565C0; cursor: pointer; text-decoration: none; transition: all 0.2s; white-space: nowrap; }
.btn-outline-hero:hover { background: #E3F2FD; }
.hero-right { position: absolute; top: -55px; right: -11.5%; width: 1000px; height: 900px; z-index: 995; pointer-events: none; display: flex; align-items: flex-end; justify-content: flex-end; }
.hero-right--sp-inner { display: none; }
.doctor-img { width: 100%; height: 100%; object-fit: contain; object-position: bottom center; filter: drop-shadow(0 15px 35px rgba(0, 0, 0, 0.4)); }
.page-top-btn { position: fixed; bottom: 20px; right: 20px; width: 50px; height: 50px; background: #1565C0; color: #fff; border-radius: 50%; display: flex; align-items: center; justify-content: center; text-decoration: none; font-size: 20px; z-index: 900; box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2); transition: background 0.2s, transform 0.2s; }
.page-top-btn:hover { background: #0D47A1; transform: translateY(-3px); }
@keyframes ctaBlink {
  0%, 100% { background: #800000; }
  50% { background: #b30000; }
}
.fixed-cta-btn { position: fixed; top: 300px; right: 14px; width: 150px; height:150px; background: #800000; color: #fff !important; font-size: 22px; font-weight: 400; line-height: 1.5; text-align: center; text-decoration: none; padding: 0.7rem 0.4rem; border-radius: 50%; z-index: 900; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.7); transition: background 0.2s, transform 0.2s; display: flex; align-items: center; justify-content: center; z-index: 996; animation: ctaBlink 2.4s ease-in-out infinite;}
.fixed-cta-btn:hover { background: #BA7517; transform: translateY(-3px); animation: none; }
.fw { width: 100%; }
.sec { padding: 2rem 0; position: relative; overflow: hidden; }
.sec-white { background: #fff; border-bottom: 1px solid #E3F2FD; position: relative; z-index: 10; }
.sec-blue { background: #E3F2FD; border-bottom: 1px solid #BBDEFB; }
.sec-pink { background: #FFF0F3; border-bottom: 1px solid #FADADD; }
.sec-pink2 { background: #f9c2d5; border-bottom: 1px solid #FADADD; }
.sec-pink3 { background: #fff0f3; border-bottom: 1px solid #FADADD; }
.sec-teal { background: #E8F8F5; border-bottom: 1px solid #B2DFDB; }
.sec-navy { background: linear-gradient(135deg, #0D47A1, #1565C0); }
.sec-yellow { background: #fffae2; border-bottom: 1px solid #FFF9C4; }
.sec-concept { background: #f0f7ff; padding: 3rem 0 2rem; text-align: center; }
.concept-text { font-size: 1.15rem; color: #333; margin-bottom: 1rem; line-height: 1.6; text-align: center;}
.concept-flow { display: flex; justify-content: center; align-items: center; gap: 1rem; margin: 1.5rem 0; font-weight: 700; color: #1565C0; flex-wrap: wrap; }
.flow-item { background: #E3F2FD; padding: 1rem 1rem; border-radius: 8px; border: 1.5px solid #BBDEFB; text-align: center; font-size: 20px; width: 146px;}
.flow-item span{font-weight: normal; font-size: 14px;}
.flow-arrow { color: #EF9F27; font-size: 1.5rem; }
.concept-evidence { max-width: 900px; margin: 2rem auto 0;/*  padding: 1.5rem 2rem; background: #F8FDFF; border-radius: 16px; border: 1.5px solid #BBDEFB; */ text-align: left; }
.concept-evidence p { font-size: 1.1rem; color: #0D47A1; line-height: 1.6; margin-bottom: 0; }
.evidence-highlight { border-top: 1px dashed #BBDEFB; padding-top: 1.5rem; font-size: 1.05rem !important; color: #0D47A1 !important; font-weight: 700; }
.med-bg { position: absolute; inset: 0; pointer-events: none; z-index: 0; overflow: hidden; }
.inner { max-width: 1280px; margin: 0 auto; padding: 0 3rem 2rem; position: relative; z-index: 1; }
.sec-lbl { font-size: 16px; letter-spacing: 0.22em; font-weight: 700; color: #1565C0; margin-bottom: 0.4rem; text-align: center; }
.sp-br { display: none; }
.sec-ttl { font-family: "Noto Serif JP", serif; font-size: 1.8rem; font-weight: 700; line-height: 1.5; margin-bottom: 1.75rem; color: #0D47A1; text-align: center; }
.pain-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.25rem; }
.pain-card { background: #fff; border: 1px solid #BBDEFB; border-top: 4px solid #1565C0; border-radius: 12px; padding: 1.5rem 1.25rem; transition: box-shadow 0.2s; }
.pain-card:hover { box-shadow: 0 6px 20px rgba(21, 101, 192, 0.1); }
.pi { font-size: 2.2rem; display: block; margin-bottom: 0.65rem; }
.pain-card strong { display: block; font-weight: 700; color: #0D47A1; font-size: 1rem; margin-bottom: 6px; }
.pain-card p { font-size: 0.86rem; color: #555; line-height: 1.65; }
.pain-note { font-size: 0.85rem; color: #555; text-align: left; margin-top: 2rem; line-height: 1.7; max-width: 800px; margin-left: auto; margin-right: auto; }
#quick-check { min-height: 600px; padding: 2.5rem 0; }
#quick-check.result-open { min-height: auto; }
#quick-check .inner, #quick-check .sec-lbl { text-align: center; }
#quick-check .sec-ttl { text-align: center; margin-bottom: 1.25rem; font-size: 1.75rem; }
.clinic-rec { display: inline-flex; align-items: center; gap: 0.5rem; /*background: #fff; border: 1.5px solid #BBDEFB; border-radius: 10px;  padding: 0.85rem 1.75rem; */ margin-bottom: 1.25rem; max-width: 700px; text-align: left; flex-direction: column;}
.sd-row { display: flex; align-items: center; gap: 8px; margin: 0 auto 1.2rem; max-width: 400px; justify-content: center; }
.sdd { width: 34px; height: 34px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 700; flex-shrink: 0; transition: all 0.25s; }
.sda { background: #1565C0; color: #fff; }
.sdd-d { background: #C8E6C9; color: #2E7D32; }
.sdp { background: #eee; color: #aaa; border: 1px solid #ddd; }
.sdl { flex: 1; height: 2px; background: #ddd; max-width: 120px; transition: background 0.3s; }
.sdld { background: #1565C0; }
.qw { max-width: 900px; margin: 0 auto; }
.qt { font-size: 1.4rem; font-weight: 700; color: #0D47A1; margin-bottom: 4px; font-family: "Noto Sans JP", sans-serif; text-align: center; }
.qs { font-size: 15px; color: #0D47A1; margin-bottom: 0.85rem; text-align: center; }
.chs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 1.25rem; }
.chs.chs-3 { grid-template-columns: repeat(3, 1fr); }
.chs.chs-q3 { grid-template-columns: repeat(5, 1fr); }
.cbtn { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; background: #fff; border: 2px solid #dde3ec; border-radius: 12px; padding: 1.1rem 0.8rem 1rem; cursor: pointer; text-align: left; width: 100%; transition: all 0.15s; position: relative; }
.cbtn:hover { border-color: #1565C0; background: #F0F7FF; }
.cbtn.sel { border: 2px solid #1565C0; background: #E3F2FD; }
.ci { font-size: 60px; flex-shrink: 0; text-align: left; margin-top: -8px; }
.cl { flex: 1; width: 100%; }
.cl strong { display: block; font-size: 15px; font-weight: 700; color: #0D47A1; margin-bottom: 10px; line-height: 1.4; }
.cl span { font-size: 12px; color: #333; display: block; line-height: 1.6; }
.cck { width: 22px; height: 22px; border-radius: 50%; border: 2px solid #ccc; flex-shrink: 0; background: #fff; transition: all 0.15s; position: absolute; top: 10px; right: 10px; }
.cbtn.sel .cck { background: #1565C0; border-color: #1565C0; }
.mnote { font-size: 12px; color: #999; margin-bottom: 0.75rem; }
.cnav { display: flex; gap: 10px; margin-top: 0.75rem; justify-content: center; }
.cnxt { flex: 0 0 auto; width: 280px; background: #999; color: #fff; font-size: 14px; font-weight: 700; padding: 0.75rem; border-radius: 10px; border: none; cursor: not-allowed; transition: background 0.2s; }
.cnxt.act { background: #880000; cursor: pointer; }
.cnxt.act:hover { background: #BA7517; }
.cbk { padding: 0.75rem 1.25rem; background: #f0f3f7; color: #666; font-size: 13px; border-radius: 10px; border: 1px solid #ddd; cursor: pointer; }
.dcr { display: none; max-width: 700px; margin: 0 auto; animation: fup 0.35s ease; text-align: left; }

@keyframes fup {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

.dpp { border: 2.5px solid #1565C0; border-radius: 14px; padding: 1.5rem; background: #fff; margin-bottom: 1rem; }
.dss { border: 1px solid #dde3ec; border-radius: 14px; padding: 1.1rem; background: #fff; margin-bottom: 0.75rem; }
.dhd { display: flex; align-items: center; gap: 10px; margin-bottom: 0.85rem; }
.dbg { font-size: 16px; font-weight: 700; padding: 3px 12px; border-radius: 20px; }
.bm { background: #E3F2FD; color: #0D47A1; }
.bs { background: #E8F5E9; color: #1B5E20; }
.dname { font-size: 16px; font-weight: 700; color: #0D47A1; }
.ddesc { font-size: 13px; color: #555; line-height: 1.7; margin-bottom: 0.85rem; }
.dplan { background: #F0F7FF; border-left: 4px solid #1565C0; border-radius: 0 8px 8px 0; padding: 0.65rem 1rem; font-size: 12px; color: #555; margin-bottom: 0.85rem; }
.dplan strong { color: #0D47A1; }
.dlist { list-style: none; margin-bottom: 1rem; }
.dlist li { font-size: 13px; color: #555; padding-left: 1.2em; position: relative; margin-bottom: 4px; }
.dlist li::before { content: "✓"; position: absolute; left: 0; color: #1565C0; font-weight: 700; }
.dcta { display: block; width: 100%; background: #EF9F27; color: #fff; font-size: 13px; font-weight: 700; padding: 0.7rem; border-radius: 10px; border: none; cursor: pointer; text-align: center; transition: background 0.2s; }
.dcta:hover { background: #BA7517; }
.dcta-out { background: transparent; color: #1565C0; border: 2px solid #1565C0; }
.dcta-out:hover { background: #E3F2FD; }
.dret { text-align: center; margin-top: 1rem; }
.dret button { background: none; border: none; font-size: 12px; color: #aaa; cursor: pointer; text-decoration: underline; }
.sph { max-width:900px; margin:auto; margin-bottom: 1.5rem; }
.plbl { font-size: 15px; font-weight: 700; letter-spacing: 0.14em; padding: 5px 16px; border-radius: 20px; display: inline-block; margin-bottom: 0.75rem; }
.pm { background: #FFF3E0; color: #E65100; }
.psh { background: #E8F5E9; color: #2E7D32; }
.pch { background: #E3F2FD; color: #0D47A1; }
.sr { display: flex; align-items: flex-start; gap: 1.5rem; background: #fff; border: 1px solid #dde3ec; border-radius: 14px; padding: 1.5rem; margin-bottom: 8px; transition: box-shadow 0.2s; }
.sr:hover { box-shadow: 0 4px 16px rgba(21, 101, 192, 0.09); }
.sr.sub { margin-left: 2rem; border-left: 4px solid #EF9F27; background: #FFFBF5; }
.snum { flex-shrink: 0; width: 48px; height: 48px; border-radius: 50%; background: #1565C0; display: flex; align-items: center; justify-content: center; font-family: "Noto Serif JP", serif; font-size: 1rem; font-weight: 700; color: #fff; }
.snum.sub { background: #EF9F27; width: 34px; height: 34px; font-size: 0.8rem; }
.sc h3 { font-size: 1rem; font-weight: 700; margin-bottom: 4px; color: #0D47A1; }
.sc p { font-size: 0.85rem; color: #555; line-height: 1.7; }
.sarr { text-align: center; color: #1565C0; font-size: 1.4rem; margin: 4px 0 10px; opacity: 0.4; }
.stg { display: inline-block; font-size: 16px; padding: 2px 10px; border-radius: 20px; margin-bottom: 6px; font-weight: 700; }
.to { background: #FFF3E0; color: #E65100; }
.to2 { background: #FFF8E1; color: #F57F17; }
.tg { background: #E8F5E9; color: #2E7D32; }
.tt { background: #E3F2FD; color: #0D47A1; }
.smt { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 8px; }
.sm { font-size: 16px; background: #f0f3f7; border: 1px solid #dde3ec; border-radius: 6px; padding: 2px 10px; color: #666; }
.monshin { background: #fff; border: 2.5px solid #1565C0; border-radius: 16px; padding: 2rem 2.5rem; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 2rem; margin: 0 auto 1.5rem auto; max-width: 900px; }
.m-icon { font-size: 3rem; }
.m-body h3 { font-family: "Noto Serif JP", serif; font-size: 1.2rem; font-weight: 700; color: #0D47A1; margin-bottom: 0.4rem; }
.m-body p { font-size: 0.88rem; color: #555; line-height: 1.7; }
.m-body ul { list-style: none; display: flex; gap: 0.7rem; flex-wrap: wrap; margin-top: 0.5rem;}
.m-body ul li { font-size: 0.82rem; color: #1565C0; padding-left: 1em; position: relative; }
.m-body ul li::before { content: "✓"; position: absolute; left: 0; color: #1565C0; font-weight: 700; }
.m-right { text-align: center; }
.m-price { font-family: "Noto Serif JP", serif; font-size: 2.2rem; font-weight: 700; color: #2E7D32; }
.m-tax { font-size: 0.78rem; color: #aaa; margin-bottom: 0.75rem; }
.pgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.8rem; max-width: 900px; margin: 0 auto; }
.pc { background: #fff; border: 2px solid #527a9b; border-radius: 16px; overflow: hidden; display: flex; flex-direction: column; transition: box-shadow 0.2s; }
.pc:hover { box-shadow: 0 6px 24px rgba(21, 101, 192, 0.12); }
.pc.feat { border: 2.5px solid #EF9F27; }
.pc-hd { padding: 1.25rem 1.25rem 1rem; background: #F0F7FF; border-bottom: 1px solid #BBDEFB; }
.pc.feat .pc-hd { background: #FFFDF8; border-bottom: 1px solid rgba(239, 159, 39, 0.3); }
.pc-badge { display: inline-block; font-size: 16px; font-weight: 700; padding: 3px 12px; border-radius: 20px; margin-bottom: 0.6rem; }
.bg-free { background: #FFF3E0; color: #E65100; }
.bg-std { background: #E3F2FD; color: #0D47A1; }
.bg-pro { background: #0D47A1; color: #EF9F27; }
.bg-prem { background: #EDE7F6; color: #4527A0; }
.pc-name { font-family: "Noto Serif JP", serif; font-size: 1.1rem; font-weight: 700; color: #0D47A1; line-height: 1.35; }
.pc-body { padding: 1rem 0.8rem; flex: 1; }
.pc-desc { font-size: 0.84rem; color: #555; line-height: 1.65; margin-bottom: 0.85rem; }
.pc-items { list-style: none; }
.pc-items li { font-size: 0.81rem; color: #555; padding-left: 1.1em; position: relative; margin-bottom: 5px; line-height: 1.5; }
.pc-items li::before { content: "•"; position: absolute; left: 0; color: #1565C0; font-weight: 700; }
.pc-ft { padding: 1rem 1.25rem 1.25rem; border-top: 1px solid #BBDEFB; background: #F0F7FF; }
.pc.feat .pc-ft { background: #FFF8EE; border-top: 1px solid rgba(239, 159, 39, 0.3); }
.pc-price { font-family: "Noto Serif JP", serif; font-size: 1.9rem; font-weight: 700; color: #0D47A1; line-height: 1; text-align: right;}
.pc-price.fp { color: #2E7D32; }
.pc-tax { font-size: 0.72rem; color: #aaa; margin-bottom: 0.75rem; text-align: right;}
.pc-btn { display: block; width: 100%; background: #EF9F27; color: #fff !important; font-size: 0.88rem; font-weight: 700; padding: 0.65rem; border-radius: 10px; border: none; cursor: pointer; text-align: center; text-decoration: none; transition: background 0.2s; }
.pc-btn:hover { background: #BA7517; }
.pc-btn-out { background: transparent !important; color: #1565C0 !important; border: 2px solid #1565C0; }
.pc-btn-out:hover { background: #E3F2FD !important; }
.faq-item { border-bottom: 1px solid #BBDEFB; padding: 0.5rem 0; max-width: 900px; margin: 0 auto; }
.faq-q { font-weight: 700; font-size: 0.95rem; padding: 0.75rem 0; color: #0D47A1; cursor: pointer; list-style: none; position: relative; }
.faq-q::-webkit-details-marker { display: none; }
.faq-q::before { content: "Q. "; color: #1565C0; font-weight: 700; }
.faq-q::after { content: "+"; position: absolute; right: 10px; color: #1565C0; font-size: 1.2rem; }
details[open] .faq-q::after { content: "-"; }
.faq-a { font-size: 0.86rem; color: #555; line-height: 1.75; padding: 0.5rem 0 1.25rem 1.5rem; background: #F8FDFF; border-radius: 8px; }
.faq-cat { font-family: "Noto Serif JP", serif; font-size: 1.1rem; font-weight: 700; color: #1565C0; margin: 2.5rem auto 1rem; max-width: 900px; border-left: 4px solid #EF9F27; padding-left: 1rem; }
.sec-provider { background: #f0f7ff; padding: 4rem 0; text-align: center; }
.provider-box { max-width: 900px; margin: 0 auto; background: #fff; padding: 2rem 2.5rem; border-radius: 16px; border: 1.5px solid #BBDEFB; box-shadow: 0 4px 20px rgba(13, 71, 161, 0.05); }
.provider-text { font-size: 0.9rem; color: #333; line-height: 1.8; text-align: left; }
.provider-text a { color: #0D47A1; text-decoration: underline; text-underline-offset: 3px; transition: color 0.2s; }
.provider-text a:hover { color: #EF9F27; }
.cta-lbl { font-size: 14px; letter-spacing: 0.22em; font-weight: 700; color: rgba(255, 255, 255, 0.5); margin-bottom: 0.4rem; }
.cta-ttl { font-family: "Noto Serif JP", serif; font-size: 1.8rem; font-weight: 700; color: #fff; margin-bottom: 0.75rem; line-height: 1.45; }
.cta-sub { font-size: 0.9rem; color: rgba(255, 255, 255, 0.65); margin-bottom: 2rem; }
.fwrap { background: #fff; border-radius: 16px; padding: 1.5rem; max-width: 560px; margin: 0 auto; }
.fg { display: flex; flex-direction: column; gap: 6px; margin-bottom: 1rem; }
.fg label { font-size: 0.82rem; font-weight: 700; color: #0D47A1; display: block; text-align: left; }
.fg label span { color: #EF9F27; margin-left: 2px; }
.fg input, .fg select, .fg textarea { width: 100%; padding: 0.65rem 0.9rem; border: 1.5px solid #BBDEFB; border-radius: 8px; font-family: "Noto Sans JP", sans-serif; font-size: 0.88rem; color: #1a1a2e; background: #fff; transition: border 0.2s; }
.fg input:focus, .fg select:focus, .fg textarea:focus { outline: none; border-color: #1565C0; }
.fg textarea { resize: vertical; min-height: 80px; }
.fg-row { display: flex; gap: 1rem; margin-bottom: 1rem; }
.fg-row .fg { margin-bottom: 0; }
.fg-row .fg:first-child { flex: 4; }
.fg-row .fg:last-child { flex: 6; }
.fsub { width: 100%; background: #EF9F27; color: #fff; font-size: 1rem; font-weight: 700; padding: 0.95rem; border-radius: 10px; border: none; cursor: pointer; letter-spacing: 0.04em; margin-top: 0.5rem; transition: background 0.2s; }
.fsub:hover { background: #BA7517; }
.fsub:disabled { background: #ccc; cursor: not-allowed; }
.fpri { font-size: 0.72rem; color: #aaa; text-align: center; margin-top: 0.6rem; line-height: 1.6; }
.fsuc { display: none; text-align: center; padding: 2.5rem 1rem; }
.fsuc .ck { font-size: 3rem; margin-bottom: 1rem; }
.fsuc h3 { font-family: "Noto Serif JP", serif; font-size: 1.2rem; font-weight: 700; color: #0D47A1; margin-bottom: 0.5rem; }
.fsuc p { font-size: 0.88rem; color: #555; line-height: 1.8; }
.fnxt { background: #FFF3E0; border-left: 4px solid #EF9F27; border-radius: 0 10px 10px 0; padding: 1rem 1.1rem; font-size: 0.83rem; color: #555; margin-top: 1.1rem; text-align: left; line-height: 1.8; }
.cta-note { margin-top: 1rem; font-size: 0.76rem; color: rgba(255, 255, 255, 0.3); text-align: center; }
.footer { width: 100%; background: #0D47A1; padding: 1.5rem 0; text-align: center; }
.footer p { font-size: 12px; color: rgba(255, 255, 255, 0.4); }

@media(max-width:1024px) {
  .hero-grid { flex-direction: column; padding-top: 2rem; }
  .hero-left { width: 100%; padding-top: 2rem; }
  .hero-right { position: relative; right: 0; top: auto; bottom: -50px; width: 90%; height: auto; justify-content: center; z-index: 25; }
  .doctor-img { max-width: 80vw; object-position: bottom; }
  .pain-grid, .pgrid { grid-template-columns: repeat(2, 1fr); }
  .monshin { grid-template-columns: 1fr; }
}

@media(max-width:600px) {
  .hdr { padding: 0 0.6rem; }
  .hdr-logo { width: 150px; margin-left: 0; }
  .hdr-center { display: none; }
  .hdr-right { gap: 6px; }
  .hdr-menu { margin-left: 0; font-size: 2rem; width: 36px; flex-shrink: 0; }
  .fixed-cta-btn { position: fixed; top: 5px; right: calc(36px + 0.6rem + 6px); bottom: auto; left: auto; width: auto; height: 50px; border-radius: 6px; font-size: 0.75rem; padding: 0 0.7rem; box-shadow: none; line-height: 1; display: inline-flex; align-items: center; justify-content: center; transform: none !important; animation: none; z-index: 1001; }
  .btn-orange { display: block; width: 100%; padding: 0.65rem; font-size: 0.88rem; white-space: nowrap; text-align: center; }
  .hero { padding-top: 60px; height: auto; min-height: unset; overflow-x: hidden; }
  .hero-grid { position: relative; display: block; padding: 0 0.625rem; padding-top: 0; min-height: 110vw; }
  .hero-left { width: 100%; padding-top: 0.3rem; position: relative; z-index: auto; }
  .hero-company-link { display: block; text-align: left; margin-bottom: 0.75rem; position: relative; z-index: 10; font-size: 14px; }
  .hero-h1 { font-size: clamp(2rem, 13vw, 3.2rem); white-space: normal !important; word-break: break-word; text-align: left; max-width: 100%; margin-top: 8vw; margin-bottom: 0; position: relative; z-index: 40; }
   .hero-h1 em span{font-size: unset;}
  .hero-h1--no-exid{margin-left: 0;}
  .h1-bracket { display: none; }
  .hero-sub--pc { display: none; }
  .hero-sub--sp { display: block; font-size: 0.95rem; white-space: normal !important; word-break: break-word; position: relative; z-index: 35; width: 100%; margin-top: 5vw; max-width: 100%; text-align: center; }  .hero-sub strong { background: rgba(255,255,255,0.75); border-radius: 4px; padding: 0 4px; }
  .booth-group { margin-left: 0; margin-right: 0; margin-top: 70px; width: 100%; position: relative; z-index: 20; overflow: visible; }
  .booth-group--has-exid { margin-top: -40px; }
  .booth-box { width: 280px; height: 210px; margin-left: auto; margin-right: auto; margin-top: 65px; display: flex; }
  .booth-cap { text-align: center; }
  .hero-btns { flex-direction: column; align-items: stretch; display: block;}
  .btn-orange-hero, .btn-outline-hero { width: 50%; text-align: center; font-size: 1rem; padding: 0.85rem 1rem; font-weight: normal; background-color: #800000; margin: 0 auto;}
  .hero-right { display: none; }
  .hero-right--sp-inner { display: flex; position: absolute; top: -88vw; right: -116px; width: 100vw; height: auto; z-index: 30; justify-content: flex-end; align-items: flex-start; pointer-events: none; }
  .doctor-img { width: 100%; max-width: 100vw; height: auto; object-fit: contain; object-position: top center; }
  .inner { padding: 0 0.625rem 2rem; }
  .pain-grid { grid-template-columns: 1fr; gap: 0.5rem; }
  .pgrid { grid-template-columns: 1fr; }
  .pain-card { padding: 0.7rem 1rem; display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: 0.75rem; align-items: center; }
  .pi { font-size: 1.5rem; margin-bottom: 0; grid-row: 1 / 3; align-self: center; }
  .pain-card strong { grid-column: 2; font-size: 16px; margin-bottom: 1px; }
  .pain-card p { grid-column: 2; font-size: 16px; line-height: 1.45; }

  /* monshin をスマホで詰める */
  .monshin { padding: 1rem 1.1rem; gap: 0.6rem; border-radius: 12px; margin-bottom: 1rem; }
  .m-icon { font-size: 2rem; line-height: 1; }
  .m-body h3 { font-size: 1rem; margin-bottom: 0.25rem; }
  .m-body p { font-size: 16px; line-height: 1.6; }
  .m-body ul { gap: 0.4rem 1rem; margin-top: 0.35rem; }
  .m-body ul li { font-size: 16px; }
  .m-right { display: flex; justify-content: center; align-items: center; }
  .m-price { font-size: 1.6rem; }
  .m-tax { margin-bottom: 0.4rem; }

  .chs { grid-template-columns: repeat(2, 1fr); }
  .chs.chs-3 { grid-template-columns: repeat(2, 1fr); }
  .chs.chs-q3 { grid-template-columns: repeat(2, 1fr); }
  .ci { font-size: 36px; margin-top: -5px; }  .fg-row { flex-direction: column; gap: 0; }
  .fg-row .fg { margin-bottom: 1rem; }  .sec-ttl { font-size: 1.25rem; }
  .sp-br { display: inline; }

  /* sr レイアウト：snum を上枠線上に配置し sc をフル幅に */
  .sr { position: relative; flex-direction: column; padding-top: 2.5rem; margin-top: 1.75rem; }
  .snum { position: absolute; top: 0; left: 1.25rem; transform: translateY(-50%); }
  .sc { width: 100%; }

  /* concept-flow をスマホで縦並びに */
  .concept-flow { flex-direction: column; align-items: center; gap: 0.5rem; }
  .concept-flow .flow-item { width: 80%; text-align: center; }
  .concept-flow .flow-arrow { transform: rotate(90deg); font-size: 1.2rem; }

  /* タイトル（.sec-ttl / .sec-lbl）以外をスマホで左寄せ */
  .sec-lbl { font-size: 16px; }
  .sec-concept { text-align: left; }
  #quick-check .inner { text-align: left; }
  .qt { text-align: left; }
  .qs { text-align: left; }
  .sec-provider { text-align: left; }
  #sec-evidence .inner { text-align: left !important; }
  #cta-anchor .inner { text-align: left !important; }
  .cta-ttl { text-align: center; }
  .footer p { font-size: 10px; }

  /* #quick-check スマホレイアウト修正 */
  #quick-check { min-height: unset; }
  #quick-check .sec-ttl { font-size: 1.25rem; text-align: center; }
  .clinic-rec { display: flex; width: 100%; }
  .qt { font-size: 1.1rem; }
  .cnav { flex-wrap: wrap; }
  .cnxt { flex: 1; width: auto; min-width: 180px; }

  /* 文章テキスト最小16px */
  .qs { font-size: 16px; }
  .mnote { font-size: 16px; }
  .cl strong { font-size: 16px; }
  .cl span { font-size: 16px; }
  .cbk { font-size: 16px; }
  .ddesc { font-size: 16px; }
  .dplan { font-size: 16px; }
  .dlist li { font-size: 16px; }
  .dcta { font-size: 16px; }
  .dret button { font-size: 16px; }
  .sp-company-info { font-size: 16px; }
  .pain-note { font-size: 16px; }
  .sc p { font-size: 16px; }
  .pc-desc { font-size: 16px; }
  .pc-items li { font-size: 16px; }
  .pc-btn { font-size: 16px; }
  .faq-a { font-size: 16px; }
  .provider-text { font-size: 16px; }
  .cta-sub { font-size: 16px; }
  .fg label { font-size: 16px; }
  .fg input, .fg select, .fg textarea { font-size: 16px; }
  .fnxt { font-size: 16px; }
  .fsuc p { font-size: 16px; }
  .modal-body { font-size: 16px; }
  .concept-text { font-size: 16px; text-align: left;}
  .concept-evidence p { font-size: 16px; }

}

/* ── index.php インラインスタイルから移動 ── */
.menu-link-cta { color: #EF9F27; font-weight: 700; }
.text-center { text-align: center; }
.evidence-body { margin-top: 2rem; line-height: 1.8; max-width: 900px; margin-left: auto; margin-right: auto; text-align: left; }
.clinic-name-label { font-size: 14px; font-weight: 700; color: #0D47A1; white-space: nowrap; }
.clinic-sub-label { font-size: 18px; color: #333; margin-left: 0.5rem; }
.dc-result-desc { font-size: 13px; color: #555; margin-bottom: 1rem; }
.dept-icon { font-size: 24px; }
.price-note { font-size: 0.77rem; color: #aaa; margin-top: 1rem; text-align: center; }
.fg input[type="checkbox"] { width: auto; padding: 0; border: none; border-radius: 0; background: none; }
.fg-photo-check { margin-top: 1.5rem; margin-bottom: 0.5rem; background: #F0F7FF; padding: 0.8rem; border-radius: 8px; border: 1px dashed #BBDEFB; }
.fg-photo-check label, .fg-terms label { text-align: center; }
.label-photo-check { display: flex; align-items: center; justify-content: center; cursor: pointer; color: #0D47A1; font-weight: 700; margin-bottom: 0; white-space: nowrap; gap: 0.5rem; }
.checkbox-photo { flex-shrink: 0; transform: scale(1.2); }
.fg-terms { margin-bottom: 1rem; }
.label-terms { display: flex; align-items: center; justify-content: center; flex-wrap: nowrap; gap: 0.3rem; cursor: pointer; color: #555; font-size: 0.85rem; margin-bottom: 0; white-space: nowrap; }
.checkbox-terms { flex-shrink: 0; transform: scale(1.1); }
.link-terms { text-decoration: underline; color: #1565C0; cursor: pointer; white-space: nowrap; }
.modal-hr { margin: 2rem 0 1.5rem; border: 0; border-top: 1px solid #eee; }

/* ── 出展コンサルティングフロー ── */
.consulting-steps { max-width: 490px; margin: 0 auto; }
.cs-step { display: flex; align-items: center; gap: 1.25rem; background: #fff; border: 1.5px solid #BBDEFB; border-radius: 12px; padding: 1.25rem 1.5rem; }
.cs-num { flex-shrink: 0; width: 48px; height: 48px; border-radius: 50%; background: #1565C0; color: #fff; font-family: "Noto Serif JP", serif; font-size: 1.1rem; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.cs-title { font-size: 1rem; font-weight: 700; color: #0D47A1; line-height: 1.5; }
.cs-arrow { text-align: center; color: #1565C0; font-size: 1.4rem; margin: 0.4rem 0; opacity: 0.5; }

@media (max-width: 600px) {
  .cs-title { font-size: 16px; }
}

/* ── コンサルティングフロー拡張 ── */
.consulting-grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: 2.5rem; align-items: stretch; margin-top: 2.5rem; }
.lecturer-card { background: #FFF0F3; border: 1px solid #800000; border-radius: 12px; padding: 2.5rem 2rem; color: #333; height: 100%; position: relative; overflow: hidden; display: flex; flex-direction: column; }
.lecturer-inner { position: relative; z-index: 2; flex: 1; }
.lecturer-name { font-family: 'Noto Serif JP', serif; font-size: 1.4rem; font-weight: 700; margin-bottom: 0.5rem; color: #800000; }
.lecturer-title { font-size: 1rem; margin-bottom: 1.25rem; opacity: 0.9; font-weight: 700; color: #333; }
.lecturer-text { font-size: 0.9rem; line-height: 1.7; width: 65%; color: #333; }
.lecturer-img { position: absolute; bottom: 0; right: -10px; width: 320px; height: auto; z-index: 1; object-fit: contain; filter: drop-shadow(0 4px 20px rgba(0,0,0,0.15)); }

/* ── コンサルティング実績 ── */
/* .consulting-results { margin-top: 5rem; border-top: 1px solid #BBDEFB; padding-top: 4rem; } */
.consulting-partner-note { font-size: 20px; text-align: center; color: #555; margin-top: 1.5rem; }
.results-grid { display: flex; flex-direction: column; gap: 1.5rem; margin-top: 2.5rem; margin: 0 auto; max-width: 800px;}
.result-item { background: #fff; border: 1px solid #BBDEFB; border-radius: 16px; overflow: hidden; display: flex; flex-direction: row; align-items: stretch; transition: transform 0.2s, box-shadow 0.2s; box-shadow: 0 4px 12px rgba(21, 101, 192, 0.05); }
.result-item:hover { transform: translateX(8px); box-shadow: 0 8px 24px rgba(21, 101, 192, 0.12); }
.result-img-box { width: 120px; height: 130px; overflow: hidden; background: #f0f3f7; flex-shrink: 0; }
.result-img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s; }
.result-item:hover .result-img { transform: scale(1.05); }
.result-body { padding: 0 1.5rem 0.5rem; flex: 1; display: flex; flex-direction: column; justify-content: center; }
.result-ttl { font-family: 'Noto Serif JP', serif; font-size: 1.1rem; font-weight: 700; color: #0D47A1;  line-height: 1.5; }
.result-company { color: #800000; font-size: 0.75em; font-weight: 700; }
.result-person { color: #800000; font-size: 0.75em; font-weight: 700; display: inline-block; margin-top: 2px; }
.result-voice { margin-top: 0.5rem; }
.voice-details { border-top: 1px dashed #E3F2FD }
.voice-summary { font-size: 0.9rem; font-weight: 700; color: #1565C0; cursor: pointer; list-style: none; display: flex; align-items: center; justify-content: space-between; padding: 0.25rem 0; }
.voice-summary::-webkit-details-marker { display: none; }
.voice-summary::after { content: "▼"; font-size: 0.75rem; transition: transform 0.3s; color: #EF9F27; margin-left: 8px; }
.voice-details[open] .voice-summary::after { transform: rotate(180deg); }
.voice-content { font-size: 0.88rem; color: #555; line-height: 1.7; padding: 0.75rem 0 0.25rem; }
.result-link { display: inline-flex; align-items: center; margin-top: 1rem; font-size: 0.85rem; color: #1565C0; text-decoration: underline; font-weight: 700; gap: 4px; }
.result-link::after { content: "→"; text-decoration: none; display: inline-block; }

@media (max-width: 1024px) {
  .consulting-grid { grid-template-columns: 1fr; gap: 2rem; }
  .lecturer-text { width: 100%; padding-bottom: 220px; }
  .lecturer-img { width: 280px; }
}

@media (max-width: 600px) {
  .consulting-results { margin-top: 3.5rem; padding-top: 3rem; }
  .lecturer-card { padding: 2rem 1.25rem; padding-bottom: 100px;}
  .lecturer-name { font-size: 1.25rem; }
  .lecturer-text { padding-bottom: 160px; font-size: 16px; }
  .lecturer-img { width: 220px; right: 0; }
}

@media (max-width: 480px) {
  .result-item { flex-direction: column; align-items: flex-start; }
  .result-img-box { width: 100%; height: auto; max-width: 80px; max-height: 80px;}
  .result-body { padding: 1.25rem; }
}

/* ── 9割失敗セクション ── */
.sec-failure { background: #36536d; padding: 4rem 0; }
.sec-failure .inner { text-align: center; max-width: 900px; }
.failure-label { font-size: 1rem; font-weight: 700; letter-spacing: 0.2em; color: #EF9F27; margin-bottom: 1rem; }
.failure-h2 { font-family: 'Noto Serif JP', serif; font-size: 3rem; font-weight: 900; color: #fff; line-height: 1.8; margin-bottom: 1.5rem; }
.failure-badge { display: inline-block; background: #800000; color: #fff; font-size: 3.2rem; font-weight: 900; padding: 0.1em 0.4em; border-radius: 8px; letter-spacing: -0.02em; line-height: 1.2; margin-bottom: 0.4em; margin-left: 0.15em;}
.failure-lead { font-size: 1.6rem; color: rgba(255,255,255,0.75); line-height: 1.8; margin-bottom: 2rem; text-align: left; display: inline-block;}
.failure-lead strong { color: #e90910; }
.failure-box { background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.15); border-radius: 16px; padding: 2rem 2.5rem; margin-bottom: 1.5rem; }
.failure-why { font-size: 1.8rem; color: rgba(255,255,255,0.6); margin-bottom: 1rem; }
.failure-claim { font-size: 2.2rem; font-weight: 900; color: #fff; font-family: 'Noto Serif JP', serif; line-height: 1.4; margin-bottom: 1rem; text-align: left;}
.failure-repeat { font-size: 1.4rem; font-weight: 700; color: #EF9F27; line-height: 1.7; margin-top: 1.5rem; }
.failure-summary { font-size: 1.5rem; color: rgba(255,255,255,0.75); line-height: 1.8; margin-top: 2rem; display: inline-block; text-align: left; }
.failure-summary strong { color: #e90910; font-size: 1.2em; }

@media (max-width: 600px) {
  .sec-failure { padding: 2.5rem 0; }
  .sec-failure .inner { padding: 0 1rem 2rem; }
  .failure-label { font-size: 0.85rem; letter-spacing: 0.12em; margin-bottom: 0.75rem; }
  .failure-h2 { font-size: 1.8rem; margin-bottom: 1rem; line-height: 1.35; }
  .failure-badge { font-size: 2rem; padding: 0.1em 0.3em; }
  .failure-lead { font-size: 1.1rem; display: block; text-align: left; margin-bottom: 1.25rem; }
  .failure-box { padding: 1.25rem 0.5rem; margin-bottom: 1rem; }
  .failure-why { font-size: 1.3rem; margin-bottom: 0.75rem; }
  .failure-claim { font-size: 1.35rem; line-height: 1.5; margin-bottom: 0.75rem; }
  .failure-repeat { font-size: 1.05rem; line-height: 1.7; margin-top: 1rem; }
  .failure-summary { font-size: 1.05rem; display: block; text-align: left; margin-top: 1.25rem; line-height: 1.8; }
}