:root{
  --c-bg:#fafaf7;
  --c-fg:#1a1a1a;
  --c-fg-mute:#555;
  --c-line:#dcdcd4;
  --c-accent:#2a5a5a;
  --c-accent-2:#c98a3d;
  --c-mark:#fff2c4;
  --c-card:#fff;
  --c-type1:#3b6e5e;
  --c-type2:#7a5a3b;
  --c-type3:#3a4c6e;
  --c-type4:#5a4568;
  --sp-max:900px;
  --radius:8px;
  --shadow:0 1px 3px rgba(0,0,0,.06);
  --f-serif: "Hiragino Mincho ProN","Yu Mincho",serif;
  --f-sans: "Hiragino Kaku Gothic ProN","Yu Gothic UI","Meiryo",system-ui,sans-serif;
}

*{box-sizing:border-box}
html{font-size:16px;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--c-bg);color:var(--c-fg);
  font-family:var(--f-sans);line-height:1.8;
  font-feature-settings:"palt";
}

.skip-link{position:absolute;left:-9999px;top:0;background:#000;color:#fff;padding:.5rem 1rem;z-index:100}
.skip-link:focus{left:0}

a{color:var(--c-accent);text-decoration:underline;text-underline-offset:2px}
a:hover,a:focus-visible{text-decoration:none}
a:focus-visible{outline:2px solid var(--c-accent-2);outline-offset:2px}

h1,h2,h3,h4{font-family:var(--f-serif);line-height:1.4;font-weight:600;letter-spacing:.02em}
h1{font-size:1.9rem;margin:0 0 .8rem}
h2{font-size:1.5rem;margin:2.4rem 0 .8rem;border-left:6px solid var(--c-accent);padding-left:.8rem}
h3{font-size:1.2rem;margin:1.6rem 0 .6rem}
h4{font-size:1.05rem;margin:1.2rem 0 .4rem}
p{margin:0 0 1rem}
strong{background:var(--c-mark);padding:.05em .15em;font-weight:600;border-radius:2px}
.mark-num{color:var(--c-accent);font-weight:600;background:none}

.container{max-width:1100px;margin:0 auto;padding:0 1.2rem}

/* Header */
.site-header{background:#fff;border-bottom:1px solid var(--c-line)}
.site-header .container{display:flex;align-items:center;justify-content:space-between;padding-top:.8rem;padding-bottom:.8rem;gap:1rem;flex-wrap:wrap}
.site-brand{display:flex;align-items:center;gap:.6rem}
.site-logo{font-family:var(--f-serif);font-size:1.15rem;font-weight:600;color:var(--c-fg);text-decoration:none}
.pr-badge{display:inline-block;font-size:.7rem;font-weight:700;color:#fff;background:var(--c-accent-2);padding:.15rem .5rem;border-radius:3px;letter-spacing:.05em;font-family:var(--f-sans);line-height:1.4;white-space:nowrap}
.site-nav ul{display:flex;gap:1.2rem;list-style:none;margin:0;padding:0}
.site-nav a{color:var(--c-fg);text-decoration:none;font-size:.95rem}
.site-nav a:hover{color:var(--c-accent)}

/* FV */
.fv{background:linear-gradient(180deg,#f0eee6 0%,var(--c-bg) 100%);padding:3rem 0 2rem}
.fv h1{font-size:2.2rem;line-height:1.35}
.fv-lead{font-size:1.05rem;max-width:38rem;margin-bottom:1.5rem}
.fv-axis{font-size:.95rem;color:var(--c-fg-mute);max-width:38rem;margin-bottom:1.6rem}
.fv-entries{display:flex;flex-wrap:wrap;gap:.8rem;margin:1.2rem 0}
.fv-entry{display:inline-block;padding:.7rem 1.2rem;background:#fff;border:1px solid var(--c-line);border-radius:var(--radius);text-decoration:none;color:var(--c-fg);font-size:.95rem;box-shadow:var(--shadow)}
.fv-entry:hover{background:var(--c-accent);color:#fff;border-color:var(--c-accent)}
.article-meta{font-size:.85rem;color:var(--c-fg-mute);margin-top:1rem}
.article-meta time{font-variant-numeric:tabular-nums}
.survey-note{font-size:.8rem;color:var(--c-fg-mute);margin-top:.4rem}

/* KeyTakeaways */
.key-points{list-style:none;margin:1rem 0 2rem;padding:1.4rem 1.6rem;background:#fff;border-left:4px solid var(--c-accent-2);border-radius:var(--radius);box-shadow:var(--shadow)}
.key-points li{padding:.4rem 0;border-bottom:1px dashed var(--c-line);font-size:.98rem}
.key-points li:last-child{border-bottom:none}
.key-points li::before{content:"■ ";color:var(--c-accent-2);font-weight:700}

/* Type cards */
.type-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.2rem;margin:1.6rem 0}
.type-card{background:#fff;border:1px solid var(--c-line);border-radius:var(--radius);padding:1.4rem;box-shadow:var(--shadow)}
.type-card h3{margin-top:0;padding-left:.6rem;border-left:5px solid var(--c-type1)}
.type-card.t2 h3{border-left-color:var(--c-type2)}
.type-card.t3 h3{border-left-color:var(--c-type3)}
.type-card.t4 h3{border-left-color:var(--c-type4)}
.type-fit{font-size:.95rem;font-weight:500;color:var(--c-fg);margin:.4rem 0 .8rem}
.type-desc{font-size:.9rem;color:var(--c-fg-mute);line-height:1.75}

/* Company cards */
.company-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.4rem;margin:1.6rem 0}
.company-card{background:var(--c-card);border:1px solid var(--c-line);border-radius:var(--radius);padding:1.4rem 0 1.4rem;box-shadow:var(--shadow);display:flex;flex-direction:column;overflow:hidden}
.company-card > *:not(.card-img){margin-left:1.4rem;margin-right:1.4rem}
.card-img{width:100%;background:#f0eee6;margin:-1.4rem 0 1rem}
.card-img img,.card-img svg{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;display:block}
.card-img figcaption{font-size:.7rem;color:var(--c-fg-mute);padding:.3rem 1.4rem;background:#fff;border-top:1px solid var(--c-line)}
.hero-fig{max-width:600px;aspect-ratio:auto;overflow:visible;margin:1rem 0 2rem;border:1px solid var(--c-line);border-radius:var(--radius);background:#fff}
.hero-fig img{width:100%;height:auto;object-fit:contain;display:block;border-radius:var(--radius) var(--radius) 0 0}
.hero-fig figcaption{font-size:.8rem;color:var(--c-fg-mute);padding:.6rem 1rem;background:#fff;border-top:1px solid var(--c-line);line-height:1.7;border-radius:0 0 var(--radius) var(--radius)}
.company-card h3{margin:0 0 .6rem;font-size:1.15rem}
.type-tag{display:inline-block;font-size:.75rem;font-weight:600;color:#fff;background:var(--c-type1);padding:.2rem .6rem;border-radius:3px;margin-bottom:.6rem}
.type-tag.t2{background:var(--c-type2)}
.type-tag.t3{background:var(--c-type3)}
.type-tag.t4{background:var(--c-type4)}
.position{font-size:.9rem;line-height:1.7;margin-bottom:.8rem;min-height:5.6em}
.facts{list-style:none;padding:0;margin:.6rem 0 1rem;font-size:.85rem;color:var(--c-fg-mute)}
.facts li{padding:.2rem 0;border-bottom:1px dotted var(--c-line)}
.facts li:last-child{border-bottom:none}
.facts li::before{content:"▸ ";color:var(--c-accent)}
.card-links{margin-top:auto;display:flex;gap:.6rem;flex-wrap:wrap;padding-top:.6rem;border-top:1px solid var(--c-line)}
.card-links a{font-size:.85rem;padding:.4rem .8rem;background:#f2f0ea;border-radius:3px;text-decoration:none;color:var(--c-fg)}
.card-links a:hover{background:var(--c-accent);color:#fff}
.card-links a.external{background:#fff;color:var(--c-accent);border:1px solid var(--c-accent)}
.card-links a.external::after{content:" ↗";font-size:.85em}
.card-links a.external:hover{background:var(--c-accent);color:#fff}
.footnote-ref{font-size:.75em;color:var(--c-accent);text-decoration:none;padding:0 .1em;vertical-align:super;line-height:0}
.footnote-ref:hover{text-decoration:underline}
.section-footnotes{margin:1.4rem 0 0;padding:.9rem 1.1rem;background:#f7f5ef;border-left:3px solid var(--c-accent);border-radius:2px;font-size:.82rem;line-height:1.7;color:var(--c-fg-mute)}
.section-footnotes ol{list-style:none;padding:0;margin:0;counter-reset:fn}
.section-footnotes li{counter-increment:fn;padding-left:2.2em;text-indent:-2.2em;margin:.2rem 0}
.section-footnotes li::before{content:"※" counter(fn) "　";color:var(--c-accent);font-weight:600}
.sort-note{font-size:.85rem;color:var(--c-fg-mute);margin:.8rem 0 1.2rem;padding:.6rem .8rem;background:#f2f0ea;border-radius:4px}

/* Comparison table */
.table-wrap{overflow-x:auto;margin:1rem 0 2rem}
table.compare{width:100%;table-layout:fixed;border-collapse:collapse;font-size:.85rem;background:#fff;box-shadow:var(--shadow)}
table.compare caption{caption-side:top;text-align:left;font-weight:600;padding:.6rem 0;color:var(--c-fg-mute)}
table.compare th,table.compare td{border:1px solid var(--c-line);padding:.6rem .5rem;vertical-align:top;line-height:1.6;word-break:break-word}
table.compare thead th{background:var(--c-accent);color:#fff;text-align:left;font-weight:600}
table.compare tbody th{background:#f2f0ea;text-align:left;font-weight:500;width:20%}

/* Hidden criteria */
.criteria{background:#fff;border:1px solid var(--c-line);border-radius:var(--radius);padding:1.4rem 1.6rem;box-shadow:var(--shadow);margin:1.2rem 0}
.criteria ol{padding-left:1.4rem;margin:.6rem 0}
.criteria li{margin-bottom:.9rem;line-height:1.75}
.criteria li strong{background:var(--c-mark)}

/* FAQ */
.faq details{background:#fff;border:1px solid var(--c-line);border-radius:var(--radius);margin-bottom:.8rem;box-shadow:var(--shadow)}
.faq summary{cursor:pointer;padding:1rem 1.2rem;font-weight:600;font-size:.98rem;list-style:none;position:relative;padding-right:2.4rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"＋";position:absolute;right:1.2rem;top:1rem;font-size:1.2rem;color:var(--c-accent)}
.faq details[open] summary::after{content:"−"}
.faq .faq-body{padding:0 1.2rem 1.2rem;font-size:.95rem;line-height:1.8;color:var(--c-fg)}

/* Knowledge hub */
.knowledge-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.2rem;margin:1.4rem 0}
.knowledge-item{background:#fff;border:1px solid var(--c-line);border-radius:var(--radius);padding:1.2rem;box-shadow:var(--shadow)}
.knowledge-item h3{font-size:1.05rem;margin:0 0 .6rem}
.knowledge-item p{font-size:.9rem;line-height:1.8;color:var(--c-fg-mute);margin-bottom:.6rem}
.knowledge-item a{font-size:.85rem}

/* Related */
.related-list{list-style:none;padding:0}
.related-list li{padding:.6rem 0;border-bottom:1px dotted var(--c-line)}
.related-list li::before{content:"→ ";color:var(--c-accent)}

/* Operator */
.operator-block{background:#fff;border:1px solid var(--c-line);border-radius:var(--radius);padding:1.4rem 1.6rem;box-shadow:var(--shadow);margin:1.4rem 0}
.operator-block dl{display:grid;grid-template-columns:8rem 1fr;gap:.6rem 1rem;margin:.6rem 0}
.operator-block dt{font-weight:600;color:var(--c-fg-mute)}
.operator-block dd{margin:0}

/* Footer */
.site-footer{background:#2a2a28;color:#e6e4dc;padding:2.4rem 0 1.4rem;margin-top:3rem}
.site-footer a{color:#e6e4dc}
.footer-sitemap{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1.4rem 1.2rem;margin:0 0 1.8rem}
.footer-sitemap h3{font-size:.78rem;color:#b8b6ae;margin:0 0 .6rem;font-weight:600;letter-spacing:.02em}
.footer-sitemap ul{list-style:none;margin:0;padding:0}
.footer-sitemap li{margin:0 0 .4rem;line-height:1.4}
.footer-sitemap a{font-size:.82rem;color:#e6e4dc;text-decoration:none}
.footer-sitemap a:hover{text-decoration:underline}
.footer-links{list-style:none;padding:0;display:flex;gap:1rem;flex-wrap:wrap;margin:0 0 1rem;font-size:.9rem;border-top:1px solid #4a4a48;padding-top:1.4rem}
.footer-copyright{font-size:.85rem;color:#b8b6ae;margin-top:1rem;border-top:1px solid #4a4a48;padding-top:1rem}
.footer-disclaimer{font-size:.8rem;color:#b8b6ae;line-height:1.7;margin:1rem 0 0;padding:1rem;background:#1f1f1d;border-radius:4px}
.footer-disclaimer strong{color:#e6e4dc;background:transparent;padding:0;display:block;margin-bottom:.4rem;font-weight:600}

/* Breadcrumb */
.breadcrumb{background:#f2f0ea;border-bottom:1px solid var(--c-line);padding:.6rem 0}
.breadcrumb ol{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;font-size:.85rem;color:var(--c-fg-mute)}
.breadcrumb li{display:flex;align-items:center}
.breadcrumb li + li::before{content:"＞";margin:0 .5rem;color:var(--c-fg-mute);font-size:.8em}
.breadcrumb a{color:var(--c-accent);text-decoration:none}
.breadcrumb a:hover,.breadcrumb a:focus-visible{text-decoration:underline}
.breadcrumb [aria-current="page"]{color:var(--c-fg);font-weight:500}

/* Section spacing */
section{padding:1.4rem 0}

/* Focus */
:focus-visible{outline:2px solid var(--c-accent-2);outline-offset:2px}

/* Mobile */
@media (max-width:768px){
  h1{font-size:1.6rem}
  h2{font-size:1.3rem}
  .fv{padding:2rem 0 1.4rem}
  .fv h1{font-size:1.75rem}
  .type-grid,.company-grid,.knowledge-grid{grid-template-columns:1fr}
  .fv-entries{flex-direction:column}
  .fv-entry{width:100%;text-align:center}
  .operator-block dl{grid-template-columns:1fr}
  .site-nav ul{gap:.8rem;font-size:.85rem}
  table.compare{font-size:.8rem}
}

@media print{
  .fv-entries,.card-links,.site-nav{display:none}
  body{background:#fff;color:#000}
  a{color:#000;text-decoration:underline}
}

@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
}

@media (prefers-color-scheme:dark){
  :root{
    --c-bg:#1a1a17;
    --c-fg:#e6e4dc;
    --c-fg-mute:#a8a6a0;
    --c-line:#3a3a35;
    --c-card:#252521;
    --c-mark:#5a4d2a;
  }
  .site-header,.type-card,.company-card,.criteria,.faq details,.knowledge-item,.operator-block,.key-points{background:var(--c-card)}
  .fv{background:linear-gradient(180deg,#252521 0%,var(--c-bg) 100%)}
  .card-links a{background:#3a3a35;color:#e6e4dc}
  .card-links a.external{background:transparent;color:#e6e4dc;border-color:#e6e4dc}
  .section-footnotes{background:#2f2f2c;color:#c5c3bb;border-left-color:#8fb7b7}
  .sort-note{background:#252521}
  table.compare{background:#252521}
  table.compare tbody th{background:#3a3a35}
}
