/*
Theme Name: biz design
Theme URI: https://biz-design.jp/
Author: biz design
Description: 株式会社ビズデザイン公式サイト用カスタムテーマ。Apple風グレイッシュ・ミニマルデザイン。
Version: 1.1.2
Requires PHP: 8.0
License: GNU General Public License v2 or later
Text Domain: bizdesign
*/

:root{
  --white:#ffffff; --gray:#f5f5f7; --ink:#1d1d1f; --sub:#6e6e73;
  --accent:#e8a33d; --accent-dark:#c9861f; --line:#d2d2d7;
  --radius:18px;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Noto Sans JP","Yu Gothic",sans-serif;
  color:var(--ink);background:var(--white);font-size:17px;line-height:1.8;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block;}
a{text-decoration:none;color:inherit;}

/* ===== グローバルナビ ===== */
.gnav{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.8);
  backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);
  border-bottom:1px solid rgba(0,0,0,.08);}
.gnav-in{max-width:1024px;margin:0 auto;padding:0 22px;height:60px;display:flex;align-items:center;justify-content:space-between;gap:16px;}
.logo{display:flex;align-items:center;gap:10px;}
.logo img.mark{height:26px;width:auto;}
.logo img.type{height:22px;width:auto;}
.gnav nav{display:flex;gap:26px;font-size:16px;color:#424245;}
.gnav nav a:hover{color:var(--ink);}
.nav-cta{background:var(--accent);color:#1d1d1f;font-weight:700;font-size:16px;padding:8px 20px;border-radius:999px;flex:none;}
.nav-cta:hover{background:var(--accent-dark);}
/* モバイルメニュー */
.menu-btn{display:none;background:none;border:none;font-size:28px;line-height:1;cursor:pointer;color:var(--ink);}
@media(max-width:820px){
  .gnav nav{display:none;}
  .menu-btn{display:block;}
  .gnav.open nav{display:flex;flex-direction:column;position:absolute;top:60px;left:0;right:0;background:rgba(255,255,255,.97);padding:20px 24px;gap:16px;border-bottom:1px solid var(--line);}
}

/* ===== 共通 ===== */
.wrap{max-width:1024px;margin:0 auto;padding:0 22px;}
.wrap-n{max-width:820px;margin:0 auto;padding:0 22px;}
section{padding:96px 0;}
.eyebrow{color:var(--accent-dark);font-weight:700;font-size:17px;letter-spacing:.06em;}
h1{font-size:clamp(38px,6vw,60px);font-weight:700;letter-spacing:-.02em;line-height:1.25;}
h2{font-size:clamp(30px,4.5vw,44px);font-weight:700;letter-spacing:-.015em;line-height:1.3;margin-bottom:14px;}
h3{font-size:23px;font-weight:700;line-height:1.4;}
.lead{color:var(--sub);font-size:clamp(18px,2.4vw,22px);line-height:1.75;}
.center{text-align:center;}
.btn{display:inline-block;background:var(--accent);color:#1d1d1f;font-weight:700;font-size:17px;padding:14px 34px;border-radius:999px;transition:.25s;border:none;cursor:pointer;}
.btn:hover{background:var(--accent-dark);transform:translateY(-1px);}
.btn.ghost{background:transparent;border:1.5px solid var(--line);color:var(--ink);font-weight:600;}
.btn.ghost:hover{border-color:var(--ink);background:transparent;}
.link{color:var(--accent-dark);font-weight:600;font-size:17px;}
.link::after{content:" →";}
.gray{background:var(--gray);}
.dark{background:#000;color:#f5f5f7;}
.dark .lead{color:#a1a1a6;}
.card{background:var(--white);border-radius:var(--radius);padding:36px 30px;box-shadow:0 2px 14px rgba(0,0,0,.04);}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;}
@media(max-width:820px){.grid3,.grid2{grid-template-columns:1fr;}}
.fade{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s ease;}
.fade.show{opacity:1;transform:none;}
.no-js .fade{opacity:1;transform:none;}
.ph{border-radius:var(--radius);overflow:hidden;}
.ph img{width:100%;height:100%;object-fit:cover;}

/* ===== ヒーロー ===== */
.hero{padding:90px 0 80px;}
.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;}
.hero h1{font-size:clamp(34px,4.2vw,50px);}
.hero .lead{margin:22px 0 30px;}
.hero-btns{display:flex;gap:14px;flex-wrap:wrap;}
.hero-img{border-radius:calc(var(--radius) + 6px);overflow:hidden;box-shadow:0 24px 60px rgba(0,0,0,.14);aspect-ratio:4/3;}
.hero-img img{width:100%;height:100%;object-fit:cover;}
/* 日本語の自然な折り返し（見出し=行バランス+文節区切り、本文=末尾孤立回避） */
h1,h2,h3{text-wrap:balance;word-break:auto-phrase;}
p,.lead{text-wrap:pretty;word-break:auto-phrase;}
.hero .lead .u{display:inline-block;}
@media(max-width:820px){.hero-grid{grid-template-columns:1fr;}.hero{text-align:center;}.hero-btns{justify-content:center;}}

/* ===== 数字 ===== */
.stat .num{font-size:clamp(34px,4.5vw,48px);font-weight:700;letter-spacing:-.02em;color:var(--ink);line-height:1.2;}
.stat .num.txt{font-size:clamp(26px,3.2vw,34px);white-space:nowrap;}
.stat .num em{font-style:normal;color:var(--accent-dark);}
.stat p{color:var(--sub);font-size:17px;margin-top:8px;}

/* ===== サービスカード ===== */
.svc-card h3{margin-bottom:8px;}
.svc-card p{color:var(--sub);font-size:17px;}
.svc-num{font-size:17px;font-weight:700;color:var(--accent-dark);letter-spacing:.08em;margin-bottom:12px;display:block;}

/* ===== ダーク実績 ===== */
.dark .big-num{font-size:clamp(40px,7vw,72px);font-weight:700;letter-spacing:-.03em;line-height:1.2;
  background:linear-gradient(90deg,#f7c56b,#e8a33d 55%,#d98e2b);-webkit-background-clip:text;background-clip:text;color:transparent;}

/* ===== ニュースカード ===== */
.news-card{display:flex;flex-direction:column;overflow:hidden;padding:0;}
.news-card .thumb{height:180px;background:#e9e9ee;overflow:hidden;}
.news-card .thumb img{width:100%;height:180px;object-fit:cover;object-position:top;}
.news-card .body{padding:24px 24px 28px;}
.badge{display:inline-block;font-size:16px;font-weight:700;padding:3px 14px;border-radius:999px;background:var(--accent);color:#1d1d1f;margin-bottom:10px;}
.badge.blog{background:#e8e8ed;color:#424245;}
.news-card .date{color:var(--sub);font-size:16px;}
.news-card h3{font-size:19px;margin-top:6px;}

/* ===== ジグザグ ===== */
.zig{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;margin-bottom:88px;}
.zig:last-child{margin-bottom:0;}
.zig.rev .ph{order:2;}
@media(max-width:820px){.zig,.zig.rev{grid-template-columns:1fr;}.zig.rev .ph{order:0;}}
.zig .ph{aspect-ratio:4/3;}
.zig p{color:var(--sub);margin-top:10px;}

/* ===== タイムライン ===== */
.tl{list-style:none;border-left:2px solid var(--line);padding-left:28px;}
.tl li{position:relative;padding-bottom:26px;}
.tl li::before{content:"";position:absolute;left:-35px;top:9px;width:12px;height:12px;border-radius:50%;background:var(--accent);}
.tl .year{font-weight:700;color:var(--ink);}
.tl p{color:var(--sub);font-size:17px;}

/* ===== ステップ ===== */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;counter-reset:st;}
@media(max-width:820px){.steps{grid-template-columns:repeat(2,1fr);}}
.steps > div{background:var(--white);border-radius:14px;padding:26px 18px;text-align:center;counter-increment:st;box-shadow:0 2px 14px rgba(0,0,0,.04);}
.steps > div::before{content:counter(st);display:block;font-size:26px;font-weight:700;color:var(--accent-dark);margin-bottom:4px;}
.steps > div span{font-size:17px;font-weight:600;}

/* ===== プロフィール ===== */
.prof{display:grid;grid-template-columns:380px 1fr;gap:48px;align-items:center;}
@media(max-width:820px){.prof{grid-template-columns:1fr;}}
.prof .name{font-size:30px;font-weight:700;margin:4px 0 2px;}
.prof .title{color:var(--sub);font-size:17px;margin-bottom:16px;}
table.co{width:100%;border-collapse:collapse;font-size:17px;}
table.co th,table.co td{text-align:left;padding:16px 8px;border-bottom:1px solid var(--line);vertical-align:top;}
table.co th{color:var(--sub);font-weight:600;width:32%;}

/* ===== フォーム（Contact Form 7対応） ===== */
.form label{display:block;font-weight:600;font-size:17px;margin:22px 0 8px;}
.form label .req{color:var(--accent-dark);font-size:16px;margin-left:6px;}
.form input[type="text"],.form input[type="email"],.form input[type="tel"],.form textarea{
  width:100%;font-size:17px;padding:14px 16px;border:1.5px solid var(--line);border-radius:12px;background:var(--white);font-family:inherit;}
.form input:focus,.form textarea:focus{outline:none;border-color:var(--accent);}
.form textarea{min-height:150px;resize:vertical;}
.form .wpcf7-submit{display:block;margin:34px auto 0;background:var(--accent);color:#1d1d1f;font-weight:700;font-size:17px;padding:14px 44px;border-radius:999px;border:none;cursor:pointer;}
.form .wpcf7-submit:hover{background:var(--accent-dark);}
.wpcf7-not-valid-tip{color:#c0392b;font-size:16px;}

/* ===== CTAバンド・フッター ===== */
.cta-band{background:var(--gray);text-align:center;}
.cta-band .lead{margin:10px auto 28px;max-width:560px;}
.site-footer{border-top:1px solid var(--line);padding:36px 0 44px;color:var(--sub);font-size:16px;}
.site-footer .f-in{max-width:1024px;margin:0 auto;padding:0 22px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:center;}
.site-footer nav{display:flex;gap:20px;flex-wrap:wrap;}

/* ===== ページタイトル ===== */
.page-head{padding:90px 0 20px;text-align:center;}
.page-head .lead{margin-top:14px;}

/* ===== 記事本文 ===== */
.entry-body{font-size:17px;}
.entry-body p{margin:0 0 1.4em;}
.entry-body h2{font-size:26px;margin:1.8em 0 .6em;}
.entry-body h3{font-size:21px;margin:1.6em 0 .5em;}
.entry-body ul,.entry-body ol{margin:0 0 1.4em 1.4em;}
.entry-body img{border-radius:var(--radius);}
.entry-body table{width:100%;border-collapse:collapse;font-size:17px;margin:0 0 1.4em;}
.entry-body table th,.entry-body table td{text-align:left;padding:14px 10px;border-bottom:1px solid var(--line);}
.entry-body table th{color:var(--sub);font-weight:600;white-space:nowrap;}
.entry-body a{color:var(--accent-dark);text-decoration:underline;}

/* ページネーション */
.pagenav{display:flex;gap:8px;justify-content:center;margin-top:56px;font-size:17px;}
.pagenav .page-numbers{padding:8px 16px;border-radius:999px;border:1.5px solid var(--line);}
.pagenav .page-numbers.current{background:var(--ink);color:#fff;border-color:var(--ink);}
