/*
Theme Name: Kimura Sekkei
Theme URI: https://kimura-sekkei.example.jp
Author: Kimura Sekkei
Description: 木村設計様（群馬県桐生市の一級建築士事務所）コーポレートサイト用オリジナルテーマ。既存のHTML/CSSデザインをそのまま再現しつつ、WordPress管理画面からヘッダー・フッター・各ページのテキストや画像・リンク・施工事例（写真の増減・並び替え対応）を自由に編集できるように構築しています。
Version: 1.0.1
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: kimura-sekkei
*/

/* ==========================================================================
   このファイルの前半（:root 〜 レスポンシブ定義まで）は、
   元のHTMLデザインで使用されていたCSSをそのまま移植したものです。
   デザイン・レイアウトを変更しないという方針のため、値は変更していません。
   後半に WordPress 化にともなう追加分（メニュー選択中表示・プライバシー
   リンクなど）を追記しています。
   ========================================================================== */
:root{
  --green:#047836;
  --green-light:#39c236;
  --brown:#2c2820;
  --brown-mid:#4a4238;
  --brown-light:#7a6e60;
  --white:#f5f2ec;
  --cream:#f0ebe0;
  --cream2:#e4dfc8;
  --text:#1e1c18;
  --text-mid:#4e4a40;
  --text-light:#7a7468;
  --border:rgba(44,40,32,0.12);
  --border-strong:rgba(44,40,32,0.25);
  --radius:12px;
  --radius-sm:8px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Noto Sans JP',sans-serif;color:var(--text);background:var(--white);overflow-x:hidden}
.serif{font-family:'Noto Serif JP',serif}
.mont{font-family:'Montserrat',sans-serif}
img{max-width:100%;display:block}

/* ===== LOADER ===== */
#loader{position:fixed;inset:0;z-index:9999;background:var(--white);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem;transition:opacity .6s,visibility .6s}
#loader.hide{opacity:0;visibility:hidden}
.loader-logo{font-family:'Noto Serif JP',serif;font-size:28px;font-weight:400;color:var(--green);letter-spacing:0.12em}
.loader-sub{font-size:10px;font-family:'Montserrat',sans-serif;letter-spacing:0.3em;color:var(--text-light)}
.loader-bar{width:120px;height:1px;background:var(--border);position:relative;overflow:hidden;border-radius:1px}
.loader-bar-fill{position:absolute;left:0;top:0;height:100%;background:var(--green);width:0;animation:load 1.4s ease forwards}
@keyframes load{to{width:100%}}

/* ===== NAV ===== */
#nav{position:fixed;top:0;left:0;right:0;z-index:500;transition:all .3s}
.nav-top{background:rgba(245,242,236,0.97);backdrop-filter:blur(10px);border-bottom:0.5px solid var(--border)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;padding:0 2rem;height:68px;max-width:1200px;margin:0 auto}
.nav-logo{text-decoration:none;display:flex;flex-direction:column;gap:2px}
.nav-logo-jp{font-family:'Noto Serif JP',serif;font-size:20px;font-weight:400;color:var(--green);letter-spacing:0.06em}
.nav-logo-en{font-size:8px;font-family:'Montserrat',sans-serif;letter-spacing:0.25em;color:var(--text-light)}
.nav-links{display:flex;align-items:center;gap:0}
.nav-a{font-size:12px;color:var(--text-mid);letter-spacing:0.08em;padding:6px 14px;border-radius:6px;text-decoration:none;transition:color .2s,background .2s;white-space:nowrap}
.nav-a:hover{color:var(--green);background:rgba(4,120,54,0.06)}
.nav-cta{font-size:12px;font-weight:500;letter-spacing:0.1em;padding:8px 18px;background:var(--green);color:var(--white);border-radius:20px;text-decoration:none;transition:background .2s;white-space:nowrap;margin-left:0.5rem}
.nav-cta:hover{background:#035c2a}
.ham{display:none;flex-direction:column;justify-content:center;gap:5px;cursor:pointer;padding:8px;width:44px;height:44px;border-radius:8px;transition:background .2s}
.ham:hover{background:var(--cream)}
.ham span{display:block;width:22px;height:1.5px;background:var(--text-mid);border-radius:1px;transition:all .3s}
.ham.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.ham.open span:nth-child(2){opacity:0;transform:scaleX(0)}
.ham.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

/* DRAWER */
.drawer-overlay{position:fixed;inset:0;z-index:600;background:rgba(26,20,16,0.5);opacity:0;visibility:hidden;transition:all .35s;backdrop-filter:blur(2px)}
.drawer-overlay.open{opacity:1;visibility:visible}
.drawer{position:fixed;top:0;right:0;bottom:0;z-index:700;width:min(320px,85vw);background:var(--white);transform:translateX(100%);transition:transform .35s cubic-bezier(.25,.46,.45,.94);display:flex;flex-direction:column;overflow-y:auto}
.drawer.open{transform:translateX(0)}
.drawer-head{padding:1.5rem 1.5rem 1rem;border-bottom:0.5px solid var(--border);display:flex;justify-content:space-between;align-items:center}
.drawer-logo{font-family:'Noto Serif JP',serif;font-size:18px;color:var(--green);letter-spacing:0.06em}
.drawer-close{width:36px;height:36px;border-radius:50%;background:var(--cream);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--text-mid);transition:background .2s}
.drawer-close:hover{background:var(--cream2)}
.drawer-nav{padding:1rem 0;flex:1}
.drawer-a{display:flex;align-items:center;justify-content:space-between;padding:14px 1.5rem;font-size:15px;color:var(--text-mid);text-decoration:none;letter-spacing:0.06em;border-bottom:0.5px solid var(--border);transition:color .2s,background .2s;cursor:pointer}
.drawer-a:hover{color:var(--green);background:rgba(4,120,54,0.04)}
.drawer-a::after{content:'›';font-size:18px;color:var(--border-strong)}
.drawer-foot{padding:1.5rem}
.drawer-tel-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px;background:var(--green);color:var(--white);border-radius:var(--radius);text-decoration:none;font-size:14px;font-weight:500;letter-spacing:0.06em;margin-bottom:0.8rem;transition:background .2s}
.drawer-tel-btn:hover{background:#035c2a}
.drawer-form-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px;background:transparent;color:var(--green);border:1.5px solid var(--green);border-radius:var(--radius);text-decoration:none;font-size:14px;font-weight:500;letter-spacing:0.06em;transition:all .2s}
.drawer-form-btn:hover{background:rgba(4,120,54,0.06)}

