/*
 * 明熙株式会社 — 共通スタイルシート
 * 全ページ共通のCSS変数・リセット・ナビゲーション・フッター
 */

/* ===== CSS Variables ===== */
:root{
  --navy:#0C1D35; --navy-mid:#1A3358; --navy-light:#EEF2F8;
  --gold:#C4922A; --gold-light:#FBF4E8;
  --bg:#FFFFFF; --bg-soft:#F4F6F9; --bg-card:#FFFFFF;
  --text-h:#0C1D35; --text-b:#2D3748; --text-s:#64748B;
  --border:#E2E8F0; --shadow:0 2px 20px rgba(12,29,53,0.08);
}

/* ===== Reset ===== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;font-size:16px;}
body{background:var(--bg);color:var(--text-b);font-family:'Noto Sans JP','Noto Sans SC',sans-serif;line-height:1.8;overflow-x:hidden;}
img{display:block;}
a{text-decoration:none;color:inherit;}
::-webkit-scrollbar{width:4px;}
::-webkit-scrollbar-thumb{background:var(--gold);}

/* ===== Trilingual visibility ===== */
[data-lang="zh"] .ja,[data-lang="en"] .ja{display:none!important;}
[data-lang="ja"] .zh,[data-lang="en"] .zh{display:none!important;}
[data-lang="ja"] .en,[data-lang="zh"] .en{display:none!important;}

