/* ============================================================
   ntw-c : layout.css  —  レイアウト & コンポーネント
   方向: グレー＋深緑のミニマル。明朝見出し。スクロール出現。
   署名: 年輪＝等高線（独自）。レスポンシブは縦づみ。
   ============================================================ */

.container{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gut)}

.btn{display:inline-flex;align-items:center;gap:.5em;font-family:var(--serif);font-size:15px;letter-spacing:var(--ls-wide);border:1px solid var(--ink);border-radius:var(--radius);padding:.95em 2em;transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease)}
.btn:hover{background:var(--ink);color:var(--paper)}
.tlink{font-family:var(--serif);font-size:15px;letter-spacing:.06em;color:var(--green);border-bottom:1px solid transparent;transition:border-color .3s}
.tlink:hover{border-color:var(--green)}
.mock-flag{font-family:var(--sans);font-size:11px;color:var(--sub);background:var(--paper2);border-radius:40px;padding:.15em .6em;letter-spacing:.04em}

/* ============================ ヘッダー ============================ */
.site-header{position:fixed;inset:0 0 auto;z-index:40;background:color-mix(in srgb,var(--paper) 82%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-md);height:84px}
.brand{font-family:var(--serif);font-size:20px;letter-spacing:.18em;font-weight:var(--fw-medium)}
.brand small{display:block;font-family:var(--latin);font-size:10px;letter-spacing:.36em;color:var(--sub);margin-top:3px;text-transform:uppercase}
.brand-logo{max-height:38px;width:auto}
.global-nav ul{display:flex;align-items:center;gap:clamp(16px,2.2vw,38px)}
.global-nav a{font-family:var(--serif);font-size:15px;letter-spacing:.08em;color:var(--ink);position:relative;padding:.4em 0}
.global-nav > ul > li > a::after{content:"";position:absolute;left:0;bottom:-1px;width:0;height:1px;background:var(--green);transition:width .3s var(--ease)}
.global-nav > ul > li > a:hover::after{width:100%}
.global-nav li{position:relative}
.global-nav .sub-menu{position:absolute;top:100%;left:0;min-width:210px;background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow);padding:.4rem 0;display:grid;opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .25s,transform .25s,visibility .25s}
.global-nav .has-sub:hover>.sub-menu,.global-nav .has-sub:focus-within>.sub-menu{opacity:1;visibility:visible;transform:none}
.global-nav .sub-menu a{padding:.55rem 1rem;font-size:14px}
.nav-toggle{display:none;align-items:center;gap:.5em;background:none;border:none;cursor:pointer;font-family:var(--latin);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink)}
.nav-toggle__bars{display:inline-grid;gap:4px;width:22px}
.nav-toggle__bars span{display:block;height:1.5px;background:var(--ink)}

/* SPメニュー */
.mobile-menu{position:fixed;inset:0;z-index:100;background:color-mix(in srgb,var(--ink) 42%,transparent);opacity:0;visibility:hidden;transition:opacity .25s}
.mobile-menu.is-open{opacity:1;visibility:visible}
.mobile-menu__inner{position:absolute;top:0;right:0;height:100%;width:min(86vw,360px);background:var(--paper);box-shadow:var(--shadow);transform:translateX(100%);transition:transform .3s var(--ease);display:flex;flex-direction:column;padding:var(--sp-md)}
.mobile-menu.is-open .mobile-menu__inner{transform:none}
.mobile-menu__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-lg)}
.mobile-menu__close{font-size:1.8rem;line-height:1;background:none;border:none;cursor:pointer;color:var(--ink)}
.mobile-menu__nav a{display:block;padding:.9em .2em;border-bottom:1px solid var(--line);font-family:var(--serif);font-size:18px}
.mobile-menu__nav .sub-menu{padding-left:1rem}
.mobile-menu__nav .sub-menu a{font-size:15px}
.mobile-menu__cta{margin-top:auto;padding-top:var(--sp-lg)}
.mobile-menu__cta .btn{width:100%;justify-content:center}
body.nav-open{overflow:hidden}

/* ============================ ヒーロー（フルブリード背景＋前面コピー） ============================ */
.hero{position:relative;overflow:hidden;padding-top:84px;min-height:100vh;min-height:100svh}
.hero__bg{position:absolute;inset:0;z-index:0;pointer-events:none}
@keyframes ntwc-spin{to{transform:rotate(360deg)}}

/* 既定（画像未登録）：大きな年輪フィールドを中央に置き、はっきり見せる。左テキスト域は紙地で可読性確保 */
.hero__field{position:absolute;inset:0;display:grid;place-content:center;pointer-events:none}
.hero__field svg{width:min(116vw,1320px);height:auto;overflow:visible;opacity:.95;transform-origin:center}
.hero__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--paper) 0%,var(--paper) 24%,color-mix(in srgb,var(--paper) 28%,transparent) 60%,transparent 100%)}

/* 画像/動画登録時：フルブリード＋スクリム＋白文字 */
.hero--media .hero__bg::after{display:none}
.hero--media .hero__slides{position:absolute;inset:0;overflow:hidden}
.hero--media .hero__slide{position:absolute;inset:0;opacity:0;transition:opacity 1.4s var(--ease)}
.hero--media .hero__slide.is-active{opacity:1}
.hero--media .hero__scrim{position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,16,14,.80) 0%,rgba(14,16,14,.52) 38%,rgba(14,16,14,.12) 72%,transparent 100%),linear-gradient(0deg,rgba(14,16,14,.52) 0%,rgba(14,16,14,.12) 22%,transparent 42%)}

.hero__wrap{position:relative;z-index:2;width:100%;min-height:calc(100vh - 84px);min-height:calc(100svh - 84px);display:flex;align-items:center;padding-block:clamp(48px,9vh,120px)}
.hero__lock{max-width:min(64vw,760px)}
.hero__lock .lab{margin-bottom:1.4em;transition:opacity .9s .1s,transform .9s .1s}
html.js .hero__lock .lab{opacity:0;transform:translateY(14px)}
.hero.go .hero__lock .lab{opacity:1;transform:none}

/* 見出し：クリップ廃止（overflow:hidden を使わない）→ 文字落ち根絶。出現はフェード＋上昇 */
.hero__title{font-size:clamp(34px,6vw,80px);font-weight:var(--fw-medium);line-height:1.34;letter-spacing:var(--ls-hero)}
.hero__title .ln{display:block}
.hero__title .ln i{display:block;font-style:normal;transition:opacity .9s var(--ease),transform .9s var(--ease)}
html.js .hero__title .ln i{opacity:0;transform:translateY(22px)}
.hero.go .hero__title .ln:nth-child(1) i{transition-delay:.12s}
.hero.go .hero__title .ln:nth-child(2) i{transition-delay:.26s}
.hero.go .hero__title .ln i{opacity:1;transform:none}
.hero__title .g{color:var(--green)}

.hero__lead{font-size:var(--fs-lead);color:var(--sub);line-height:2.1;max-width:32em;margin-top:1.8em;transition:opacity .9s .55s}
html.js .hero__lead{opacity:0}
.hero.go .hero__lead{opacity:1}
.hero__act{display:flex;align-items:center;gap:28px;margin-top:2.4em;flex-wrap:wrap;transition:opacity .9s .7s}
html.js .hero__act{opacity:0}
.hero.go .hero__act{opacity:1}