/* ===== PAGES ===== */
.page{display:none;padding-top:68px}
.page.active{display:block}

/* ===== FADE IN ===== */
.fade{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease}
.fade.visible{opacity:1;transform:translateY(0)}

/* ===== HERO ===== */
.hero{position:relative;width:100%;height:calc(100svh - 68px);min-height:500px;background:var(--cream2);overflow:hidden;display:flex;align-items:flex-end}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.hero-bg-placeholder{position:absolute;inset:0;background:linear-gradient(165deg,#e8dfd0 0%,#c8bca0 60%,#a89070 100%);z-index:0}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(26,20,16,0.80) 0%,rgba(26,20,16,0.35) 55%,rgba(26,20,16,0.25) 100%);z-index:2}
.hero-content{position:relative;z-index:2;padding:0 1.5rem 3.5rem;max-width:700px}
.hero-label{font-family:'Montserrat',sans-serif;font-size:10px;letter-spacing:0.3em;color:rgba(255,255,255,0.7);margin-bottom:1rem;display:flex;align-items:center;gap:10px}
.hero-label::before{content:'';display:block;width:28px;height:0.5px;background:rgba(255,255,255,0.5)}
.hero-h1{font-family:'Noto Serif JP',serif;font-size:clamp(26px,6vw,48px);font-weight:400;line-height:1.65;letter-spacing:0.04em;color:var(--white);margin-bottom:1.2rem}
.hero-h1 em{font-style:normal;color:var(--green-light)}
.hero-lead{font-size:clamp(13px,1.6vw,15px);line-height:2;color:rgba(255,255,255,0.82);margin-bottom:2rem;max-width:480px}
.hero-btns{display:flex;gap:1rem;flex-wrap:wrap}
.hero-btn-main{display:inline-flex;align-items:center;gap:8px;padding:14px 28px;background:var(--green);color:var(--white);border-radius:var(--radius);font-size:13px;font-weight:500;letter-spacing:0.1em;text-decoration:none;transition:background .2s;white-space:nowrap}
.hero-btn-main:hover{background:#035c2a}
.hero-btn-sub{display:inline-flex;align-items:center;gap:8px;padding:14px 28px;background:rgba(255,255,255,0.12);color:var(--white);border:1px solid rgba(255,255,255,0.35);border-radius:var(--radius);font-size:13px;letter-spacing:0.1em;text-decoration:none;transition:all .2s;white-space:nowrap;backdrop-filter:blur(4px)}
.hero-btn-sub:hover{background:rgba(255,255,255,0.22)}
.hero-scroll{position:absolute;bottom:1.5rem;right:2rem;z-index:2;display:flex;flex-direction:column;align-items:center;gap:6px}
.hero-scroll-line{width:0.5px;height:48px;background:rgba(255,255,255,0.4);animation:scrollLine 2s ease-in-out infinite}
@keyframes scrollLine{0%,100%{transform:scaleY(1);opacity:.4}50%{transform:scaleY(.5);opacity:1}}
.hero-scroll-txt{font-family:'Montserrat',sans-serif;font-size:8px;letter-spacing:0.25em;color:rgba(255,255,255,0.5);writing-mode:vertical-lr}

/* ===== SECTION BASE ===== */
.sec{padding:6.5rem 1.5rem}
.sec-inner{max-width:1100px;margin:0 auto}
.sec-label{font-family:'Montserrat',sans-serif;font-size:9px;letter-spacing:0.3em;color:var(--green);display:flex;align-items:center;gap:10px;margin-bottom:0.8rem}
.sec-label::before{content:'';display:block;width:20px;height:1px;background:var(--green)}
.sec-h{font-family:'Noto Serif JP',serif;font-size:clamp(22px,4vw,32px);font-weight:400;letter-spacing:0.06em;color:var(--text);margin-bottom:1rem}
.sec-sub{font-size:14px;line-height:2;color:var(--text-mid)}

/* ===== PROMISE ===== */
.promise-sec{background:var(--cream)}
.promise-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:4rem}
.promise-card{background:var(--white);border-radius:var(--radius);padding:2rem 1.6rem;border:0.5px solid var(--border);transition:border-color .25s,transform .25s}
.promise-card:hover{border-color:rgba(4,120,54,0.3);transform:translateY(-3px)}
.promise-card-ico{width:48px;height:48px;background:rgba(4,120,54,0.08);border-radius:12px;display:flex;align-items:center;justify-content:center;margin-bottom:1.2rem}
.promise-card-ico svg{width:24px;height:24px;stroke:var(--green);fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.promise-card-num{font-family:'Montserrat',sans-serif;font-size:16px;letter-spacing:0.2em;color:var(--green);margin-bottom:0.5rem}
.promise-card-ttl{font-family:'Noto Serif JP',serif;font-size:16px;font-weight:400;color:var(--text);margin-bottom:0.7rem;letter-spacing:0.04em}
.promise-card-txt{font-size:12px;line-height:1.95;color:var(--text-mid)}

/* ===== WORKS STRIP ===== */
.works-strip-sec{overflow:hidden;padding-bottom:0}
.works-scroll{overflow-x:auto;padding:0 1.5rem 2rem;-webkit-overflow-scrolling:touch;scrollbar-width:none;cursor:grab}
.works-scroll::-webkit-scrollbar{display:none}
.works-scroll:active{cursor:grabbing}
.works-row{display:flex;gap:1rem;width:max-content}
.work-mini{width:clamp(220px,35vw,280px);flex-shrink:0;cursor:pointer}
.work-mini-img{aspect-ratio:4/3;border-radius:var(--radius);overflow:hidden;background:var(--cream2);position:relative;transition:transform .3s}
.work-mini:hover .work-mini-img{transform:scale(0.98)}
.work-mini-img svg{width:100%;height:100%}
.work-mini-tag{position:absolute;top:10px;left:10px;font-size:9px;letter-spacing:0.08em;padding:3px 10px;background:rgba(4,120,54,0.88);color:var(--white);border-radius:20px}
.work-mini-info{padding:10px 4px 0}
.work-mini-name{font-size:13px;font-weight:500;color:var(--text);margin-bottom:2px;letter-spacing:0.03em}
.work-mini-cat{font-size:11px;color:var(--text-light)}
.works-strip-cta{text-align:center;padding:0 1.5rem 4rem;margin-top:2rem}

/* ===== SERVICES ===== */
.svc-sec{background:var(--brown)}
.svc-sec .sec-label{color:rgba(57,194,54,0.8)}
.svc-sec .sec-label::before{background:rgba(57,194,54,0.8)}
.svc-sec .sec-h{color:var(--white)}
.svc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;margin-top:4rem}
.svc-card{background:rgba(255,255,255,0.06);border:0.5px solid rgba(255,255,255,0.12);border-radius:var(--radius);padding:2rem;cursor:pointer;transition:background .25s,border-color .25s;text-decoration:none;display:block}
.svc-card:hover{background:rgba(255,255,255,0.11);border-color:rgba(57,194,54,0.4)}
.svc-card-num{font-family:'Montserrat',sans-serif;font-size:16px;letter-spacing:0.25em;color:rgba(57,194,54,0.7);margin-bottom:0.6rem}
.svc-card-ttl{font-family:'Noto Serif JP',serif;font-size:18px;font-weight:400;color:var(--white);margin-bottom:0.7rem;letter-spacing:0.04em}
.svc-card-desc{font-size:12px;line-height:1.95;color:rgba(255,255,255,0.65)}
.svc-card-badge{display:inline-block;margin-top:1rem;font-size:10px;padding:3px 10px;border:0.5px solid rgba(57,194,54,0.5);color:rgba(57,194,54,0.9);border-radius:20px;letter-spacing:0.06em}
.svc-card-more{margin-top:1.2rem;font-size:11px;color:rgba(57,194,54,0.8);letter-spacing:0.1em;display:flex;align-items:center;gap:6px}
.svc-card-more-arr{display:inline-block;transition:transform .2s}
.svc-card:hover .svc-card-more-arr{transform:translateX(4px)}

/* ===== FLOW ===== */
.flow-sec{background:var(--cream)}
.flow-steps{display:flex;gap:0;margin-top:4rem;border:0.5px solid var(--border);border-radius:var(--radius);overflow:hidden}
.flow-step{flex:1;padding:1.4rem 1rem;border-right:0.5px solid var(--border);text-align:center;background:var(--white);position:relative;transition:background .2s}
.flow-step:last-child{border-right:none}
.flow-step.hl{background:rgba(4,120,54,0.05)}
.flow-step-n{font-family:'Montserrat',sans-serif;font-size:20px;font-weight:300;color:var(--green);opacity:0.5;display:block;line-height:1}
.flow-step-ttl{font-size:11px;font-weight:500;color:var(--text);margin-top:6px;letter-spacing:0.04em;line-height:1.4}
.flow-step-sub{font-size:9px;color:var(--green);margin-top:4px;letter-spacing:0.04em}
.flow-cta{text-align:center;margin-top:2.5rem}

/* ===== PHILOSOPHY ===== */
.phil-sec{background:var(--white)}
.phil-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;margin-top:4rem}
.phil-item{padding:2rem;background:var(--cream);border-radius:var(--radius);border:0.5px solid var(--border)}
.phil-num{font-family:'Montserrat',sans-serif;font-size:40px;font-weight:300;color:rgba(4,120,54,0.12);line-height:1;margin-bottom:0.5rem}
.phil-ttl{font-family:'Noto Serif JP',serif;font-size:16px;font-weight:400;color:var(--text);margin-bottom:0.8rem;padding-bottom:0.8rem;border-bottom:0.5px solid var(--border);letter-spacing:0.04em}
.phil-txt{font-size:12px;line-height:2;color:var(--text-mid)}

/* ===== VIDEO ===== */
.video-sec{background:var(--brown)}
.video-sec .sec-h{color:var(--white)}
.video-sec .sec-label{color:rgba(57,194,54,0.8)}
.video-sec .sec-label::before{background:rgba(57,194,54,0.8)}
.video-layout{display:grid;grid-template-columns:2fr 1fr;gap:1.2rem;margin-top:2.5rem}
.video-box{position:relative;border-radius:var(--radius);overflow:hidden;cursor:pointer;background:var(--brown-mid)}
.video-box-inner{aspect-ratio:16/9}
.video-box-inner svg{width:100%;height:100%}
.video-box.vert .video-box-inner{aspect-ratio:9/16}
.video-small-wrap{display:flex;flex-direction:column;gap:1.2rem}
.video-play-btn{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(26,20,16,0.25);transition:background .2s}
.video-box:hover .video-play-btn{background:rgba(26,20,16,0.4)}
.video-play-circle{width:52px;height:52px;border-radius:50%;background:rgba(4,120,54,0.88);display:flex;align-items:center;justify-content:center;transition:transform .2s}
.video-box:hover .video-play-circle{transform:scale(1.08)}
.video-label{position:absolute;bottom:12px;left:12px;font-size:10px;letter-spacing:0.1em;color:var(--white);background:rgba(26,20,16,0.6);padding:4px 10px;border-radius:20px}

/* ===== AREA ===== */
.area-sec{background:var(--cream);padding:2rem 1.5rem}
.area-inner{max-width:1100px;margin:0 auto;display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;flex-wrap:wrap}
.area-txt{font-size:13px;color:var(--text-mid);line-height:2}
.area-txt strong{color:var(--text)}
.area-tags{display:flex;gap:0.5rem;flex-wrap:wrap}
.area-tag{font-size:11px;padding:4px 14px;border:0.5px solid var(--border-strong);border-radius:20px;color:var(--text-mid)}

/* ===== CTA SECTION ===== */
.cta-sec{padding:5rem 1.5rem;text-align:center;background:var(--white)}
.cta-h{font-family:'Noto Serif JP',serif;font-size:clamp(20px,3.5vw,30px);font-weight:400;color:var(--text);margin-bottom:0.8rem;letter-spacing:0.06em}
.cta-sub{font-size:14px;color:var(--text-mid);line-height:2;margin-bottom:2rem}
.cta-tel{font-family:'Montserrat',sans-serif;font-size:32px;font-weight:300;color:var(--green);letter-spacing:0.06em;display:block;margin-bottom:0.4rem;text-decoration:none}
.cta-tel-note{font-size:11px;color:var(--text-light);letter-spacing:0.1em;margin-bottom:2rem;display:block}
.cta-btns{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}

/* ===== BTN ===== */
.btn-g{display:inline-flex;align-items:center;gap:8px;padding:14px 32px;background:var(--green);color:var(--white);border-radius:var(--radius);font-size:13px;font-weight:500;letter-spacing:0.1em;text-decoration:none;border:none;cursor:pointer;transition:background .2s;white-space:nowrap}
.btn-g:hover{background:#035c2a}
.btn-outline{display:inline-flex;align-items:center;gap:8px;padding:14px 32px;background:transparent;color:var(--green);border:1.5px solid var(--green);border-radius:var(--radius);font-size:13px;font-weight:500;letter-spacing:0.1em;text-decoration:none;cursor:pointer;transition:all .2s;white-space:nowrap}
.btn-outline:hover{background:rgba(4,120,54,0.06)}
.btn-brown{display:inline-flex;align-items:center;gap:8px;padding:14px 32px;background:var(--brown);color:var(--white);border-radius:var(--radius);font-size:13px;font-weight:500;letter-spacing:0.1em;text-decoration:none;cursor:pointer;transition:background .2s;white-space:nowrap}
.btn-brown:hover{background:var(--brown-mid)}

/* ===== PAGE HERO ===== */
.page-hero{background:var(--cream);padding:4rem 1.5rem 3rem;border-bottom:0.5px solid var(--border)}
.page-hero-inner{max-width:1100px;margin:0 auto}
.page-hero-label{font-family:'Montserrat',sans-serif;font-size:9px;letter-spacing:0.28em;color:var(--green);margin-bottom:0.8rem;display:flex;align-items:center;gap:10px}
.page-hero-label::before{content:'';display:block;width:20px;height:1px;background:var(--green)}
.page-hero-h{font-family:'Noto Serif JP',serif;font-size:clamp(24px,5vw,38px);font-weight:400;letter-spacing:0.06em;color:var(--text)}
.page-hero-sub{font-size:14px;color:var(--text-mid);margin-top:0.8rem;line-height:2}
.page-content{max-width:1100px;margin:0 auto;padding:5rem 1.5rem}

/* ===== COMPANY ===== */
.co-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:start}
.co-table{width:100%;border-collapse:collapse}
.co-table tr{border-bottom:0.5px solid var(--border)}
.co-table th{font-size:12px;font-weight:500;color:var(--text-light);letter-spacing:0.08em;padding:14px 0;width:35%;vertical-align:top;text-align:left}
.co-table td{font-size:13px;color:var(--text-mid);padding:14px 0 14px 1rem;line-height:1.9;vertical-align:top}
.awards-ttl{font-family:'Noto Serif JP',serif;font-size:20px;font-weight:400;color:var(--text);margin:3rem 0 1.5rem;padding-bottom:0.8rem;border-bottom:0.5px solid var(--border)}
.award-row{display:flex;gap:1rem;padding:1rem 0;border-bottom:0.5px solid var(--border)}
.award-yr{font-family:'Montserrat',sans-serif;font-size:12px;color:var(--green);min-width:72px;flex-shrink:0;font-weight:500}
.award-txt{font-size:13px;color:var(--text-mid);line-height:1.8}
.profile-img{width:100%;aspect-ratio:3/4;background:var(--cream2);border-radius:var(--radius);overflow:hidden;display:flex;align-items:center;justify-content:center}
.profile-img svg{width:100%;height:100%}
.profile-name{font-family:'Noto Serif JP',serif;font-size:22px;font-weight:400;color:var(--text);margin-top:1.2rem;letter-spacing:0.06em}
.profile-role{font-size:12px;color:var(--text-light);margin-top:0.3rem;letter-spacing:0.1em}
.profile-cert{margin-top:1rem;padding:1rem 1.2rem;background:rgba(4,120,54,0.05);border:0.5px solid rgba(4,120,54,0.15);border-radius:var(--radius-sm);font-size:11px;color:var(--text-mid);line-height:2;border-left:3px solid var(--green)}
.msg-box{margin-top:1.5rem;padding:1.5rem;background:var(--cream);border-radius:var(--radius);border:0.5px solid var(--border)}
.msg-box-ttl{font-family:'Noto Serif JP',serif;font-size:15px;font-weight:400;color:var(--text);margin-bottom:0.8rem}
.msg-box-txt{font-size:12px;line-height:2.1;color:var(--text-mid)}
.map-area{margin-top:3rem}
.map-ttl{font-family:'Noto Serif JP',serif;font-size:20px;font-weight:400;color:var(--text);margin-bottom:1.2rem;padding-bottom:0.8rem;border-bottom:0.5px solid var(--border)}
.map-box{width:100%;height:320px;background:var(--cream2);border-radius:var(--radius);border:0.5px solid var(--border);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:1rem}
.map-box-txt{font-size:13px;color:var(--text-mid);text-align:center;line-height:2}

/* ===== FLOW PAGE ===== */
.flow-page-steps{display:flex;flex-direction:column}
.fp-step{display:grid;grid-template-columns:100px 1fr;border:0.5px solid var(--border);border-bottom:none;transition:background .2s}
.fp-step:last-child{border-bottom:0.5px solid var(--border)}
.fp-step.hl{background:rgba(4,120,54,0.03)}
.fp-left{padding:2rem 1.2rem;border-right:0.5px solid var(--border);display:flex;flex-direction:column;align-items:center;padding-top:2.2rem}
.fp-n{font-family:'Montserrat',sans-serif;font-size:28px;font-weight:300;color:var(--green);opacity:0.5}
.fp-en{font-size:8px;font-family:'Montserrat',sans-serif;letter-spacing:0.18em;color:var(--text-light);margin-top:4px;text-align:center}
.fp-right{padding:2rem}
.fp-dur{display:inline-block;font-size:10px;letter-spacing:0.1em;padding:3px 12px;border:1px solid var(--green);color:var(--green);border-radius:20px;margin-bottom:0.8rem;font-family:'Montserrat',sans-serif}
.fp-ttl{font-family:'Noto Serif JP',serif;font-size:18px;font-weight:400;color:var(--text);margin-bottom:0.8rem;letter-spacing:0.04em}
.fp-txt{font-size:13px;line-height:2;color:var(--text-mid)}
.fp-detail{margin-top:1.2rem;padding:1.2rem 1.4rem;background:var(--cream);border-radius:var(--radius-sm);border-left:3px solid rgba(4,120,54,0.3);font-size:12px;line-height:2;color:var(--text-mid)}
.fp-detail strong{color:var(--text);font-weight:500}

/* ===== WORKS PAGE ===== */
.works-video-row{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:3rem}
.vert-video-row{display:flex;gap:1rem;overflow-x:auto;padding-bottom:0.8rem;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.vert-video-row::-webkit-scrollbar{display:none}
.wf-filters{display:flex;gap:0.5rem;flex-wrap:wrap;margin-bottom:2rem}
.wf-btn{font-size:11px;letter-spacing:0.1em;padding:7px 18px;border:1px solid var(--border-strong);border-radius:20px;background:transparent;color:var(--text-mid);cursor:pointer;transition:all .2s;font-family:'Noto Sans JP',sans-serif}
.wf-btn.active,.wf-btn:hover{background:var(--green);color:var(--white);border-color:var(--green)}

/* PROPERTY GRID - square */
.prop-section{margin-bottom:4rem}
.prop-section-ttl{font-family:'Noto Serif JP',serif;font-size:20px;font-weight:400;color:var(--text);margin-bottom:0.5rem;letter-spacing:0.04em}
.prop-section-sub{font-size:13px;color:var(--text-mid);margin-bottom:1.5rem;line-height:1.8}
.prop-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px}
.prop-sq{aspect-ratio:1;overflow:hidden;cursor:pointer;border-radius:4px;background:var(--cream2);position:relative;transition:opacity .2s}
.prop-sq:hover{opacity:0.88}
.prop-sq svg{width:100%;height:100%}
.prop-sq-overlay{position:absolute;inset:0;background:rgba(26,20,16,0);transition:background .2s;display:flex;align-items:flex-end}
.prop-sq:hover .prop-sq-overlay{background:rgba(26,20,16,0.2)}
.prop-sq-label{padding:8px;font-size:10px;color:var(--white);opacity:0;transition:opacity .2s;letter-spacing:0.06em}
.prop-sq:hover .prop-sq-label{opacity:1}

.prop-sq img{width:100%;height:100%;object-fit:cover;display:block}
.work-mini-img img{width:100%;height:100%;object-fit:cover;display:block}
.video-box-inner video{width:100%;height:100%;object-fit:cover;display:block}
.profile-img img{width:100%;height:100%;object-fit:cover;display:block}

/* LIGHTBOX */
.lb{position:fixed;inset:0;z-index:800;background:rgba(26,20,16,0.92);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:all .3s;padding:2rem}
.lb.open{opacity:1;visibility:visible}
.lb-inner{position:relative;max-width:90vw;max-height:85vh;display:flex;flex-direction:column;align-items:center;gap:1rem}
.lb-img{max-width:100%;max-height:75vh;object-fit:contain;border-radius:var(--radius-sm)}
.lb-img-placeholder{width:min(800px,80vw);height:min(500px,60vh);background:var(--cream2);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center}
.lb-img-placeholder svg{width:100%;height:100%}
.lb-caption{font-size:13px;color:rgba(255,255,255,0.8);letter-spacing:0.06em;text-align:center}
.lb-close{position:absolute;top:-3rem;right:0;width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,0.12);border:none;color:var(--white);font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}
.lb-close:hover{background:rgba(255,255,255,0.22)}
.lb-nav{display:flex;gap:1rem}
.lb-nav-btn{padding:8px 20px;background:rgba(255,255,255,0.1);border:0.5px solid rgba(255,255,255,0.2);border-radius:20px;color:var(--white);font-size:12px;cursor:pointer;transition:background .2s;letter-spacing:0.08em}
.lb-nav-btn:hover{background:rgba(255,255,255,0.2)}