/* ===== Navigation ===== */
nav{position:fixed;top:0;left:0;right:0;z-index:900;height:68px;display:flex;align-items:center;justify-content:space-between;padding:0 3rem;background:var(--navy);transition:background 0.3s;}
nav.scrolled{background:rgba(12,29,53,0.97);backdrop-filter:blur(8px);}
.nav-logo{display:flex;align-items:center;gap:0.85rem;cursor:pointer;}
.nav-logo-mark{width:38px;height:38px;background:var(--gold);display:flex;align-items:center;justify-content:center;font-family:'Noto Serif JP',serif;font-size:1.1rem;font-weight:700;color:#fff;letter-spacing:-0.02em;flex-shrink:0;}
.nav-logo-text{display:flex;flex-direction:column;line-height:1.15;}
.nav-logo-main{font-family:'Noto Serif JP',serif;font-size:1rem;font-weight:700;color:#fff;letter-spacing:0.05em;}
.nav-logo-sub{font-size:0.58rem;letter-spacing:0.18em;color:rgba(255,255,255,0.55);text-transform:uppercase;}
.nav-center{display:flex;gap:2.5rem;list-style:none;}
.nav-center a{font-size:0.8rem;font-weight:500;color:rgba(255,255,255,0.72);letter-spacing:0.06em;padding-bottom:3px;border-bottom:1.5px solid transparent;transition:color 0.2s,border-color 0.2s;}
.nav-center a:hover,.nav-center a.active{color:#fff;border-color:var(--gold);}
.nav-right{display:flex;align-items:center;gap:0.5rem;}
.lang-btn{padding:0.55rem 0.85rem;min-height:44px;font-size:0.7rem;font-weight:600;background:none;border:1px solid rgba(255,255,255,0.25);color:rgba(255,255,255,0.6);cursor:pointer;transition:all 0.2s;letter-spacing:0.06em;}
.lang-btn.on{background:var(--gold);color:#fff;border-color:var(--gold);}
.lang-btn:not(.on):hover{border-color:rgba(255,255,255,0.6);color:#fff;}
.menu-btn{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:11px 8px;min-width:44px;min-height:44px;justify-content:center;align-items:center;}
.menu-btn span{display:block;width:22px;height:2px;background:#fff;border-radius:2px;transition:all 0.3s;}
.btn-nav-quote{display:inline-block;padding:0.4rem 1rem;background:var(--gold);color:#fff;font-size:0.7rem;font-weight:700;letter-spacing:0.06em;border:1px solid var(--gold);transition:all 0.2s;white-space:nowrap;}
.btn-nav-quote:hover{background:transparent;color:var(--gold);}

/* ===== Page Header ===== */
.page-header{padding:9rem 3rem 5rem;background:var(--navy);position:relative;overflow:hidden;}
.page-header::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);}
.page-header-inner{max-width:1200px;margin:0 auto;}
.page-header h1{font-family:'Noto Serif JP',serif;font-size:clamp(1.8rem,3.5vw,3rem);font-weight:700;color:#fff;margin-bottom:0.75rem;margin-top:0.5rem;}
.page-header p{font-size:0.95rem;color:rgba(255,255,255,0.6);max-width:600px;line-height:1.9;}

/* ===== Section base ===== */
.section{padding:6rem 3rem;}
.section-inner{max-width:1200px;margin:0 auto;}
.section-header{margin-bottom:3rem;}
.sec-label{font-size:0.65rem;font-weight:700;letter-spacing:0.3em;text-transform:uppercase;color:var(--gold);display:flex;align-items:center;gap:0.6rem;margin-bottom:0.75rem;}
.sec-label::before{content:'';width:24px;height:1px;background:var(--gold);}
.page-header .sec-label{color:rgba(255,255,255,0.6);}
.page-header .sec-label::before{background:rgba(255,255,255,0.4);}
.sec-title{font-family:'Noto Serif JP',serif;font-size:clamp(1.6rem,2.8vw,2.4rem);font-weight:700;color:var(--text-h);line-height:1.2;letter-spacing:-0.01em;margin-bottom:1rem;}
.sec-sub{font-size:0.96rem;color:var(--text-s);line-height:1.85;max-width:560px;}

/* ===== Buttons ===== */
.btn-gold{padding:0.85rem 2.25rem;background:var(--gold);color:#fff;font-size:0.82rem;font-weight:700;letter-spacing:0.08em;border:2px solid var(--gold);transition:all 0.2s;font-family:'Noto Sans JP',sans-serif;display:inline-block;}
.btn-gold:hover{background:transparent;color:var(--gold);}
.btn-outline{padding:0.85rem 2.25rem;background:transparent;color:rgba(255,255,255,0.85);font-size:0.82rem;font-weight:600;letter-spacing:0.08em;border:2px solid rgba(255,255,255,0.3);transition:all 0.2s;display:inline-block;}
.btn-outline:hover{border-color:#fff;color:#fff;}

/* ===== Full-width Footer (multi-column) ===== */
footer.footer-full{background:var(--navy);color:rgba(255,255,255,0.65);}
footer.footer-full .footer-top{display:grid;grid-template-columns:2fr 1fr 1fr 1.2fr;gap:3.5rem;padding:4rem 3rem 3rem;max-width:1200px;margin:0 auto;}
footer.footer-full .footer-brand-name{font-family:'Noto Serif JP',serif;font-size:1rem;font-weight:700;color:#fff;margin-bottom:0.5rem;display:flex;align-items:center;gap:0.75rem;}
footer.footer-full .footer-brand-mark{width:30px;height:30px;background:var(--gold);display:flex;align-items:center;justify-content:center;font-family:'Noto Serif JP',serif;font-size:0.9rem;font-weight:700;color:#fff;flex-shrink:0;}
footer.footer-full .footer-brand-desc{font-size:0.78rem;color:rgba(255,255,255,0.4);margin-top:0.6rem;line-height:1.8;max-width:260px;}
footer.footer-full .footer-col-title{font-size:0.65rem;font-weight:700;letter-spacing:0.2em;text-transform:uppercase;color:var(--gold);margin-bottom:1.25rem;}
footer.footer-full .footer-links{list-style:none;}
footer.footer-full .footer-links li{margin-bottom:0.6rem;}
footer.footer-full .footer-links a{font-size:0.8rem;color:rgba(255,255,255,0.5);transition:color 0.2s;}
footer.footer-full .footer-links a:hover{color:var(--gold);}
footer.footer-full .footer-contact-item{display:flex;gap:0.6rem;margin-bottom:0.7rem;}
footer.footer-full .footer-contact-icon{color:var(--gold);font-size:0.85rem;flex-shrink:0;}
footer.footer-full .footer-contact-text{font-size:0.8rem;color:rgba(255,255,255,0.5);}
footer.footer-full .footer-bottom{border-top:1px solid rgba(255,255,255,0.08);padding:1.5rem 3rem;max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;}
footer.footer-full .footer-copy{font-size:0.72rem;color:rgba(255,255,255,0.3);letter-spacing:0.06em;}

/* ===== Simple Footer (news/jobs pages) ===== */
footer.footer-simple{background:var(--navy);border-top:1px solid rgba(255,255,255,0.08);padding:1.5rem 3rem;}
footer.footer-simple .footer-inner{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;}
footer.footer-simple .footer-copy{font-size:0.75rem;color:rgba(255,255,255,0.4);}
footer.footer-simple .footer-back{font-size:0.78rem;color:var(--gold);font-weight:600;}
footer.footer-simple .footer-back:hover{text-decoration:underline;}

/* ===== Breadcrumb ===== */
.breadcrumb{display:flex;align-items:center;gap:0.5rem;font-size:0.75rem;color:var(--text-s);margin-bottom:1.5rem;flex-wrap:wrap;}
.breadcrumb a{color:var(--text-s);transition:color 0.2s;}
.breadcrumb a:hover{color:var(--gold);}
.breadcrumb .sep{opacity:0.4;}

/* ===== Responsive ===== */
@media(max-width:1024px){
  footer.footer-full .footer-top{grid-template-columns:1fr 1fr;gap:2rem;}
}
@media(max-width:768px){
  nav{padding:0 1.5rem;}
  .nav-center{display:none;position:fixed;top:68px;left:0;right:0;background:var(--navy);flex-direction:column;gap:0;padding:1rem 0;border-top:1px solid rgba(255,255,255,0.1);}
  .nav-center.open{display:flex;}
  .nav-center li{padding:0.75rem 1.5rem;}
  .menu-btn{display:flex;}
  .page-header{padding:7rem 1.5rem 3rem;}
  .section{padding:3.5rem 1.5rem;}
  footer.footer-full .footer-top{grid-template-columns:1fr;padding:2.5rem 1.5rem 2rem;}
  footer.footer-full .footer-bottom{padding:1.25rem 1.5rem;flex-direction:column;text-align:center;}
  footer.footer-simple{padding:1.25rem 1.5rem;}
}