/* media時の文字色（背景画像上で白系へ） */
.hero--media .hero__title{color:var(--paper);text-shadow:0 2px 30px rgba(0,0,0,.45),0 1px 4px rgba(0,0,0,.3)}
.hero--media .hero__title .g{color:#8fd3ad}
.hero--media .lab{color:color-mix(in srgb,var(--paper) 88%,transparent);text-shadow:0 1px 12px rgba(0,0,0,.4)}
.hero--media .hero__lead{color:rgba(255,255,255,.92);text-shadow:0 1px 14px rgba(0,0,0,.42)}
.hero--media .btn{border-color:rgba(255,255,255,.7);color:var(--paper);text-shadow:0 1px 8px rgba(0,0,0,.35)}
.hero--media .btn:hover{background:var(--paper);color:var(--ink);text-shadow:none}
.hero--media .tlink{color:#8fd3ad;text-shadow:0 1px 8px rgba(0,0,0,.35)}
.hero--media .hero__tate,.hero--media .hero__scroll{color:rgba(255,255,255,.82);text-shadow:0 1px 10px rgba(0,0,0,.4)}
.hero--media .hero__scroll::after{background:rgba(255,255,255,.6)}

.hero__tate{position:absolute;right:max(calc((100vw - var(--wrap))/2 + 8px),22px);top:50%;transform:translateY(-50%);writing-mode:vertical-rl;display:flex;flex-direction:column;align-items:flex-start;gap:.9em;font-family:var(--sans);font-weight:600;font-size:13px;letter-spacing:.22em;line-height:1;white-space:nowrap;color:var(--ink);z-index:3}
.hero__tate small{font-family:var(--sans);font-weight:700;font-size:13px;letter-spacing:.2em;color:var(--green)}
.hero--media .hero__tate small{color:#8fd3ad}
.hero__scroll{position:absolute;left:var(--gut);bottom:18px;font-family:var(--latin);font-size:12px;letter-spacing:.3em;color:var(--sub);text-transform:uppercase;z-index:3}
.hero__scroll::after{content:"";display:block;width:1px;height:38px;background:var(--gray);margin:10px auto 0;animation:ntwc-drop 1.8s ease-in-out infinite}
@keyframes ntwc-drop{0%,100%{transform:scaleY(.3);transform-origin:top;opacity:.4}50%{transform:scaleY(1);opacity:1}}

/* メディア共通 */
.media-fill{width:100%;height:100%;object-fit:cover;display:block}

/* ============================ セクション ============================ */
.sec{padding-block:var(--sp-3xl)}
.sec--alt{background:var(--paper2)}
.sechead{display:grid;gap:16px;margin-bottom:clamp(44px,6vh,84px);max-width:42em}
.sechead .lab{justify-self:start}
.sechead h2{font-size:var(--fs-display)}
.sechead p{color:var(--sub);font-size:15px}
.more{margin-top:clamp(36px,5vh,64px)}
.more a{font-family:var(--serif);font-size:15px;letter-spacing:.06em;color:var(--green);border-bottom:1px solid var(--line);padding-bottom:3px;transition:border-color .3s}
.more a:hover{border-color:var(--green)}

/* ============================ 事業（2本柱カード・ヒーロー下端に食い込む） ============================ */
.biz{padding-top:0}
.bizrow{position:relative;z-index:5;display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2vw,28px);margin-top:clamp(-118px,-11vh,-72px)}
.bizcard{position:relative;overflow:hidden;display:grid;gap:16px;align-content:start;padding:clamp(28px,3.4vw,48px);background:var(--paper);border:1px solid var(--line);border-top:3px solid var(--green);box-shadow:var(--shadow);transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.bizcard:hover{transform:translateY(-6px);box-shadow:0 26px 60px -28px rgba(25,28,25,.5)}
.bizcard__ring{position:absolute;top:-26px;right:-26px;width:130px;opacity:.16;pointer-events:none}
.bizcard__ring svg{width:100%;height:auto}
.bizcard__top{position:relative;z-index:1;display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.bizcard__no{font-family:var(--latin);font-size:clamp(34px,4vw,52px);line-height:1;color:var(--green)}
.bizcard__en{font-family:var(--latin);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--sub)}
.bizcard__name{position:relative;z-index:1;font-family:var(--serif);font-size:clamp(22px,2.4vw,30px);font-weight:var(--fw-medium)}
.bizcard__lead{position:relative;z-index:1;color:var(--sub);font-size:15px;line-height:2.05}
.bizcard__link{position:relative;z-index:1;font-family:var(--serif);font-size:15px;letter-spacing:.06em;color:var(--green);justify-self:start;border-bottom:1px solid var(--line);padding-bottom:3px;transition:border-color .3s}
.bizcard__link:hover{border-color:var(--green)}

/* ============================ 等高線バンド（独自） ============================ */
.band{position:relative;overflow:hidden;background:var(--ink);color:var(--paper);padding-block:clamp(72px,11vh,140px)}
.band::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 13px,color-mix(in srgb,var(--paper) 6%,transparent) 13px 14px);pointer-events:none}
.band__in{position:relative;text-align:center;display:grid;gap:22px;justify-items:center}
.band .lab{color:color-mix(in srgb,var(--paper) 75%,transparent)}
.band__text{font-family:var(--serif);font-size:clamp(22px,3vw,38px);line-height:1.95;color:var(--paper)}

/* ============================ 数字 ============================ */
.stats{display:grid;grid-template-columns:repeat(4,1fr)}
.stats>div{padding:6px clamp(18px,2.6vw,40px);border-left:1px solid var(--line)}
.stats>div:first-child{padding-left:0;border-left:0}
.stnum{font-family:var(--serif);font-size:clamp(40px,5vw,64px);font-weight:var(--fw-regular);line-height:1;color:var(--ink)}
.stnum em{font-style:normal;font-family:var(--latin);font-size:.4em;color:var(--green);margin-left:.2em}
.stlab{font-size:13px;color:var(--sub);margin-top:14px;letter-spacing:.06em}

/* ============================ 強み ============================ */
.str{display:grid;grid-template-columns:repeat(3,1fr)}
.str>div{padding:8px clamp(20px,3vw,46px);border-left:1px solid var(--line)}
.str>div:first-child{padding-left:0;border-left:0}
.str .num{font-family:var(--latin);font-size:15px;letter-spacing:.18em;color:var(--green)}
.str h4{font-size:21px;font-weight:var(--fw-medium);margin:12px 0 10px}
.str p{font-size:14px;color:var(--sub);line-height:2}

/* ============================ 実績 ============================ */
.works{display:grid;grid-template-columns:repeat(6,1fr);gap:clamp(18px,2vw,30px)}
.wk__fig{position:relative;aspect-ratio:3/2;border:1px solid var(--line);background:var(--paper2);overflow:hidden}
.wk--lg{grid-column:span 4}.wk--lg .wk__fig{aspect-ratio:16/9}
.wk--sm{grid-column:span 2}
.wk__fig .media-fill{transition:transform .6s var(--ease)}
.wk:hover .wk__fig .media-fill{transform:scale(1.05)}
.wk__fig .mini{position:absolute;inset:0;display:grid;place-content:center;opacity:.4}
.wk__fig .mini svg{width:36%}
.wk__m{display:flex;align-items:baseline;gap:12px;margin-top:14px}
.wk__tag{font-family:var(--latin);font-size:12px;letter-spacing:.2em;color:var(--green);text-transform:uppercase}
.wk__t{font-family:var(--serif);font-size:17px}

/* ============================ お知らせ ============================ */
.news{border-top:1px solid var(--line)}
.ni{display:grid;grid-template-columns:8rem 6rem 1fr auto;align-items:center;gap:24px;padding:26px 8px;border-bottom:1px solid var(--line);transition:background .3s,padding-left .3s}
.ni:hover{background:color-mix(in srgb,var(--paper2) 70%,transparent);padding-left:18px}
.ni time{font-family:var(--latin);font-size:15px;letter-spacing:.05em;color:var(--sub)}
.ni .cat{font-family:var(--latin);font-size:12px;letter-spacing:.16em;color:var(--green);text-transform:uppercase;border:1px solid var(--line);border-radius:40px;padding:.3em .9em;justify-self:start}
.ni .t{font-family:var(--serif);font-size:17px}
.ni .ar{color:var(--green);opacity:0;transform:translateX(-6px);transition:opacity .3s,transform .3s}
.ni:hover .ar{opacity:1;transform:none}

/* ============================ CTA ============================ */
.cta{background:var(--green);color:var(--paper)}
.cta__in{padding-block:clamp(76px,10vh,132px);display:grid;justify-items:center;text-align:center;gap:26px}
.cta .lab{color:color-mix(in srgb,var(--paper) 80%,transparent)}
.cta h2{font-size:clamp(26px,3vw,42px);color:var(--paper)}
.cta .btn{border-color:color-mix(in srgb,var(--paper) 65%,transparent);color:var(--paper)}
.cta .btn:hover{background:var(--paper);color:var(--green)}

/* ============================ フッター ============================ */
.site-footer{background:var(--paper)}
.foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:24px;padding-block:48px;border-top:1px solid var(--line);font-size:13px;color:var(--sub)}
.foot__nav{display:flex;gap:40px;flex-wrap:wrap}
.foot__nav h4{font-family:var(--latin);font-size:11px;letter-spacing:.2em;color:var(--sub);text-transform:uppercase;font-weight:var(--fw-regular);margin-bottom:10px}
.foot__nav ul{display:grid;gap:8px}
.foot__nav a{font-family:var(--serif);font-size:14px;color:var(--ink)}
.foot__nav a:hover{color:var(--green)}
.foot .brand{font-size:18px;color:var(--ink)}
.foot__copy{width:100%;border-top:1px solid var(--line);padding-top:20px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}

