/* ==========================================================
   谷島商事 WordPress テーマ — メインスタイルシート
   ========================================================== */

/* ── リセット ── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}

/* ── デザイントークン ── */
:root{
  color-scheme:light;
  --bg:#FFFFFF;
  --bg-surface:#FAFAF8;
  --bg-alt:#F2EFE7;
  --bg-dark:#232B24;
  --text:#1A1E1B;
  --text-muted:#5A6655;
  --text-faint:#8A9E8A;
  --accent:#B5935A;
  --sage:#7A8C78;
  --stone:#C8BFB0;
  --border:rgba(35,43,36,0.08);
  --border-mid:rgba(35,43,36,0.14);
  --border-ink:rgba(200,191,176,0.18);
  --font-disp:"YuMincho","Yu Mincho","游明朝体","游明朝","HiraMinProN-W3","Hiragino Mincho ProN",serif;
  --font-body:"YuGothic","Yu Gothic Medium","游ゴシック","Meiryo","ヒラギノ角ゴ ProN W3",system-ui,sans-serif;
  --hh:72px;
  --max:1160px;
  --pad:clamp(1.5rem,5vw,3.5rem);
}

html{scroll-behavior:smooth;}
body{font-family:var(--font-body);background:var(--bg);color:var(--text);line-height:1.8;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
img{max-width:100%;height:auto;display:block;}
a:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:2px;}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--pad);}

/* ── スクロールリビール ── */
.rv{opacity:0;transform:translateY(28px);transition:opacity .85s cubic-bezier(.4,0,.2,1),transform .85s cubic-bezier(.4,0,.2,1);}
.rv.in{opacity:1;transform:none;}
.rv-d1{transition-delay:.1s;}
.rv-d2{transition-delay:.2s;}

/* ── eyebrow ── */
.eyebrow{display:flex;align-items:center;gap:.75rem;font-size:.6875rem;letter-spacing:.22em;text-transform:uppercase;font-weight:500;color:var(--accent);}
.eyebrow::before{content:'';display:block;width:18px;height:1px;background:var(--accent);flex-shrink:0;}

/* ==========================================================
   ヘッダー / ナビゲーション
   ========================================================== */
.hdr{position:fixed;inset:0 0 auto 0;height:var(--hh);z-index:1002;display:flex;align-items:center;justify-content:space-between;padding:0 var(--pad);transition:background .45s,box-shadow .45s;}
.hdr.solid{background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--border);}
.hdr:has(.nav-list.open){background:var(--bg);box-shadow:0 1px 0 var(--border);}
.hdr:has(.nav-list.open) .logo-ja,.hdr:has(.nav-list.open) .nav-toggle{color:var(--text);}
.logo{display:flex;flex-direction:row;align-items:center;gap:.75rem;text-decoration:none;line-height:1;}
.logo-img{height:40px;width:auto;flex-shrink:0;}
.logo-text{display:flex;flex-direction:column;gap:.18em;}
.logo-ja{font-family:var(--font-disp);font-size:1.0625rem;font-weight:400;letter-spacing:.09em;color:var(--text);}
.hdr.solid .logo-ja{color:var(--text);}
.home .logo-ja{color:var(--bg);}
.hdr.solid .logo-ja{color:var(--text);}
.logo-en{font-size:.5rem;letter-spacing:.25em;text-transform:uppercase;color:var(--accent);font-weight:500;}
.nav-list{display:flex;gap:2.25rem;list-style:none;}
.nav-list a{font-size:.8125rem;letter-spacing:.08em;color:#ffffff;text-decoration:none;position:relative;padding-bottom:3px;color:var(--text);}
.hdr.solid .nav-list a{color:var(--text);}
  .home .nav-list a{;color:#fff;}

.nav-list a::after{content:'';position:absolute;bottom:0;left:0;width:0;height:1px;background:var(--accent);transition:width .32s cubic-bezier(.4,0,.2,1);}
.nav-list a:hover::after,.nav-list a[aria-current]::after{width:100%;}
.nav-sub{display:none;}

/* ── ハンバーガーボタン ── */
.nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:40px;height:40px;background:none;border:none;cursor:pointer;padding:7px;z-index:1002;flex-shrink:0;}
.nav-toggle span{display:block;width:22px;height:1.5px;background:currentColor;transition:transform .3s,opacity .3s,width .3s;}
.hdr:not(.solid) .nav-toggle{color:#fff;}
.hdr.solid .nav-toggle{color:var(--text);}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;width:0;}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}

/* ==========================================================
   ページバナー（内部ページ共通）
   ========================================================== */
