/*
Theme Name: BESIGN CO.
Theme URI: https://besign.co.jp
Author: BESIGN CO.
Description: BESIGN CO. official WordPress theme — HOUSE OF VALUES
Version: 1.0
*/

/* ============================================
   BESIGN WP THEME
   同一デザイン / 静的サイトと共通のCSS変数
   ============================================ */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --black:   #0a0a0a;
  --white:   #ffffff;
  --grey:    #888888;
  --light:   #cccccc;
  --teal:    #3dbfb8;
}

html { scroll-behavior: smooth; }

body {
  background: var(--black);
  color: var(--white);
  font-family: 'Helvetica Neue', Arial, sans-serif;
  font-size: 16px;
  line-height: 1.7;
}

a { color: var(--teal); }

/* NAV */
nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  padding: 24px 48px;
  display: flex; justify-content: space-between; align-items: center;
  transition: background 0.4s, padding 0.4s;
}
nav.scrolled {
  background: rgba(10,10,10,0.95);
  padding: 16px 48px;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.nav-logo { display:flex; align-items:center; gap:14px; text-decoration:none; }
.nav-logo img { width:44px; height:44px; }
.nav-logo-text { display:flex; flex-direction:column; line-height:1.2; }
.nav-logo-text .brand { font-size:13px; font-weight:700; letter-spacing:0.2em; color:var(--white); }
.nav-logo-text .sub { font-size:9px; letter-spacing:0.25em; color:var(--grey); }
.nav-links { display:flex; gap:40px; list-style:none; }
.nav-links a { color:var(--light); text-decoration:none; font-size:11px; letter-spacing:0.2em; text-transform:uppercase; transition:color 0.2s; }
.nav-links a:hover, .nav-links a.current { color:var(--teal); }

/* PAGE HERO */
.page-hero { padding: 180px 48px 80px; border-bottom: 1px solid rgba(255,255,255,0.06); }
.section-label { font-size:9px; letter-spacing:0.4em; color:var(--teal); text-transform:uppercase; margin-bottom:20px; }
.page-hero h1 { font-size: clamp(24px,2.8vw,42px); font-weight:700; letter-spacing:0.06em; line-height:1.1; }

/* BLOG ARCHIVE */
.blog-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:40px; margin-top:64px; }
.blog-card { text-decoration:none; color:inherit; display:block; }
.blog-card-image { aspect-ratio:16/9; background:#1a1a1a; overflow:hidden; margin-bottom:20px; }
.blog-card-image img { width:100%; height:100%; object-fit:cover; transition:transform 0.5s; filter:grayscale(20%); }
.blog-card:hover .blog-card-image img { transform:scale(1.04); }
.blog-card-date { font-size:10px; letter-spacing:0.25em; color:var(--teal); margin-bottom:10px; }
.blog-card-title { font-size:16px; font-weight:600; line-height:1.5; margin-bottom:10px; transition:color 0.2s; }
.blog-card:hover .blog-card-title { color:var(--teal); }
.blog-card-excerpt { font-size:13px; color:var(--grey); line-height:1.7; }

/* SINGLE POST */
.post-content { max-width: 720px; margin: 0 auto; padding: 80px 48px 120px; }
.post-content h2 { font-size:22px; font-weight:600; margin: 48px 0 16px; letter-spacing:0.04em; }
.post-content p { font-size:16px; line-height:2; color:var(--light); margin-bottom:24px; }
.post-content img { width:100%; margin: 40px 0; }
.post-content blockquote { border-left:2px solid var(--teal); padding-left:24px; margin:40px 0; font-size:18px; font-weight:300; color:var(--white); font-style:italic; }

/* FOOTER */
footer { border-top:1px solid rgba(255,255,255,0.08); padding:64px 48px; display:flex; justify-content:space-between; align-items:center; }
.footer-logo { display:flex; align-items:center; gap:16px; }
.footer-logo img { width:52px; height:52px; opacity:0.8; }
.footer-logo-text .brand { font-size:12px; font-weight:700; letter-spacing:0.25em; }
.footer-logo-text .sub { font-size:9px; letter-spacing:0.2em; color:var(--grey); }
.footer-right { text-align:right; }
.footer-hovs { font-size:32px; font-weight:700; letter-spacing:0.15em; color:rgba(255,255,255,0.06); line-height:1; margin-bottom:8px; }
.footer-copy { font-size:10px; color:var(--grey); letter-spacing:0.15em; }


/* HAMBURGER MENU */
.nav-toggle {
  display: none;
  flex-direction: column;
  justify-content: space-between;
  width: 28px; height: 20px;
  background: none; border: none;
  cursor: pointer; padding: 0; z-index: 200;
}
.nav-toggle span {
  display: block; width: 100%; height: 2px;
  background: var(--white);
  transition: transform 0.3s, opacity 0.3s;
  transform-origin: center;
}
nav.nav-open .nav-toggle span:nth-child(1) { transform: translateY(9px) rotate(45deg); }
nav.nav-open .nav-toggle span:nth-child(2) { opacity: 0; transform: scaleX(0); }
nav.nav-open .nav-toggle span:nth-child(3) { transform: translateY(-9px) rotate(-45deg); }

@media (max-width:900px) {
  nav { padding:20px 24px; }
  nav.scrolled { padding:14px 24px; }
  .blog-grid { grid-template-columns:1fr; }
  footer { flex-direction:column; gap:32px; text-align:center; }
  .footer-right { text-align:center; }

  /* ハンバーガーボタン表示 */
  .nav-toggle { display: flex; }

  /* モバイルメニュー：フルスクリーンオーバーレイ */
  .nav-links {
    position: fixed; inset: 0;
    background: rgba(10,10,10,0.97);
    flex-direction: column; align-items: center; justify-content: center;
    gap: 40px; opacity: 0; pointer-events: none;
    transition: opacity 0.3s ease; z-index: 150;
  }
  nav.nav-open .nav-links { display: flex; opacity: 1; pointer-events: all; }
  .nav-links a { font-size: 16px; letter-spacing: 0.3em; }

  /* NEWS / ページヒーロー余白 */
  .page-hero { padding: 90px 24px 12px; }

  /* ニュース一覧セクション余白 */
  .news-section { padding: 0 24px 60px !important; }

  /* blog-grid の上余白を詰める */
  .blog-grid { margin-top: 0; }
}