/* ============================ レスポンシブ（縦づみ） ============================ */
@media (max-width:880px){
  .global-nav{display:none}
  .nav-toggle{display:inline-flex}
  .hero{min-height:auto}
  .hero__wrap{min-height:auto;padding-block:clamp(56px,12vh,96px)}
  .hero__lock{max-width:100%}
  .hero__field{right:-32vw;width:160vw;opacity:.5}
  .hero__tate,.hero__scroll{display:none}
  .bizrow{grid-template-columns:1fr;gap:16px;margin-top:-64px}
  .row{grid-template-columns:1fr;gap:22px}.row--rev .fig{order:0}
  .stats,.str{grid-template-columns:1fr 1fr}
  .works{grid-template-columns:1fr}.wk--lg,.wk--sm{grid-column:auto}
  .ni{grid-template-columns:1fr auto;gap:6px 16px}.ni .t{grid-column:1/-1}.ni .ar{display:none}
}
@media (min-width:881px){.mobile-menu{display:none}}

/* ============================ 汎用：狭幅 / 本文 / ページ送り ============================ */
.container--narrow{max-width:900px}
.sechead h1{font-size:var(--fs-display);font-weight:var(--fw-regular)}
.entry-content{font-size:16px;line-height:2.05;color:var(--ink)}
.entry-content > *+*{margin-top:1.2em}
.entry-content h2{font-size:var(--fs-h2);margin-top:1.8em}
.entry-content h3{font-size:var(--fs-h3);margin-top:1.6em}
.entry-content a{color:var(--green);border-bottom:1px solid var(--line)}
.entry-content ul,.entry-content ol{padding-left:1.4em;display:grid;gap:.4em}
.entry-content img{border:1px solid var(--line)}
.pager{margin-top:var(--sp-xl);display:flex;justify-content:center}
.pager .page-numbers{font-family:var(--latin);font-size:14px;letter-spacing:.06em;padding:.5em .9em;color:var(--sub)}
.pager .page-numbers.current{color:var(--green);border-bottom:1px solid var(--green)}
.pager a.page-numbers:hover{color:var(--ink)}

/* ============================ 下層ページ部品 ============================ */
/* サブページ・ヘッダー */
.phero{position:relative;padding:calc(84px + clamp(44px,7vh,88px)) 0 clamp(36px,5vh,64px);background:var(--paper2);border-bottom:1px solid var(--line)}
.phero .lab{margin-bottom:14px}
.phero h1{font-size:var(--fs-display)}
.phero__lead{margin-top:18px;color:var(--sub);font-size:15px;line-height:2;max-width:42em}
.crumb{font-family:var(--latin);font-size:12px;letter-spacing:.1em;color:var(--sub);margin-bottom:18px}
.crumb a:hover{color:var(--green)}

/* 汎用ブロック */
.block{padding-block:clamp(56px,8vh,104px)}
.block--alt{background:var(--paper2)}
.blockhead{display:grid;gap:12px;margin-bottom:clamp(26px,4vh,46px)}
.blockhead h2{font-size:var(--fs-h2)}
.lead-lg{font-size:clamp(17px,1.6vw,20px);line-height:2;color:var(--ink);max-width:40em}
.prose p{color:var(--sub);font-size:15px;line-height:2.1}
.prose p+p{margin-top:1.2em}

/* 会社概要テーブル */
.info-table{width:100%;border-top:1px solid var(--line);border-collapse:collapse}
.info-table th,.info-table td{text-align:left;vertical-align:top;padding:18px 8px;border-bottom:1px solid var(--line);font-size:15px}
.info-table th{width:28%;font-family:var(--serif);font-weight:var(--fw-medium);color:var(--ink);white-space:nowrap}
.info-table td{color:var(--sub)}
@media(max-width:680px){.info-table th,.info-table td{display:block;width:auto}.info-table th{border-bottom:0;padding:16px 0 0}.info-table td{padding:6px 0 16px}}

/* 沿革 */
.timeline{margin-left:6px;border-left:1px solid var(--line);padding-left:0}
.timeline li{position:relative;list-style:none;padding:0 0 26px 28px}
.timeline li::before{content:"";position:absolute;left:-5px;top:7px;width:9px;height:9px;border-radius:50%;background:var(--green)}
.timeline .yr{display:block;font-family:var(--latin);font-size:15px;letter-spacing:.06em;color:var(--green);margin-bottom:3px}
.timeline .ev{font-size:15px;color:var(--sub)}

/* 代表挨拶 */
.greeting{display:grid;grid-template-columns:300px 1fr;gap:clamp(32px,5vw,64px);align-items:start}
.greeting__fig{position:relative;aspect-ratio:3/4;border:1px solid var(--line);background:var(--paper2);overflow:hidden}
.greeting__fig .mini{position:absolute;inset:0;display:grid;place-content:center;opacity:.4}.greeting__fig .mini svg{width:50%}
.greeting__fig .cap{position:absolute;left:14px;bottom:12px;font-size:11px;letter-spacing:.1em;color:var(--sub)}
.greeting__body{display:grid;gap:16px}
.greeting__body p{color:var(--sub);font-size:15px;line-height:2.1}
.greeting__sign{font-family:var(--serif);color:var(--ink);font-size:15px;margin-top:10px}
.greeting__sign b{font-weight:var(--fw-medium);font-size:21px;margin-left:10px}
@media(max-width:680px){.greeting{grid-template-columns:1fr}.greeting__fig{max-width:240px}}

/* 先輩の声 */
.voices{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:clamp(18px,2vw,28px)}
.voice{display:grid;gap:14px;padding:clamp(24px,2.6vw,34px);background:var(--paper);border:1px solid var(--line);border-top:3px solid var(--green)}
.voice__fig{position:relative;width:72px;aspect-ratio:1;border-radius:50%;overflow:hidden;border:1px solid var(--line);background:var(--paper2)}
.voice__fig .mini{position:absolute;inset:0;display:grid;place-content:center;opacity:.45}.voice__fig .mini svg{width:64%}
.voice__role{font-family:var(--latin);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--green)}
.voice__name{font-family:var(--serif);font-size:18px;font-weight:var(--fw-medium)}
.voice__q{font-family:var(--serif);font-size:17px;color:var(--ink);line-height:1.7}
.voice p{color:var(--sub);font-size:14px;line-height:2}

/* 地図 */
.mapwrap{position:relative;aspect-ratio:16/9;border:1px solid var(--line);background:var(--paper2);overflow:hidden}
.mapwrap iframe{width:100%;height:100%;border:0;display:block}
.mapwrap .ph{position:absolute;inset:0;display:grid;place-content:center;gap:6px;text-align:center;color:var(--sub);font-size:13px}

