/*
Theme Name: AZ AEON
Theme URI: https://az-aeon.com/
Author: Rinrinta
Description: エーズィー・イオン株式会社 コーポレートサイト用オリジナルテーマ（図工室風ミニマルデザイン）
Version: 1.0.0
Requires PHP: 7.4
Text Domain: azaeon
*/

:root{
  --az-gray-text:#595656;
  --gray:#777777;
  --line:#e3e3e3;
  --az-red:#B60440;
  --az-red-dark:#650626;
  --az-red-pale:#FAF2F5;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;font-size:100%;}
body{
  font-family:"Noto Sans JP","Yu Gothic","YuGothic","Hiragino Kaku Gothic ProN",sans-serif;
  color:var(--az-gray-text);background:#fff;font-size:16px;line-height:1.8;
}
:lang(zh){font-family:"Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.en{font-family:"Oswald",Arial,"Helvetica Neue",sans-serif;letter-spacing:.14em;}

/* header（赤×白基調） */
header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  background:rgba(182,4,64,.8);
  backdrop-filter:blur(2px);
  -webkit-backdrop-filter:blur(2px);
  transition:background-color .3s;
}
header.is-scrolled{background:rgba(101,6,38,.94);}
.header-inner{max-width:1560px;margin:0 auto;padding:0 20px;height:96px;display:flex;align-items:center;justify-content:space-between;transition:height .3s ease;}
.header-right{display:flex;align-items:center;gap:26px;}
.logo{display:flex;align-items:center;gap:16px;}
.logo-img{height:60px;width:auto;display:block;transition:height .3s ease;}
.logo .name{font-size:12.5px;color:rgba(255,255,255,.75);letter-spacing:.1em;}
nav ul{display:flex;gap:0;list-style:none;}
nav li{border-left:1px solid rgba(255,255,255,.25);}
nav li:last-child{border-right:1px solid rgba(255,255,255,.25);}
nav a{display:flex;align-items:center;height:96px;position:relative;font-size:22px;font-weight:700;letter-spacing:.14em;padding:0 32px;color:#fff;transition:opacity .25s,height .3s ease,font-size .3s ease;}
nav a:hover,nav a:focus-visible{opacity:.7;}
nav a.current::after{
  content:"";position:absolute;left:32px;right:32px;bottom:10px;height:2px;background:#fff;
}
.menu-btn{display:none;}

/* スクロール後：ヘッダーを縮小（大きさと閲覧の邪魔にならなさを両立） */
header.is-scrolled .header-inner{height:70px;}
header.is-scrolled .logo-img{height:44px;}
header.is-scrolled nav a{height:70px;font-size:18px;}

/* 言語スイッチャー */
.lang-switch{display:flex;align-items:center;gap:14px;font-size:16px;letter-spacing:.06em;}
.lang-switch a{color:rgba(255,255,255,.6);transition:color .25s;}
.lang-switch a:hover,.lang-switch a:focus-visible{color:#fff;}
.lang-switch a.is-current{color:#fff;font-weight:700;border-bottom:1px solid #fff;padding-bottom:2px;}

/* WP管理者バー分のオフセット */
body.admin-bar header{top:32px;}
@media(max-width:782px){
  body.admin-bar header{top:46px;}
}

/* main visual */
.mv{position:relative;overflow:hidden;}
.mv img{
  width:100%;height:70vh;min-height:420px;object-fit:cover;
  animation:mvKenBurns 18s ease-out forwards;
  will-change:transform;
}
.mv .catch{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(transparent,rgba(101,6,38,.78));color:#fff;padding:70px 20px 26px;}
.mv .catch-inner{max-width:1560px;margin:0 auto;}
.mv .catch h1{
  font-size:clamp(20px,2.8vw,33px);font-weight:700;letter-spacing:.14em;text-shadow:0 1px 8px rgba(0,0,0,.5);
  opacity:0;transform:translateY(24px);
  animation:catchFadeUp .8s ease-out .3s forwards;
}
.mv .catch .sub{
  font-size:13px;letter-spacing:.28em;color:rgba(255,255,255,.85);margin-top:4px;font-weight:400;
  opacity:0;transform:translateY(24px);
  animation:catchFadeUp .8s ease-out .6s forwards;
}
@keyframes mvKenBurns{
  from{transform:scale(1.08);}
  to{transform:scale(1);}
}
@keyframes catchFadeUp{
  to{opacity:1;transform:translateY(0);}
}

/* マーキーストリップ */
.marquee{
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  overflow:hidden;white-space:nowrap;background:#fff;
}
.marquee-track{
  display:inline-flex;width:max-content;
  animation:marqueeScroll 28s linear infinite;
  will-change:transform;
}
.marquee-item{display:inline-block;padding:14px 0;font-size:13px;letter-spacing:.12em;color:#c8cdd4;}
.marquee-item .dot{color:var(--az-red);padding:0 18px;}
@keyframes marqueeScroll{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}

/* 下層ページヘッダー（写真に赤グラデーションを重ねる） */
.page-header{position:relative;overflow:hidden;}
.page-header img{width:100%;height:230px;object-fit:cover;filter:brightness(.68);}
.page-header::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(160deg,rgba(101,6,38,.6),rgba(182,4,64,.68));
}
.page-header .txt{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;color:#fff;padding:0 20px;text-shadow:0 1px 6px rgba(0,0,0,.4);}
.page-header .en-title{font-size:35px;font-weight:700;letter-spacing:.26em;}
.page-header .ja{font-size:14px;letter-spacing:.2em;}
.breadcrumb{max-width:1100px;margin:0 auto;padding:14px 20px;font-size:12.5px;color:var(--gray);letter-spacing:.08em;}
.breadcrumb a:hover{color:var(--az-red);text-decoration:underline;}

/* 記事タイトル用ページヘッダー（NEWS個別：可変高さ・折返し前提） */
.page-header--article{overflow:visible;min-height:230px;}
.page-header--article img{position:absolute;inset:0;width:100%;height:100%;}
.page-header--article .txt{position:relative;inset:auto;z-index:1;padding:84px 20px 40px;}
.page-header--article .post-title{
  font-size:clamp(16px,3.6vw,24px);
  font-weight:700;
  letter-spacing:.04em;
  line-height:1.6;
  max-width:760px;
  text-align:center;
  text-shadow:0 1px 8px rgba(0,0,0,.5);
}

/* services (top) */
.services{padding:0;}
.service{display:grid;grid-template-columns:420px 1fr;min-height:340px;border-bottom:1px solid var(--line);}
.service:nth-child(even){grid-template-columns:1fr 420px;}
.service:nth-child(even) .txt{order:2;}
.service .txt{display:flex;flex-direction:column;justify-content:center;padding:40px 44px;}
.service .num-line{display:flex;align-items:baseline;gap:14px;}
.service .num{font-size:16px;color:var(--gray);letter-spacing:.2em;font-weight:700;}
.service .en-name{font-size:33px;font-weight:700;letter-spacing:.1em;color:var(--az-gray-text);}
.service h2{font-size:18px;font-weight:700;letter-spacing:.12em;margin-top:6px;}
.service h2::after{content:"";display:block;width:36px;height:2px;background:var(--az-red);margin-top:14px;transition:width .4s;}
.service:hover h2::after{width:64px;}
.view-more{display:inline-block;margin-top:26px;font-size:12.5px;font-weight:700;letter-spacing:.24em;border:1px solid var(--az-red);background:var(--az-red);color:#fff;padding:12px 40px;align-self:flex-start;transition:background .25s,border-color .25s;}
.view-more:hover{background:var(--az-red-dark);border-color:var(--az-red-dark);}
.service .ph{position:relative;overflow:hidden;}
.service .ph img{width:100%;height:100%;object-fit:cover;filter:brightness(.62);transition:transform .5s,filter .5s;}
.service .ph::after{
  content:attr(data-en);
  position:absolute;right:16px;bottom:8px;
  font-family:"Oswald",Arial,sans-serif;
  font-size:44px;font-weight:700;letter-spacing:.04em;line-height:1;
  color:rgba(255,255,255,.28);
  transition:color .5s;
  pointer-events:none;
}
.service:hover .ph img{transform:scale(1.05);filter:brightness(1);}
.service:hover .ph::after{color:rgba(255,255,255,.55);}
.service:hover .view-more{background:var(--az-red-dark);border-color:var(--az-red-dark);}

/* stats band */
.stats{border-bottom:1px solid var(--line);}
.stats-inner{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr 1fr;}
.stat{text-align:center;padding:44px 20px;border-left:1px solid var(--line);}
.stat:first-child{border-left:none;}
.stat-num{display:block;font-family:"Oswald",Arial,sans-serif;font-size:clamp(26px,4vw,44px);font-weight:700;color:var(--az-red);letter-spacing:.02em;line-height:1;}
.stat-label{display:block;margin-top:12px;font-size:13px;letter-spacing:.18em;color:var(--gray);}
.stat-label-ja{display:block;margin-top:4px;font-size:12px;letter-spacing:.12em;color:var(--gray);}

/* wide banner（写真に赤グラデーションを重ねる） */
.wide-banner{position:relative;display:block;overflow:hidden;}
.wide-banner img{width:100%;height:300px;object-fit:cover;filter:brightness(.65);transition:filter .5s,transform .5s;}
.wide-banner:hover img{filter:brightness(.9);transform:scale(1.03);}
.wide-banner::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(160deg,rgba(101,6,38,.58),rgba(182,4,64,.66));
}
.wide-banner .txt{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px;color:#fff;text-align:center;padding:0 20px;text-shadow:0 1px 6px rgba(0,0,0,.4);}
.wide-banner .en-title{font-size:32px;font-weight:700;letter-spacing:.26em;}
.wide-banner .ja{font-size:14px;letter-spacing:.2em;}
.wide-banner .vm{font-size:12px;letter-spacing:.26em;border:1px solid rgba(255,255,255,.8);padding:10px 34px;margin-top:12px;transition:background .25s;}
.wide-banner:hover .vm{background:rgba(255,255,255,.18);}

/* news */
.news{padding:64px 20px;}
.news .inner{max-width:1100px;margin:0 auto;}
.news--archive{padding:0;}
.news--archive .inner{max-width:none;}
.news .head{display:flex;align-items:baseline;gap:16px;margin-bottom:26px;}
.news .head .en-title{font-size:32px;font-weight:700;letter-spacing:.18em;}
.news .head .ja-title{font-size:14px;color:var(--gray);letter-spacing:.16em;}
.news ul{list-style:none;border-top:1px solid var(--line);}
.news li{
  display:flex;gap:26px;align-items:baseline;
  padding:18px 6px 18px 8px;
  border-bottom:1px solid var(--line);font-size:16px;
  transition:background .25s,padding-left .25s;
}
.news li:hover{background:var(--az-red-pale);padding-left:18px;}
.news time{color:var(--gray);font-size:14px;white-space:nowrap;letter-spacing:.06em;}
.news li:hover a{color:var(--az-red);text-decoration:underline;}
.news .all{margin-top:24px;text-align:center;}
.news .all a{display:inline-block;font-size:12.5px;font-weight:700;letter-spacing:.24em;border:1px solid var(--az-red);background:var(--az-red);color:#fff;padding:12px 46px;transition:background .25s,border-color .25s;}
.news .all a:hover{background:var(--az-red-dark);border-color:var(--az-red-dark);}

/* CTA（写真に赤グラデーションを重ねる） */
.cta{display:grid;grid-template-columns:1fr 1fr;}
.cta a{position:relative;display:block;overflow:hidden;}
.cta a img{width:100%;height:250px;object-fit:cover;filter:brightness(.65);transition:filter .5s,transform .5s;}
.cta a:hover img{filter:brightness(.9);transform:scale(1.04);}
.cta a::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(160deg,rgba(101,6,38,.58),rgba(182,4,64,.66));
}
.cta .txt{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.4);}
.cta .en-title{font-size:26px;font-weight:700;letter-spacing:.24em;}
.cta .ja{font-size:14px;letter-spacing:.2em;}
.cta .vm{font-size:12px;letter-spacing:.26em;border:1px solid rgba(255,255,255,.8);padding:8px 28px;margin-top:10px;transition:background .25s;}
.cta a:hover .vm{background:rgba(255,255,255,.18);}

/* footer（深めの赤・白文字） */
footer{padding:52px 20px 24px;background:var(--az-red-dark);}
.foot-inner{max-width:1560px;margin:0 auto;text-align:center;}

/* footer サイトマップ */
.foot-sitemap{display:grid;grid-template-columns:repeat(5,1fr);gap:28px;text-align:left;padding-bottom:36px;margin-bottom:36px;border-bottom:1px solid rgba(255,255,255,.2);}
.foot-sitemap-title{display:block;padding:0 0 10px;font-size:14px;font-weight:700;letter-spacing:.03em;line-height:1.5;color:#fff;margin-bottom:10px;border-bottom:1px solid rgba(255,255,255,.25);transition:opacity .25s;}
.foot-sitemap-title:hover{opacity:.75;}
.foot-sitemap-title .ja{display:block;font-size:14px;font-weight:400;letter-spacing:.06em;color:rgba(255,255,255,.7);margin-top:3px;}
.foot-sitemap-col{min-width:0;}
.foot-sitemap-col ul{list-style:none;}
.foot-sitemap-col li{margin-top:10px;}
.foot-sitemap-col .cat-link{display:block;padding:0;font-size:14px;font-weight:400;letter-spacing:.02em;color:rgba(255,255,255,.72);transition:color .25s;word-break:normal;overflow-wrap:normal;line-break:strict;}
.foot-sitemap-col .cat-link:hover{color:#fff;}

/* PC(1200px以上)=5カラム / タブレット(768〜1199px)=3カラム / SP(767px以下)=1カラム縦積み */
@media(max-width:1199px){
  .foot-sitemap{grid-template-columns:repeat(3,1fr);}
}
@media(max-width:767px){
  .foot-sitemap{grid-template-columns:repeat(1,1fr);gap:32px;}
}
.foot-logo{display:flex;justify-content:center;}
.footer-logo-img{height:36px;width:auto;}
.foot-info{margin-top:16px;font-size:14px;color:rgba(255,255,255,.85);line-height:2;}
.foot-info a{color:#fff;}
.foot-links{margin-top:24px;display:flex;justify-content:center;gap:8px;list-style:none;flex-wrap:wrap;}
.foot-links li{padding:0 14px;border-right:1px solid rgba(255,255,255,.25);}
.foot-links li:last-child{border-right:none;}
.foot-links a{font-size:12.5px;letter-spacing:.16em;color:rgba(255,255,255,.85);}
.foot-links a:hover{color:#fff;}
.copy{margin-top:34px;font-size:12px;color:rgba(255,255,255,.68);letter-spacing:.1em;text-align:center;}

/* 下層共通 */
.content{max-width:1100px;margin:0 auto;padding:56px 20px 80px;}
.sec-title{display:flex;align-items:baseline;gap:16px;margin-bottom:30px;}
.sec-title .en-title{font-size:30px;font-weight:700;letter-spacing:.18em;}
.sec-title .ja-title{font-size:14px;color:var(--gray);letter-spacing:.16em;}
.lead{font-size:16px;color:#444;margin-bottom:44px;line-height:1.9;}

/* company */
.greeting{display:grid;grid-template-columns:1fr 320px;gap:40px;align-items:start;margin-bottom:70px;}
.greeting .ph img{filter:brightness(.85);}
.greeting p{font-size:16px;color:#444;margin-bottom:1.2em;}
.greeting .sign{text-align:right;font-size:15px;font-weight:700;margin-top:10px;}
.company-table{width:100%;border-collapse:collapse;font-size:16px;}
.company-table th,.company-table td{border-bottom:1px solid var(--line);padding:18px 12px;text-align:left;vertical-align:top;}
.company-table th{width:200px;font-weight:700;letter-spacing:.1em;color:var(--az-gray-text);background:var(--az-red-pale);}

/* services 下層 */
.service-detail{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--line);margin-bottom:44px;}
.service-detail .ph{overflow:hidden;}
.service-detail .ph img{width:100%;height:100%;min-height:280px;object-fit:cover;filter:brightness(.62);transition:filter .5s,transform .5s;}
.service-detail:hover .ph img{filter:brightness(1);transform:scale(1.03);}
.service-detail .txt{padding:38px 40px;display:flex;flex-direction:column;justify-content:center;}
.service-detail .num-line{display:flex;align-items:baseline;gap:12px;}
.service-detail .num{font-size:15px;color:var(--gray);letter-spacing:.2em;font-weight:700;}
.service-detail .en-name{font-size:26px;font-weight:700;letter-spacing:.1em;}
.service-detail h2{font-size:17px;font-weight:700;letter-spacing:.12em;margin-top:4px;}
.service-detail h2::after{content:"";display:block;width:36px;height:2px;background:var(--az-red);margin-top:12px;transition:width .4s;}
.service-detail:hover h2::after{width:64px;}
.service-detail p{font-size:16px;color:#555;margin-top:14px;}

/* services 下層：詳細情報（取引先・製品ポートフォリオ・競争優位性） */
.service-extra{grid-column:1 / -1;padding:0 40px 40px;}
.service-extra h3{font-size:14px;font-weight:700;letter-spacing:.1em;margin-top:28px;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--line);}
.service-extra h3:first-child{margin-top:4px;}
.partner-list{font-size:15px;color:#555;letter-spacing:.04em;line-height:2;}
.tag-list{font-size:15px;color:#555;line-height:2.2;}
.portfolio-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:24px;}
.portfolio-grid h4{font-size:14px;font-weight:700;letter-spacing:.06em;color:var(--az-gray-text);margin-bottom:8px;}
.portfolio-grid ul{list-style:none;font-size:14px;color:#666;line-height:1.9;}
.col-list{list-style:none;columns:2;column-gap:32px;font-size:15px;color:#555;line-height:2.2;}
.advantage-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;}
.advantage-grid h4{font-size:14px;font-weight:700;letter-spacing:.08em;color:var(--az-red);}
.advantage-grid p{font-size:14px;color:#555;margin-top:6px;}

/* services 下層：ブランド公式サイトへの誘導カード（beauty） */
.brand-links-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;}
.brand-link-card{border:1px solid var(--line);padding:22px 24px;display:flex;flex-direction:column;}
.brand-link-card h4{font-size:16px;font-weight:700;letter-spacing:.06em;}
.brand-link-card p{font-size:14px;color:#555;margin-top:10px;line-height:1.8;flex:1;}
.brand-link-card .view-more{margin-top:18px;display:inline-flex;align-items:center;gap:8px;align-self:flex-start;font-size:11.5px;padding:11px 24px;}
.brand-link-card .ext-icon{width:13px;height:13px;flex:none;}

/* services 下層：主要取扱コモディティ ギャラリー（commodities） */
.commodity-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.commodity-card{border:1px solid var(--line);overflow:hidden;}
.commodity-card img{width:100%;aspect-ratio:4/3;object-fit:cover;filter:brightness(.92);transition:filter .4s,transform .4s;}
.commodity-card:hover img{filter:brightness(1);transform:scale(1.03);}
.commodity-card figcaption{padding:10px 12px;font-size:14px;font-weight:700;letter-spacing:.04em;}
.commodity-card figcaption .en{display:block;margin-top:2px;font-size:11px;font-weight:400;color:var(--gray);letter-spacing:.06em;}
@media(max-width:640px){
  .commodity-gallery{grid-template-columns:repeat(2,1fr);}
}

/* services 下層：グローバルソーシング図（commodities） */
.sourcing-diagram{margin:8px auto 0;max-width:700px;}
.sourcing-tier{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;}
.sourcing-connector{width:1px;height:22px;background:var(--line);margin:0 auto;}
.sourcing-node{border:1px solid var(--line);padding:14px 18px;text-align:center;min-width:150px;flex:1;}
.sourcing-node .en{display:block;font-size:14px;font-weight:700;letter-spacing:.06em;color:var(--az-gray-text);}
.sourcing-node .sub{display:block;font-size:12.5px;color:var(--gray);margin-top:4px;}
.sourcing-node.hub{max-width:220px;margin:0 auto;background:var(--az-red);border-color:var(--az-red);}
.sourcing-node.hub .en{color:#fff;font-size:15px;}

/* services 下層：即納在庫体制などの補足ボックス */
.note-box{margin-top:24px;padding:16px 20px;background:var(--az-red-pale);border-left:2px solid var(--az-red);font-size:14px;color:#555;line-height:1.9;}
.note-box .en{letter-spacing:.1em;color:var(--az-red);font-size:12px;}

/* カテゴリ（第3階層）：取扱品目テーブル（簡易一覧・非構造化データ用） */
.product-table{width:100%;border-collapse:collapse;font-size:14px;}
.product-table td{padding:12px 4px;border-bottom:1px solid var(--line);color:#444;}
.product-table tr:first-child td{border-top:1px solid var(--line);}

/* カテゴリ冒頭のリード文 */
.category-lead{margin-bottom:36px;padding-bottom:28px;border-bottom:1px solid var(--line);}

/* カテゴリ（第3階層）：製品アコーディオン */
.product-accordion-list{border-top:1px solid var(--line);}
.product-accordion{border-bottom:1px solid var(--line);}
.product-accordion-trigger{
  display:flex;align-items:center;justify-content:space-between;width:100%;
  padding:16px 4px;background:none;border:none;cursor:pointer;text-align:left;
  font-family:inherit;transition:color .25s;
}
.product-accordion-trigger:hover{color:var(--az-red);}
.product-accordion-name{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;}
.product-accordion-name .en{font-size:15px;font-weight:700;letter-spacing:.04em;}
.product-accordion-name .ja{font-size:14px;color:var(--gray);}
.accordion-icon{position:relative;flex:none;width:14px;height:14px;margin-left:16px;}
.accordion-icon::before,.accordion-icon::after{content:"";position:absolute;top:50%;left:50%;background:var(--az-gray-text);transition:transform .3s;}
.accordion-icon::before{width:14px;height:1.5px;transform:translate(-50%,-50%);}
.accordion-icon::after{width:1.5px;height:14px;transform:translate(-50%,-50%);}
.product-accordion-trigger[aria-expanded="true"] .accordion-icon::after{transform:translate(-50%,-50%) rotate(90deg);opacity:0;}

.product-accordion-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s ease;}
.product-accordion-panel > .product-accordion-inner{overflow:hidden;}
.product-accordion.is-open .product-accordion-panel{grid-template-rows:1fr;}
.accordion-overview{font-size:16px;color:#555;padding:0 4px 14px;}
.accordion-meta{padding:0 4px 14px;font-size:14px;}
.accordion-meta dt{font-weight:700;letter-spacing:.06em;color:var(--az-gray-text);margin-top:8px;}
.accordion-meta dt:first-child{margin-top:0;}
.accordion-meta dd{color:#555;margin-top:3px;}
.tag-chips{display:flex;flex-wrap:wrap;gap:8px;padding:0 4px 18px;}
.tag-chip{font-size:12px;letter-spacing:.06em;color:var(--gray);border:1px solid var(--line);padding:4px 10px;}

.spec-disclaimer{margin-top:24px;font-size:13px;color:var(--gray);}

/* 事業部ページ：カテゴリ一覧カードナビ */
.category-nav-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;}
.category-nav-card{display:block;border:1px solid var(--line);padding:20px 22px;transition:border-color .25s,background .25s;}
.category-nav-card:hover{border-color:var(--az-red);background:var(--az-red-pale);}
.category-nav-card .num{display:block;font-size:13px;color:var(--gray);letter-spacing:.15em;}
.category-nav-card .en-name{display:block;margin-top:6px;font-size:14px;font-weight:700;letter-spacing:.04em;line-height:1.5;}
.category-nav-card .ja-name{display:block;margin-top:4px;font-size:13px;color:var(--gray);}
.category-nav-card .vm{display:inline-block;margin-top:14px;font-size:11.5px;font-weight:700;letter-spacing:.2em;color:var(--az-red);}

/* カテゴリページ：同事業部内の他カテゴリ */
.sibling-categories{margin-top:56px;padding-top:40px;border-top:1px solid var(--line);}
.sibling-list{list-style:none;border-top:1px solid var(--line);margin-bottom:28px;}
.sibling-list li{border-bottom:1px solid var(--line);}
.sibling-list a{display:flex;align-items:baseline;gap:14px;padding:16px 6px;font-size:15px;transition:color .25s,padding-left .25s;}
.sibling-list a:hover{color:var(--az-red);padding-left:10px;}
.sibling-list .num{font-size:13px;color:var(--gray);letter-spacing:.1em;}

/* services 下層：他の事業部ナビ */
.other-divisions{padding:70px 20px;background:var(--az-red-pale);border-top:1px solid var(--line);}
.other-divisions .sec-title{max-width:1100px;margin:0 auto 30px;}
.other-divisions-grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.other-division-card{display:block;position:relative;overflow:hidden;border:1px solid var(--line);background:#fff;transition:border-color .25s;}
.other-division-card:hover{border-color:var(--az-gray-text);}
.other-division-card img{width:100%;height:130px;object-fit:cover;filter:brightness(.62);transition:transform .5s,filter .5s;}
.other-division-card:hover img{transform:scale(1.05);filter:brightness(1);}
.other-division-card .num{position:absolute;top:10px;left:10px;color:#fff;font-size:13px;letter-spacing:.15em;text-shadow:0 1px 4px rgba(0,0,0,.6);}
.other-division-card .en-name{display:block;padding:14px 14px 2px;font-size:13px;font-weight:700;letter-spacing:.04em;line-height:1.5;}
.other-division-card .ja-name{display:block;padding:0 14px 16px;font-size:12px;color:var(--gray);}

/* services 下層：CONTACT CTA */
.service-cta{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;padding:56px 20px;}
.service-cta .en-title{font-size:26px;font-weight:700;letter-spacing:.2em;color:var(--az-gray-text);}
.service-cta .ja{font-size:14px;color:var(--gray);}
.service-cta .vm{display:inline-block;margin-top:10px;font-size:12px;font-weight:700;letter-spacing:.24em;border:1px solid var(--az-red);background:var(--az-red);color:#fff;padding:12px 40px;transition:background .25s,border-color .25s;}
.service-cta:hover .vm{background:var(--az-red-dark);border-color:var(--az-red-dark);}

/* contact */
.contact-form{max-width:720px;margin:0 auto;}
.form-row{margin-bottom:26px;}
.form-row label{display:block;font-size:15px;font-weight:700;letter-spacing:.1em;margin-bottom:8px;}
.form-row .req{font-size:11px;color:#fff;background:var(--az-red);padding:2px 8px;margin-left:10px;letter-spacing:.14em;vertical-align:middle;}
.form-row input,.form-row textarea{
  width:100%;border:1px solid var(--line);padding:13px 14px;font-size:16px;
  font-family:inherit;background:var(--az-red-pale);
}
.form-row input:focus,.form-row textarea:focus{outline:2px solid var(--az-red);background:#fff;}
.form-row textarea{min-height:180px;resize:vertical;}
.form-submit{text-align:center;margin-top:38px;}
.form-submit button,
.form-submit input[type="submit"]{
  font-size:13px;font-weight:700;letter-spacing:.26em;border:1px solid var(--az-red);
  background:var(--az-red);color:#fff;padding:15px 70px;cursor:pointer;transition:background .25s,border-color .25s;font-family:inherit;
}
.form-submit button:hover,
.form-submit input[type="submit"]:hover{background:var(--az-red-dark);border-color:var(--az-red-dark);}
.contact-note{font-size:14px;color:var(--gray);margin-bottom:34px;text-align:center;}
.contact-note a{color:var(--az-red);text-decoration:underline;}

/* Contact Form 7 調整 */
.wpcf7-form-control-wrap{display:block;}
.wpcf7-not-valid-tip{color:#c0392b;font-size:13px;margin-top:6px;}
.wpcf7 .wpcf7-response-output{
  margin-top:26px;border:1px solid var(--line);padding:14px 18px;font-size:14px;text-align:center;
}
.wpcf7-mail-sent-ok{border-color:var(--az-gray-text)!important;color:var(--az-gray-text);}
.wpcf7-validation-errors,.wpcf7-mail-sent-ng{border-color:#c0392b!important;color:#c0392b;}
.wpcf7-spinner{margin:0 0 0 10px;}

/* タブレット横〜小型PC：ナビとの衝突回避 */
/* 901〜1400px：大型化したナビが収まりきらない帯域。文字サイズは20px
   （指示の20〜22px範囲の下限）を維持したまま、letter-spacing と
   項目間パディングを詰めて吸収する。和文サブテキストも非表示にする */
@media(min-width:901px) and (max-width:1400px){
  .logo .name{display:none;}
  .header-right{gap:16px;}
  nav a{padding:0 16px;font-size:20px;letter-spacing:.08em;}
}

/* ハンバーガーメニュー */
@media(max-width:900px){
  .service,.service:nth-child(even){grid-template-columns:1fr;}
  .service:nth-child(even) .txt{order:0;}
  .service .ph img{height:230px;}
  .cta{grid-template-columns:1fr;}
  nav{display:none;}
  .logo .name{display:none;}
  .logo-img{height:34px;}
  nav.is-open{
    display:block;position:fixed;top:96px;left:0;right:0;bottom:0;
    background:rgba(101,6,38,.96);backdrop-filter:blur(2px);
    z-index:99;overflow-y:auto;
    animation:navFadeIn .25s ease;
  }
  header.is-scrolled nav.is-open{top:70px;}
  nav.is-open ul{flex-direction:column;}
  nav.is-open li{border-left:none;border-bottom:1px solid rgba(255,255,255,.15);}
  nav.is-open li:last-child{border-right:none;}
  nav.is-open a{display:block;height:auto;padding:22px 24px;font-size:19px;}
  nav.is-open a.current::after{left:24px;right:auto;bottom:14px;width:20px;}
  .menu-btn{display:block;font-size:11px;font-weight:700;letter-spacing:.22em;background:none;color:#fff;border:1px solid rgba(255,255,255,.5);padding:8px 16px;cursor:pointer;}
  .menu-btn.is-active{background:#fff;color:#000;border-color:#fff;}
  body.nav-open{overflow:hidden;}
  .service .txt{padding:30px 20px;}
  .greeting{grid-template-columns:1fr;}
  .service-detail{grid-template-columns:1fr;}
  .company-table th{width:120px;}
  .service .ph::after{font-size:32px;right:12px;bottom:6px;}
  .stats-inner{grid-template-columns:1fr;}
  .stat{border-left:none;border-top:1px solid var(--line);}
  .stat:first-child{border-top:none;}
  .service-extra{padding:0 20px 30px;}
  .col-list{columns:1;}
  .other-divisions-grid{grid-template-columns:repeat(2,1fr);}
  .sourcing-node{min-width:100%;}
}
@keyframes navFadeIn{from{opacity:0;transform:translateY(-6px);}to{opacity:1;transform:translateY(0);}}

/* スクロール出現（IntersectionObserverでis-visibleを付与） */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s ease-out,transform .8s ease-out;}
.reveal.is-visible{opacity:1;transform:translateY(0);}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition:none!important;
  }
}

/* WP調整 */
.wp-block-image img{height:auto;}
.news-single{max-width:800px;margin:0 auto;padding:56px 20px 80px;}
.news-single .date{color:var(--gray);font-size:14px;letter-spacing:.06em;}
.news-single .body{margin-top:30px;font-size:16px;color:#444;}
.news-single .body p{margin-bottom:1.4em;}
.back-link{display:inline-block;margin-top:40px;font-size:12.5px;font-weight:700;letter-spacing:.24em;border:1px solid var(--az-red);background:var(--az-red);color:#fff;padding:12px 40px;transition:background .25s,border-color .25s;}
.back-link:hover{background:var(--az-red-dark);border-color:var(--az-red-dark);}

/* privacy */
.privacy-content{max-width:900px;font-size:16px;}
.privacy-heading{font-size:17px;font-weight:700;letter-spacing:.08em;margin:34px 0 10px;}

/* AI コンシェルジュ */
.az-concierge-btn{
  position:fixed;right:24px;bottom:24px;z-index:200;
  display:flex;align-items:center;gap:9px;
  padding:14px 22px 14px 18px;border-radius:999px;
  background:var(--az-red);color:#fff;border:none;cursor:pointer;
  box-shadow:0 4px 18px rgba(0,0,0,.25);
  transition:background .25s,transform .25s;
}
.az-concierge-btn:hover{background:var(--az-red-dark);transform:translateY(-2px);}
.az-concierge-btn.is-active{background:var(--az-red-dark);}
.az-concierge-btn svg{width:17px;height:17px;flex:none;}
.az-concierge-btn .label{font-size:11px;font-weight:700;letter-spacing:.2em;}

.az-concierge-panel{
  position:fixed;right:24px;bottom:92px;z-index:201;
  width:360px;max-width:calc(100vw - 40px);height:520px;max-height:calc(100vh - 140px);
  background:#fff;border:1px solid var(--line);border-radius:6px;
  display:flex;flex-direction:column;overflow:hidden;
  box-shadow:0 10px 40px rgba(0,0,0,.18);
  opacity:0;transform:translateY(16px) scale(.98);pointer-events:none;
  transition:opacity .25s ease,transform .25s ease;
}
.az-concierge-panel.is-open{opacity:1;transform:translateY(0) scale(1);pointer-events:auto;}

.az-concierge-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;background:var(--az-red-dark);color:#fff;flex:none;}
.az-concierge-head .ttl{display:block;font-size:12px;font-weight:700;letter-spacing:.18em;}
.az-concierge-head .sub{display:block;font-size:10.5px;color:#ddd;letter-spacing:.04em;margin-top:3px;}
.az-concierge-close{background:none;border:none;color:#fff;font-size:20px;line-height:1;cursor:pointer;padding:4px;}

.az-concierge-body{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px;}
.az-msg{max-width:86%;font-size:14.5px;line-height:1.75;padding:10px 13px;border:1px solid var(--line);white-space:pre-wrap;word-break:break-word;}
.az-msg.user{align-self:flex-end;background:var(--az-gray-text);color:#fff;border-color:var(--az-gray-text);}
.az-msg.bot{align-self:flex-start;background:var(--az-red-pale);color:var(--az-gray-text);}
.az-msg a{color:inherit;text-decoration:underline;}
.az-msg.error{border-color:#c0392b;color:#c0392b;background:#fff5f5;}

.az-concierge-typing{align-self:flex-start;padding:0 4px;}
.az-typing-dots{display:inline-flex;gap:4px;padding:10px 13px;}
.az-typing-dots span{width:5px;height:5px;border-radius:50%;background:var(--gray);animation:az-typing-bounce 1.2s infinite ease-in-out;}
.az-typing-dots span:nth-child(2){animation-delay:.15s;}
.az-typing-dots span:nth-child(3){animation-delay:.3s;}
@keyframes az-typing-bounce{0%,80%,100%{opacity:.3;transform:translateY(0);}40%{opacity:1;transform:translateY(-3px);}}

.az-concierge-foot{flex:none;border-top:1px solid var(--line);padding:12px;display:flex;gap:8px;align-items:flex-end;}
.az-concierge-input{flex:1;resize:none;border:1px solid var(--line);padding:10px 12px;font-size:13px;font-family:inherit;max-height:80px;line-height:1.5;}
.az-concierge-input:focus{outline:none;border-color:var(--az-gray-text);}
.az-concierge-send{flex:none;border:1px solid var(--az-gray-text);background:none;padding:10px 16px;font-size:11px;font-weight:700;letter-spacing:.16em;cursor:pointer;transition:background .25s,color .25s;}
.az-concierge-send:hover:not(:disabled){background:var(--az-gray-text);color:#fff;}
.az-concierge-send:disabled{opacity:.35;cursor:not-allowed;}

@media(max-width:680px){
  .az-concierge-panel{right:0;left:0;bottom:0;top:0;width:100%;max-width:100%;height:100%;max-height:100%;border-radius:0;border:none;}
  .az-concierge-btn{right:16px;bottom:16px;padding:12px 18px 12px 14px;}
  .az-concierge-btn .label{font-size:10px;}
}

/* サイト内検索 */
.search-toggle{background:none;border:none;color:#fff;cursor:pointer;padding:10px;display:flex;align-items:center;transition:opacity .25s;}
.search-toggle:hover,.search-toggle.is-active{opacity:.7;}

.search-bar{max-height:0;overflow:hidden;background:rgba(101,6,38,.96);transition:max-height .35s ease;}
.search-bar.is-open{max-height:96px;}
.search-bar .site-search-form{max-width:1560px;margin:0 auto;padding:22px 20px;}

.site-search-form{display:flex;align-items:center;gap:14px;}
.site-search-input{
  flex:1;background:none;border:none;border-bottom:1px solid rgba(255,255,255,.4);
  color:#fff;font-size:15px;font-family:inherit;padding:8px 2px;
}
.site-search-input::placeholder{color:rgba(255,255,255,.5);}
.site-search-input:focus{outline:none;border-bottom-color:#fff;}
.site-search-submit{background:none;border:1px solid rgba(255,255,255,.5);color:#fff;font-size:11px;font-weight:700;letter-spacing:.18em;padding:10px 20px;cursor:pointer;transition:background .25s,color .25s;white-space:nowrap;}
.site-search-submit:hover{background:#fff;color:#000;}

.nav-search{display:none;}

/* 検索結果ページ */
.search-results-head{font-size:14px;color:var(--gray);letter-spacing:.04em;padding-bottom:24px;margin-bottom:24px;border-bottom:1px solid var(--line);}
.search-results-head strong{color:var(--az-gray-text);font-weight:700;}

.search-results-list{list-style:none;}
.search-result-item{padding:26px 0;border-bottom:1px solid var(--line);}
.search-result-breadcrumb{font-size:12px;color:var(--gray);letter-spacing:.06em;margin-bottom:6px;}
.search-result-title{display:inline-block;font-size:17px;font-weight:700;letter-spacing:.02em;color:var(--az-gray-text);transition:color .25s;}
.search-result-title:hover{color:var(--az-red);text-decoration:underline;}
.search-result-excerpt{margin-top:8px;font-size:15px;color:#555;line-height:1.8;}

.search-no-results{padding:40px 0;text-align:center;}
.search-no-results-msg{font-size:16px;color:var(--az-gray-text);margin-bottom:36px;}
.search-popular{margin-bottom:36px;}
.search-popular-label{display:block;font-size:12px;letter-spacing:.14em;color:var(--gray);margin-bottom:14px;}
.search-popular ul{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:10px;}
.search-popular a{display:inline-block;font-size:13.5px;border:1px solid var(--line);padding:9px 18px;transition:border-color .25s,color .25s;}
.search-popular a:hover{border-color:var(--az-gray-text);color:var(--az-red);}

/* ページネーション（NEWS一覧・検索結果で共通利用） */
.pagination,.navigation.pagination{display:flex;justify-content:center;gap:6px;margin-top:40px;}
.pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 10px;font-size:12.5px;border:1px solid var(--line);color:var(--az-gray-text);transition:background .25s,color .25s;}
.pagination .page-numbers.current{background:var(--az-gray-text);color:#fff;border-color:var(--az-gray-text);}
.pagination .page-numbers:not(.current):not(.dots):hover{border-color:var(--az-gray-text);}
.pagination .page-numbers.dots{border:none;}

@media(max-width:900px){
  .search-toggle,.search-bar{display:none;}
  .nav-search{display:block;padding:22px 24px 4px;}
  .nav-search .site-search-form{gap:10px;}
  .nav-search .site-search-input{border-bottom-color:rgba(255,255,255,.4);}
  .search-popular ul{gap:8px;}
}
