/* --------------------------- */
/* メニュー（親）のスタイル */
/* --------------------------- */
#header .menu_com {
display: flex;
justify-content: flex-end;
align-items: center;
position:absolute;
top: 45px;
right: 0px;
}
#header .menu-parent:last-child { border-right: none; }
#header .menu-parent:last-child .menu-parent_a{ margin-right: 0;}

#header .menu-parent_a {
padding: 0 5px 0;
box-sizing: border-box;
text-align: center;
font-size: 1.8rem;
line-height: 1;
white-space: nowrap;
position: relative;
margin-right: 20px;
height: 60px;
display: block;
color: #444444 !important;
}

#header .menu-parent_a span{
display: block;
font-size: 1.2rem;
color: #b40019;
margin-bottom: 5px;
}
#header .menu-parent_a i,
#header .menu-parent_a em{
position: absolute;
top:0%;
right: -8px;
width: 10px;
transition:all .25s ease;
}
#header .menu-parent_a:hover i{ transform:rotate(180deg); }
#header .menu-parent_a:hover i img{
filter: invert(8%) sepia(79%) saturate(7278%) hue-rotate(346deg) brightness(60%) contrast(100%);
}

#header .menu-parent.is-active .menu-parent_a{
color:#b40019 !important;
font-weight:600;
}

@media (hover: hover) {
#header .menu-parent:hover .menu-parent_a{opacity: .6;}
}

/* --------------------------- */
/* メガメニュー(子)のスタイル */
/* --------------------------- */
#header .menu-child{
will-change: transform, opacity;
backface-visibility: hidden;
transform: translateZ(0);
}

#header .menu-child {
display: none;
position: fixed;
top:115px;
left: 0;
width: 100%;
background: #f9f9f9;
color: #444;
}
#header .menu-child .menu-child_box{
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
align-items: center;
}
#header .menu-child .menu_ttl{
display: block;
width: 30%;
text-align: center;
color: #b40019;
font-weight:400;
font-size: 2.6rem;
padding:20px 0;
box-sizing: border-box;
position:relative;
transition: all .3s ease;
}

#header .menu-child .menu_ttl a{
display: block;
}

#header .menu-child .menu_ttl:hover{
opacity:.55;
text-decoration: underline;
text-underline-offset:6px;
}

#header .menu-child .menu_ttl::before{
content: '';
position: absolute;
top: 50%;
right: 0;
transform: translateY(-50%);
background-color: #b40019;
width: 1px;
height: 60%;
}
#header .menu-child_ul{
width: 70%;
padding: 20px 0 20px 50px;
box-sizing: border-box;
display: flex;
flex-flow: row wrap;
align-content: flex-start;
}
#header .menu-child_li { width:25%; }
#header .menu-child_li a{
position: relative;
display: block;
padding-left: 15px;
padding-right: 15px;
line-height: 1.8;
font-size: 1.4rem;
color: #444;
}

#header .menu-child_li a:hover{
color: #b40019;
text-decoration: underline;
text-underline-offset:3px;
text-decoration-color: #b40019; 
}

#header .menu-child_li a::before{
content: '-';
position: absolute;
top: 0;
left: 0;
color: #b40019;
}

/* ================================
アンカーずれ対策（固定値 + 余白10px）
PC:110px / SP(<=767):50px
================================ */
:root { --header-h: 110px; --anchor-gap: 10px; }
@media (max-width: 767px) { :root { --header-h: 50px; } }

/* JSが効かない時の保険 */
[id] { scroll-margin-top: calc(var(--header-h) + var(--anchor-gap)); }