/* 林業ページ「正直な、現在地」：本文と活動エリアの地図を並べる */
.nowbox{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(22px,3vw,40px);align-items:start}
.nowmap{margin:0}
.nowmap .mapwrap{aspect-ratio:4/3;border-radius:6px}
.nowmap figcaption{margin-top:10px;font-size:13px;letter-spacing:.04em;color:var(--sub)}
@media(max-width:880px){
  .nowbox{grid-template-columns:1fr;gap:24px}
  .nowmap .mapwrap{aspect-ratio:16/9}
}

/* 強み（厚いリスト） */
.slist{display:grid;gap:0}
.sitem{display:grid;grid-template-columns:auto 1fr;gap:clamp(20px,3vw,48px);align-items:start;padding:clamp(28px,4vh,48px) 0;border-bottom:1px solid var(--line)}
.sitem:first-child{padding-top:0}.sitem:last-child{border-bottom:0}
.sitem__no{font-family:var(--latin);font-size:clamp(38px,5vw,64px);line-height:1;color:var(--green)}
.sitem__b h3{font-size:clamp(21px,2.3vw,30px);font-weight:700;color:var(--ink);letter-spacing:.03em;line-height:1.5;margin-bottom:14px}
.sitem__b p{color:var(--sub);font-size:15px;line-height:2.05;max-width:44em}
.sitem__b p+p{margin-top:1.1em}
@media(max-width:680px){.sitem{grid-template-columns:1fr;gap:8px}}

/* 採用ヒーロー */
.rhero{position:relative;min-height:58vh;display:flex;align-items:center;background:var(--ink);color:var(--paper);overflow:hidden;padding-top:84px}
.rhero__bg{position:absolute;inset:0;opacity:.45}
.rhero__bg .media-fill{filter:grayscale(.15)}
.rhero__scrim{position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,16,14,.7),rgba(14,16,14,.2))}
.rhero__in{position:relative;z-index:2;display:grid;gap:18px}
.rhero .lab{color:#8fd3ad}
.rhero h1{color:var(--paper);font-size:clamp(28px,4.4vw,56px);line-height:1.4}
.rhero p{color:rgba(255,255,255,.88);max-width:34em;line-height:2}

/* 制作事例カード */
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:clamp(26px,4vh,44px)}
.filters a{font-family:var(--serif);font-size:14px;letter-spacing:.04em;padding:.5em 1.2em;border:1px solid var(--line);border-radius:40px;color:var(--sub);transition:.3s}
.filters a:hover,.filters a.is-on{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.wkgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:clamp(20px,2.4vw,32px)}
.wkcard{display:block;border:1px solid var(--line);background:var(--paper);border-radius:10px;overflow:hidden;color:var(--ink);--ac:var(--green);transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .3s}
.wkcard:hover{transform:translateY(-5px);border-color:var(--ac);box-shadow:0 18px 40px -26px rgba(25,28,25,.5)}
.wkcard__fig{position:relative;display:block;aspect-ratio:3/2;background:var(--paper2);overflow:hidden}
.wkcard__fig .media-fill{transition:transform .6s var(--ease)}
.wkcard:hover .wkcard__fig .media-fill{transform:scale(1.05)}
.wkcard__fig .mini{position:absolute;inset:0;display:grid;place-content:center;opacity:.4}.wkcard__fig .mini svg{width:40%}
.wkcard__b{padding:16px 18px 20px;display:grid;gap:8px}
.wkcard__m{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.wkcard__tag{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.04em;line-height:1;color:#fff;background:var(--ac);border-radius:4px;padding:.45em .7em}
.wkcard__d{font-family:var(--latin);font-size:12px;letter-spacing:.06em;color:var(--sub)}
.wkcard__t{font-family:var(--serif);font-size:17px;font-weight:var(--fw-medium);line-height:1.6;color:var(--ink);transition:color .3s}
.wkcard:hover .wkcard__t{color:var(--ac)}
.wkcard__ex{color:var(--sub);font-size:13px;line-height:1.9;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.wkcard.is-hide{display:none}

/* 下層ページの事例抜粋（3件）：SPでは縦積みにせず横1列カルーセルへ
   ※ 一覧ページ（/works/ ・区分アーカイブ）は全件を見せる場なのでグリッドのままとする */
@media(max-width:768px){
  .wkgrid--rail{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;padding:2px 0 16px;scrollbar-width:none;cursor:grab}
  .wkgrid--rail::-webkit-scrollbar{display:none}
  .wkgrid--rail.is-drag{cursor:grabbing;scroll-snap-type:none}
  .wkgrid--rail.is-drag a{pointer-events:none}
  .wkgrid--rail > .wkcard{flex:0 0 78vw;scroll-snap-align:start}
}

/* ご依頼の流れ */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:clamp(14px,1.6vw,22px)}
.step{padding:clamp(22px,2.4vw,30px);background:var(--paper);border:1px solid var(--line);border-top:3px solid var(--green);display:grid;gap:10px}
.step__no{font-family:var(--latin);font-size:24px;line-height:1;color:var(--green)}
.step h4{font-size:17px;font-weight:var(--fw-medium)}
.step p{color:var(--sub);font-size:13px;line-height:1.9}

/* FAQ */
.faq{border-top:1px solid var(--line)}
.faq__item{border-bottom:1px solid var(--line);padding:22px 4px}
.faq__q{font-family:var(--serif);font-size:16px;color:var(--ink);display:flex;gap:12px}
.faq__q::before{content:"Q";font-family:var(--latin);color:var(--green);font-weight:var(--fw-medium)}
.faq__a{color:var(--sub);font-size:14px;line-height:2;margin-top:8px;padding-left:26px}

/* 関連事業ナビ（事業ページ相互回遊） */
.bizlink{display:grid;grid-template-columns:1fr 1fr;gap:clamp(14px,2vw,24px)}
.bizlink a{padding:clamp(22px,2.6vw,34px);border:1px solid var(--line);background:var(--paper);display:grid;gap:8px;transition:.3s}
.bizlink a:hover{border-color:var(--green);transform:translateY(-3px)}
.bizlink .en{font-family:var(--latin);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--green)}
.bizlink .nm{font-family:var(--serif);font-size:clamp(18px,2vw,22px)}
@media(max-width:680px){.bizlink{grid-template-columns:1fr}}

/* ============================ PC：面で組むレイアウト（見出し左・内容右、横並び） ============================ */
.block--split > .container{display:grid;grid-template-columns:minmax(190px,clamp(190px,22vw,300px)) 1fr;gap:clamp(32px,5vw,80px);align-items:start}
.block--split .blockhead{margin-bottom:0;position:sticky;top:108px}
.split2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,3vw,48px);align-items:start}
.split2--mapinfo{grid-template-columns:1.4fr 1fr}
@media(max-width:880px){
  .block--split > .container{grid-template-columns:1fr;gap:26px}
  .block--split .blockhead{position:static}
  .split2,.split2--mapinfo{grid-template-columns:1fr;gap:24px}
}

/* ============================ トップ：モーション/タイポ強化（デモ反映 v2） ============================ */
/* 動く縦ストライプ（ポール・スミス風の色面） */
.stripes{height:16px;background:repeating-linear-gradient(90deg,
  var(--green) 0 16px,var(--green2) 16px 32px,var(--ochre) 32px 48px,var(--terra) 48px 64px,var(--ink) 64px 80px,var(--mint) 80px 96px);
  background-size:96px 100%;animation:ntwc-slideX 5.5s linear infinite}
@keyframes ntwc-slideX{to{background-position:96px 0}}