/* ===== SERVICE PAGE ===== */
.svc-main-sec{margin-bottom:4rem}
.svc-main-ttl{font-family:'Noto Serif JP',serif;font-size:24px;font-weight:400;color:var(--text);margin-bottom:1.5rem;display:flex;align-items:center;gap:12px}
.svc-main-ttl::before{content:'';display:block;width:4px;height:28px;background:var(--green);border-radius:2px}
.svc-main-txt{font-size:14px;line-height:2.2;color:var(--text-mid);max-width:700px;margin-bottom:2rem}
.svc-items{display:grid;grid-template-columns:repeat(2,1fr);gap:1.2rem;margin-bottom:2rem}
.svc-item{padding:1.5rem;background:var(--cream);border-radius:var(--radius);border:0.5px solid var(--border)}
.svc-item-ttl{font-family:'Noto Serif JP',serif;font-size:15px;font-weight:400;color:var(--text);margin-bottom:0.5rem;letter-spacing:0.04em}
.svc-item-txt{font-size:12px;line-height:1.9;color:var(--text-mid)}
.svc-sub-sec{padding:2.5rem;background:var(--cream);border-radius:var(--radius);border:0.5px solid var(--border);margin-bottom:2rem}
.svc-sub-ttl{font-family:'Noto Serif JP',serif;font-size:18px;font-weight:400;color:var(--text);margin-bottom:1rem;letter-spacing:0.04em}
.svc-sub-txt{font-size:13px;line-height:2.1;color:var(--text-mid)}

