/* =========================================================
   Mitsuket-ai — Sub-pages (load after style.css)
   1. Page hero   2. Layout + cards   3. Content blocks
   4. Forms       5. FAQ             6. Case / vendor detail
   7. Responsive
   ========================================================= */

/* ---------- 1. Page hero (slides under the fixed header, like the home hero) ---------- */
.page-hero{position:relative;isolation:isolate;overflow:hidden;margin-top:calc(var(--header-h) * -1);padding:calc(var(--header-h) + 40px) 0 56px;border-bottom:1px solid var(--line);
  background:radial-gradient(640px 360px at 0 0,rgba(31,95,255,.12),transparent 70%),radial-gradient(560px 340px at 100% 0,rgba(20,211,169,.10),transparent 70%),var(--paper)}
.page-hero::before{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(to right,rgba(10,18,40,.05) 1px,transparent 1px),linear-gradient(to bottom,rgba(10,18,40,.05) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(ellipse 70% 90% at 50% 0,#000 20%,transparent 75%);mask-image:radial-gradient(ellipse 70% 90% at 50% 0,#000 20%,transparent 75%);pointer-events:none}
.page-hero.compact{padding-bottom:40px}
.page-title{margin:14px 0 14px;font-family:var(--jp);font-size:var(--fs-3xl);line-height:1.35;font-weight:900;letter-spacing:.01em;word-break:auto-phrase}
.page-hero .lead{max-width:680px}
.page-hero .btn-row{margin-top:28px}
.page-hero.dark{border-bottom:0;background:var(--ink);color:#fff}
.page-hero.dark::before{background-image:radial-gradient(rgba(255,255,255,.09) 1px,transparent 1px);background-size:22px 22px;-webkit-mask-image:radial-gradient(ellipse 60% 80% at 80% 40%,#000,transparent 75%);mask-image:radial-gradient(ellipse 60% 80% at 80% 40%,#000,transparent 75%)}
.page-hero.dark::after{content:"";position:absolute;z-index:-1;width:560px;height:560px;left:-180px;top:-240px;border-radius:50%;background:var(--brand);filter:blur(110px);opacity:.4}
.page-hero.dark .lead{color:var(--on-dark)}
.page-hero.dark .eyebrow{color:#8DB8FF}
.page-hero.dark .eyebrow .jp{color:#8A9BBD}
.page-hero.dark .crumbs,.page-hero.dark .crumbs a{color:var(--on-dark-2)}
.page-hero.dark .crumbs [aria-current]{color:#fff}
.page-hero.dark .crumbs li+li::before{color:rgba(255,255,255,.3)}
/* header over a dark hero: light logo until the header turns opaque on scroll */
.site-header.on-dark:not(.scrolled):not(.menu-open) .logo{color:#fff}

/* breadcrumb */
.crumbs{margin:0 0 18px;padding:0;list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:var(--fs-sm);color:var(--muted-2)}
.crumbs li{display:inline-flex;align-items:center;gap:6px}
.crumbs li+li::before{content:"/";color:var(--line-2)}
.crumbs a{color:var(--muted);transition:color .2s}
.crumbs a:hover{color:var(--brand)}
.crumbs [aria-current]{color:var(--ink-2);font-weight:700}

/* ---------- 2. Layout + cards ---------- */
.section.tight{padding:64px 0}
.section.alt{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.with-aside{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:40px;align-items:start}
.with-aside>aside{display:flex;flex-direction:column;gap:20px;position:sticky;top:calc(var(--header-h-sm) + 24px)}
.card{padding:32px;border-radius:var(--radius);background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-sm)}
.card+.card{margin-top:20px}
.card h2{margin:0 0 16px;font-family:var(--jp);font-size:var(--fs-xl);font-weight:900}
.card>p{margin:0;font-size:var(--fs-base);line-height:1.9;color:var(--ink-2)}
.card-title{display:flex;align-items:center;gap:10px;margin:0 0 18px;font-family:var(--jp);font-size:var(--fs-lg);font-weight:900}
.card-title .ico{width:34px;height:34px;border-radius:10px}
/* dark side card (same language as the home inaction banner) */
.card-dark{position:relative;overflow:hidden;isolation:isolate;padding:28px;border-radius:var(--radius);background:var(--ink);color:#fff;box-shadow:var(--shadow-lg)}
.card-dark::before{content:"";position:absolute;z-index:-1;width:300px;height:300px;right:-120px;top:-150px;border-radius:50%;background:var(--brand);filter:blur(70px);opacity:.6}
.card-dark h2,.card-dark .cd-title{margin:0 0 8px;font-family:var(--jp);font-size:var(--fs-xl);font-weight:900;line-height:1.45}
.card-dark p{margin:0 0 20px;font-size:var(--fs-sm);line-height:1.8;color:var(--on-dark)}
.card-dark .btn{width:100%}
.note-card{padding:20px 22px;border-radius:var(--radius-sm);background:var(--brand-50);border:1px solid var(--brand-100);font-size:var(--fs-sm);line-height:1.8;color:var(--ink-2)}
.note-card a{font-weight:700;color:var(--brand)}

/* ---------- 3. Content blocks ---------- */
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.feature{position:relative;display:flex;flex-direction:column;gap:10px;padding:28px;border-radius:var(--radius);background:#fff;border:1px solid var(--line);transition:transform .4s var(--ease),box-shadow .4s,border-color .4s}
.feature:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--brand-100)}
.feature .ico{width:48px;height:48px;border-radius:14px;margin-bottom:6px}
.feature .ico svg.lucide{width:22px;height:22px}
.feature h3{margin:0;font-family:var(--jp);font-size:var(--fs-lg);font-weight:900;line-height:1.5}
.feature p{margin:0;font-size:var(--fs-base);line-height:1.8;color:var(--muted)}
/* numbered flow cards */
.flow-steps{list-style:none;margin:0;padding:0;counter-reset:step}
.flow-step{position:relative;display:flex;flex-direction:column;gap:8px;padding:26px 24px;border-radius:var(--radius);background:#fff;border:1px solid var(--line)}
.flow-step .n{font-family:var(--mono);font-size:var(--fs-sm);font-weight:700;color:var(--brand)}
.flow-step .step-ico{width:52px;height:52px;border-radius:15px;margin:2px 0 6px}
.flow-step h3{margin:0;font-size:var(--fs-md);font-weight:700}
.flow-step p{margin:0;font-size:var(--fs-sm);line-height:1.8;color:var(--muted)}
.flow-step:not(:last-child)::after{content:"";position:absolute;top:50px;right:-14px;width:12px;height:12px;border-top:2px solid var(--brand-100);border-right:2px solid var(--brand-100);transform:rotate(45deg)}
.section-dark .flow-step{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.09)}
.section-dark .flow-step p{color:var(--on-dark)}
.section-dark .flow-step .n{color:#7FF0D6}
/* checklist */
.checklist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.checklist li{display:flex;align-items:flex-start;gap:12px;padding:16px 18px;border-radius:var(--radius-sm);background:#fff;border:1px solid var(--line);font-size:var(--fs-base);font-weight:500}
.checklist svg.lucide{width:20px;height:20px;margin-top:2px;padding:3px;border-radius:50%;background:var(--mint);color:#fff}
/* definition table (company / vendor info) */
.info-table{margin:0}
.info-table>div{display:grid;grid-template-columns:150px minmax(0,1fr);gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}
.info-table>div:first-child{padding-top:0}
.info-table>div:last-child{padding-bottom:0;border-bottom:0}
.info-table dt{font-size:var(--fs-sm);font-weight:700;color:var(--muted)}
.info-table dd{margin:0;font-size:var(--fs-base);color:var(--ink-2)}
.card .info-table.compact>div{grid-template-columns:96px minmax(0,1fr);padding:12px 0}
.card .info-table.compact dd{font-size:var(--fs-sm)}
/* contact strip */
.strip{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 28px;border-radius:var(--radius);background:var(--grad-soft);border:1px solid var(--brand-100)}
.strip b{font-size:var(--fs-md)}
.strip p{margin:4px 0 0;font-size:var(--fs-sm);color:var(--muted)}
/* chips (tags) */
.chip-list{display:flex;flex-wrap:wrap;gap:8px}
.chip-tag{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:999px;background:var(--paper);border:1px solid var(--line);font-size:var(--fs-sm);font-weight:700;color:var(--ink-2)}
a.chip-tag:hover{border-color:var(--brand);color:var(--brand)}
.chip-tag svg.lucide{width:15px;height:15px}
.chip-tag.brand{background:var(--brand-50);border-color:var(--brand-100);color:var(--brand)}
.chip-tag.ok{background:var(--mint-50);border-color:#A8EED9;color:var(--mint-600)}
.side-links{display:flex;flex-direction:column}
.side-links a{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 0;border-bottom:1px solid var(--line);font-size:var(--fs-sm);font-weight:700;color:var(--ink-2);transition:color .2s}
.side-links a:last-child{border-bottom:0;padding-bottom:0}
.side-links a:first-child{padding-top:0}
.side-links a:hover{color:var(--brand)}
.side-links svg.lucide{width:16px;height:16px;color:var(--muted-2)}
/* numbered steps in a side card */
.aside-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:18px}
.aside-steps li{display:grid;grid-template-columns:36px minmax(0,1fr);gap:12px}
.aside-steps .n{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:var(--brand-50);color:var(--brand);font-family:var(--mono);font-size:var(--fs-sm);font-weight:700}
.aside-steps b{display:block;font-size:var(--fs-base);line-height:1.5}
.aside-steps span{display:block;margin-top:2px;font-size:var(--fs-sm);line-height:1.7;color:var(--muted)}
/* link cards (contact page aside) */
.link-card{display:flex;flex-direction:column;gap:4px;padding:22px;border-radius:var(--radius);background:#fff;border:1px solid var(--line);transition:border-color .25s,box-shadow .25s,transform .3s var(--ease)}
.link-card:hover{border-color:var(--brand-100);box-shadow:var(--shadow);transform:translateY(-2px)}
.link-card small{font-size:var(--fs-xs);font-weight:700;letter-spacing:.06em;color:var(--brand)}
.link-card b{display:flex;align-items:center;justify-content:space-between;font-size:var(--fs-md)}
.link-card span{font-size:var(--fs-sm);color:var(--muted)}

/* ---------- 4. Forms ---------- */
.form-card{padding:40px 44px}
.card .form-section{margin:40px 0 18px;padding-bottom:12px;border-bottom:1px solid var(--line);font-family:var(--jp);font-size:var(--fs-lg);font-weight:900}
.card .form-section:first-child{margin-top:0}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.f-field{display:flex;flex-direction:column;gap:8px}
.f-field.full{grid-column:1 / -1}
.f-label,.f-field>label,.f-group legend{display:flex;align-items:center;gap:8px;font-size:var(--fs-sm);font-weight:700;color:var(--ink)}
.req,.opt{display:inline-block;padding:1px 8px;border-radius:6px;font-size:var(--fs-xs);font-weight:700;line-height:1.6}
.req{background:var(--brand);color:#fff}
.opt{background:var(--paper);color:var(--muted);border:1px solid var(--line)}
.f-input{-webkit-appearance:none;appearance:none;width:100%;box-sizing:border-box;padding:13px 16px;border:1px solid var(--line-2);border-radius:var(--radius-sm);background:#fff;font-size:var(--fs-base);color:var(--ink);outline:0;transition:border-color .25s,box-shadow .25s}
.f-input::placeholder{color:var(--muted-2)}
.f-input:hover{border-color:var(--muted-2)}
.f-input:focus{border-color:var(--brand);box-shadow:0 0 0 4px rgba(31,95,255,.12)}
textarea.f-input{min-height:140px;line-height:1.8;resize:vertical}
select.f-input{padding-right:40px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%234B5875' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}
.f-hint{font-size:var(--fs-xs);color:var(--muted-2)}
.f-group{margin:0;padding:0;border:0;min-width:0}
.f-group legend{padding:0;margin-bottom:12px}
/* vertical rhythm between top-level form blocks */
.form-card>.f-field,.form-card>.form-grid,.form-card>.f-group{margin-top:22px}
.form-card>.form-section+*{margin-top:0}
/* checkbox / radio rendered as selectable chips */
.choice-grid{display:flex;flex-wrap:wrap;gap:10px}
.choice,.choice-grid .wpcf7-list-item label{position:relative;display:inline-flex}
.choice input,.choice-grid .wpcf7-list-item label input{position:absolute;opacity:0;width:1px;height:1px}
.choice span,.choice-grid .wpcf7-list-item label .wpcf7-list-item-label{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:999px;border:1px solid var(--line-2);background:#fff;font-size:var(--fs-sm);font-weight:500;color:var(--ink-2);cursor:pointer;transition:all .2s}
.choice span::before,.choice-grid .wpcf7-list-item label .wpcf7-list-item-label::before{content:"";width:16px;height:16px;border-radius:5px;border:1.5px solid var(--line-2);background:#fff center/12px no-repeat;transition:all .2s}
.choice input[type=radio]+span::before,.choice-grid .wpcf7-list-item label input[type=radio]+.wpcf7-list-item-label::before{border-radius:50%}
.choice:hover span,.choice-grid .wpcf7-list-item label:hover .wpcf7-list-item-label{border-color:var(--brand)}
.choice input:checked+span,.choice-grid .wpcf7-list-item label input:checked+.wpcf7-list-item-label{border-color:var(--brand);background:var(--brand-50);color:var(--brand);font-weight:700}
.choice input:checked+span::before,.choice-grid .wpcf7-list-item label input:checked+.wpcf7-list-item-label::before{border-color:var(--brand);background-color:var(--brand);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E")}
.choice input:focus-visible+span,.choice-grid .wpcf7-list-item label input:focus-visible+.wpcf7-list-item-label{outline:2px solid var(--brand);outline-offset:3px}
.consent{display:flex;align-items:center;gap:12px;margin-top:28px;padding:16px 18px;border-radius:var(--radius-sm);background:var(--paper);border:1px solid var(--line);font-size:var(--fs-sm);cursor:pointer}
.consent input{width:20px;height:20px;flex-shrink:0;accent-color:var(--brand)}
.consent a{font-weight:700;color:var(--brand);text-decoration:underline;text-underline-offset:3px}
.form-actions{display:flex;align-items:center;gap:16px;margin-top:24px}
.form-actions .btn{height:56px;padding:0 40px;font-size:var(--fs-md)}
.form-actions small{font-size:var(--fs-xs);color:var(--muted-2)}
/* Contact Form 7 (inc/forms.php): its markup in the same look */
.wpcf7-form-control-wrap{display:block}
.choice-grid .wpcf7-form-control{display:flex;flex-wrap:wrap;gap:10px}
.wpcf7-list-item{margin:0}
.choice-grid .wpcf7-list-item-label::after,.consent .wpcf7-list-item-label::before,.consent .wpcf7-list-item-label::after{content:none}
.consent .wpcf7-list-item label{display:flex;align-items:center;gap:12px;cursor:pointer}
.wpcf7-form .hidden-fields-container+.form-section{margin-top:0}
.wpcf7-not-valid-tip{margin-top:6px;font-size:var(--fs-xs);font-weight:700;color:#C62828}
.f-input.wpcf7-not-valid{border-color:#E57373}
.wpcf7 form .wpcf7-response-output{margin:20px 0 0;padding:14px 18px;border-radius:var(--radius-sm);border:1px solid #F3C1C1;background:#FFF2F2;color:#9B1C1C;font-size:var(--fs-sm);line-height:1.7}
.wpcf7 form.invalid .wpcf7-response-output,.wpcf7 form.unaccepted .wpcf7-response-output,.wpcf7 form.failed .wpcf7-response-output,.wpcf7 form.aborted .wpcf7-response-output,.wpcf7 form.spam .wpcf7-response-output{border-color:#F3C1C1}
.wpcf7 form.sent .wpcf7-response-output{display:none}
.wpcf7 form.submitting .form-actions .btn{opacity:.6;pointer-events:none}
.wpcf7-turnstile{margin-top:24px}
/* demo "sent" state */
.form-done{text-align:center;padding:56px 32px}
.form-done[hidden]{display:none}
.form-done .ico{width:64px;height:64px;border-radius:20px;margin:0 auto 18px}
.form-done .ico svg.lucide{width:28px;height:28px}
.form-done h2{margin:0 0 10px;font-family:var(--jp);font-size:var(--fs-xl);font-weight:900}
.form-done p{margin:0 auto 24px;max-width:460px;font-size:var(--fs-base);line-height:1.8;color:var(--muted)}
.form-done .btn-row{justify-content:center}

/* ---------- 5. FAQ (details/summary accordion) ---------- */
.faq{max-width:860px;margin:0 auto;display:flex;flex-direction:column;gap:12px}
.faq details{border-radius:var(--radius-sm);background:#fff;border:1px solid var(--line);transition:border-color .25s,box-shadow .25s}
.faq details[open]{border-color:var(--brand-100);box-shadow:var(--shadow-sm)}
.faq summary{display:flex;align-items:center;gap:14px;padding:20px 22px;font-size:var(--fs-md);font-weight:700;cursor:pointer;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary .q{width:30px;height:30px;flex-shrink:0;border-radius:9px;display:grid;place-items:center;background:var(--brand-50);color:var(--brand);font-family:var(--mono);font-size:var(--fs-sm)}
.faq summary::after{content:"";width:10px;height:10px;margin-left:auto;flex-shrink:0;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg) translateY(-3px);transition:transform .3s var(--ease)}
.faq details[open] summary::after{transform:rotate(-135deg) translateY(-3px)}
.faq .a{display:flex;gap:14px;padding:0 22px 22px 22px;font-size:var(--fs-base);line-height:1.9;color:var(--muted)}
.faq .a::before{content:"A";width:30px;height:30px;flex-shrink:0;border-radius:9px;display:grid;place-items:center;background:var(--mint-50);color:var(--mint-600);font-family:var(--mono);font-size:var(--fs-sm);font-weight:700}

/* ---------- 6. Case / vendor detail ---------- */
.case-meta{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:6px;font-size:var(--fs-sm);color:var(--muted)}
.case-meta strong{color:var(--ink)}
.case-meta a{font-weight:700;color:var(--brand)}
.summary-rows{margin:0}
.summary-rows>div{display:grid;grid-template-columns:120px minmax(0,1fr);gap:20px;padding:22px 0;border-bottom:1px solid var(--line)}
.summary-rows>div:first-child{padding-top:4px}
.summary-rows>div:last-child{padding-bottom:4px;border-bottom:0}
.summary-rows dt{display:flex;align-items:flex-start;gap:8px;font-size:var(--fs-sm);font-weight:700;color:var(--muted)}
.summary-rows dt svg.lucide{width:18px;height:18px;color:var(--brand)}
.summary-rows dd{margin:0;font-size:var(--fs-md);line-height:1.9;color:var(--ink)}
.summary-rows .result dd{font-weight:700}
.source{display:flex;align-items:center;gap:20px}
.source>div{flex:1;min-width:0}
.source small{display:block;font-size:var(--fs-xs);font-weight:700;letter-spacing:.06em;color:var(--muted-2)}
.source b{display:block;margin:4px 0;font-size:var(--fs-md)}
.source span{font-size:var(--fs-sm);color:var(--muted)}
.disclaimer{margin:16px 0 0;font-size:var(--fs-xs);line-height:1.9;color:var(--muted-2)}
.disclaimer a{font-weight:700;color:var(--brand)}
/* vendor profile head */
.vendor-head{display:flex;align-items:center;gap:24px}
.vendor-head .v-ava{width:88px;height:88px;border-radius:24px;font-size:var(--fs-2xl)}
.vendor-head .page-title{margin:0 0 6px}
.vendor-head .vh-text{flex:1;min-width:0}
.vendor-head .vh-text>p{margin:0 0 12px;font-size:var(--fs-md);color:var(--muted)}
.vendor-head .btn-row{margin:0;flex-direction:column;align-items:stretch}
.skill-rows{margin:0}
.skill-rows>div{display:grid;grid-template-columns:96px minmax(0,1fr);gap:16px;align-items:start;padding:14px 0;border-bottom:1px solid var(--line)}
.skill-rows>div:first-child{padding-top:0}
.skill-rows>div:last-child{padding-bottom:0;border-bottom:0}
.skill-rows dt{padding-top:6px;font-size:var(--fs-sm);font-weight:700;color:var(--muted)}
.skill-rows dd{margin:0}
/* small table variant used inside cards (related cases, vendor cases) */
.card .table-wrap{margin-top:0;box-shadow:none}
.table-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px}
.table-head h2{margin:0;font-family:var(--jp);font-size:var(--fs-xl);font-weight:900}

/* ---------- 6b. Category pages (業種別・部門別) ---------- */
.theme-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:22px}
.theme-row>small{margin-right:4px;font-size:var(--fs-xs);font-weight:700;letter-spacing:.06em;color:var(--muted-2)}
.list-meta{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:16px}
.list-meta h2{margin:0;font-family:var(--jp);font-size:var(--fs-xl);font-weight:900}
.list-meta span{font-size:var(--fs-sm);color:var(--muted)}
.list-meta strong{margin-right:2px;font-size:var(--fs-xl);font-weight:800;color:var(--ink)}
.cat-block+.cat-block{margin-top:44px}
.cat-block>h2{display:flex;align-items:center;gap:10px;margin:0 0 16px;font-family:var(--jp);font-size:var(--fs-xl);font-weight:900}
.cat-block>h2 .ico{width:34px;height:34px;border-radius:10px}
.cat-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.cat-card{display:flex;align-items:center;gap:12px;height:100%;box-sizing:border-box;padding:14px 16px;border-radius:var(--radius-sm);background:#fff;border:1px solid var(--line);transition:border-color .25s,box-shadow .25s,transform .3s var(--ease)}
.cat-card:hover{border-color:var(--brand-100);box-shadow:var(--shadow);transform:translateY(-2px)}
.cat-card .ico{width:38px;height:38px;border-radius:11px}
.cat-card b{display:block;font-size:var(--fs-sm);line-height:1.45;color:var(--ink)}
.cat-card small{font-size:var(--fs-xs);color:var(--muted-2)}
.cat-card[aria-current]{border-color:var(--brand);background:var(--brand-50)}
.cat-card[aria-current] b{color:var(--brand)}

/* ---------- 6c. Legal pages (利用規約・プライバシーポリシー) ---------- */
.legal{max-width:880px;margin:0 auto;padding:48px 56px}
.legal section+section{margin-top:32px}
.legal h2{margin:0 0 12px;padding-bottom:10px;border-bottom:1px solid var(--line);font-family:var(--jp);font-size:var(--fs-lg);font-weight:900}
.legal p,.legal li{font-size:var(--fs-base);line-height:1.95;color:var(--ink-2)}
.legal p{margin:0 0 10px}
.legal ol{margin:4px 0 10px;padding-left:1.6em}
.legal li+li{margin-top:4px}
.legal-date{margin:40px 0 0 !important;text-align:right;font-size:var(--fs-sm) !important;color:var(--muted) !important}
.legal h3{margin:20px 0 8px;font-family:var(--jp);font-size:var(--fs-md);font-weight:700;color:var(--ink)}
.legal ul{margin:4px 0 10px;padding-left:1.4em}
.legal a{color:var(--brand);text-decoration:underline;text-underline-offset:3px}
.draft-note{display:flex;align-items:flex-start;gap:10px;margin:0 0 36px !important;padding:14px 18px;border-radius:var(--radius-sm);background:#FFF6E5;border:1px solid #F5D9A8;font-size:var(--fs-sm) !important;line-height:1.8 !important;color:#7A4B00 !important}
.draft-note svg.lucide{width:18px;height:18px;margin-top:3px;flex-shrink:0;color:#B26A00}

/* ---------- 7. Responsive ---------- */
@media (max-width:1024px){
  .with-aside{grid-template-columns:1fr}
  .with-aside>aside{position:static}
  .grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .flow-step:not(:last-child)::after{display:none}
  .cat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:860px){
  .grid-3{grid-template-columns:1fr}
  .vendor-head{flex-wrap:wrap}
  .vendor-head .btn-row{flex-direction:row;width:100%}
}
@media (max-width:720px){
  .page-hero{padding:calc(var(--header-h) + 24px) 0 40px}
  .card,.form-card,.legal{padding:24px 20px}
  .form-grid{grid-template-columns:1fr}
  .grid-4{grid-template-columns:1fr}
  .cat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cat-card{padding:12px}
  .cat-card .ico{width:32px;height:32px}
  .info-table>div,.summary-rows>div,.skill-rows>div{grid-template-columns:1fr;gap:6px}
  .strip,.source{flex-direction:column;align-items:flex-start}
  .strip .btn,.form-actions .btn{width:100%}
  .form-actions{flex-direction:column;align-items:stretch}
  .vendor-head .v-ava{width:64px;height:64px;border-radius:18px;font-size:var(--fs-xl)}
  .faq summary{font-size:var(--fs-base);padding:16px 18px}
  .faq .a{padding:0 18px 18px}
}