/* 大きな欧文見出し（アイキャッチ） */
.kick{margin-bottom:clamp(28px,5vh,56px)}
.kick .en{display:block;font-family:var(--latin);font-weight:700;font-size:clamp(46px,9.5vw,132px);line-height:.82;letter-spacing:-.02em;color:transparent;-webkit-text-stroke:1.5px var(--ink)}
.kick .en.g{-webkit-text-stroke-color:var(--green)}
.kick .en.fill{color:var(--green);-webkit-text-stroke:0}
.kick h2{font-size:clamp(21px,2.5vw,34px);font-weight:var(--fw-medium);margin-top:.3em;letter-spacing:.05em}
.kick__sub{font-size:14px;color:var(--sub);margin-top:14px;max-width:40em;line-height:2}

/* 本文＋箇条書き 2カラム */
.two{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(28px,5vw,76px);align-items:start}
.fp-lead{font-family:var(--serif);font-weight:var(--fw-medium);font-size:clamp(19px,2.1vw,28px);line-height:1.85;color:var(--ink)}
.blist{list-style:none;display:grid;gap:16px}
.blist li{position:relative;padding-left:28px;color:var(--sub);font-size:15px;line-height:1.95}
.blist li::before{content:"";position:absolute;left:0;top:.8em;width:14px;height:2px;background:var(--green)}
.blist b{font-family:var(--serif);font-weight:var(--fw-medium);color:var(--ink);font-size:16px}
@media(max-width:760px){.two{grid-template-columns:1fr;gap:28px}}

/* 数字＝アイキャッチ（極太Jost） */
.nlead{font-family:var(--serif);font-weight:var(--fw-medium);font-size:clamp(17px,1.8vw,22px);color:var(--ink);max-width:30em;margin-bottom:clamp(30px,5vh,52px);line-height:1.9}
.nums{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2.4vw,34px)}
.nums>div{padding-top:18px;border-top:2px solid var(--ink)}
.nnum{font-family:var(--latin);font-weight:700;font-size:clamp(48px,6.6vw,96px);line-height:.86;letter-spacing:-.03em;color:var(--ink)}
.nnum em{font-style:normal;font-family:var(--latin);font-weight:var(--fw-medium);font-size:.3em;letter-spacing:0;color:var(--green);margin-left:.14em}
.nlab{font-size:13px;color:var(--sub);margin-top:16px;letter-spacing:.04em}
@media(max-width:760px){.nums{grid-template-columns:1fr 1fr;gap:28px}}

/* 強み（木型特化・大番号アウトライン） */
.si{display:grid;grid-template-columns:auto 1fr;gap:clamp(20px,3.5vw,52px);padding:clamp(26px,4vh,46px) 0;border-bottom:1px solid var(--line)}
.si:first-child{padding-top:0}.si:last-child{border-bottom:0}
.si__no{font-family:var(--latin);font-weight:700;font-size:clamp(40px,5.5vw,76px);color:transparent;-webkit-text-stroke:1.4px var(--green);line-height:.9}
.si h3{font-size:clamp(20px,2.1vw,28px);font-weight:var(--fw-medium);margin-bottom:12px;letter-spacing:.04em}
.si p{color:var(--sub);font-size:15px;line-height:2.05;max-width:44em}
@media(max-width:620px){.si{grid-template-columns:1fr;gap:8px}}

/* 林業＝挑戦ブロック（黒地＋縦ストライプ） */
.chal{position:relative;background:var(--ink);color:var(--paper);overflow:hidden}
.chal__in{position:relative;z-index:2;padding-block:clamp(64px,10vh,124px)}
.chal__ribbon{position:absolute;top:0;left:0;width:16px;height:100%;z-index:1;background:repeating-linear-gradient(180deg,
  var(--green) 0 18px,var(--green2) 18px 36px,var(--ochre) 36px 54px,var(--terra) 54px 72px,var(--mint) 72px 90px);
  background-size:100% 90px;animation:ntwc-slideY 6s linear infinite}
@keyframes ntwc-slideY{to{background-position:0 90px}}
.chal .kick .en{-webkit-text-stroke-color:var(--mint)}
.chal .kick h2{color:var(--paper)}
.chal__body{max-width:42em;margin-top:8px}
.chal__body p{color:rgba(255,255,255,.84);font-size:15px;line-height:2.15}
.chal__body p+p{margin-top:1.1em}
.chal__tag{display:inline-block;margin-top:22px;font-family:var(--latin);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink);background:var(--mint);border-radius:40px;padding:.4em 1em}
.chal__link{display:inline-block;margin-top:22px;margin-left:14px;font-family:var(--serif);font-size:15px;color:var(--mint);border-bottom:1px solid transparent;transition:border-color .3s}
.chal__link:hover{border-color:var(--mint)}

/* CTAの大欧文 */
.cta .en-xl{font-family:var(--latin);font-weight:700;font-size:clamp(40px,7vw,96px);line-height:.85;letter-spacing:-.02em;color:transparent;-webkit-text-stroke:1.5px color-mix(in srgb,var(--paper) 70%,transparent)}

/* 主軸セクションの「詳しく見る」 */
.fp-more{margin-top:clamp(22px,3vh,36px)}
.fp-more a{font-family:var(--serif);font-size:15px;letter-spacing:.06em;color:var(--green);border-bottom:1px solid var(--line);padding-bottom:3px;transition:border-color .3s}
.fp-more a:hover{border-color:var(--green)}

/* ============================ MV併用時：年輪を前面に残す（ミントの実線。ブレンドは使わず明らかな画像でも消えない） ============================ */
.hero--media .hero__field{opacity:.72}
.hero--media .hero__field svg ellipse{stroke:var(--mint)}

/* ============================ 全サブページ共通ブランディング（大欧文＋動くストライプ） ============================ */
/* サブページヘッダー：英語を大きくアウトライン化し、下に動くストライプ帯 */
.phero .lab{display:block;font-family:var(--latin);font-weight:700;font-size:clamp(40px,7.4vw,104px);line-height:.84;letter-spacing:-.02em;color:transparent;-webkit-text-stroke:1.4px var(--green);text-transform:uppercase;margin-bottom:.1em}
.phero h1{font-family:var(--serif);font-size:clamp(22px,2.6vw,34px);font-weight:var(--fw-medium);letter-spacing:.05em}
.phero::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:8px;background:repeating-linear-gradient(90deg,var(--green) 0 14px,var(--green2) 14px 28px,var(--ochre) 28px 42px,var(--terra) 42px 56px,var(--ink) 56px 70px,var(--mint) 70px 84px);background-size:84px 100%;animation:ntwc-slideX 5.5s linear infinite}

/* セクション見出し：英語ラベルをブランド大文字へ */
.blockhead .lab{display:block;font-family:var(--latin);font-weight:600;font-size:clamp(30px,4.6vw,64px);line-height:.88;letter-spacing:-.01em;color:transparent;-webkit-text-stroke:1.2px var(--green);text-transform:uppercase}
.blockhead h2{font-size:clamp(20px,2.3vw,30px);font-weight:var(--fw-medium);margin-top:.18em}

/* 採用ヒーローの英語も大きく（ミント） */
.rhero .lab{display:block;font-family:var(--latin);font-weight:700;font-size:clamp(36px,6vw,84px);line-height:.86;letter-spacing:-.02em;color:transparent;-webkit-text-stroke:1.3px var(--mint);text-transform:uppercase;margin-bottom:.05em}

/* フッター上部にブランドストライプ */
.site-footer{position:relative}
.site-footer::before{content:"";position:absolute;top:0;left:0;right:0;height:6px;background:repeating-linear-gradient(90deg,var(--green) 0 14px,var(--green2) 14px 28px,var(--ochre) 28px 42px,var(--terra) 42px 56px,var(--ink) 56px 70px,var(--mint) 70px 84px);background-size:84px 100%;animation:ntwc-slideX 5.5s linear infinite}

/* 汎用見出し（page.php / index.php）もブランド大文字へ */
.sechead .lab{display:block;font-family:var(--latin);font-weight:700;font-size:clamp(36px,6vw,84px);line-height:.86;letter-spacing:-.02em;color:transparent;-webkit-text-stroke:1.3px var(--green);text-transform:uppercase;justify-self:start;margin-bottom:.08em}
.sechead h1,.sechead h2{font-family:var(--serif);font-size:clamp(22px,2.6vw,34px);font-weight:var(--fw-medium);letter-spacing:.05em}