/* ===== CONTACT PAGE ===== */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem}
.contact-method{padding:2rem;background:var(--cream);border-radius:var(--radius);border:0.5px solid var(--border);text-align:center;margin-bottom:1.5rem}
.contact-method-ico{width:52px;height:52px;border-radius:14px;background:rgba(4,120,54,0.08);display:flex;align-items:center;justify-content:center;margin:0 auto 1rem}
.contact-method-ico svg{width:26px;height:26px;stroke:var(--green);fill:var(--green);stroke-width:1.5;stroke-linecap:round}
.contact-method-ttl{font-family:'Noto Serif JP',serif;font-size:16px;font-weight:400;color:var(--text);margin-bottom:0.5rem}
.contact-tel-big{font-family:'Montserrat',sans-serif;font-size:28px;font-weight:300;color:var(--green);display:block;margin:0.5rem 0;letter-spacing:0.06em;text-decoration:none}
.contact-note{font-size:11px;color:var(--text-light);line-height:1.8}
.contact-form-link{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px;background:var(--green);color:var(--white);border-radius:var(--radius);font-size:14px;font-weight:500;letter-spacing:0.08em;text-decoration:none;transition:background .2s;margin-top:1rem}
.contact-form-link:hover{background:#035c2a}

/* ===== FOOTER ===== */
footer{background:var(--brown);color:rgba(247,244,239,0.7);padding:4rem 1.5rem 2rem}
.foot-inner{max-width:1100px;margin:0 auto}
.foot-top{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:2.5rem;margin-bottom:3rem;padding-bottom:3rem;border-bottom:0.5px solid rgba(255,255,255,0.1)}
.foot-logo{font-family:'Noto Serif JP',serif;font-size:22px;font-weight:400;color:rgba(247,244,239,0.95);letter-spacing:0.06em;margin-bottom:4px}
.foot-logo-en{font-family:'Montserrat',sans-serif;font-size:8px;letter-spacing:0.25em;color:rgba(247,244,239,0.35);margin-bottom:1.2rem}
.foot-info{font-size:12px;line-height:2.2}
.foot-col-ttl{font-family:'Montserrat',sans-serif;font-size:9px;letter-spacing:0.25em;color:rgba(247,244,239,0.35);margin-bottom:1rem}
.foot-link{display:block;font-size:12px;color:rgba(247,244,239,0.65);text-decoration:none;padding:4px 0;cursor:pointer;transition:color .2s}
.foot-link:hover{color:rgba(247,244,239,0.95)}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:0.5rem}
.foot-copy{font-size:10px;letter-spacing:0.08em;color:rgba(247,244,239,0.35)}

