/* ===== header ===== */
/* ===== common ===== */
.section{padding:var(--section-pc) 0}
.section-alt{background:var(--surface-low)}
.text-muted{color:var(--muted)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:16px;font-weight:700;transition:transform .3s ease,background-color .3s ease,color .3s ease,border-color .3s ease;}
.btn-ghost{border:1px solid var(--border);color:var(--text);padding:16px 32px;background:transparent;}
.btn-ghost:hover{background:#fff}
/* ===== page hero ===== */
.page-hero{
      position:relative;height:480px;display:flex;align-items:center;
      overflow:hidden;margin-top:var(--header-h);
    }
.page-hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.page-hero-overlay{position:absolute;inset:0;background:linear-gradient(to right,rgba(0,0,0,.55) 0%,rgba(0,0,0,.15) 100%);}
.page-hero-content{position:relative;z-index:10;color:var(--white);}
.page-hero-content .small-label{display:block;color:rgba(255,255,255,.7);margin-bottom:16px;}
.page-hero-title{margin:0;font-family:"Shippori Mincho",serif;font-size:48px;line-height:1.5;font-weight:600;letter-spacing:.05em;color:var(--white);}
.page-hero-lead{margin:16px 0 0;font-size:16px;line-height:1.8;color:rgba(255,255,255,.85);max-width:480px;}
/* ===== breadcrumb ===== */
.breadcrumb{padding:16px 0;font-size:12px;color:var(--muted);border-bottom:1px solid var(--border);}
.breadcrumb a{color:var(--muted);transition:color .2s}
.breadcrumb a:hover{color:var(--green)}
.breadcrumb span{margin:0 8px;opacity:.5}
/* ===== filter tabs ===== */
.filter-bar{
      display:flex;flex-wrap:wrap;gap:12px;
      padding:40px 0 0;
    }
.filter-btn{
      padding:8px 20px;border:1px solid var(--border);background:transparent;
      font-size:13px;font-weight:700;letter-spacing:.05em;color:var(--muted);
      transition:all .25s ease;border-radius:2px;
    }
.filter-btn:hover{border-color:var(--green);color:var(--green)}
.filter-btn.active{background:var(--green);color:var(--white);border-color:var(--green)}
/* ===== works grid ===== */
.works-grid{
      display:grid;
      grid-template-columns:repeat(auto-fill,minmax(340px,1fr));
      gap:40px;
      margin-top:48px;
    }
.work-card{
      background:var(--white);
      border:1px solid var(--border);
      overflow:hidden;
      transition:transform .3s ease,box-shadow .3s ease;
      cursor:pointer;
    }
.work-card:hover{transform:translateY(-6px);box-shadow:0 12px 40px rgba(0,0,0,.1)}
.work-card-img{
      aspect-ratio:4/3;overflow:hidden;position:relative;
    }
.work-card-img img{
      width:100%;height:100%;object-fit:cover;
      transition:transform .7s ease;
    }
.work-card:hover .work-card-img img{transform:scale(1.05)}
.work-card-tags{
      position:absolute;bottom:12px;left:12px;
      display:flex;flex-wrap:wrap;gap:6px;
    }
.tag{
      display:inline-block;padding:4px 10px;
      font-size:11px;font-weight:700;letter-spacing:.05em;
      background:rgba(0,0,0,.55);color:var(--white);
      backdrop-filter:blur(4px);
    }
.work-card-body{padding:24px}
.work-card-body h3{
      margin:0 0 8px;
      font-family:"Shippori Mincho",serif;
      font-size:18px;line-height:1.5;font-weight:600;
    }
.work-card-body .meta{
      display:flex;flex-wrap:wrap;gap:16px;
      font-size:12px;color:var(--muted);margin-bottom:12px;
    }
.work-card-body .meta span{display:flex;align-items:center;gap:4px;}
.work-card-body p{margin:0;font-size:14px;color:var(--muted);line-height:1.8;}
.work-card-link{
      display:inline-flex;align-items:center;gap:8px;
      margin-top:16px;font-size:13px;font-weight:700;color:var(--green);
      transition:gap .2s ease;
    }
.work-card:hover .work-card-link{gap:12px}
/* ===== featured work（大きいカード）===== */
.work-featured{
      display:grid;grid-template-columns:1fr;
      background:var(--white);border:1px solid var(--border);
      overflow:hidden;margin-bottom:40px;
      transition:transform .3s ease,box-shadow .3s ease;
    }
.work-featured:hover{transform:translateY(-4px);box-shadow:0 16px 48px rgba(0,0,0,.1)}
.work-featured-img{aspect-ratio:16/7;overflow:hidden;position:relative;}
.work-featured-img img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease;}
.work-featured:hover .work-featured-img img{transform:scale(1.03)}
.work-featured-body{padding:40px}
.work-featured-body h3{
      margin:0 0 12px;
      font-family:"Shippori Mincho",serif;
      font-size:26px;line-height:1.5;font-weight:600;
    }
.work-featured-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px;}
.tag-green{
      display:inline-block;padding:4px 12px;
      font-size:11px;font-weight:700;letter-spacing:.05em;
      background:rgba(51,79,29,.1);color:var(--green);
    }
/* ===== cta ===== */
.cta{position:relative;overflow:hidden;background:var(--footer);color:var(--white);padding:96px 0;}
.cta-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s ease;}
.cta:hover .cta-bg{transform:scale(1.02)}
.cta-overlay{position:absolute;inset:0;background:rgba(0,0,0,.45)}
.cta-content{position:relative;z-index:10;text-align:center}
.cta-buttons{display:flex;flex-direction:column;gap:24px;justify-content:center;align-items:center;}
/* ===== footer ===== */
/* ===== responsive ===== */
@media(min-width:768px){
  .work-featured{grid-template-columns:1fr 1fr}
  .work-featured-img{aspect-ratio:unset}
  .cta-buttons{flex-direction:row}
}
@media(max-width:767px){
  .section{padding:var(--section-sp) 0}
  .section-title{font-size:28px;letter-spacing:.03em}
  .page-hero{height:360px}
  .page-hero-title{font-size:32px}
  .works-grid{grid-template-columns:1fr;gap:24px}
}