/* ============================ 画像スロット（モック差替可能） ============================ */
.shot{position:relative;aspect-ratio:4/3;overflow:hidden;border:1px solid var(--line);background:var(--paper2)}
.shot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.shot .mini{position:absolute;inset:0;display:grid;place-content:center;opacity:.4}
.shot .mini svg{width:46%}
.shot__flag{position:absolute;left:8px;bottom:8px;z-index:2;font-family:var(--sans);font-size:10px;letter-spacing:.06em;color:var(--sub);background:color-mix(in srgb,var(--paper) 80%,transparent);border-radius:30px;padding:.2em .6em}
.shot:has(img) .shot__flag{display:none}
.shots2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(12px,1.6vw,22px)}
.shots3{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,1.6vw,22px)}
@media(max-width:680px){.shots2,.shots3{grid-template-columns:1fr}}

/* サブページヘッダーの背景MV */
.phero{overflow:hidden}
.phero__bg{position:absolute;inset:0;z-index:0}
.phero__bg img{width:100%;height:100%;object-fit:cover;display:block}
.phero--media .phero__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,color-mix(in srgb,var(--paper2) 88%,transparent),color-mix(in srgb,var(--paper2) 52%,transparent))}
.phero--media > .container{position:relative;z-index:1}
.phero:not(.phero--media) .phero__bg{display:none}

/* 代表写真・採用ヒーローの画像受け */
.greeting__fig img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.rhero__bg img{width:100%;height:100%;object-fit:cover;display:block}
/* スロットに動画を入れた場合のカバー指定 */
.layvis__bg video,.phero__bg video,.rhero__bg video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.greeting__fig video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}

/* ============================ セクション背景装飰（absolute・固定サイズ。コンテンツ量に連動しない／本文を圧迫しない／全面に引かない） ============================ */
.layvis{position:relative;overflow:hidden;--vbg:var(--paper)}
.sec--alt.layvis{--vbg:var(--paper2)}
.block--alt.layvis{--vbg:var(--paper2)}
.chal.layvis{--vbg:var(--ink)}
/* 背面装飰：片側に幅 1/3。高さはセクションに追従（top:0;bottom:0） */
.layvis__bg{position:absolute;top:0;bottom:0;width:33%;z-index:0;overflow:hidden;opacity:.55;pointer-events:none}
.layvis--r .layvis__bg{right:0}
.layvis--l .layvis__bg{left:0}
.layvis__bg img{width:100%;height:100%;object-fit:cover}
.layvis__bg .mini{position:absolute;inset:0;display:grid;place-content:center;opacity:.5}
.layvis__bg .mini svg{width:56%}
/* 内側エッジを紙地へ溶かして“沈める”（装飰として後退） */
.layvis--r .layvis__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--vbg),transparent 72%)}
.layvis--l .layvis__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(270deg,var(--vbg),transparent 72%)}
/* コンテンツは前面・通常レイアウトのまま（paddingで圧迫しない） */
.layvis > .container{position:relative;z-index:1}
@media(max-width:880px){
  /* スマホは装飰を出さずコンテンツ優先 */
  .layvis__bg{display:none}
}

/* ============================ モック：アタリ表示（どこに何が入るかを明示。画像が入ると自動非表示） ============================ */
.atari{position:absolute;inset:0;z-index:0;display:grid;place-content:center;text-align:center;gap:3px;font-family:var(--sans);font-size:12px;line-height:1.55;color:var(--sub);pointer-events:none;padding:10px;border:1px dashed var(--gray);background:repeating-linear-gradient(45deg,color-mix(in srgb,var(--paper) 86%,transparent) 0 10px,color-mix(in srgb,var(--gray) 24%,transparent) 10px 20px)}
.atari::before{content:attr(data-label);display:block;font-family:var(--latin);font-size:10px;letter-spacing:.14em;color:var(--green);margin-bottom:2px}
.atari i{display:block;font-family:var(--latin);font-style:normal;font-size:10px;letter-spacing:.05em;color:var(--gray);margin-top:2px}
.phero__bg img,.phero__bg video,.layvis__bg img,.layvis__bg video,.greeting__fig img,.greeting__fig video,.rhero__bg img,.rhero__bg video{z-index:1}
.phero__bg:has(img) .atari,.phero__bg:has(video) .atari,.layvis__bg:has(img) .atari,.layvis__bg:has(video) .atari,.greeting__fig:has(img) .atari,.greeting__fig:has(video) .atari,.rhero__bg:has(img) .atari,.rhero__bg:has(video) .atari{display:none}
/* 代表写真：画像未登録のときだけキャプションを出す */
.greeting__fig:has(img) .cap,.greeting__fig:has(video) .cap{display:none}
.phero--media .phero__bg::after{content:none}
.phero--media .phero__bg:has(img)::after,.phero--media .phero__bg:has(video)::after{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(90deg,color-mix(in srgb,var(--paper2) 88%,transparent),color-mix(in srgb,var(--paper2) 52%,transparent))}
.layvis__bg{opacity:1}
.layvis__bg:has(img),.layvis__bg:has(video){opacity:.55}
.layvis--r .layvis__bg::after,.layvis--l .layvis__bg::after{content:none}
.layvis--r .layvis__bg:has(img)::after,.layvis--r .layvis__bg:has(video)::after{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(90deg,var(--vbg),transparent 72%)}
.layvis--l .layvis__bg:has(img)::after,.layvis--l .layvis__bg:has(video)::after{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(270deg,var(--vbg),transparent 72%)}
.layvis__bg .mini{opacity:.22}
.wk__fig,.wkcard__fig,.voice__fig{display:block;position:relative;overflow:hidden}
@media(max-width:880px){
  .layvis__bg:not(:has(img)):not(:has(video)){display:block;position:relative;top:auto;width:100%;height:150px;margin-bottom:20px}
}

/* ============================ 内部導線リンクをヒーローのボタン(.btn)と同じソリッド装飾に統一 ============================ */
/* 「詳しく見る／詳細を見る／一覧」等（明るい背景） */
.fp-more a,.more a,.bizcard__link{display:inline-flex;align-items:center;gap:.5em;font-family:var(--serif);font-size:15px;letter-spacing:var(--ls-wide);color:var(--ink);border:1px solid var(--ink);border-radius:var(--radius);padding:.95em 2em;transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease)}
.fp-more a:hover,.more a:hover,.bizcard__link:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
/* 黒地（林業挑戦）の導線：ミントのソリッドボタン */
.chal__link{display:inline-flex;align-items:center;gap:.5em;margin-top:22px;margin-left:14px;font-family:var(--serif);font-size:15px;letter-spacing:var(--ls-wide);color:var(--mint);border:1px solid var(--mint);border-radius:var(--radius);padding:.95em 2em;transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease)}
.chal__link:hover{background:var(--mint);color:var(--ink);border-color:var(--mint)}

/* ============================ 強み：PCは2列グリッドでセクション高を抑える（SPは縦積み維持） ============================ */
@media(min-width:769px){
  .slist{grid-template-columns:1fr 1fr;column-gap:clamp(30px,4vw,68px);row-gap:0}
  .slist > .si,.slist > .sitem{border-top:1px solid var(--line);border-bottom:0;padding-top:clamp(26px,3.4vh,42px);padding-bottom:clamp(26px,3.4vh,42px)}
}