/* ===== TREE DECORATIONS ===== */
.tree-deco{position:absolute;pointer-events:none;z-index:1;user-select:none}
.tree-deco img{display:block;width:100%;height:auto}

/* ヒーロー両端 */
.hero-tree-l{bottom:0;left:-24px;width:clamp(70px,10vw,140px);opacity:0.85}
.hero-tree-r{bottom:0;right:-16px;width:clamp(55px,7vw,110px);opacity:0.78}

/* 木の帯（セクション間・1〜2本） */
.tree-band{
  width:100%;
  display:flex;
  align-items:flex-end;
  justify-content:flex-end;
  padding:2.5rem 2.5rem 0;
  pointer-events:none;
  user-select:none;
  line-height:0;
  box-sizing:border-box;
}
.tree-band.left{ justify-content:flex-start; }
.tree-band.spread{ justify-content:space-between; padding:2.5rem 1.5rem 0; }
.tree-band img{
  display:block;
  height:auto;
  opacity:0.80;
  flex-shrink:0;
}

/* CTAセクション左右 */
.cta-sec{position:relative;overflow:hidden}
.cta-tree-l{bottom:-8px;left:-16px;width:clamp(70px,9vw,130px);opacity:0.18;filter:saturate(0.55)}
.cta-tree-r{bottom:-8px;right:-10px;width:clamp(55px,7vw,100px);opacity:0.18;filter:saturate(0.55)}

