/* portal.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:52px 0}
.sec-head{text-align:center;margin-bottom:32px}
.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:14px;color:var(--gray);font-size:16px;max-width:700px;margin-left:auto;margin-right:auto;line-height:1.7}
.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:22px 22px;transition:.3s;display:grid;grid-template-columns:auto 1fr;column-gap:14px;align-content:start}
.feat:hover{box-shadow:0 14px 32px rgba(10,37,64,.09);transform:translateY(-4px)}
.feat .fic{grid-row:1 / span 1;width:46px;height:46px;border-radius:12px;background:var(--blue-pale);display:flex;align-items:center;justify-content:center;align-self:start}
.feat h3{grid-column:2;align-self:center;font-size:16px;font-weight:700;color:var(--navy);margin:0;line-height:1.3}
.feat p{grid-column:1 / -1;font-size:14.5px;color:var(--gray);margin:12px 0 0;line-height:1.75}
.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}

/* === 機能一覧テーブル === */
.fn-wrap{max-width:980px;margin:0 auto}
.fn-group{margin-bottom:34px}
.fn-group:last-child{margin-bottom:0}
.fn-ghead{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.fn-ghead .fn-badge{flex-shrink:0;font-family:var(--latin);font-weight:700;font-size:12px;letter-spacing:.08em;color:#fff;background:var(--blue);padding:6px 14px;border-radius:99px}
.fn-ghead h3{font-family:var(--serif);font-size:19px;font-weight:800;color:var(--navy);margin:0;line-height:1.4}
.fn-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.fn-table tr{border-bottom:1px solid var(--line)}
.fn-table tr:last-child{border-bottom:none}
.fn-table th{text-align:left;vertical-align:top;width:38%;padding:14px 18px;font-size:15px;font-weight:700;color:var(--navy);background:var(--blue-pale,#eaf3fb)}
.fn-table td{vertical-align:top;padding:14px 18px;font-size:14px;color:var(--ink);line-height:1.7}
@media(max-width:680px){
  .fn-table th,.fn-table td{display:block;width:auto}
  .fn-table th{background:var(--blue-pale,#eaf3fb)}
  .fn-table td{padding-top:8px}
  .fn-table tr{border-bottom:2px solid var(--line)}
}
.fn-note{margin-top:20px;font-size:13.5px;color:var(--gray);line-height:1.8}

/* === AI・業務効率化 提案バナー === */
.ai-banner{display:flex;align-items:center;gap:16px;background:linear-gradient(135deg,#1a6dc4 0%,#1559a6 100%);color:#fff;border-radius:14px;padding:20px 26px;margin-bottom:28px;box-shadow:0 10px 30px rgba(26,109,196,.25)}
.ai-banner .ai-ic{flex-shrink:0;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.15);border-radius:50%}
.ai-banner p{margin:0;font-size:16px;font-weight:700;line-height:1.6}
.ai-banner p .hl{color:#ffd34f}
@media(max-width:680px){.ai-banner{flex-direction:column;text-align:center;padding:18px 18px}.ai-banner p{font-size:15px}}
