/* flow.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:80px 0 84px}
.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:13.5px;letter-spacing:.14em;color:var(--sky);border:1px solid rgba(255,255,255,.25);padding:6px 15px;border-radius:99px;margin-bottom:24px}
.hero h1{font-family:var(--serif);font-weight:800;font-size:48px;line-height:1.3;margin-bottom:22px}
.hero .lead{font-size:clamp(15px,1.6vw,17px);color:rgba(255,255,255,.86);line-height:2.05;max-width:680px;margin-bottom:34px}
.hero .btn{display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-weight:700;font-size:15.5px;padding:16px 34px;border-radius:99px;transition:.3s}
section{padding:84px 0}
.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}
/* vertical timeline */
  .timeline{max-width:820px;margin:0 auto;position:relative}
.timeline::before{content:"";position:absolute;left:31px;top:10px;bottom:10px;width:2px;background:linear-gradient(180deg,var(--blue),rgba(26,109,196,.2))}
@media(max-width:560px){.timeline::before{left:23px}}
.tstep{position:relative;padding:0 0 44px 88px}
.tstep:last-child{padding-bottom:0}
@media(max-width:560px){.tstep{padding-left:64px}}
.tstep .tnum{position:absolute;left:0;top:0;width:64px;height:64px;border-radius:50%;background:#fff;border:2px solid var(--blue);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:2}
@media(max-width:560px){.tstep .tnum{width:48px;height:48px}}
.tstep .tnum .en{font-family:var(--latin);font-weight:700;font-size:10px;color:var(--blue);letter-spacing:.06em;line-height:1}
.tstep .tnum .n{font-family:var(--latin);font-weight:700;font-size:24px;color:var(--blue);line-height:1.1}
@media(max-width:560px){.tstep .tnum .n{font-size:18px}.tstep .tnum .en{display:none}}
.tcard{background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px 30px;transition:.3s}
.tcard:hover{box-shadow:0 14px 32px rgba(10,37,64,.08)}
.tcard h3{font-family:var(--serif);font-size:19px;font-weight:700;color:var(--navy);margin-bottom:10px}
.tcard p{font-size:15.5px;color:#46535f;line-height:1.95;margin:0}
.tcard .tmeta{margin-top:14px;display:inline-flex;align-items:center;gap:8px;font-size:13.5px;font-weight:700;color:var(--blue);background:var(--blue-pale);padding:7px 14px;border-radius:99px}
.tcard .tlink{margin-top:14px}
.tcard .tlink a{font-size:14.5px;font-weight:700;color:#fff;background:var(--orange);padding:10px 22px;border-radius:99px;text-decoration:none;display:inline-block;transition:.3s}
.tcard .tlink a:hover{background:#d4503a}