@media(max-width:600px){
  .hero-tree-l{width:68px;left:-18px}
  .hero-tree-r{width:52px;right:-10px}
  .cta-tree-l{width:64px;left:-14px}
  .cta-tree-r{width:52px;right:-8px}
  .tree-band{padding:2rem 1.2rem 0}
  .tree-band img{opacity:0.75}
}
.vert-section{position:relative;overflow:hidden}
.vert-text-rail{position:absolute;top:0;right:0;bottom:0;width:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;pointer-events:none;z-index:1;border-left:0.5px solid var(--border)}
.vert-text{font-family:'Noto Serif JP',serif;font-size:11px;font-weight:400;color:var(--text-light);letter-spacing:0.22em;writing-mode:vertical-rl;line-height:1}
.vert-text-green{color:rgba(4,120,54,0.35)}

/* ===== MOSAIC GALLERY ===== */
.gallery-sec{background:var(--cream)}
.mosaic{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  grid-auto-rows:clamp(60px,8vw,90px);
  gap:6px;
  width:100%;
}
.mc{overflow:hidden;border-radius:var(--radius-sm);background:var(--cream2);cursor:pointer;position:relative}
.mc img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease,opacity .35s ease}
.mc:hover img{transform:scale(1.04)}
.mc img.fading{opacity:0}
.mc-a{grid-column:span 5;grid-row:span 3}
.mc-b{grid-column:span 4;grid-row:span 2}
.mc-c{grid-column:span 3;grid-row:span 2}
.mc-d{grid-column:span 3;grid-row:span 3}
.mc-e{grid-column:span 4;grid-row:span 3}
.mc-f{grid-column:span 2;grid-row:span 2}
.mc-g{grid-column:span 5;grid-row:span 2}
.mc-h{grid-column:span 3;grid-row:span 1}
@media(max-width:900px){
  .mosaic{grid-template-columns:repeat(6,1fr);grid-auto-rows:clamp(70px,12vw,100px);gap:4px}
  .mc-a{grid-column:span 4;grid-row:span 2}
  .mc-b{grid-column:span 2;grid-row:span 2}
  .mc-c{grid-column:span 3;grid-row:span 2}
  .mc-d{grid-column:span 2;grid-row:span 3}
  .mc-e{grid-column:span 3;grid-row:span 2}
  .mc-f{grid-column:span 2;grid-row:span 1}
  .mc-g{grid-column:span 4;grid-row:span 2}
  .mc-h{grid-column:span 2;grid-row:span 1}
}
@media(max-width:600px){
  .mosaic{grid-template-columns:repeat(3,1fr);grid-auto-rows:clamp(80px,28vw,120px);gap:3px}
  .mc-a{grid-column:span 2;grid-row:span 2}
  .mc-b{grid-column:span 1;grid-row:span 2}
  .mc-c{grid-column:span 2;grid-row:span 1}
  .mc-d{grid-column:span 1;grid-row:span 2}
  .mc-e{grid-column:span 2;grid-row:span 2}
  .mc-f{grid-column:span 1;grid-row:span 1}
  .mc-g{grid-column:span 2;grid-row:span 1}
  .mc-h{grid-column:span 1;grid-row:span 1}
}

