.mono{font-family:"Roboto Mono","SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace;}

/* ===== Page ===== */
.main{padding-top:64px;}
.breadcrumb{border-bottom:1px solid var(--border);background:var(--background);}
.breadcrumb ol{display:flex;align-items:center;gap:.5rem;padding:1rem 0;font-size:.875rem;color:var(--muted-foreground);}
.breadcrumb li{display:flex;align-items:center;}
.breadcrumb a:hover{color:var(--primary);}
.breadcrumb .icon{width:16px;height:16px;}
.breadcrumb .current{color:var(--foreground);font-weight:500;}
.title-band{background:linear-gradient(rgba(255,255,255,.3),rgba(255,255,255,.3)),url('../images/result/result-title.jpg') center/cover no-repeat;}
.title-band .container{padding:3.5rem 1rem;text-align:center;}
.title-en{font-size:.875rem;font-weight:500;color:#ce5914;letter-spacing:.1em;margin-bottom:.75rem;}
.title-ja{font-size:1.875rem;font-weight:700;color:var(--primary);}

/* Sections */
.section{padding:3.5rem 0;}
.section-bg{background:var(--background);}
.lead{max-width:56rem;margin:0 auto;text-align:center;}
.lead h2{font-size:1.5rem;font-weight:700;color:var(--primary);line-height:1.6;}
.lead p{margin-top:1.5rem;font-size:1.125rem;line-height:1.9;color:#323b44;}

/* Filter: 種類 */
.filter-label{margin-bottom:1rem;display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:500;color:var(--foreground);}
.filter-label .num{color:#ce5914;font-size:1.25rem;}
.filter-note{margin-left:.25rem;font-size:.75rem;font-weight:400;color:var(--muted-foreground);}
.type-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;margin-bottom:2rem;}
.type-card{display:block;overflow:hidden;border:1px solid var(--border);text-align:left;transition:border-color .2s;background:none;}
.type-card:hover{border-color:var(--accent);}
.type-card.active{border-color:#013d71;}
.type-thumb{aspect-ratio:4/3;overflow:hidden;background:var(--muted);display:flex;align-items:center;justify-content:center;}
.type-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .5s;}
.type-card:hover .type-thumb img{transform:scale(1.05);}
.type-thumb.all{background:var(--muted);position:relative;}
.type-thumb.all .all-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:1.125rem;letter-spacing:.3em;color:#013d71;}
.type-card.active .type-thumb.all .all-label{color:#fff;background:rgba(0,0,0,.35);}
.type-noimg{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.375rem;width:100%;height:100%;background:var(--muted);color:var(--muted-foreground);}
.type-noimg .icon{width:24px;height:24px;}
.type-noimg span{font-size:10px;letter-spacing:.1em;}
.type-body{padding:.75rem;border-top:1px solid var(--border);background:var(--card);}
.type-card.active .type-body{background:#013d71;border-top-color:#013d71;}
.type-idx{font-size:.75rem;color:var(--muted-foreground);}
.type-name{font-size:.875rem;font-weight:700;color:var(--foreground);}
.type-count{margin-top:.125rem;font-size:11px;color:var(--muted-foreground);}
.type-card.active .type-idx,.type-card.active .type-count{color:rgba(255,255,255,.8);}
.type-card.active .type-name{color:var(--accent-foreground);}

/* Filter: 用途 */
.use-wrap{margin-bottom:1.5rem;}
.use-pills{display:flex;flex-wrap:wrap;gap:.5rem;}
.use-pill{padding:.75rem 1.5rem;font-size:.875rem;font-weight:500;background:var(--secondary);color:var(--secondary-foreground);transition:background .2s;}
.use-pill:hover{background:#dde4ee;}
.use-pill.active{background:var(--primary);color:var(--primary-foreground);}
.use-pill .cnt{margin-left:.5rem;opacity:.7;}
.use-pill:disabled{cursor:not-allowed;opacity:.4;}

/* Match hint */
.match-hint{margin-bottom:2.5rem;font-size:.875rem;color:var(--muted-foreground);}
.match-hint .hit{font-weight:700;color:var(--accent);}
.match-hint .total{font-weight:700;color:var(--primary);}

/* Gallery */
.gallery-groups{display:flex;flex-direction:column;gap:3.5rem;}
.cat-head{margin-bottom:.75rem;display:flex;align-items:baseline;gap:.75rem;border-bottom:2px solid var(--primary);padding-bottom:.75rem;}
.gallery-groups>section{scroll-margin-top:64px;}
.cat-head .idx{font-size:.875rem;color:#ce5914;}
.cat-head h2{font-size:1.25rem;font-weight:700;color:var(--primary);}
.cat-head .cnt{margin-left:auto;font-size:.75rem;color:var(--muted-foreground);}
.cat-note{margin-bottom:1.5rem;max-width:42rem;font-size:.875rem;line-height:1.6;color:#323b44;}
.card-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;}
.g-card{display:block;width:100%;overflow:hidden;border:1px solid var(--border);background:var(--card);text-align:left;transition:border-color .2s;}
.g-card:hover{border-color:rgba(0,61,113,.4);}
.g-thumb{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--muted);}
.g-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .5s;}
.g-card:hover .g-thumb img{transform:scale(1.05);}
.g-noimg{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;width:100%;height:100%;background:var(--secondary);color:var(--muted-foreground);}
.g-noimg .icon{width:32px;height:32px;}
.g-noimg span{font-size:.75rem;letter-spacing:.1em;}
.g-meta{display:flex;align-items:center;justify-content:space-between;gap:.5rem;border-top:1px solid var(--border);padding:.625rem .75rem;}
.g-plate{font-size:.75rem;color:var(--muted-foreground);}
.g-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;font-weight:500;color:var(--foreground);}
.gallery-empty{border:1px dashed var(--border);padding:5rem 0;text-align:center;font-size:.875rem;color:var(--muted-foreground);}

/* Lightbox */
.lightbox{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;background:rgba(35,42,51,.9);padding:1.5rem;}
.lightbox.open{display:flex;}
.lb-close{position:absolute;right:1.25rem;top:1.25rem;display:inline-flex;align-items:center;gap:.375rem;border:1px solid rgba(255,255,255,.4);padding:.5rem .75rem;font-size:.875rem;color:#fff;transition:background .2s;}
.lb-close:hover{background:rgba(255,255,255,.1);}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.05);padding:1rem .5rem;color:#fff;transition:background .2s;}
.lb-nav:hover{background:rgba(255,255,255,.15);}
.lb-prev{left:1rem;}
.lb-next{right:1rem;}
.lb-fig{max-height:88vh;max-width:min(900px,92vw);text-align:center;}
.lb-fig img{margin:0 auto;max-height:78vh;border:2px solid var(--accent);background:var(--foreground);}
.lb-noimg{margin:0 auto;aspect-ratio:4/3;width:100%;max-width:600px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;border:2px solid var(--accent);background:var(--secondary);color:var(--muted-foreground);}
.lb-noimg .icon{width:40px;height:40px;}
.lb-cap{margin-top:1rem;font-size:.875rem;color:rgba(255,255,255,.8);}
.lb-cap .pos{margin-left:.5rem;opacity:.6;}

/* CTA */
.cta{background:var(--primary);}
.cta .container{padding:3.5rem 1rem;text-align:center;}
.cta p{margin-bottom:1.5rem;font-size:1.125rem;color:var(--primary-foreground);}
.btn-cta{background:#ce5914;color:var(--accent-foreground);font-weight:700;padding:.625rem 2.5rem;font-size:1rem;}
.btn-cta:hover{background:#fff;color:#013d71;}
.btn-cta .icon{width:20px;height:20px;}

/* ===== Page-specific overrides (kept as original, currently unused since logo is now an image) ===== */
.logo-mark{border-radius:0;}
.footer-mark{border-radius:0;}


/* ===== Responsive (result page specific) ===== */
@media(min-width:640px){
  .type-grid{grid-template-columns:repeat(3,1fr);}
  .card-grid{grid-template-columns:repeat(3,1fr);gap:1rem;}
}
@media(min-width:1024px){
  .main{padding-top:80px;}
  .gallery-groups>section{scroll-margin-top:80px;}
  .title-band .container{padding:5rem 1rem;}
  .title-ja{font-size:2.25rem;}
  .section{padding:5rem 0;}
  .lead h2{font-size:1.875rem;}
  .type-grid{grid-template-columns:repeat(5,1fr);}
  .use-pills{flex-wrap:nowrap;}
  .use-pill{flex:1 1 0;text-align:center;}
  .card-grid{grid-template-columns:repeat(4,1fr);}
  .cat-head h2{font-size:1.5rem;}
  .cta .container{padding:5rem 1rem;}
}