/* ============================ 制作事例：横1列カルーセル（小カード統一・ドラッグ横スクロール） ============================ */
.wx{position:relative}
/* 横レール：番号順に横並び。マウスドラッグ/スワイプで移動。スクロールバーは隠す */
.wxrail{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;padding:4px 2px 18px;scrollbar-width:none;cursor:grab}
.wxrail::-webkit-scrollbar{display:none}
.wxrail.is-drag{cursor:grabbing;scroll-snap-type:none}
.wxrail.is-drag a{pointer-events:none}
/* カード：幅固定で横に並べる */
.wx__card{flex:0 0 clamp(240px,26vw,300px);scroll-snap-align:start;display:grid;gap:12px;align-content:start;background:var(--paper);border:1px solid var(--gray);border-radius:10px;padding:12px 12px 18px;color:var(--ink);--ac:var(--green);transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.wx__card:hover{transform:translateY(-4px);box-shadow:0 18px 40px -26px rgba(25,28,25,.5)}
/* 画像枠 */
.wx__fig{position:relative;display:block;overflow:hidden;background:var(--paper2);border:1px solid var(--line);border-radius:6px}
.wx__fig--sm{aspect-ratio:4/3}
.wx__fig .media-fill{transition:transform .7s var(--ease)}
.wx__card:hover .wx__fig .media-fill{transform:scale(1.04)}
/* 区分バッジ（木型CAD=緑 / 林業=黄土。画像左上に明色面ではっきり） */
.wx__badge{position:absolute;top:8px;left:8px;z-index:3;display:inline-flex;align-items:center;font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.04em;line-height:1;color:#fff;background:var(--ac);border-radius:5px;padding:.5em .8em;box-shadow:0 2px 8px rgba(0,0,0,.22)}
.wx__head{display:flex;align-items:flex-start;gap:10px}
/* 日付バッジ（角型・月／日） */
.wx__date{flex:none;display:grid;place-items:center;row-gap:2px;width:36px;height:42px;background:var(--ink);color:var(--paper);line-height:1;padding-top:2px}
.wx__date i{font-style:normal;font-family:var(--latin);font-size:9px;letter-spacing:.08em;text-transform:uppercase}
.wx__date b{font-family:var(--latin);font-weight:700;font-size:14px}
.wx__t{font-family:var(--serif);font-size:15px;font-weight:var(--fw-medium);line-height:1.55;color:var(--ink);transition:color .3s}
.wx__card:hover .wx__t{color:var(--ac)}
.wx__lead{color:var(--sub);font-size:13px;line-height:1.85;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.wx__cat,.wx__view,.wx__legend,.wx__go,.wx__no,.wx__feat,.wx__body,.wx__fig--lg{display:none}
.wxrail .wkcard{flex:0 0 clamp(250px,27vw,310px);scroll-snap-align:start}
@media(max-width:640px){
  .wxrail .wkcard{flex-basis:78vw}
}

/* ============================ 制作事例アーカイブ：タイルグリッド＋区分フィルタ ============================ */
.wfil{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:clamp(24px,4vh,40px)}
.wfil__b{--ac:var(--ink);display:inline-flex;align-items:center;gap:.6em;font-family:var(--serif);font-size:14px;letter-spacing:.04em;color:var(--sub);background:none;border:1px solid var(--line);border-radius:40px;padding:.55em 1.3em;cursor:pointer;transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease)}
.wfil__b:hover{border-color:var(--ac);color:var(--ink)}
.wfil__b.is-on{background:var(--ac);border-color:var(--ac);color:#fff}
.wfil__b i{font-style:normal;font-family:var(--latin);font-size:11px;opacity:.65}
.wfil__none{color:var(--sub);font-size:15px;margin-top:8px}
/* タイル：カードはトップと同じ .wx__card を使い回す（flex 指定はグリッド内では無効） */
.wx__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(10px,1.4vw,16px)}
.wx__card.is-hide{display:none}
@media(max-width:1000px){.wx__grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.wx__grid{grid-template-columns:1fr 1fr}}
@media(max-width:460px){.wx__grid{grid-template-columns:1fr}}

/* ============================ 記事詳細（single-works.php / single.php） ============================ */
.artmeta{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:16px;--ac:var(--green)}
.artmeta time{font-family:var(--latin);font-size:14px;letter-spacing:.06em;color:var(--sub)}
.artfig{position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--paper2);border:1px solid var(--line);border-radius:6px;margin:clamp(26px,4vh,44px) 0}
.artfig .media-fill{width:100%;height:100%;object-fit:cover}
.pnav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;margin-top:clamp(40px,6vh,72px);padding-top:26px;border-top:1px solid var(--line)}
.pnav__s{min-width:0;font-size:14px;color:var(--sub)}
.pnav__s a{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--sub);transition:color .3s}
.pnav__s a:hover{color:var(--green)}
.pnav__s--r{text-align:right}
.pnav__c{display:inline-flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:14px;letter-spacing:var(--ls-wide);color:var(--ink);border:1px solid var(--ink);border-radius:var(--radius);padding:.7em 1.6em;white-space:nowrap;transition:background .3s var(--ease),color .3s var(--ease)}
.pnav__c:hover{background:var(--ink);color:var(--paper)}
@media(max-width:680px){
  .pnav{grid-template-columns:1fr;text-align:center}
  .pnav__s--r{text-align:center}
  .pnav__c{justify-self:center}
}

/* 事例詳細：固定項目（用途・事例日・区分） */
.wspec{margin:0;border-top:1px solid var(--line)}
.wspec > div{display:grid;grid-template-columns:9em 1fr;gap:0 20px;padding:16px 4px;border-bottom:1px solid var(--line)}
.wspec dt{font-family:var(--serif);font-size:14px;font-weight:var(--fw-medium);color:var(--ink);letter-spacing:.04em}
.wspec dd{margin:0;font-size:15px;color:var(--sub);line-height:1.9}
@media(max-width:560px){
  .wspec > div{grid-template-columns:1fr;gap:4px}
}

/* 事例詳細：説明がき */
.wnote{margin-top:clamp(26px,4vh,40px);font-size:16px;line-height:2.05;color:var(--ink)}