/* HERO縦書きアクセント */
.hero-vert{position:absolute;top:50%;right:2rem;transform:translateY(-50%);z-index:3;display:flex;flex-direction:column;align-items:center;gap:12px}
.hero-vert-line{width:0.5px;height:60px;background:rgba(255,255,255,0.2)}
.hero-vert-txt{font-family:'Noto Serif JP',serif;font-size:9px;letter-spacing:0.3em;color:rgba(255,255,255,0.35);writing-mode:vertical-rl}

/* ===== PHILOSOPHY縦書きラベル ===== */
.phil-sec{background:var(--white);position:relative}
.phil-side-label{position:absolute;left:0;top:0;bottom:0;width:48px;display:flex;align-items:center;justify-content:center;border-right:0.5px solid var(--border)}
.phil-side-label span{font-family:'Noto Serif JP',serif;font-size:10px;letter-spacing:0.28em;color:var(--text-light);writing-mode:vertical-rl}

/* ===== STICKY BUTTONS ===== */
.sticky-cta{position:fixed;bottom:0;left:0;right:0;z-index:400;display:none;padding:0.8rem 1rem;background:rgba(255,255,255,0.97);backdrop-filter:blur(8px);border-top:0.5px solid var(--border);gap:0.7rem}
.sticky-cta.show{display:flex}
.sticky-tel-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:13px;background:var(--green);color:var(--white);border-radius:var(--radius-sm);font-size:13px;font-weight:500;letter-spacing:0.06em;text-decoration:none;transition:background .2s}
.sticky-tel-btn:hover{background:#035c2a}
.sticky-form-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:13px;background:transparent;color:var(--green);border:1.5px solid var(--green);border-radius:var(--radius-sm);font-size:13px;font-weight:500;letter-spacing:0.06em;text-decoration:none;transition:all .2s}
.sticky-form-btn:hover{background:rgba(4,120,54,0.06)}

/* PAGE BOTTOM SPACER for sticky */
.sticky-spacer{height:0;display:none}
.sticky-spacer.show{height:72px;display:block}

/* ===== TOP BUTTON ===== */
#toTop{position:fixed;bottom:5.5rem;right:1.2rem;z-index:400;width:44px;height:44px;border-radius:50%;background:rgba(61,50,38,0.8);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;visibility:hidden;transition:all .3s;backdrop-filter:blur(4px)}
#toTop.show{opacity:1;visibility:visible}
#toTop:hover{background:var(--brown)}
#toTop svg{width:18px;height:18px;stroke:var(--white);fill:none;stroke-width:2;stroke-linecap:round}

