/* =========================================================
   Tradge コーポレートサイト 再現版 — デザインシステム
   参考: https://tradge-inc.studio.site/
   トーン: 明朝主体・モノトーン（白〜薄灰＋濃灰/黒）・色アクセントなし
   ========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Zen+Old+Mincho:wght@400;500;700;900&family=Shippori+Mincho:wght@400;500;600&family=Noto+Sans+JP:wght@300;400;500;700&family=Baskervville:ital@0;1&display=swap');

:root{
  --bg:#ffffff;
  --bg-alt:#f4f4f2;
  --bg-dark:#262626;
  --ink:#333333;
  --ink-strong:#111111;
  --muted:#8a8a8a;
  --muted-light:#b4b4b4;
  --line:#e3e3e3;
  --line-dark:#454545;
  --on-dark:#ffffff;

  --mincho:"Zen Old Mincho", serif;
  --mincho-soft:"Shippori Mincho", serif;
  --sans:"Noto Sans JP", sans-serif;
  --en:"Baskervville", serif;

  --maxw:1120px;
  --pad:24px;
  --header-h:76px;
}

*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--sans);
  color:var(--ink);
  background:var(--bg);
  line-height:1.9;
  font-size:15px;
  -webkit-font-smoothing:antialiased;
  letter-spacing:.02em;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}

.container{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad);}
.container--narrow{max-width:760px;}

/* ===== セクション共通 ===== */
.section{padding:110px 0;}
.section--alt{background:var(--bg-alt);}
.section--dark{background:var(--bg-dark);color:var(--on-dark);}

/* 大きな英字見出し＋和（中央）＝本家の共通モチーフ */
.sec-head{text-align:center;margin-bottom:60px;}
.sec-en{
  font-family:var(--en);
  font-weight:400;
  font-size:clamp(34px,5.4vw,60px);
  letter-spacing:.1em;
  line-height:1;
  color:var(--ink-strong);
  text-transform:uppercase;
  display:block;
}
.section--dark .sec-en{color:var(--on-dark);}
.sec-jp{
  font-family:var(--mincho);
  font-size:14px;
  letter-spacing:.32em;
  color:var(--muted);
  margin-top:20px;
  display:inline-block;
  position:relative;
  padding-top:18px;
}
.sec-jp::before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);width:28px;height:1px;background:var(--muted);}
.section--dark .sec-jp{color:var(--muted-light);}
.section--dark .sec-jp::before{background:var(--muted-light);}

/* リンク（→付き） */
.more{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--mincho-soft);font-size:14px;letter-spacing:.1em;
  color:var(--ink-strong);border-bottom:1px solid var(--ink-strong);
  padding-bottom:6px;transition:opacity .3s, gap .3s;
}
.section--dark .more{color:var(--on-dark);border-color:var(--on-dark);}
.more:hover{opacity:.6;gap:16px;}
.more .arw{font-size:16px;line-height:1;}

