:root {
--navy: #0B2347;
--gold: #B68D40;
--white: #FFFFFF;
--gray-bg: #F4F5F7;
--text-body: #333333;
--font-serif: "Hiragino Mincho ProN", "Yu Mincho", YuMincho, "HG Mincho E", "MS PMincho", serif;
--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
--font-jp: -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", Meiryo, sans-serif;
} .factkey-custom-wrapper, 
.factkey-custom-wrapper * { 
box-sizing: border-box; 
}
.factkey-custom-wrapper a { 
text-decoration: none; 
color: inherit; 
transition: opacity 0.3s; 
}
.factkey-custom-wrapper img { 
max-width: 100%; 
height: auto; 
display: block; 
} .factkey-custom-wrapper .container { 
max-width: 1100px; 
margin: 0 auto; 
padding: 0 40px; 
position: relative; 
z-index: 2; 
} .js-fade-in-up { 
opacity: 0; 
transform: translateY(30px); 
transition: opacity 0.8s ease, transform 0.8s ease; 
}
.js-fade-in-up.is-visible { 
opacity: 1; 
transform: translateY(0); 
} #custom-header-wrapper {
position: relative !important; 
width: 100% !important; 
z-index: 9999 !important;
font-family: var(--font-jp) !important;
}
#custom-header-wrapper header { 
position: fixed !important; 
top: 0 !important; 
left: 0 !important; 
width: 100% !important; 
height: 100px !important; 
display: flex !important; 
align-items: center !important;
padding: 0 40px !important; 
z-index: 1000 !important; 
background-color: rgba(255, 255, 255, 0.98) !important; 
border-bottom: 1px solid rgba(0,0,0,0.05) !important;
box-shadow: 0 2px 10px rgba(0,0,0,0.02) !important;
gap: 20px !important;
} #custom-header-wrapper .header-left { 
flex-shrink: 0 !important; 
margin-right: auto !important; 
display: flex !important; 
align-items: center !important; 
}
#custom-header-wrapper .header-logo { 
display: flex !important; 
align-items: center !important; 
gap: 15px !important; 
} #custom-header-wrapper .header-logo img.logo-img {
max-height: 60px !important;
width: auto !important; 
display: block !important;
} #custom-header-wrapper .header-company-name {
font-size: 13px !important; 
font-weight: 500 !important; 
color: var(--navy) !important;
letter-spacing: 0.05em !important; 
line-height: 1 !important;
display: inline-block !important;
border-left: 1px solid #ddd !important; 
padding-left: 15px !important;
} #custom-header-wrapper .header-nav { 
flex: 1 !important; 
display: flex !important; 
justify-content: flex-end !important; 
padding-right: 40px !important; 
min-width: 0 !important;
}
#custom-header-wrapper .header-nav > ul { 
display: flex !important; 
gap: 30px !important; 
list-style: none !important; 
margin: 0 !important; 
padding: 0 !important; 
flex-wrap: nowrap !important;
}
#custom-header-wrapper .header-nav li { 
list-style: none !important; 
}
#custom-header-wrapper .header-nav a { 
font-family: var(--font-serif) !important; 
font-size: 15px !important; 
font-weight: 600 !important; 
color: var(--navy) !important; 
position: relative !important; 
white-space: nowrap !important;
}
#custom-header-wrapper .header-nav a::after { 
content: '' !important; 
position: absolute !important; 
bottom: -8px !important; 
left: 0 !important; 
width: 0 !important; 
height: 2px !important; 
background: var(--gold) !important; 
transition: width 0.3s !important; 
}
#custom-header-wrapper .header-nav a:hover::after { 
width: 100% !important; 
}
#custom-header-wrapper .header-nav .sub-menu { 
display: none !important; 
} #custom-header-wrapper .header-cta { 
display: flex !important; 
align-items: center !important; 
gap: 20px !important; 
flex-shrink: 0 !important; 
}
#custom-header-wrapper .header-tel { 
display: flex !important; 
flex-direction: column !important; 
align-items: flex-end !important; 
color: var(--navy) !important; 
line-height: 1.2 !important; 
}
#custom-header-wrapper .header-tel-num { 
font-family: var(--font-sans) !important; 
font-size: 20px !important; 
font-weight: 600 !important; 
letter-spacing: 0.05em !important; 
white-space: nowrap !important; 
}
#custom-header-wrapper .header-tel-label { 
font-size: 10px !important; 
opacity: 0.7 !important; 
white-space: nowrap !important; 
}
#custom-header-wrapper .header-contact-btn {
background-color: var(--gold) !important; 
color: #fff !important;
padding: 12px 24px !important; 
font-size: 13px !important; 
font-weight: 600 !important;
font-family: var(--font-sans) !important; 
letter-spacing: 0.05em !important;
border-radius: 4px !important; 
transition: background 0.3s !important;
display: flex !important; 
align-items: center !important; 
gap: 8px !important; 
white-space: nowrap !important;
}
#custom-header-wrapper .header-contact-btn:hover { 
background-color: var(--navy) !important; 
opacity: 1 !important; 
} #custom-header-wrapper .mobile-menu-btn { 
display: none !important; 
position: relative !important; 
width: 30px !important; 
height: 20px !important; 
cursor: pointer !important; 
z-index: 10002 !important;
}
#custom-header-wrapper .mobile-menu-btn span { 
position: absolute !important; 
left: 0 !important; 
width: 100% !important; 
height: 2px !important; 
background-color: var(--navy) !important; 
transition: all 0.3s !important; 
}
#custom-header-wrapper .mobile-menu-btn span:nth-of-type(1) { 
top: 0 !important; 
}
#custom-header-wrapper .mobile-menu-btn span:nth-of-type(2) { 
top: 9px !important; 
}
#custom-header-wrapper .mobile-menu-btn span:nth-of-type(3) { 
bottom: 0 !important; 
}
#custom-header-wrapper .mobile-menu-btn.active span:nth-of-type(1) { 
transform: translateY(9px) rotate(45deg) !important;
}
#custom-header-wrapper .mobile-menu-btn.active span:nth-of-type(2) { 
opacity: 0 !important; 
}
#custom-header-wrapper .mobile-menu-btn.active span:nth-of-type(3) { 
transform: translateY(-9px) rotate(-45deg) !important;
} #custom-header-wrapper .mobile-menu-overlay { 
position: fixed !important; 
top: 0 !important; 
left: 0 !important; 
width: 100% !important; 
height: 100vh !important; 
background-color: rgba(255,255,255,0.98) !important; 
z-index: 10001 !important; 
display: flex !important; 
justify-content: center !important; 
align-items: center !important; 
opacity: 0 !important; 
pointer-events: none !important; 
transition: opacity 0.4s ease !important; 
}
#custom-header-wrapper .mobile-menu-overlay.active { 
opacity: 1 !important; 
pointer-events: auto !important; 
}
#custom-header-wrapper .mobile-menu-inner { 
text-align: center !important; 
width: 100% !important; 
padding: 40px !important; 
}
#custom-header-wrapper .mobile-menu-logo { 
font-family: var(--font-sans) !important; 
font-weight: 700 !important; 
color: var(--navy) !important; 
font-size: 20px !important; 
margin-bottom: 40px !important; 
}
#custom-header-wrapper .mobile-nav ul { 
list-style: none !important; 
padding: 0 !important; 
margin: 0 !important;
}
#custom-header-wrapper .mobile-nav li { 
margin-bottom: 25px !important; 
}
#custom-header-wrapper .mobile-nav a { 
font-family: var(--font-serif) !important; 
font-size: 18px !important; 
font-weight: 600 !important; 
color: var(--navy) !important; 
}
#custom-header-wrapper .mobile-nav .sub-menu { 
display: none !important; 
} #custom-header-wrapper .mobile-menu-close {
position: absolute !important;
top: 25px !important;
right: 20px !important;
width: 44px !important;
height: 44px !important;
background: var(--navy) !important;
border: none !important;
border-radius: 50% !important;
cursor: pointer !important;
padding: 0 !important;
z-index: 10003 !important;
display: flex !important;
align-items: center !important;
justify-content: center !important;
}
#custom-header-wrapper .mobile-menu-close span {
position: absolute !important;
width: 20px !important;
height: 2px !important;
background-color: #fff !important;
}
#custom-header-wrapper .mobile-menu-close span:nth-of-type(1) {
transform: rotate(45deg) !important;
}
#custom-header-wrapper .mobile-menu-close span:nth-of-type(2) {
transform: rotate(-45deg) !important;
}
#custom-header-wrapper .mobile-menu-close:hover {
background: var(--gold) !important;
} #custom-header-wrapper .mobile-contact {
margin-top: 0 !important;
}
#custom-header-wrapper .mobile-contact-link {
font-family: var(--font-serif) !important;
font-size: 18px !important;
font-weight: 600 !important;
color: var(--navy) !important;
text-decoration: none !important;
display: inline-block !important;
} @media (max-width: 900px) {
#custom-header-wrapper header { 
padding: 0 20px !important; 
height: 70px !important; 
gap: 0 !important; 
}
#custom-header-wrapper .header-nav, 
#custom-header-wrapper .header-cta { 
display: none !important; 
}
#custom-header-wrapper .mobile-menu-btn { 
display: block !important;
margin-left: auto !important;
} #custom-header-wrapper .header-logo {
flex-direction: column !important;
align-items: flex-start !important;
gap: 3px !important;
} #custom-header-wrapper .header-logo img.logo-img { 
max-height: 32px !important; 
} #custom-header-wrapper .header-company-name { 
display: block !important;
font-size: 10px !important;
border-left: none !important;
padding-left: 0 !important;
opacity: 0.9 !important;
white-space: nowrap !important;
}
.factkey-custom-wrapper .container { 
padding: 0 20px !important; 
}
}