/* ===== RESPONSIVE ===== */
@media(max-width:900px){
  .nav-links,.nav-cta{display:none}
  .ham{display:flex}
  .hero-content{max-width:100%;padding:0 1.2rem 5.5rem}
  .promise-grid{grid-template-columns:1fr 1fr}
  .svc-grid{grid-template-columns:1fr}
  .flow-steps{flex-direction:column;border-radius:var(--radius)}
  .flow-step{border-right:none;border-bottom:0.5px solid var(--border)}
  .flow-step:last-child{border-bottom:none}
  .phil-grid{grid-template-columns:1fr}
  .video-layout{grid-template-columns:1fr}
  .video-small-wrap{flex-direction:row;align-items:flex-start}
  .video-small-wrap .video-box:not(.vert){flex:1}
  .video-small-wrap .video-box.vert{flex-shrink:0;width:120px}
  .co-grid{grid-template-columns:1fr;gap:2.5rem}
  .works-video-row{grid-template-columns:1fr 1fr}
  .prop-grid{grid-template-columns:repeat(3,1fr)}
  .contact-grid{grid-template-columns:1fr;gap:2rem}
  .foot-top{grid-template-columns:1fr;gap:2rem}
  .svc-items{grid-template-columns:1fr}
  .sticky-cta{display:flex}
  .sticky-spacer{display:block}
  #toTop{bottom:6.2rem}
}
@media(max-width:600px){
  .hero-vert{display:none}
  .phil-side-label{display:none}
  .sec-inner[style*="padding-left:60px"]{padding-left:1rem!important}
  .sec-inner[style*="padding-left:56px"]{padding-left:1rem!important}
  .svc-sec>div:first-child{display:none}
  .nav-inner{padding:0 1rem;height:60px}
  .page{padding-top:60px}
  .hero-content{padding:0 1rem 5rem}
  .promise-grid{grid-template-columns:1fr}
  .works-video-row{grid-template-columns:1fr}
  .prop-grid{grid-template-columns:repeat(3,1fr);gap:2px}
  .fp-step{grid-template-columns:72px 1fr}
  .fp-n{font-size:22px}
  .sec{padding:4.5rem 1rem}
  .page-content{padding:2.5rem 1rem}
  .area-sec{padding:1.5rem 1rem}
  .area-inner{flex-direction:column;align-items:flex-start}
  .video-small-wrap{flex-direction:column}
  .lb-inner{max-width:95vw;padding:0}
  .lb{padding:1rem}
}
@media(min-width:901px){
  .sticky-cta{display:none!important}
  .sticky-spacer{display:none!important;height:0!important}
  #toTop{bottom:1.5rem;right:1.5rem}
}

/* ===== WordPress化にともなう追加スタイル（デザインは変更せず、機能追加分のみ） ===== */

/* ヘッダー・ドロワーで現在のページのメニュー項目を強調 */
.nav-a.current-menu-item,
.nav-a.current_page_item{color:var(--green);background:rgba(4,120,54,0.06)}
.drawer-a.current-menu-item,
.drawer-a.current_page_item{color:var(--green)}

/* フッター下部・プライバシーポリシーリンク（ON時のみ表示） */
.foot-bottom{gap:0.8rem 1.2rem}
.foot-legal{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.foot-legal-link{font-size:10px;letter-spacing:0.06em;color:rgba(247,244,239,0.5);text-decoration:none;border-bottom:0.5px solid rgba(247,244,239,0.25);transition:color .2s}
.foot-legal-link:hover{color:rgba(247,244,239,0.9)}

/* プライバシーポリシー本文（WordPress標準エディタで入力される内容の体裁） */
.privacy-body{font-size:13px;line-height:2.1;color:var(--text-mid);max-width:800px}
.privacy-body h2{font-family:'Noto Serif JP',serif;font-size:19px;font-weight:400;color:var(--text);margin:2.4rem 0 1rem;padding-bottom:0.6rem;border-bottom:0.5px solid var(--border)}
.privacy-body h2:first-child{margin-top:0}
.privacy-body h3{font-size:15px;font-weight:500;color:var(--text);margin:1.6rem 0 0.6rem}
.privacy-body p{margin-bottom:1.1rem}
.privacy-body ul,.privacy-body ol{margin:0 0 1.1rem 1.4rem}
.privacy-body li{margin-bottom:0.4rem}
.privacy-body a{color:var(--green)}

/* 施工事例の写真が1枚も登録されていない場合の注意書き（フロント表示） */
.kimura-admin-note{max-width:1100px;margin:0 auto 2rem;padding:0.9rem 1.2rem;background:rgba(230,180,60,0.14);border:1px solid rgba(200,150,40,0.35);border-radius:8px;font-size:12px;color:#6b4e10;line-height:1.8}

/* お問い合わせ・会社概要ページ：住所からの自動Googleマップ埋め込み */
.map-embed{width:100%;height:320px;border-radius:var(--radius);overflow:hidden;border:0.5px solid var(--border)}
.map-embed iframe{width:100%;height:100%;border:0;display:block}

/* 施工事例が0件のときのホーム側フォールバック表示 */
.works-empty,.gallery-empty{font-size:13px;color:var(--text-light);padding:1rem 0}

/* 元デザインの .page / .page.active（padding-top:68px 等）を
   通常のページ本文ラッパーに移植 */
#kimura-main{padding-top:68px}
@media(max-width:600px){
  #kimura-main{padding-top:60px}
}

/* スキップリンク（アクセシビリティ） */
.skip-link{position:absolute;left:-9999px;top:0;background:var(--green);color:#fff;padding:10px 18px;z-index:9999;border-radius:0 0 8px 0}
.skip-link:focus{left:0}