/* 事例詳細：サブ画像ギャラリー */
.wgal{margin-top:clamp(36px,5vh,60px)}
.wgal__h{font-size:var(--fs-h3);font-weight:var(--fw-medium);margin-bottom:16px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.wgal__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.wgal__i{position:relative;margin:0;aspect-ratio:4/3;overflow:hidden;background:var(--paper2);border:1px solid var(--line);border-radius:6px}
.wgal__i .media-fill{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.wgal__i:hover .media-fill{transform:scale(1.04)}
@media(max-width:680px){
  .wgal__grid{grid-template-columns:1fr 1fr}
}

/* お知らせ詳細：日付スタンプ＋テキスト本文 */
.artmeta .stamp{display:inline-flex;align-items:center;font-family:var(--latin);font-size:13px;letter-spacing:.1em;color:var(--green);border:1px solid var(--green);border-radius:var(--radius);padding:.35em 1em}
.ntext{font-size:16px;line-height:2.05;color:var(--ink)}
.ntext p+p{margin-top:1.4em}

/* ============================ 提携先カード（強みページ Partners） ============================ */
/* 4件以下：4分割グリッドで固定。この幅がカード幅の基準になる */
.plist{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(10px,1.4vw,16px);margin-top:clamp(28px,4vh,48px)}
.pcard{position:relative;display:grid;align-content:space-between;gap:14px;min-height:132px;padding:20px 44px 18px 20px;background:var(--paper);border:1px solid var(--gray);border-radius:10px;color:var(--ink);transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .3s}
.pcard:hover{transform:translateY(-4px);border-color:var(--green);box-shadow:0 18px 40px -26px rgba(25,28,25,.5)}
.pcard__nm{font-family:var(--serif);font-size:17px;font-weight:var(--fw-medium);line-height:1.6;color:var(--ink);transition:color .3s}
.pcard:hover .pcard__nm{color:var(--green)}
.pcard__u{font-family:var(--latin);font-size:12px;letter-spacing:.06em;color:var(--sub);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pcard__ar{position:absolute;top:16px;right:16px;font-size:14px;line-height:1;color:var(--green);opacity:.45;transition:opacity .3s,transform .3s}
.pcard:hover .pcard__ar{opacity:1;transform:translate(2px,-2px)}
/* 5件以上：横1列カルーセル（トップの制作事例と同じ操作性）。幅は常に4枚分 */
.plist--rail{display:flex;overflow-x:auto;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;padding-bottom:16px;scrollbar-width:none;cursor:grab}
.plist--rail::-webkit-scrollbar{display:none}
.plist--rail.is-drag{cursor:grabbing;scroll-snap-type:none}
.plist--rail.is-drag a{pointer-events:none}
.plist--rail .pcard{flex:0 0 calc((100% - 3 * clamp(10px,1.4vw,16px)) / 4);scroll-snap-align:start}
@media(max-width:880px){
  .plist{grid-template-columns:1fr 1fr}
  .plist--rail .pcard{flex-basis:calc((100% - clamp(10px,1.4vw,16px)) / 2)}
}
@media(max-width:520px){
  .plist{grid-template-columns:1fr}
  .plist--rail .pcard{flex-basis:78vw}
}

/* ============================ お問い合わせフォーム ============================ */
.cform{display:grid;gap:clamp(20px,3vh,30px);max-width:44em}
.cform__row{display:grid;gap:8px}
.cform__lb{display:flex;align-items:center;gap:10px;font-family:var(--serif);font-size:15px;font-weight:var(--fw-medium);color:var(--ink);letter-spacing:.04em}
.cform__req,.cform__any{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.06em;line-height:1;border-radius:4px;padding:.4em .6em}
.cform__req{color:#fff;background:var(--terra)}
.cform__any{color:var(--sub);background:var(--paper2);border:1px solid var(--line)}
.cform input[type="text"],.cform input[type="email"],.cform input[type="tel"],.cform select,.cform textarea{
  width:100%;font-family:inherit;font-size:16px;line-height:1.8;color:var(--ink);
  background:var(--paper);border:1px solid var(--gray);border-radius:6px;padding:.85em 1em;
  transition:border-color .3s var(--ease),box-shadow .3s var(--ease)}
.cform textarea{resize:vertical;min-height:200px}
.cform select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--sub) 50%),linear-gradient(135deg,var(--sub) 50%,transparent 50%);background-position:calc(100% - 20px) center,calc(100% - 14px) center;background-size:6px 6px,6px 6px;background-repeat:no-repeat;padding-right:2.6em}
.cform input:focus,.cform select:focus,.cform textarea:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 18%,transparent)}
.cform__err{font-size:13px;color:var(--terra);letter-spacing:.02em}
.cform__note{font-size:12px;color:var(--sub);line-height:1.8}
.cform input[type="file"]{width:100%;font-family:inherit;font-size:14px;color:var(--ink);background:var(--paper);border:1px dashed var(--gray);border-radius:6px;padding:.9em 1em;cursor:pointer}
.cform input[type="file"]::file-selector-button{font-family:inherit;font-size:13px;color:var(--ink);background:var(--paper2);border:1px solid var(--gray);border-radius:4px;padding:.5em 1.1em;margin-right:1em;cursor:pointer;transition:background .3s var(--ease)}
.cform input[type="file"]::file-selector-button:hover{background:var(--paper)}
.cform input[type="file"]:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 18%,transparent)}
.cform__alert{font-size:14px;color:var(--terra);background:color-mix(in srgb,var(--terra) 8%,transparent);border:1px solid color-mix(in srgb,var(--terra) 40%,transparent);border-radius:6px;padding:.9em 1.2em;margin-bottom:clamp(22px,3vh,34px)}
/* ハニーポット（画面・読み上げのどちらからも隠す） */
.cform__hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.cform__act{margin-top:clamp(8px,2vh,18px)}
.cform__act .btn{cursor:pointer;background:none;font-size:16px;padding:1.05em 3em}
@media(max-width:560px){
  .cform__act .btn{width:100%;justify-content:center}
}

/* サンクス画面 */
.cthanks{display:grid;justify-items:center;text-align:center;gap:18px;padding:clamp(24px,5vh,56px) 0}
.cthanks__mk{display:grid;place-content:center;width:64px;height:64px;border-radius:50%;background:var(--green);color:var(--paper);font-size:28px;line-height:1}
.cthanks h2{font-size:clamp(22px,2.6vw,32px);font-weight:var(--fw-medium)}
.cthanks p{color:var(--ink);font-size:16px;line-height:2}
.cthanks__sub{color:var(--sub);font-size:14px}
.cthanks__note{color:var(--sub);font-size:13px;letter-spacing:.04em}
.cthanks__note b{font-family:var(--latin);font-weight:700;color:var(--green);font-size:15px;margin:0 .15em}
.cthanks .btn{margin-top:6px}

/* 同意チェック */
.cform__ck{display:flex;align-items:flex-start;gap:12px;cursor:pointer;font-size:15px;line-height:1.9;color:var(--ink)}
.cform__ck input[type="checkbox"]{flex:none;width:20px;height:20px;margin-top:.25em;accent-color:var(--green);cursor:pointer}
.cform__ck a{color:var(--green);border-bottom:1px solid var(--line);transition:border-color .3s}
.cform__ck a:hover{border-color:var(--green)}
.cform__ck .cform__req{margin-left:6px;vertical-align:middle}

/* ============================ 規約・ポリシー系の本文 ============================ */
.legal{font-size:15px;line-height:2.05;color:var(--sub)}
.legal__intro{margin-bottom:clamp(28px,4vh,44px)}
.legal h2{font-family:var(--serif);font-size:clamp(17px,1.8vw,20px);font-weight:var(--fw-medium);color:var(--ink);letter-spacing:.04em;margin:clamp(30px,4.5vh,48px) 0 12px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.legal p+p{margin-top:1.1em}
.legal ul{list-style:none;display:grid;gap:.5em;margin:1em 0}
.legal ul li{position:relative;padding-left:22px}
.legal ul li::before{content:"";position:absolute;left:0;top:.85em;width:10px;height:1px;background:var(--green)}
.legal .info-table{margin-top:16px}
.legal__date{margin-top:clamp(32px,5vh,52px);padding-top:18px;border-top:1px solid var(--line);font-size:14px}

/* フッター：ポリシーリンク */
.foot__legal{display:flex;gap:20px;flex-wrap:wrap}
.foot__legal a{font-size:13px;color:var(--sub);border-bottom:1px solid transparent;transition:color .3s,border-color .3s}
.foot__legal a:hover{color:var(--green);border-color:var(--green)}

/* フッター：住所・連絡先 */
.foot__adr{margin-top:16px;font-style:normal;font-size:13px;line-height:2;color:var(--sub)}
.foot__adr a{color:var(--sub);border-bottom:1px solid transparent;transition:color .3s,border-color .3s}
.foot__adr a:hover{color:var(--green);border-color:var(--green)}

/* お問い合わせ：電話・メールの直接導線 */
.cdirect{margin-top:clamp(44px,7vh,80px);padding-top:clamp(28px,4vh,44px);border-top:1px solid var(--line);max-width:44em}
.cdirect h2{font-family:var(--serif);font-size:clamp(17px,1.8vw,20px);font-weight:var(--fw-medium);color:var(--ink);letter-spacing:.04em;margin-bottom:10px}
.cdirect > p{color:var(--sub);font-size:14px;line-height:2;margin-bottom:18px}
.cdirect__l{margin:0;border-top:1px solid var(--line)}
.cdirect__l > div{display:grid;grid-template-columns:6em 1fr;gap:0 18px;padding:14px 4px;border-bottom:1px solid var(--line)}
.cdirect__l dt{font-family:var(--serif);font-size:14px;font-weight:var(--fw-medium);color:var(--ink)}
.cdirect__l dd{margin:0;font-size:15px;color:var(--sub);line-height:1.9}
.cdirect__l a{color:var(--green);border-bottom:1px solid var(--line);transition:border-color .3s}
.cdirect__l a:hover{border-color:var(--green)}
@media(max-width:560px){
  .cdirect__l > div{grid-template-columns:1fr;gap:4px}
}