/* ===== ヘッダー（ヒーロー上は透明→スクロールで白） ===== */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:50;
  background:transparent;border-bottom:1px solid rgba(255,255,255,.16);
  transition:background .4s, border-color .4s;
}
.site-header__inner{display:flex;align-items:center;justify-content:space-between;height:var(--header-h);}
.logo{
  font-family:var(--mincho);font-weight:700;font-size:18px;letter-spacing:.14em;
  color:#fff;display:flex;flex-direction:column;line-height:1.2;transition:color .4s;
}
.logo small{font-family:var(--sans);font-size:10px;letter-spacing:.2em;color:#fff;font-weight:400;margin-top:3px;transition:color .4s;}
/* ヘッダー内のロゴだけ横並び（Tradgeの隣に屋号・明朝で統一）。フッターは縦積みのまま */
.site-header .logo{flex-direction:row;align-items:baseline;gap:12px;}
.site-header .logo small{margin-top:0;font-family:var(--mincho);font-size:12px;}
/* 透明ヘッダー時：明るい写真の上でも読めるよう文字に影。白背景時は影を消す */
.site-header .logo,.site-header .gnav a{text-shadow:0 1px 10px rgba(0,0,0,.55);}
.site-header.scrolled .logo,.site-header.scrolled .gnav a,
body.header-solid .site-header .logo,body.header-solid .site-header .gnav a{text-shadow:none;}
.gnav ul{display:flex;gap:34px;list-style:none;}
.gnav a{font-family:var(--mincho-soft);font-size:14px;letter-spacing:.08em;color:#fff;padding:4px 0;transition:opacity .3s, color .4s;}
.gnav a:hover{opacity:.6;}
.nav-toggle{display:none;}
.hamburger{display:none;}
.hamburger span{background:#fff;transition:transform .3s, opacity .3s, background .4s;}

/* スクロール後（白背景・濃い文字） */
.site-header.scrolled{background:rgba(255,255,255,.94);backdrop-filter:saturate(180%) blur(8px);border-bottom:1px solid var(--line);}
.site-header.scrolled .logo{color:var(--ink-strong);}
.site-header.scrolled .logo small{color:var(--ink-strong);}
.site-header.scrolled .gnav a{color:var(--ink-strong);}
.site-header.scrolled .hamburger span{background:var(--ink-strong);}

/* 白背景ページ（product等）：ヘッダーを常時ソリッドにして文字を見えるように */
body.header-solid .site-header{background:rgba(255,255,255,.94);backdrop-filter:saturate(180%) blur(8px);border-bottom:1px solid var(--line);}
body.header-solid .site-header .logo{color:var(--ink-strong);}
body.header-solid .site-header .logo small{color:var(--ink-strong);}
body.header-solid .site-header .gnav a{color:var(--ink-strong);}
body.header-solid .site-header .hamburger span{background:var(--ink-strong);}

/* ===== 事業内容ドロップダウン（ヘッダーの透明/白と連動・カプセル形） ===== */
.gnav .has-sub{position:relative;}
.gnav .subnav{display:block;gap:0;list-style:none;position:absolute;top:calc(100% + 14px);left:50%;transform:translateX(-50%);min-width:250px;background:rgba(20,20,20,.22);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);border:1px solid rgba(255,255,255,.35);border-radius:24px;box-shadow:0 16px 34px rgba(0,0,0,.18);padding:10px;opacity:0;visibility:hidden;transition:opacity .25s ease, visibility .25s ease, background .4s, border-color .4s;z-index:60;}
.gnav .subnav::before{content:"";position:absolute;left:0;right:0;top:-14px;height:14px;} /* 親リンクとの隙間を埋めるホバー橋 */
.gnav .has-sub:hover .subnav,.gnav .has-sub:focus-within .subnav{opacity:1;visibility:visible;}
.gnav .subnav a,.gnav .subnav .subnav__soon{display:block;padding:11px 18px;border-radius:16px;font-family:var(--mincho-soft);font-size:13px;letter-spacing:.05em;color:#fff;text-shadow:0 1px 10px rgba(0,0,0,.55);white-space:nowrap;transition:background .3s, color .4s;}
.gnav .subnav a:hover{background:rgba(255,255,255,.2);opacity:1;}
.gnav .subnav .subnav__soon{color:rgba(255,255,255,.68);cursor:default;}
/* スクロール後・白背景ページ：ヘッダーと同じ白ガラスに切り替え */
.site-header.scrolled .gnav .subnav,body.header-solid .site-header .gnav .subnav{background:rgba(255,255,255,.94);border-color:var(--line);box-shadow:0 16px 34px rgba(0,0,0,.10);}
.site-header.scrolled .gnav .subnav a,body.header-solid .site-header .gnav .subnav a{color:var(--ink-strong);text-shadow:none;}
.site-header.scrolled .gnav .subnav .subnav__soon,body.header-solid .site-header .gnav .subnav .subnav__soon{text-shadow:none;}
.site-header.scrolled .gnav .subnav a:hover,body.header-solid .site-header .gnav .subnav a:hover{background:var(--bg-alt);}
.site-header.scrolled .gnav .subnav .subnav__soon,body.header-solid .site-header .gnav .subnav .subnav__soon{color:var(--muted);}
@media (max-width:880px){
  /* スマホ：普段は閉じておき、「事業内容 ▾」のタップで開閉（app.js が .is-open を付け外し） */
  .gnav .has-sub > a{position:relative;}
  .gnav .has-sub > a::after{content:"";position:absolute;right:var(--pad);top:50%;width:8px;height:8px;border-right:1.5px solid var(--ink-strong);border-bottom:1.5px solid var(--ink-strong);transform:translateY(-70%) rotate(45deg);transition:transform .3s;}
  .gnav .has-sub.is-open > a::after{transform:translateY(-30%) rotate(225deg);}
  .gnav .subnav{display:none;position:static;transform:none;opacity:1;visibility:visible;border:0;border-radius:0;box-shadow:none;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;min-width:0;padding:0 0 8px;}
  .gnav .has-sub.is-open .subnav{display:block;}
  .gnav .subnav::before{display:none;}
  .gnav .subnav li{border-top:1px dashed var(--line);}
  .gnav .subnav a,.gnav .subnav .subnav__soon{padding:12px var(--pad) 12px calc(var(--pad) + 16px);font-size:14px;border-radius:0;}
  .gnav .subnav .subnav__soon{color:var(--muted);}
}

/* ===== product ヒーロー（白背景・左寄せ＝本家どおり） ===== */
.product-hero{padding:calc(var(--header-h) + 84px) 0 92px;}
.product-hero__title{font-family:var(--mincho);font-weight:500;font-size:clamp(32px,4.6vw,50px);letter-spacing:.08em;line-height:1.35;color:var(--ink-strong);margin-bottom:34px;}
.product-hero__lead{font-family:var(--mincho-soft);font-size:15px;line-height:2.5;letter-spacing:.05em;color:var(--ink);}

/* ===== about ヒーロー（白背景・中央コピー＋横長写真＝本家どおり） ===== */
.about-hero{padding-top:calc(var(--header-h) + 64px);}
.about-hero__title{text-align:center;font-family:var(--mincho);font-weight:500;font-size:clamp(21px,3.2vw,32px);letter-spacing:.08em;line-height:1.7;color:var(--ink-strong);margin-bottom:52px;}
.about-hero__banner{max-width:1120px;margin:0 auto;padding:0 var(--pad);}
.about-hero__banner img{width:100%;height:clamp(220px,32vw,380px);object-fit:cover;display:block;}

/* ===== ヒーロー ===== */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;color:var(--on-dark);overflow:hidden;}
.hero__bg{position:absolute;inset:0;background:#1c1c1c;overflow:hidden;}
/* ヒーロー：5枚をクロスフェードで流す（フェードを長めにして継ぎ目を滑らかに） */
.hero__slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity 2s ease;}
.hero__slide.is-active{opacity:1;}
/* 各スライドに別々のゆっくりした動き。alternateで往復するのでスナップ（かくっ）が出ない */
.hero__slide:nth-child(1){animation:kbZoomIn 17s ease-in-out infinite alternate;}
.hero__slide:nth-child(2){animation:kbZoomOut 19s ease-in-out infinite alternate;}
.hero__slide:nth-child(3){animation:kbPanR 18s ease-in-out infinite alternate;}
.hero__slide:nth-child(4){animation:kbPanL 20s ease-in-out infinite alternate;}
.hero__slide:nth-child(5){animation:kbUp 17s ease-in-out infinite alternate;}
@keyframes kbZoomIn{from{transform:scale(1.02);}to{transform:scale(1.1);}}
@keyframes kbZoomOut{from{transform:scale(1.1);}to{transform:scale(1.02);}}
@keyframes kbPanR{from{transform:scale(1.07) translateX(-2.5%);}to{transform:scale(1.07) translateX(2.5%);}}
@keyframes kbPanL{from{transform:scale(1.08) translate(2.5%,1%);}to{transform:scale(1.04) translate(-2.5%,-1%);}}
@keyframes kbUp{from{transform:scale(1.03) translateY(2%);}to{transform:scale(1.1) translateY(-2%);}}
@media (prefers-reduced-motion:reduce){.hero__slide{animation:none!important;}}
/* 写真の上に暗いグラデを重ね、左の見出しを読みやすく */
.hero__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.45),rgba(0,0,0,.05));}
.hero__inner{position:relative;z-index:2;width:100%;}
.hero__copy{max-width:680px;}
.hero h1{font-family:var(--mincho);font-weight:700;font-size:42px;letter-spacing:.14em;line-height:1.75;margin-bottom:32px;word-break:keep-all;overflow-wrap:break-word;text-shadow:0 2px 18px rgba(0,0,0,.55);}
.hero__lead{font-family:var(--mincho-soft);font-size:15px;line-height:2.4;letter-spacing:.06em;color:rgba(255,255,255,.95);word-break:keep-all;overflow-wrap:break-word;text-shadow:0 1px 12px rgba(0,0,0,.6);}
.hero__en{font-family:var(--en);font-size:12px;letter-spacing:.32em;color:rgba(255,255,255,.62);text-transform:uppercase;position:absolute;right:30px;top:50%;transform:translateY(-50%);writing-mode:vertical-rl;}
.hero__scroll{position:absolute;left:50%;bottom:30px;transform:translateX(-50%);z-index:3;font-family:var(--en);font-size:11px;letter-spacing:.3em;color:rgba(255,255,255,.75);text-transform:uppercase;display:flex;flex-direction:column;align-items:center;gap:10px;}
.hero__scroll::after{content:"";width:1px;height:44px;background:rgba(255,255,255,.5);animation:scrolldot 2s ease-in-out infinite;}
@keyframes scrolldot{0%{transform:scaleY(0);transform-origin:top;}50%{transform:scaleY(1);transform-origin:top;}50.1%{transform-origin:bottom;}100%{transform:scaleY(0);transform-origin:bottom;}}