.page-banner{background:var(--bg-alt);padding:calc(var(--hh) + 3.5rem) 0 3.5rem;border-bottom:1px solid var(--border);}
.banner-grid{display:grid;grid-template-columns:56px 1fr;}
.banner-spine{position:relative;}
.banner-spine::after{content:'';position:absolute;top:0;left:50%;width:1px;height:0;background:linear-gradient(to bottom,transparent,var(--accent) 15%,var(--accent) 85%,transparent);animation:drawSpine 1.4s cubic-bezier(.22,1,.36,1) .2s forwards;}
@keyframes drawSpine{to{height:100%;}}
.banner-body{padding:0 var(--pad) 0 2.5rem;}
.banner-eyebrow{margin-bottom:1.25rem;}
.banner-title{font-family:var(--font-disp);font-size:clamp(2rem,5vw,3.75rem);font-weight:400;line-height:1.25;letter-spacing:.04em;color:var(--text);opacity:0;animation:up .9s cubic-bezier(.4,0,.2,1) .4s forwards;}
.banner-sub{font-size:.9375rem;color:var(--text-muted);margin-top:1rem;opacity:0;animation:up .9s cubic-bezier(.4,0,.2,1) .6s forwards;}
@keyframes up{from{opacity:0;transform:translateY(18px);}to{opacity:1;transform:none;}}

/* ==========================================================
   フッター
   ========================================================== */
