/* company.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}
/* company profile table */
  .profile{max-width:840px;margin:0 auto;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.profile dl{display:grid;grid-template-columns:200px 1fr;border-top:1px solid var(--line)}
.profile dl:first-child{border-top:0}
@media(max-width:600px){.profile dl{grid-template-columns:1fr}}
.profile dt{background:var(--blue-pale);color:var(--navy);font-weight:700;padding:20px 24px;font-size:15.5px}
.profile dd{padding:20px 24px;font-size:16px;color:#33424f;line-height:1.85}
@media(max-width:600px){.profile dd{padding-top:6px}}
.profile dd a{color:var(--blue);text-decoration:none}
.profile dd a:hover{text-decoration:underline}
/* business cards */
  .biz-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;max-width:980px;margin:0 auto}
@media(max-width:860px){.biz-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.biz-grid{grid-template-columns:1fr}}
.biz{background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px 22px;transition:.3s}
.biz:hover{box-shadow:0 14px 32px rgba(10,37,64,.09);transform:translateY(-4px)}
.biz .bic{width:48px;height:48px;border-radius:12px;background:var(--blue-pale);display:flex;align-items:center;justify-content:center;margin-bottom:14px}
.biz h3{font-size:16px;font-weight:700;color:var(--navy);margin-bottom:8px;line-height:1.5}
.biz p{font-size:13.5px;color:var(--gray);line-height:1.8;margin:0}
/* access / map-ish band */
  .access{max-width:840px;margin:30px auto 0;background:#fff;border:1px solid var(--line);border-radius:14px;padding:28px 30px;display:flex;gap:24px;align-items:flex-start;flex-wrap:wrap}
.access .aic{width:52px;height:52px;border-radius:13px;background:var(--blue-pale);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.access .atxt h3{font-family:var(--serif);font-size:17px;color:var(--navy);font-weight:700;margin-bottom:8px}
.access .atxt p{font-size:15px;color:#46535f;margin:0;line-height:1.9}