/* ===== お知らせ（写真カードを横並び＝本家どおり） ===== */
.news-list{display:flex;flex-wrap:wrap;gap:46px 36px;max-width:1040px;margin:0 auto;}
.news-item{display:flex;flex-direction:column;width:300px;max-width:100%;transition:opacity .3s;}
.news-item:hover{opacity:.82;}
.news-item__media{aspect-ratio:4/3;overflow:hidden;background:var(--line);}
.news-item__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s ease;}
.news-item:hover .news-item__media img{transform:scale(1.05);}
.news-item .date{font-family:var(--en);font-size:13px;letter-spacing:.06em;color:var(--muted);margin-top:18px;}
.news-item .ttl{font-family:var(--mincho-soft);font-size:15.5px;line-height:1.8;letter-spacing:.04em;color:var(--ink);margin-top:10px;}
.center-foot{margin-top:48px;text-align:center;}

/* ===== 私たちについて（全幅写真＋中央テキスト） ===== */
.fullbleed{
  width:100vw;position:relative;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw;
  aspect-ratio:16/6;min-height:280px;
  background:linear-gradient(135deg,#dedede,#c9c9c9);
  display:flex;align-items:flex-end;justify-content:flex-start;
}
.fullbleed .ph-label{font-family:var(--en);font-size:11px;letter-spacing:.2em;color:#fff;opacity:.85;margin:16px 24px;}
.fullbleed img,.fullbleed iframe{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border:0;}
.about-body{max-width:720px;margin:60px auto 0;text-align:center;font-family:var(--mincho-soft);font-size:15.5px;line-height:2.5;letter-spacing:.06em;color:var(--ink);}
.about-body p+p{margin-top:24px;}
.about-statement{max-width:760px;margin:56px auto 0;text-align:center;font-family:var(--mincho);font-size:18px;line-height:2.2;letter-spacing:.1em;color:var(--ink-strong);}
/* 私たちについて（暗・職人写真背景・中央白文字 ＝ 本家どおり） */
.about-feature{position:relative;overflow:hidden;}
.about-feature__bg{position:absolute;inset:0;background:url("img/about.jpg") center/cover no-repeat,var(--bg-dark);}
.about-feature__bg::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.4);}
.about-feature__inner{position:relative;z-index:2;text-align:center;}
.about-feature__title{font-family:var(--mincho);font-weight:700;font-size:22px;letter-spacing:.12em;color:#fff;margin-bottom:30px;}
.about-feature__lead{max-width:720px;margin:0 auto;font-family:var(--mincho-soft);font-size:15.5px;line-height:2.5;letter-spacing:.06em;color:rgba(255,255,255,.92);}
.about-feature__lead p+p{margin-top:24px;}
.about-feature .center-foot{margin-top:44px;}

/* ===== 事業ブランドと商品 ===== */
.brands-lead{text-align:center;max-width:760px;margin:0 auto 56px;font-family:var(--mincho-soft);font-size:15px;line-height:2.4;letter-spacing:.05em;color:var(--ink);}
.brands-shop{text-align:center;margin-top:-26px;}
.brand-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;}
.brand-card{background:var(--bg);border:1px solid var(--line);overflow:hidden;transition:transform .4s, box-shadow .4s;}
.brand-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(0,0,0,.07);}
.brand-card__media{aspect-ratio:4/3;background:linear-gradient(135deg,#e6e6e6,#d3d3d3);position:relative;}
.brand-card__media .ph-label{position:absolute;left:14px;bottom:12px;font-family:var(--en);font-size:10px;letter-spacing:.2em;color:#fff;opacity:.85;}
.brand-card__body{padding:28px 26px 32px;}
.brand-card__body h3{font-family:var(--mincho);font-weight:700;font-size:18px;letter-spacing:.1em;line-height:1.7;color:var(--ink-strong);margin-bottom:14px;}
.brand-card__body p{font-size:13.5px;line-height:2.1;color:var(--ink);letter-spacing:.03em;}
/* 事業ブランドと商品：大きな写真＋重なるテキスト（左右交互・本家どおり） */
.feature-row{position:relative;display:flex;align-items:center;min-height:420px;margin-top:60px;}
.feature-row__media{width:72%;height:420px;margin-left:auto;}
.feature-row__media img{width:100%;height:100%;object-fit:cover;display:block;}
.feature-row__box{position:absolute;top:50%;left:0;transform:translateY(-50%);width:42%;max-width:460px;background:rgba(244,244,242,.92);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);padding:42px 40px;z-index:2;}
.feature-row__box h3{font-family:var(--mincho);font-weight:700;font-size:21px;letter-spacing:.08em;line-height:1.7;color:var(--ink-strong);margin-bottom:18px;}
.feature-row__box p{font-size:14px;line-height:2.1;color:var(--ink);letter-spacing:.03em;}
.feature-row__box p+p{margin-top:12px;}
.feature-row__box .btn{margin-top:26px;}
.feature-row--alt .feature-row__media{margin-left:0;margin-right:auto;}
.feature-row--alt .feature-row__box{left:auto;right:0;}
@media (max-width:880px){
  .feature-row{flex-direction:column;min-height:0;margin-top:42px;}
  .feature-row__media,.feature-row--alt .feature-row__media{width:100%;height:230px;margin:0;}
  .feature-row__box,.feature-row--alt .feature-row__box{position:relative;top:auto;left:auto;right:auto;transform:none;width:90%;max-width:none;margin:-40px auto 0;}
}

/* ===== 協業（Partners・暗・カルーセル） ===== */
.partners-body{text-align:center;font-family:var(--mincho-soft);font-size:15px;line-height:2.4;letter-spacing:.05em;max-width:720px;margin:0 auto 50px;}
.carousel{position:relative;overflow:hidden;}
.partner-track{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px;scrollbar-width:none;}
.partner-track::-webkit-scrollbar{display:none;}
.partner-card{flex:0 0 260px;scroll-snap-align:start;background:var(--bg);border:1px solid var(--line);border-radius:12px;overflow:hidden;}
.partner-card__media{aspect-ratio:4/3;background:var(--bg-alt);position:relative;}
.partner-card__media .ph-label{position:absolute;left:12px;bottom:10px;font-family:var(--en);font-size:10px;letter-spacing:.2em;color:var(--muted);}
/* microCMS等から入る画像を枠いっぱいに収める（はみ出し防止） */
.partner-card__media img,.brand-card__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.partner-card__name{padding:18px 20px;font-family:var(--mincho-soft);font-size:14.5px;letter-spacing:.06em;color:var(--ink);text-align:center;}
.carousel-ctrl{display:flex;justify-content:center;gap:18px;margin-top:30px;}
.carousel-ctrl button{width:44px;height:44px;border:1px solid var(--line-dark);background:transparent;color:var(--on-dark);font-size:16px;cursor:pointer;transition:background .3s, color .3s;}
.carousel-ctrl button:hover{background:#fff;color:var(--ink-strong);}
/* パートナー：左へ自動で流れつつ、指／タッチパッドで左右スクロールも可（microcms.js が制御） */
.carousel-ctrl{display:none;}
.partner-track.is-autoscroll{scroll-snap-type:none;overscroll-behavior-x:contain;}
.partners-note{text-align:center;font-family:var(--mincho-soft);font-size:14px;line-height:2.3;letter-spacing:.05em;color:var(--muted);max-width:680px;margin:48px auto 36px;}
.partners-foot{text-align:center;}

/* ===== お問い合わせ（暗・写真背景・丸ボタン） ===== */
.contact{position:relative;color:var(--on-dark);text-align:center;overflow:hidden;padding:120px 0;}
.contact__bg{position:absolute;inset:0;background:url("img/contact.jpg") center/cover no-repeat,linear-gradient(135deg,#2e2e2e,#161616);}
.contact__bg::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.5);}
.contact__inner{position:relative;z-index:2;}
.contact .sec-en{color:var(--on-dark);}
.contact .sec-jp{color:rgba(255,255,255,.72);}
.contact .sec-jp::before{background:rgba(255,255,255,.72);}
.contact-body{font-family:var(--mincho-soft);font-size:15.5px;line-height:2.5;letter-spacing:.06em;color:rgba(255,255,255,.9);max-width:620px;margin:0 auto 44px;}
.btn{display:inline-flex;align-items:center;gap:12px;font-family:var(--mincho-soft);font-size:15px;letter-spacing:.1em;padding:18px 48px;transition:opacity .3s, gap .3s, background .3s, color .3s;}
.btn--dark{background:var(--ink-strong);color:#fff;}
.btn--dark:hover{opacity:.82;gap:18px;}
.btn--pill{border-radius:999px;border:1px solid rgba(255,255,255,.85);color:#fff;background:transparent;}
/* 準備中ボタン：リンク風の見た目のままクリック不可・少し薄く */
.btn--soon{opacity:.5;cursor:default;pointer-events:none;user-select:none;}
.btn--pill:hover{background:#fff;color:var(--ink-strong);gap:18px;}

/* ===== フッター（中央寄せ） ===== */
.site-footer{background:#1c1c1c;color:#cfcfcf;padding:74px 0 40px;text-align:center;}
.footer-brand .logo{color:#fff;display:inline-flex;align-items:center;}
.footer-brand .logo small{color:var(--muted-light);}
.footer-tag{font-family:var(--mincho-soft);font-size:13px;letter-spacing:.1em;color:var(--muted-light);margin-top:16px;}
.footer-sns{display:flex;justify-content:center;gap:22px;margin:30px 0 28px;font-family:var(--en);font-size:13px;letter-spacing:.12em;color:var(--muted-light);}
.footer-sns a{transition:opacity .3s;}
.footer-sns a:hover{opacity:.6;}
.footer-nav{display:flex;justify-content:center;flex-wrap:wrap;gap:14px 30px;padding:28px 0;border-top:1px solid var(--line-dark);border-bottom:1px solid var(--line-dark);}
.footer-nav a{font-family:var(--mincho-soft);font-size:13.5px;letter-spacing:.06em;color:#cfcfcf;transition:opacity .3s;}
.footer-nav a:hover{opacity:.6;}
.footer-copy{font-family:var(--en);font-size:12px;letter-spacing:.12em;color:var(--muted-light);margin-top:28px;}

/* ===== スクロール表示アニメ（JS有効時のみ隠す） ===== */
.js .reveal{opacity:0;transform:translateY(24px);transition:opacity .9s ease, transform .9s ease;}
.js .reveal.is-in{opacity:1;transform:none;}

/* =========================================================
   レスポンシブ（スマホ）
   ========================================================= */
@media (max-width:880px){
  .section{padding:74px 0;}
  .brand-grid{grid-template-columns:1fr;gap:24px;max-width:420px;margin:0 auto;}
  .hero__en{display:none;}
  .partner-card{flex-basis:220px;}

  .hamburger{display:flex;flex-direction:column;justify-content:center;gap:6px;width:40px;height:40px;cursor:pointer;}
  .hamburger span{display:block;height:1.5px;width:24px;}
  .gnav{position:fixed;inset:var(--header-h) 0 auto 0;background:rgba(255,255,255,.98);border-bottom:1px solid var(--line);transform:translateY(-120%);transition:transform .4s ease;padding:10px 0 28px;}
  .gnav ul{flex-direction:column;gap:0;}
  .gnav li{border-top:1px solid var(--line);}
  .gnav a{display:block;padding:18px var(--pad);font-size:15px;color:var(--ink-strong)!important;text-shadow:none;}
  .nav-toggle:checked ~ .gnav{transform:translateY(0);}
  .nav-toggle:checked ~ .hamburger span:nth-child(1){transform:translateY(7.5px) rotate(45deg);}
  .nav-toggle:checked ~ .hamburger span:nth-child(2){opacity:0;}
  .nav-toggle:checked ~ .hamburger span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg);}

  .hero h1{font-size:clamp(21px,6.2vw,28px);letter-spacing:.03em;line-height:1.8;}
  .hero__lead{font-size:14px;line-height:2.2;}
  .news-list{gap:34px;justify-content:center;}
  .news-item{width:100%;max-width:360px;}
  .fullbleed{aspect-ratio:4/3;min-height:0;}
}

/* =========================================================
   下層ページ用コンポーネント
   ========================================================= */

/* 小さめヒーロー（下層共通） */
.subhero{position:relative;min-height:42vh;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;overflow:hidden;}
.subhero__bg{position:absolute;inset:0;background:linear-gradient(135deg,#333,#161616);}
.subhero__bg::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.4);}
.subhero__inner{position:relative;z-index:2;padding-top:var(--header-h);}
.subhero .en{font-family:var(--en);font-size:clamp(30px,5vw,52px);letter-spacing:.1em;text-transform:uppercase;display:block;line-height:1;}
.subhero .jp{font-family:var(--mincho);font-size:14px;letter-spacing:.3em;margin-top:16px;display:inline-block;color:rgba(255,255,255,.85);}

/* パンくず */
.crumb{font-family:var(--mincho-soft);font-size:12px;letter-spacing:.06em;color:var(--muted);padding:22px 0;}
.crumb a:hover{color:var(--ink);}

/* 代表プロフィール */
.founder-head{max-width:900px;margin:0 auto 46px;}
.founder-head__en{font-family:var(--en);font-size:clamp(40px,6vw,72px);letter-spacing:.04em;color:var(--ink-strong);display:block;line-height:1;}
.founder-head__jp{font-family:var(--mincho);font-size:13px;letter-spacing:.24em;color:var(--muted);margin-top:14px;display:inline-block;}
.profile{display:grid;grid-template-columns:300px 1fr;gap:48px;align-items:start;max-width:900px;margin:0 auto;}
.profile__photo{aspect-ratio:3/4;background:linear-gradient(135deg,#e6e6e6,#d2d2d2);position:relative;}
.profile__photo .ph-label{position:absolute;left:12px;bottom:10px;font-family:var(--en);font-size:10px;letter-spacing:.2em;color:#fff;opacity:.85;}
.profile__photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.profile__name{font-family:var(--mincho);font-weight:700;font-size:23px;letter-spacing:.1em;color:var(--ink-strong);margin-bottom:6px;}
.profile__role{font-family:var(--mincho-soft);font-size:13px;color:var(--muted);margin-bottom:20px;}
.profile__info .row{font-size:13.5px;line-height:1.9;color:var(--ink);margin-bottom:12px;}
.profile__info .row span{display:block;font-family:var(--en);font-size:10px;letter-spacing:.14em;color:var(--muted);text-transform:uppercase;}
.message{max-width:760px;margin:64px auto 0;font-family:var(--mincho-soft);font-size:15px;line-height:2.5;letter-spacing:.04em;}
.message .lead{font-family:var(--mincho);font-size:18px;line-height:2.2;letter-spacing:.08em;color:var(--ink-strong);margin-bottom:28px;}
.message p+p{margin-top:22px;}

/* MISSION / VISION / VALUE（本家＝「Tradge」帯＋縦線付き3カラム） */
.mvv-band{text-align:center;background:linear-gradient(90deg,#eceae6,#fbfbfa 50%,#eceae6);padding:30px 0;margin-bottom:64px;}
.mvv-band span{font-family:var(--en);font-size:clamp(30px,4vw,44px);letter-spacing:.14em;color:var(--ink-strong);}
.mvv{display:grid;grid-template-columns:repeat(3,1fr);gap:44px;max-width:940px;margin:0 auto;}
.mvv__item{text-align:center;position:relative;padding-top:56px;}
.mvv__item::before{content:"";position:absolute;left:50%;top:0;width:1px;height:38px;background:var(--muted);}
.mvv__item .en{font-family:var(--en);font-size:15px;letter-spacing:.18em;color:var(--ink-strong);text-transform:uppercase;display:block;margin-bottom:20px;}
.mvv__item h3{font-family:var(--mincho);font-weight:500;font-size:16px;line-height:1.95;letter-spacing:.06em;color:var(--ink);}

/* 職人と産地の、顔（本家＝見出し＋リード＋大きな写真1枚） */
.faces-title{text-align:center;font-family:var(--mincho);font-weight:700;font-size:clamp(26px,3.6vw,34px);letter-spacing:.08em;color:var(--ink-strong);margin-bottom:28px;}
.faces-lead{text-align:center;font-family:var(--mincho-soft);font-size:15px;line-height:2.3;letter-spacing:.05em;color:var(--ink);margin-bottom:52px;}
.faces-photo{max-width:900px;margin:0 auto;}
.faces-photo img{width:100%;height:auto;display:block;}

/* 社名の由来（本家＝暗い背景＋2カラム：左テキスト／右に風景写真） */
.closing-section{position:relative;padding:100px 0;overflow:hidden;color:var(--on-dark);}
.closing-section__bg{position:absolute;inset:0;background:url('img/hero-1.jpg') center/cover no-repeat;filter:blur(7px) brightness(.4);transform:scale(1.1);}
.closing-section .container{position:relative;z-index:2;}
.closing-title{text-align:center;font-family:var(--mincho);font-weight:700;font-size:clamp(22px,3vw,30px);letter-spacing:.1em;color:#fff;margin-bottom:52px;}
.closing-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center;max-width:1000px;margin:0 auto;}
.closing-text h3{font-family:var(--mincho);font-weight:500;font-size:21px;letter-spacing:.08em;color:#fff;margin-bottom:24px;}
.closing-text p{font-family:var(--mincho-soft);font-size:14.5px;line-height:2.4;letter-spacing:.04em;color:rgba(255,255,255,.86);}
.closing-photo img{width:100%;height:100%;max-height:380px;object-fit:cover;display:block;}

/* 沿革タイムライン（本家＝暗い鉄写真背景・白文字・縦ライン＋ドット） */
.tl-section{position:relative;padding:104px 0;overflow:hidden;color:var(--on-dark);}
.tl-section__bg{position:absolute;inset:0;background:url('img/about.jpg') center/cover no-repeat;}
.tl-section__bg::after{content:"";position:absolute;inset:0;background:rgba(18,18,18,.72);}
.tl-section .container{position:relative;z-index:2;}
.timeline{position:relative;max-width:720px;margin:0 auto;padding-left:6px;}
.timeline::before{content:"";position:absolute;left:5px;top:9px;bottom:11px;width:1px;background:rgba(255,255,255,.32);}
.tl-item{position:relative;display:grid;grid-template-columns:118px 1fr;gap:36px;padding:0 0 52px 36px;}
.tl-item:last-child{padding-bottom:0;}
.tl-item::before{content:"";position:absolute;left:0;top:7px;width:11px;height:11px;border-radius:50%;background:#fff;}
.tl-era{font-family:var(--en);font-size:18px;letter-spacing:.04em;color:#fff;padding-top:1px;}
.tl-body h3{font-family:var(--mincho);font-weight:700;font-size:17px;line-height:1.7;letter-spacing:.06em;color:#fff;margin-bottom:12px;}
.tl-body p{font-family:var(--mincho-soft);font-size:13.5px;line-height:2.05;color:rgba(255,255,255,.82);}

/* metl. ブランド（本家＝白背景・左寄せ・中央のピルボタン） */
.metl-section{padding:96px 0 104px;}
.metl{max-width:720px;margin:0 auto;text-align:left;}
.metl .en{font-family:var(--en);font-size:clamp(34px,4.4vw,48px);letter-spacing:.06em;color:var(--ink-strong);display:block;line-height:1;}
.metl h3{font-family:var(--mincho);font-weight:700;font-size:21px;letter-spacing:.08em;margin:26px 0 20px;color:var(--ink-strong);}
.metl p{font-family:var(--mincho-soft);font-size:15px;line-height:2.4;letter-spacing:.04em;color:var(--ink);}
.metl .soon{display:block;width:max-content;max-width:100%;margin:46px auto 0;background:var(--bg-dark);color:#fff;border-radius:40px;padding:19px 58px;font-family:var(--mincho-soft);font-size:14px;letter-spacing:.1em;text-align:center;}

/* 3ステップ（顔の見えるものづくり） */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;max-width:960px;margin:0 auto;}
.step{text-align:center;padding:0 14px;}
.step .no{font-family:var(--en);font-size:15px;letter-spacing:.2em;color:var(--muted);}
.step h3{font-family:var(--mincho);font-weight:700;font-size:18px;letter-spacing:.08em;margin:14px 0 14px;color:var(--ink-strong);}
.step p{font-size:13.5px;line-height:2.1;color:var(--ink);letter-spacing:.03em;}
@media(max-width:880px){.steps{grid-template-columns:1fr;gap:30px;max-width:380px;}}

/* 会社概要テーブル */
.spec{max-width:760px;margin:0 auto;border-top:1px solid var(--line);}
.spec .row{display:grid;grid-template-columns:180px 1fr;gap:24px;padding:22px 8px;border-bottom:1px solid var(--line);}
.spec dt{font-family:var(--mincho-soft);font-size:14px;letter-spacing:.06em;color:var(--muted);}
.spec dd{font-size:14px;line-height:1.9;color:var(--ink);}

/* お知らせ記事 */
.article{max-width:760px;margin:0 auto;}
.article__back{font-family:var(--mincho-soft);font-size:13px;color:var(--muted);margin-bottom:30px;display:inline-flex;gap:8px;}
.article__meta{font-family:var(--en);font-size:14px;letter-spacing:.06em;color:var(--muted);}
.article h1{font-family:var(--mincho);font-weight:700;font-size:27px;line-height:1.8;letter-spacing:.08em;color:var(--ink-strong);margin:14px 0 10px;}
.article__sub{font-family:var(--mincho-soft);font-size:15px;color:var(--muted);margin-bottom:42px;}
.article__body{font-size:15px;line-height:2.4;letter-spacing:.03em;}
.article__body h2{font-family:var(--mincho);font-weight:700;font-size:18px;letter-spacing:.06em;margin:40px 0 14px;color:var(--ink-strong);}
.article__body h3{font-family:var(--mincho);font-weight:700;font-size:16px;letter-spacing:.06em;margin:32px 0 12px;color:var(--ink-strong);}
.article__body p{margin-bottom:20px;}
.article__body hr{border:none;border-top:1px solid var(--line);margin:36px 0;}
/* 記事トップのアイキャッチ画像／本文中に差し込む画像 */
.article__eyecatch{margin:26px 0 40px;}
.article__eyecatch img{width:100%;height:auto;display:block;}
.article__body img{width:100%;height:auto;display:block;margin:32px 0;}

/* お問い合わせフォーム */
.cform{max-width:680px;margin:0 auto;}
.cform .field{margin-bottom:26px;}
.cform label{display:block;font-family:var(--mincho-soft);font-size:14px;letter-spacing:.06em;color:var(--ink-strong);margin-bottom:10px;}
.cform .req{font-size:10px;letter-spacing:.1em;color:#fff;background:var(--ink-strong);padding:3px 8px;margin-left:10px;}
.cform input,.cform select,.cform textarea{width:100%;border:1px solid var(--line);background:var(--bg);padding:14px 16px;font-family:var(--sans);font-size:15px;color:var(--ink);border-radius:0;}
.cform input:focus,.cform select:focus,.cform textarea:focus{outline:none;border-color:var(--ink-strong);}
.cform textarea{min-height:160px;resize:vertical;}
.cform .agree{display:flex;align-items:center;gap:10px;justify-content:center;font-family:var(--mincho-soft);font-size:14px;margin:30px 0;}
.cform .agree input{width:auto;}
.cform .submit-wrap{text-align:center;}

/* 規約・プライバシー本文 */
.legal{max-width:760px;margin:0 auto;font-size:14px;line-height:2.2;letter-spacing:.02em;color:var(--ink);}
.legal>p{margin-bottom:18px;}
.legal h3{font-family:var(--mincho);font-weight:700;font-size:16px;letter-spacing:.06em;color:var(--ink-strong);margin:32px 0 12px;}
.legal .rev{font-size:12px;color:var(--muted);margin-top:32px;}

@media (max-width:880px){
  .profile{grid-template-columns:1fr;gap:26px;max-width:360px;}
  .mvv{grid-template-columns:1fr;gap:40px;max-width:360px;}
  .mvv__item{padding-top:46px;}
  .closing-grid{grid-template-columns:1fr;gap:28px;}
  .tl-item{grid-template-columns:68px 1fr;gap:14px;padding-left:26px;padding-bottom:42px;}
  .spec .row{grid-template-columns:104px 1fr;gap:14px;}
}

/* ===== 行末1文字の孤立対策（孤立防止＋スマホでPC用<br>を無効化） ===== */
/* 対応ブラウザで行末の孤立を自動回避（PC・スマホ共通） */
.hero h1, .hero__lead, .about-feature__lead, .brands-lead, .feature-row__box h3, .feature-row__box p,
.partners-body, .partners-note, .contact-body, .mvv__item h3, .faces-lead, .product-hero__lead,
.about-hero__title, .closing-text p, .container > p { text-wrap: pretty; }

/* スマホ：PC用に入れた装飾改行を無効化（住所・規約・Brands/Products見出しは維持） */
@media (max-width: 680px) {
  .hero__lead br,
  .about-feature__lead br,
  .brands-lead br,
  .feature-row__box h3 br,
  .partners-body br,
  .partners-note br,
  .contact-body br,
  .mvv__item h3 br,
  .faces-lead br,
  .product-hero__lead br,
  .about-hero__title br,
  .closing-text p br { display: none; }
  /* スマホはボタンをコンパクトに（はみ出し防止） */
  .btn { padding: 15px 26px; letter-spacing: .04em; font-size: 14px; gap: 9px; }
}

/* ボタンの文字は折り返さない（プロダクトについて等の崩れ防止） */
.btn { white-space: nowrap; }

/* ===== スマホ：ヒーロー／About は写真を切り抜かず全体を見せる ===== */
@media (max-width:680px){
  /* ヒーロー：写真は元の3:2比率で全幅表示。コピーは写真の下の暗背景へ */
  .hero{min-height:0;display:block;background:#1c1c1c;padding-top:var(--header-h);}
  .hero__bg{position:relative;inset:auto;height:auto;aspect-ratio:3/2;}
  .hero__bg::after{background:none;}
  .hero__slide{animation:none!important;} /* ズーム演出を止めて全体が見えるように */
  .hero__inner{position:static;padding:34px 0 60px;}
  .hero h1{text-shadow:none;}
  .hero__lead{text-shadow:none;}
  .hero__scroll{display:none;}

  /* About（事業紹介）：背景写真を3:2で全体表示し、本文はその下の暗背景へ */
  .about-feature{padding-top:0;}
  .about-feature__bg{position:relative;inset:auto;aspect-ratio:3/2;}
  .about-feature__bg::after{background:none;}
  .about-feature__inner{padding-top:46px;}
}
