/* commitment.css - このページ固有のスタイル */
.narrow{max-width:880px}
/* breadcrumb */
  .crumb{background:var(--bg);border-bottom:1px solid var(--line);padding:12px 0;font-size:13.5px;color:var(--gray)}
/* hero */
  .hero{background:linear-gradient(120deg,#0a2540,#143a63 60%,#1a6dc4);color:#fff;position:relative;overflow:hidden;padding:34px 0 36px}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(720px 420px at 80% 16%,rgba(47,143,224,.28),transparent 62%)}
.hero-inner{position:relative;z-index:2;max-width:860px}
.hero .eyebrow{display:inline-block;font-family:var(--latin);font-weight:700;font-size:13px;letter-spacing:.14em;color:#fff;border:1px solid rgba(255,255,255,.45);padding:5px 14px;border-radius:99px;margin-bottom:12px}
.hero h1{font-family:var(--serif);font-weight:800;font-size:48px;line-height:1.3;margin-bottom:12px}
.hero h1 .accent{color:#ffd34f}
.hero .lead{font-size:clamp(14px,1.3vw,15px);color:rgba(255,255,255,.92);line-height:1.7;max-width:720px;margin-bottom:18px}
.hero .btn{display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-weight:700;font-size:15.5px;padding:12px 28px;border-radius:99px;transition:.3s}
section{padding:84px 0}
.hero + section{padding-top:52px}
.sec-head{text-align:center;margin-bottom:50px}
.sec-head h2{font-family:var(--serif);font-weight:800;font-size:clamp(23px,3.2vw,32px);line-height:1.5;color:var(--navy)}
.sec-head p{margin-top:18px;color:var(--gray);font-size:16px;max-width:700px;margin-left:auto;margin-right:auto;line-height:2}
.lead-p{font-size:16px;color:#33424f;line-height:2.05;max-width:820px;margin:0 auto}
/* problems */
  .problems{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:10px}
@media(max-width:680px){.problems{grid-template-columns:1fr}}
.prob{display:flex;gap:16px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:12px;padding:24px 24px}
.prob .pn{flex-shrink:0;width:34px;height:34px;border-radius:9px;background:#fdeceb;color:#d8593c;display:flex;align-items:center;justify-content:center;font-weight:700}
.prob p{font-size:15px;color:#46535f;margin:0;line-height:1.8}
.solve-band{margin-top:34px;background:linear-gradient(135deg,#10243c,#0a2540);color:#fff;border-radius:18px;padding:40px 44px;position:relative;overflow:hidden}
.solve-band::before{content:"";position:absolute;right:-70px;top:-70px;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(47,143,224,.3),transparent 65%)}
.solve-band h3{font-family:var(--serif);font-size:clamp(19px,2.4vw,24px);font-weight:800;line-height:1.6;margin-bottom:14px;position:relative;z-index:2}
.solve-band p{font-size:15.5px;color:rgba(255,255,255,.86);line-height:1.95;position:relative;z-index:2;margin:0}
.solve-band .hl{color:#7db9ec}
/* features grid */
  .feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media(max-width:880px){.feat-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.feat-grid{grid-template-columns:1fr}}
.feat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:28px 24px;transition:.3s}
.feat:hover{box-shadow:0 14px 32px rgba(10,37,64,.09);transform:translateY(-4px)}
.feat .fic{width:50px;height:50px;border-radius:13px;background:var(--blue-pale);display:flex;align-items:center;justify-content:center;margin-bottom:15px}
.feat h3{font-size:16px;font-weight:700;color:var(--navy);margin-bottom:8px}
.feat p{font-size:14px;color:var(--gray);line-height:1.8;margin:0}
.feat-note{text-align:center;margin-top:30px;font-size:14.5px;color:var(--gray)}
/* admin features (運営/掲載者) two columns */
  .roles{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:34px}
@media(max-width:680px){.roles{grid-template-columns:1fr}}
.role{background:#fff;border:1px solid var(--line);border-radius:14px;padding:28px 28px}
.role h3{font-family:var(--serif);font-size:18px;color:var(--navy);font-weight:700;margin-bottom:16px;display:flex;align-items:center;gap:10px}
.role h3 .ri{width:36px;height:36px;border-radius:9px;background:var(--blue-pale);display:flex;align-items:center;justify-content:center}
.role ul{list-style:none}
.role li{font-size:14.5px;color:#46535f;padding:8px 0 8px 26px;position:relative;border-top:1px solid var(--line);line-height:1.7}
.role li:first-child{border-top:0}
.role li::before{content:"";position:absolute;left:4px;top:15px;width:8px;height:8px;border-radius:2px;background:var(--blue)}
/* flow */
  .flow{display:grid;grid-template-columns:repeat(5,1fr);gap:0;position:relative}
.fl{position:relative;padding:0 14px;text-align:center}
.fl .circle{width:64px;height:64px;border-radius:50%;background:#fff;border:2px solid var(--blue);color:var(--blue);font-family:var(--latin);font-weight:700;font-size:20px;display:flex;align-items:center;justify-content:center;margin:0 auto 16px;position:relative;z-index:2}
@media(max-width:860px){.fl:not(:last-child)::after{display:none}.fl{margin-bottom:26px}}
.fl h4{font-size:16px;font-weight:700;color:var(--navy);margin-bottom:8px}
.fl p{font-size:13.5px;color:var(--gray);margin:0;line-height:1.8}
/* price table */
  .price-wrap{overflow-x:auto;margin-top:8px;border-radius:14px;border:1px solid var(--line)}
table.price{width:100%;border-collapse:collapse;background:#fff;min-width:620px}
table.price th,table.price td{padding:15px 18px;text-align:center;border-bottom:1px solid var(--line);border-right:1px solid var(--line);font-size:15px}
table.price th:last-child,table.price td:last-child{border-right:0}
table.price thead th{background:var(--navy);color:#fff;font-weight:700;font-size:15.5px;border-right-color:rgba(255,255,255,.15)}
table.price thead th.rec{background:var(--blue)}
table.price tbody th{background:var(--blue-pale);color:var(--navy);text-align:left;font-weight:700;white-space:nowrap}
table.price .ttl-row td{background:#fff}
table.price .mark-o{color:var(--blue);font-weight:700}
table.price .mark-x{color:#c0c8d0}
table.price .price-row td{font-family:var(--latin);font-weight:700;font-size:18px;color:var(--navy);background:#fbfdff}
table.price .price-row th{background:var(--navy);color:#fff}
.price-note{margin-top:16px;font-size:12.5px;color:var(--gray);line-height:1.9}
.ai-note{margin-top:24px;background:var(--blue-pale);border-radius:12px;padding:20px 26px;font-size:15px;color:#33424f;line-height:1.9}
.ai-note b{color:var(--blue)}
/* mid cta */
  .midcta{background:linear-gradient(160deg,var(--blue),var(--navy));color:#fff;text-align:center;position:relative;overflow:hidden;padding:84px 0}
.midcta h2{font-family:var(--serif);font-weight:800;font-size:clamp(23px,3.6vw,36px);line-height:1.5;margin-bottom:16px}
.midcta p{color:rgba(255,255,255,.88);font-size:15.5px;max-width:600px;margin:0 auto 32px;line-height:2}
.midcta .btn{display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-weight:700;font-size:16px;padding:17px 40px;border-radius:99px;background:#fff;color:var(--navy);transition:.3s}
/* commitment blocks */
  .cmt{display:grid;grid-template-columns:auto 1fr;gap:30px;align-items:start;max-width:900px;margin:0 auto}
@media(max-width:680px){.cmt{grid-template-columns:1fr;gap:18px}}
.cmt .cnum{font-family:var(--latin);font-weight:700;font-size:54px;line-height:1;color:var(--blue-pale);-webkit-text-stroke:1.5px var(--blue);position:relative}
@media(max-width:680px){.cmt .cnum{font-size:40px}}
.cmt-body h3{font-family:var(--serif);font-size:clamp(19px,2.6vw,25px);font-weight:800;color:var(--navy);line-height:1.5;margin-bottom:16px}
.cmt-body p{font-size:16px;color:#3a4853;line-height:2.05;margin:0 0 14px}
.cmt-body p:last-child{margin-bottom:0}
.cmt + .cmt{margin-top:48px;padding-top:48px;border-top:1px solid var(--line)}
.cmt-body .hl{background:linear-gradient(transparent 62%,rgba(47,143,224,.22) 62%);font-weight:700;color:var(--navy)}
/* stats band */
  .stats-band{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;max-width:900px;margin:0 auto}
@media(max-width:760px){.stats-band{grid-template-columns:1fr 1fr}}
.stat-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:30px 18px;text-align:center}
.stat-card b{display:block;font-family:var(--latin);font-weight:700;font-size:34px;line-height:1;color:var(--blue)}
.stat-card b small{font-size:50%}
.stat-card span{display:block;font-size:13.5px;color:var(--gray);margin-top:10px;line-height:1.6}