.footer{background:var(--bg-dark);padding:5rem 0 2.75rem;}
.footer-top{display:flex;justify-content:space-between;align-items:flex-start;gap:3rem;flex-wrap:wrap;padding-bottom:3rem;border-bottom:1px solid var(--border-ink);margin-bottom:2.25rem;}
.footer-logo-ja{font-family:var(--font-disp);font-size:1.0625rem;font-weight:400;letter-spacing:.09em;color:#E8E4DC;text-decoration:none;display:block;margin-bottom:.5rem;}
.footer-logo-en{font-size:.5rem;letter-spacing:.25em;text-transform:uppercase;color:var(--accent);font-weight:500;}
.footer-addr{margin-top:1.25rem;font-size:.8125rem;line-height:1.9;color:rgba(200,191,176,.4);letter-spacing:.04em;}
.footer-nav{list-style:none;display:flex;flex-direction:column;gap:.875rem;align-items:flex-end;}
.footer-nav a{font-size:.8125rem;letter-spacing:.08em;color:rgba(200,191,176,.45);text-decoration:none;transition:color .3s;}
.footer-nav a:hover{color:var(--accent);}
.footer-copy{font-size:.6875rem;letter-spacing:.1em;color:rgba(200,191,176,.2);}

/* ==========================================================
   CTA リンク（共通）
   ========================================================== */
.sec-cta{padding:6rem 0;background:var(--bg-alt);text-align:center;}
.cta-link{display:inline-flex;align-items:center;gap:.75rem;font-family:var(--font-disp);font-size:1.0625rem;letter-spacing:.08em;color:var(--text);text-decoration:none;padding-bottom:4px;border-bottom:1px solid var(--accent);transition:gap .3s,color .3s;}
.cta-link:hover{gap:1.25rem;color:var(--accent);}

/* ==========================================================
   トップページ — ヒーロー
   ========================================================== */
.hero{min-height:100svh;display:grid;grid-template-columns:56px 1fr;padding-top:var(--hh);border-bottom:1px solid var(--border);position:relative;overflow:hidden;}
.hero-bg{position:absolute;inset:0;background-image:url('https://tanishimacorp.com/wp-content/uploads/2026/07/c220b6a053f9356ffc9c8a6d20251212.png');background-size:cover;background-position:center top;transform:scale(1.04);animation:heroZoom 8s cubic-bezier(.25,.46,.45,.94) forwards;}
@keyframes heroZoom{to{transform:scale(1);}}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(105deg,rgba(10,14,10,.68) 0%,rgba(10,14,10,.40) 55%,rgba(10,14,10,.20) 100%);}
.hero-spine{position:relative;z-index:1;}
.hero-spine::after{content:'';position:absolute;top:0;left:50%;width:1px;height:0;background:linear-gradient(to bottom,transparent,var(--accent) 10%,var(--accent) 90%,transparent);animation:drawSpine 2s cubic-bezier(.22,1,.36,1) .3s forwards;}
.hero-body{display:flex;flex-direction:column;justify-content:center;padding:7rem var(--pad) 7rem 2.5rem;max-width:840px;position:relative;z-index:1;}
.hero-kana{font-family:var(--font-disp);font-size:.75rem;letter-spacing:.28em;color:#E8C27A;margin-bottom:2rem;opacity:0;animation:up .9s cubic-bezier(.4,0,.2,1) .55s forwards;text-shadow:0 1px 8px rgba(0,0,0,.4);}
.hero-h1{font-family:var(--font-disp);font-size:clamp(2.4rem,7vw,5.5rem);font-weight:400;line-height:1.3;letter-spacing:.04em;color:#ffffff;text-wrap:balance;margin-bottom:2.25rem;opacity:0;animation:up .9s cubic-bezier(.4,0,.2,1) .75s forwards;text-shadow:0 2px 24px rgba(0,0,0,.3);}
.hero-h1 mark{background:none;color:#E8C27A;text-shadow:0 2px 20px rgba(0,0,0,.4);}
.hero-lead{font-size:.9375rem;line-height:2.1;color:rgba(255,255,255,.88);max-width:48ch;margin-bottom:3rem;opacity:0;animation:up .9s cubic-bezier(.4,0,.2,1) .95s forwards;text-shadow:0 1px 12px rgba(0,0,0,.3);}
.hero-cta{display:inline-flex;align-items:center;gap:.75rem;font-size:.8125rem;letter-spacing:.08em;color:#ffffff;text-decoration:none;border-bottom:1px solid #E8C27A;padding-bottom:4px;width:fit-content;transition:color .3s,gap .3s;opacity:0;animation:up .9s cubic-bezier(.4,0,.2,1) 1.1s forwards;}
.hero-cta:hover{color:#E8C27A;gap:1.2rem;}

/* ── ティッカー ── */
.ticker{background:var(--bg-alt);overflow:hidden;padding:1.25rem 0;border-bottom:1px solid var(--border);}
.ticker-track{display:flex;gap:3.5rem;white-space:nowrap;width:max-content;animation:scroll 32s linear infinite;}
.ticker-item{font-family:var(--font-disp);font-size:.8125rem;letter-spacing:.18em;color:var(--stone);flex-shrink:0;}
.ticker-item.hi{color:var(--accent);}
@keyframes scroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}
@media(prefers-reduced-motion:reduce){.ticker-track{animation:none;}}

/* ── 新着情報（トップ） ── */
.sec-news{padding:7rem 0;background:var(--bg);}
.news-layout{display:grid;grid-template-columns:240px 1fr;gap:4rem;align-items:start;}
.news-aside .eyebrow{margin-bottom:1.5rem;}
.news-aside-title{font-family:var(--font-disp);font-size:1.75rem;font-weight:400;letter-spacing:.04em;color:var(--text);margin-bottom:2rem;line-height:1.4;}
.news-more{display:inline-flex;align-items:center;gap:.5rem;font-size:.8125rem;letter-spacing:.08em;color:var(--text);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:3px;transition:color .3s,gap .3s;}
.news-more:hover{color:var(--accent);gap:.9rem;}
.news-list{list-style:none;border-top:1px solid var(--border);}
.news-item{border-bottom:1px solid var(--border);}
.news-item a{display:flex;align-items:baseline;gap:1.5rem;padding:1.5rem .75rem;margin:0 -.75rem;text-decoration:none;transition:background .25s;}
.news-item a:hover{background:rgba(35,43,36,0.04);}
.news-item a:hover .news-title{color:var(--accent);}
.news-meta{display:flex;align-items:center;gap:.875rem;flex-shrink:0;}
.news-date{font-size:.75rem;letter-spacing:.08em;color:var(--text-faint);font-variant-numeric:tabular-nums;white-space:nowrap;}
.news-cat{font-size:.5625rem;letter-spacing:.18em;text-transform:uppercase;color:var(--bg);background:var(--sage);padding:.2em .75em;font-weight:500;white-space:nowrap;}
.news-cat.type-release{background:var(--accent);}
.news-title{font-size:.9375rem;line-height:1.7;color:var(--text);transition:color .25s;}

/* ── About ── */
.sec-about{padding:9rem 0;background:var(--bg-alt);}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center;}
.about-eyebrow{margin-bottom:1.75rem;}
.about-h2{font-family:var(--font-disp);font-size:clamp(1.6rem,3vw,2.5rem);font-weight:400;line-height:1.6;letter-spacing:.02em;color:var(--text);margin-bottom:1.75rem;text-wrap:balance;}
.about-body{font-size:.9375rem;line-height:2.1;color:var(--text-muted);display:flex;flex-direction:column;gap:1.25rem;}
.about-visual{position:relative;aspect-ratio:1;background:var(--bg);display:flex;align-items:center;justify-content:center;overflow:hidden;border:1px solid var(--border);}
.about-kanji{font-family:var(--font-disp);font-size:clamp(10rem,20vw,18rem);font-weight:400;color:var(--stone);opacity:.25;line-height:1;user-select:none;pointer-events:none;}
.about-badge{position:absolute;bottom:1.75rem;right:1.75rem;text-align:right;display:flex;flex-direction:column;gap:.3rem;}
.about-badge-sub{font-size:.5625rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);font-weight:500;}
.about-badge-main{font-family:var(--font-disp);font-size:.8125rem;letter-spacing:.1em;color:var(--text-muted);}

/* ── 事業（トップ） ── */
.sec-biz{padding:9rem 0 0;background:var(--bg);}
.biz-hdr{margin-bottom:4rem;}
.biz-hdr .eyebrow{margin-bottom:1.5rem;}
.biz-h2{font-family:var(--font-disp);font-size:clamp(1.375rem,2.8vw,2.125rem);font-weight:400;line-height:1.65;letter-spacing:.04em;color:var(--text);max-width:36ch;text-wrap:balance;}
.biz-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border-top:1px solid var(--border);}
.biz-card{overflow:hidden;border-right:1px solid var(--border);border-bottom:1px solid var(--border);display:flex;flex-direction:column;text-decoration:none;background:var(--bg);}
.biz-card:nth-child(even){border-right:none;}
.biz-photo{height:260px;overflow:hidden;position:relative;flex-shrink:0;}
.biz-photo-inner{position:relative;width:100%;height:100%;background-size:cover;background-position:center;transform:scale(1);transition:transform .65s cubic-bezier(.25,.46,.45,.94);}
.biz-card:hover .biz-photo-inner{transform:scale(1.07);}
.biz-photo-re .biz-photo-inner{background-image:linear-gradient(145deg,#9B8878 0%,#7A6958 25%,#5D4F3A 55%,#3A3025 80%,#24201A 100%);}
.biz-photo-golf .biz-photo-inner{background-image:linear-gradient(145deg,#5A7A4A 0%,#3D6030 25%,#2A4A20 55%,#1A3010 80%,#0E1E08 100%);}
.biz-photo-laundry .biz-photo-inner{background-image:linear-gradient(145deg,#5A8090 0%,#3A6878 25%,#2A5060 55%,#1A3A48 80%,#0E2230 100%);}
.biz-photo-capital .biz-photo-inner{background-image:linear-gradient(145deg,#5A5A6A 0%,#404050 25%,#2E2E40 55%,#1E1E30 80%,#10101E 100%);}
.biz-photo-inner::after{content:attr(data-kanji);font-family:"YuMincho","Yu Mincho","游明朝体",serif;font-size:7rem;font-weight:400;color:rgba(255,255,255,.1);position:absolute;bottom:-.5rem;right:.75rem;line-height:1;pointer-events:none;user-select:none;}
.biz-info{padding:1.75rem 2rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;}
.biz-tag{display:block;font-size:.5rem;letter-spacing:.24em;text-transform:uppercase;color:var(--accent);font-weight:500;margin-bottom:.5rem;}
.biz-title{font-family:var(--font-disp);font-size:1.125rem;font-weight:400;letter-spacing:.05em;color:var(--text);line-height:1.45;transition:color .3s;}
.biz-card:hover .biz-title{color:var(--accent);}
.biz-arrow{width:36px;height:36px;border-radius:50%;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.875rem;color:var(--text-muted);transition:background .3s,color .3s,border-color .3s;}
.biz-card:hover .biz-arrow{background:var(--accent);border-color:var(--accent);color:#fff;}

/* ── Company (3カラム) ── */
.sec-company{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:9rem;}
.company-col{position:relative;min-height:420px;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;text-decoration:none;border-right:1px solid rgba(255,255,255,.08);}
.company-col:last-child{border-right:none;}
.company-bg{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1);transition:transform .7s cubic-bezier(.25,.46,.45,.94);}
.company-col:hover .company-bg{transform:scale(1.06);}
.company-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,.05) 0%,rgba(0,0,0,.25) 45%,rgba(0,0,0,.72) 100%) !important;transition:background .4s;}
.company-col:hover .company-overlay{background:linear-gradient(to bottom,rgba(0,0,0,.08) 0%,rgba(0,0,0,.30) 45%,rgba(0,0,0,.65) 100%) !important;}
.company-body{position:relative;z-index:1;padding:2.5rem;}
.company-eyebrow{font-size:.5rem;letter-spacing:.22em;text-transform:uppercase;font-weight:500;color:rgba(255,255,255,.7);margin-bottom:1rem;display:flex;align-items:center;gap:.5rem;}
.company-eyebrow::before{content:'';display:block;width:14px;height:1px;background:var(--accent);flex-shrink:0;}
.company-title{font-family:var(--font-disp);font-size:1.5rem;font-weight:400;letter-spacing:.06em;color:#ffffff;margin-bottom:1.5rem;line-height:1.4;text-wrap:balance;text-shadow:0 1px 12px rgba(0,0,0,.5);}
.company-link{display:inline-flex;align-items:center;gap:.5rem;font-size:.75rem;letter-spacing:.1em;color:rgba(255,255,255,.8);text-decoration:none;border-bottom:1px solid rgba(255,255,255,.35);padding-bottom:2px;transition:color .3s,gap .3s,border-color .3s;text-shadow:0 1px 8px rgba(0,0,0,.4);}
.company-col:hover .company-link{color:var(--accent);gap:.9rem;border-color:var(--accent);}
.company-col-about .company-bg{background-image:linear-gradient(160deg,#8B7D6B 0%,#6B5D4B 30%,#4A3D2D 60%,#2A1F10 100%);}
.company-col-msg .company-bg{background-image:linear-gradient(160deg,#6B7A5A 0%,#4A5A3A 30%,#2E3D22 60%,#192010 100%);}
.company-col-contact .company-bg{background-image:linear-gradient(160deg,#607080 0%,#405060 30%,#28383E 60%,#121E22 100%);background-position:0% center;}

/* ==========================================================
   会社概要ページ
   ========================================================== */
.sec-info{padding:7rem 0;background:var(--bg);}
.info-wrap{max-width:800px;}
.info-table{width:100%;border-collapse:collapse;}
.info-row{border-bottom:1px solid var(--border);}
.info-row:first-child{border-top:1px solid var(--border);}
.info-label{width:200px;padding:2.1rem 1.5rem 1.75rem 0;font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--sage);font-weight:500;vertical-align:top;white-space:nowrap;}
.info-value{padding:1.75rem 0;font-size:.9375rem;line-height:1.9;color:var(--text);}
.info-value a{color:var(--accent);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .3s;}
.info-value a:hover{border-bottom-color:var(--accent);}
.sec-group{padding:7rem 0;background:var(--bg-alt);}
.group-h2{font-family:var(--font-disp);font-size:clamp(1.5rem,3vw,2.125rem);font-weight:400;letter-spacing:.04em;color:var(--text);margin-bottom:3rem;text-wrap:balance;}
.group-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;}
.group-card{background:var(--bg-surface);overflow:hidden;border-top:2px solid var(--accent);display:flex;flex-direction:column;}
.group-photo{overflow:hidden;aspect-ratio:16/9;flex-shrink:0;}
.group-photo img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;transform:scale(1);transition:transform .65s cubic-bezier(.25,.46,.45,.94);}
.group-card:hover .group-photo img{transform:scale(1.06);}
.group-body{padding:1.75rem 2rem 2rem;}
.group-tag{font-size:.5rem;letter-spacing:.22em;text-transform:uppercase;color:var(--sage);font-weight:500;margin-bottom:.625rem;display:block;}
.group-name{font-family:var(--font-disp);font-size:1.0625rem;font-weight:400;letter-spacing:.05em;color:var(--text);line-height:1.5;margin-bottom:.5rem;}
.group-biz{font-size:.8125rem;color:var(--text-muted);line-height:1.8;}
.sec-access{padding:7rem 0;background:var(--bg);}
.access-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:start;}
.access-h2{font-family:var(--font-disp);font-size:clamp(1.5rem,3vw,2.125rem);font-weight:400;letter-spacing:.04em;color:var(--text);margin-bottom:2rem;}
.access-row{display:flex;gap:2rem;padding:1rem 0;border-bottom:1px solid var(--border);}
.access-label{font-size:.6875rem;letter-spacing:.16em;text-transform:uppercase;color:var(--sage);font-weight:500;width:80px;flex-shrink:0;padding-top:.2em;}
.access-val{font-size:.9375rem;line-height:1.8;color:var(--text);}
.map-frame{aspect-ratio:4/3;overflow:hidden;border:1px solid var(--border);}
.map-frame iframe{display:block;width:100%;height:100%;}

/* ==========================================================
   事業紹介ページ
   ========================================================== */
.biz-section{padding:7rem 0;}
.biz-section:nth-child(even){background:var(--bg-alt);}
.biz-section:nth-child(odd){background:var(--bg);}
.biz-inner{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:start;}
.biz-inner.reverse{direction:rtl;}
.biz-inner.reverse>*{direction:ltr;}
.biz-label-row{display:flex;align-items:center;gap:1.25rem;margin-bottom:1.75rem;}
.biz-cat{font-size:.5625rem;letter-spacing:.22em;text-transform:uppercase;color:var(--sage);font-weight:500;}
.biz-page-h2{font-family:var(--font-disp);font-size:clamp(1.75rem,4vw,2.75rem);font-weight:400;letter-spacing:.04em;color:var(--text);margin-bottom:.75rem;line-height:1.3;}
.biz-company{font-size:.8125rem;letter-spacing:.08em;color:var(--accent);margin-bottom:2rem;display:flex;align-items:center;gap:.5rem;}
.biz-body{font-size:.9375rem;line-height:2.1;color:var(--text-muted);display:flex;flex-direction:column;gap:1.25rem;}
.biz-url{display:inline-flex;align-items:center;gap:.5rem;font-size:.8125rem;letter-spacing:.08em;color:var(--accent);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .3s,gap .3s;margin-top:1.5rem;}
.biz-url:hover{border-color:var(--accent);gap:.9rem;}
.biz-visual{background:var(--bg-alt);aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative;border:1px solid var(--border);}
.biz-visual img{width:100%;height:100%;object-fit:cover;display:block;}
.biz-visual-char{font-family:var(--font-disp);font-size:clamp(6rem,14vw,11rem);font-weight:400;color:var(--stone);opacity:.25;line-height:1;user-select:none;}
.biz-section:nth-child(even) .biz-visual{background:var(--bg);}

/* ==========================================================
   社長メッセージページ
   ========================================================== */
.sec-message{padding:8rem 0;background:var(--bg);}
.message-wrap{max-width:900px;margin:0 auto;}
.message-grid{display:grid;grid-template-columns:1fr;gap:3rem;align-items:start;}
.portrait-frame{background:var(--bg-alt);display:flex;align-items:center;justify-content:center;margin-bottom:1.75rem;border:1px solid var(--border);position:relative;overflow:hidden;width:100%;}
.portrait-frame img{width:100%;height:auto;display:block;}
.portrait-char{font-family:var(--font-disp);font-size:8rem;color:var(--stone);opacity:.3;line-height:1;user-select:none;}
.portrait-name-ja{font-family:var(--font-disp);font-size:1.125rem;font-weight:400;letter-spacing:.1em;color:var(--text);margin-bottom:.375rem;}
.portrait-name-en{font-size:.625rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text-faint);}
.portrait-role{font-size:.75rem;letter-spacing:.12em;color:var(--accent);margin-top:.5rem;}
.message-heading{font-family:var(--font-disp);font-size:clamp(1.5rem,3vw,2.25rem);font-weight:400;letter-spacing:.04em;color:var(--text);margin-bottom:2.5rem;line-height:1.5;text-wrap:balance;}
.message-body{font-size:.9375rem;line-height:2.3;color:var(--text-muted);display:flex;flex-direction:column;gap:1.75rem;}
.message-body p{text-indent:1em;}
.signature{margin-top:3.5rem;padding-top:2.5rem;border-top:1px solid var(--border);text-align:right;}
.sig-role{font-size:.6875rem;letter-spacing:.2em;text-transform:uppercase;color:var(--sage);margin-bottom:.75rem;}
.sig-name{font-family:var(--font-disp);font-size:1.5rem;font-weight:400;letter-spacing:.1em;color:var(--text);}
.sec-values{padding:7rem 0;background:var(--bg-alt);}
.values-heading{font-family:var(--font-disp);font-size:clamp(1.25rem,2.5vw,1.75rem);font-weight:400;letter-spacing:.04em;color:var(--text);margin-bottom:3rem;text-wrap:balance;}
.values-list{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;list-style:none;}
.value-item{background:var(--bg-surface);padding:2.5rem;border:1px solid var(--border);border-top:2px solid var(--accent);}
.value-kana{font-family:var(--font-disp);font-size:1.5rem;font-weight:400;letter-spacing:.08em;color:var(--text);margin-bottom:.625rem;}
.value-en{font-size:.5625rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:1rem;display:block;}
.value-desc{font-size:.8125rem;line-height:1.9;color:var(--text-muted);}

/* ==========================================================
   お問い合わせページ
   ========================================================== */
.sec-contact{padding:8rem 0;background:var(--bg);}
.contact-grid{display:grid;grid-template-columns:1fr 340px;gap:5rem;align-items:start;}
.form-heading{font-family:var(--font-disp);font-size:1.375rem;font-weight:400;letter-spacing:.04em;color:var(--text);margin-bottom:2.5rem;}
.form-note{font-size:.8125rem;color:var(--text-muted);margin-bottom:2.5rem;line-height:1.8;}
.form-note em{color:var(--accent);font-style:normal;}
.field{margin-bottom:2rem;}
.field-label{display:flex;align-items:center;gap:.625rem;font-size:.75rem;letter-spacing:.12em;color:var(--text-muted);margin-bottom:.625rem;}
.field-label .req{font-size:.5rem;letter-spacing:.16em;text-transform:uppercase;background:var(--accent);color:#fff;padding:.2em .6em;font-weight:500;}
.field-label .opt{font-size:.5rem;letter-spacing:.16em;text-transform:uppercase;background:var(--border-mid);color:var(--text-faint);padding:.2em .6em;font-weight:500;}
.field input,.field select,.field textarea{width:100%;background:var(--bg-surface);border:1px solid var(--border-mid);padding:.875rem 1rem;font-family:var(--font-body);font-size:.9375rem;color:var(--text);transition:border-color .25s,box-shadow .25s;appearance:none;-webkit-appearance:none;}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(181,147,90,.12);}
.field input::placeholder,.field textarea::placeholder{color:var(--text-faint);}
.field textarea{resize:vertical;min-height:180px;line-height:1.8;}
.field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23B5935A' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;padding-right:2.5rem;cursor:pointer;}
.wpcf7-submit,.submit-btn{display:flex;align-items:center;justify-content:center;gap:.875rem;width:100%;padding:1.125rem 2rem;background:var(--bg-dark);color:#F2EFE7;font-family:var(--font-body);font-size:.9375rem;letter-spacing:.1em;border:none;cursor:pointer;transition:background .3s,gap .3s;margin-top:.5rem;}
.wpcf7-submit:hover,.submit-btn:hover{background:#1a2118;gap:1.25rem;}
.wpcf7-submit:focus-visible,.submit-btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}
.contact-info{background:var(--bg-alt);padding:2.5rem;border-top:2px solid var(--accent);}
.info-heading{font-family:var(--font-disp);font-size:1rem;font-weight:400;letter-spacing:.06em;color:var(--text);margin-bottom:1.75rem;padding-bottom:1rem;border-bottom:1px solid var(--border);}
.info-block{margin-bottom:2rem;}
.info-block:last-child{margin-bottom:0;}
.info-block-label{font-size:.5625rem;letter-spacing:.22em;text-transform:uppercase;color:var(--sage);font-weight:500;margin-bottom:.5rem;}
.info-block-val{font-size:.9375rem;line-height:1.8;color:var(--text);}
.info-block-sub{font-size:.75rem;color:var(--text-muted);margin-top:.25rem;line-height:1.7;}
.sec-privacy{padding:5rem 0;background:var(--bg-alt);border-top:1px solid var(--border);}
.privacy-wrap{max-width:760px;}
.privacy-heading{font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);font-weight:500;margin-bottom:1rem;}
.privacy-body{font-size:.8125rem;line-height:2;color:var(--text-muted);}
.hidden-fields-container{
	display:none;
}
.wpcf7{
	position:relative;
	
}
.wpcf7-response-output{
    width: 100%;
    display: flex;
	padding:10px;
	
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.9);
}
.wpcf7-not-valid-tip{
	color:var(--accent);
}
/* Contact Form 7 リセット */
.wpcf7-form .wpcf7-spinner{display:none;}
.wpcf7-form p{margin:0;}

/* ==========================================================
   新着情報 一覧・詳細ページ
   ========================================================== */

/* パンくず */
.breadcrumb{padding:calc(var(--hh) + 1.5rem) 0 0;background:var(--bg);}
.breadcrumb-list{display:flex;align-items:center;gap:.5rem;list-style:none;font-size:.6875rem;letter-spacing:.1em;color:var(--text-faint);flex-wrap:wrap;}
.breadcrumb-list a{color:var(--text-faint);text-decoration:none;transition:color .25s;}
.breadcrumb-list a:hover{color:var(--accent);}
.breadcrumb-list li+li::before{content:'/';margin-right:.5rem;}

/* 新着情報一覧ページ */
.sec-news-list{padding:7rem 0;background:var(--bg);}
.news-inner{max-width:800px;margin:0 auto;}

/* フィルターボタン */
.news-filter{display:flex;gap:.75rem;flex-wrap:wrap;margin-bottom:3rem;}
.filter-btn{font-size:.6875rem;letter-spacing:.18em;text-transform:uppercase;color:var(--text-muted);background:none;border:1px solid var(--border);padding:.45em 1.1em;cursor:pointer;transition:background .2s,color .2s,border-color .2s;text-decoration:none;font-family:var(--font-body);}
.filter-btn:hover,.filter-btn.active{background:var(--accent);color:var(--bg);border-color:var(--accent);}

/* 一覧リスト */
.news-list-full{list-style:none;border-top:1px solid var(--border);}
.news-list-full .news-item{border-bottom:1px solid var(--border);}
.news-list-full .news-item a{display:flex;align-items:baseline;gap:1.5rem;padding:1.75rem .75rem;margin:0 -.75rem;text-decoration:none;transition:background .25s;}
.news-list-full .news-item a:hover{background:rgba(35,43,36,0.04);}
.news-list-full .news-item a:hover .news-title{color:var(--accent);}

/* ページネーション */
.news-pagination{margin-top:3rem;display:flex;justify-content:center;}
.news-pagination .nav-links{display:flex;gap:.5rem;align-items:center;}
.news-pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;font-size:.8125rem;color:var(--text-muted);text-decoration:none;border:1px solid var(--border);transition:background .2s,color .2s,border-color .2s;}
.news-pagination .page-numbers.current,.news-pagination .page-numbers:hover{background:var(--accent);color:#fff;border-color:var(--accent);}
.news-pagination .page-numbers.dots{border:none;width:auto;}
.news-empty{font-size:.9375rem;color:var(--text-faint);padding:3rem 0;text-align:center;}

/* 新着情報詳細ページ */
.sec-article{padding:3rem 0 8rem;background:var(--bg);}
.article-wrap{max-width:740px;margin:0 auto;}
.article-header{padding:3rem 0 2.5rem;border-bottom:1px solid var(--border);margin-bottom:3rem;}
.article-meta{display:flex;align-items:center;gap:1rem;margin-bottom:1.25rem;}
.article-title{font-family:var(--font-disp);font-size:clamp(1.5rem,3.5vw,2.25rem);font-weight:400;line-height:1.45;letter-spacing:.04em;color:var(--text);text-wrap:balance;}
.article-body{font-size:.9375rem;line-height:2.1;color:var(--text-muted);}
.article-body p+p{margin-top:1.75em;}
.article-body h2{font-family:var(--font-disp);font-size:1.25rem;font-weight:400;letter-spacing:.04em;color:var(--text);margin:3em 0 1em;padding-bottom:.75em;border-bottom:1px solid var(--border);}
.article-body h3{font-family:var(--font-disp);font-size:1.0625rem;font-weight:400;letter-spacing:.04em;color:var(--text);margin:2.5em 0 .875em;}
.article-body ul{padding-left:1.5em;margin:1.25em 0;}
.article-body ul li{margin-bottom:.5em;}
.article-body strong{color:var(--text);font-weight:500;}

/* 前後ナビ */
.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin-top:5rem;border-top:1px solid var(--border);padding-top:2.5rem;}
.post-nav-item{display:flex;flex-direction:column;gap:.5rem;text-decoration:none;padding:.75rem 0;transition:color .25s;}
.post-nav-item:hover .post-nav-title{color:var(--accent);}
.post-nav-label{font-size:.5625rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text-faint);}
.post-nav-title{font-size:.875rem;line-height:1.6;color:var(--text);transition:color .25s;}
.post-nav-item.next{text-align:right;}
.post-nav-back{grid-column:1/-1;text-align:center;margin-top:1.5rem;}
.post-nav-back a{display:inline-flex;align-items:center;gap:.5rem;font-size:.8125rem;letter-spacing:.1em;color:var(--text-muted);text-decoration:none;transition:color .25s;}
.post-nav-back a:hover{color:var(--accent);}
.post-nav-back a::before{content:'←';}

/* ==========================================================
   レスポンシブ
   ========================================================== */

/* タブレット (900px) */
@media(max-width:900px){
  .news-layout{grid-template-columns:1fr;gap:2.5rem;}
  .sec-company{grid-template-columns:1fr;}
  .company-col{min-height:260px;border-right:none;border-bottom:1px solid rgba(255,255,255,.08);}
  .company-col:last-child{border-bottom:none;}
  .biz-photo{height:220px;}
  .group-grid{grid-template-columns:repeat(2,1fr);}
  .access-grid{grid-template-columns:1fr;}
  .biz-section{padding:6rem 0;}
  .biz-inner{gap:3rem;}
  .contact-grid{grid-template-columns:1fr;gap:3rem;}
  .values-list{grid-template-columns:repeat(2,1fr);}
}

/* モバイル (768px) */
@media(max-width:768px){
  .nav-toggle{display:flex;}
  .nav-list{position:fixed;top:0;left:0;right:0;height:100dvh;background:var(--bg);flex-direction:column;gap:0;padding:calc(var(--hh) + 2.5rem) var(--pad) 3rem;transform:translateX(100%);transition:transform .35s cubic-bezier(.4,0,.2,1);z-index:1001;overflow-y:auto;}
  .nav-list.open{transform:translateX(0);}
  .nav-list a{display:flex;flex-direction:column;gap:.3rem;padding:1.5rem 0;border-bottom:1px solid var(--border);color:var(--text) !important;}
  .nav-list a::after{display:none;}
  .nav-list a .nav-label{font-size:1.625rem;font-weight:400;font-family:var(--font-disp);letter-spacing:.04em;line-height:1.2;}
  .nav-list a .nav-sub{display:block;font-size:.6875rem;letter-spacing:.14em;color:var(--accent);text-transform:uppercase;}
  .banner-grid{grid-template-columns:28px 1fr;}
  .banner-body{padding:0 1.5rem 0 1rem;}
  .hero{grid-template-columns:1fr;}
  .hero-spine{display:none;}
  .hero-body{padding:5rem 1.5rem 4rem 1.5rem;}
  .about-grid{grid-template-columns:1fr;}
  .about-visual{display:none;}
  .biz-grid{grid-template-columns:1fr;}
  .biz-card:nth-child(even){border-right:1px solid var(--border);}
  .biz-photo{height:200px;}
  .news-item a{flex-direction:column;gap:.625rem;}
  .footer-top{flex-direction:column;}
  .footer-nav{align-items:flex-start;}
  .group-grid{grid-template-columns:1fr;}
  .info-label{width:120px;font-size:.6875rem;}
  .info-value{font-size:.875rem;}
  .biz-inner{grid-template-columns:1fr;gap:2.5rem;}
  .biz-inner.reverse{direction:ltr;}
  .biz-visual{aspect-ratio:16/9;max-width:100%;}
  .contact-grid{grid-template-columns:1fr;gap:2.5rem;}
  .values-list{grid-template-columns:1fr;}
  .portrait-frame{max-width:100%;}
  .sec-news-list{padding:4rem 0;}
  .news-filter{gap:.5rem;margin-bottom:2rem;}
  .news-list-full .news-item a{flex-direction:column;gap:.5rem;align-items:flex-start;}
  .news-meta{flex-direction:row;}
  .sec-article{padding:2rem 0 5rem;}
  .article-header{padding:2rem 0 1.75rem;margin-bottom:2rem;}
  .post-nav{grid-template-columns:1fr 1fr;gap:1.5rem;}
}

/* スモール (480px) */
@media(max-width:480px){
  .hero-body{padding:4.5rem 1.25rem 3.5rem;}
  .biz-photo{height:170px;}
  .sec-news,.sec-about,.sec-biz{padding:5rem 0;}
  .sec-company{margin-top:5rem;}
  .company-col{min-height:220px;}
  .company-body{padding:1.75rem 1.5rem;}
  .company-title{font-size:1.25rem;}
  .sec-info,.sec-group,.sec-access{padding:5rem 0;}
  .info-label{width:100px;padding-right:1rem;}
  .biz-section{padding:5rem 0;}
  .sec-message,.sec-values,.sec-contact{padding:5rem 0;}
  .banner-grid{grid-template-columns:1fr;}
  .banner-spine{display:none;}
  .banner-body{padding:0 1.25rem;}
  .message-heading{font-size:1.375rem;}
  .form-row{grid-template-columns:1fr;}
  .sec-news-list{padding:3rem 0;}
  .post-nav{grid-template-columns:1fr;gap:0;}
  .post-nav-item.next{text-align:left;}
}
