/* ========================
  HEADER BASE STYLE
========================= */
.headerArea {
 position: fixed;
 top: 0;
 left: 0;
 width: 100%;
 height: 72px;

 padding: 0 1rem;

 display: flex;
 align-items: center;
 background: var(--color-background);
 box-shadow: var(--shadow-1);
 z-index: 100;
}


.logo{
  color: var(--color-on-background);
}


.contact{
  font-weight: 400;
}


/* ========================
  LAYOUT AREA
========================= */
.NavArea-pc {
 display: flex;
 justify-content: space-between;
 align-items: center;
 width: 100%;
}


.NavArea-m {
 display: none;
 justify-content: space-between;
 align-items: center;
 width: 100%;
}


.header-left {
 width: 25%;
 display: flex;
 align-items: center;
 justify-content: flex-start;
 height: 3rem;
}

.header-left a{
  height: 3rem;
}


.header-right {
 width: 25%;
 display: flex;
 align-items: center;
 justify-content: flex-end;
 gap: 2rem;
}


/* ========================
  NAVIGATION
========================= */
.menu {
 display: flex;
 flex-direction: row;
 gap: 2rem;
}


.menu a {
 display: flex;
 justify-content: center;
 align-items: center;


 color: var(--color-on-background);
 font-size: 1rem;
 font-weight: 500;


 text-align: center;
 transition: 0.3s;
}


.menu a:hover {
 color: var(--color-primary);
}




.menu a.active {
 color: var(--color-primary);
}




/* 現在地（単体／親／祖先）すべてを同じ見た目に */
.menu .current-menu-item>a,
.menu .current-menu-parent>a,
.menu .current-menu-ancestor>a,
.menu .current_page_item>a,
.menu .current_page_parent>a,
.menu .current_page_ancestor>a,
.menu a[aria-current="page"] {
 color: var(--color-primary);
 font-weight: 600;
}





/* ========================
  BUTTONS
========================= */
.menu-button {
 display: none;
 justify-content: center;
 align-items: center;
 width: 3rem;
 height: 3rem;
 padding: 0;
 background: none;
 border: none;
 border-radius: var(--radius-btn);
 color: var(--color-on-background);
 cursor: pointer;
}


.menu-button svg {
 width: 2rem;
 height: 2rem;
}


.contact {
 padding: 0.5rem 1rem;
 box-shadow: none;
}


/* ========================
  MENU BUTTON
========================= */
.menu-slide {
 position: fixed;
 top: 0;
 right: -1000px;
 width: 50%;
 height: 100vh;
 background-color: var(--color-background);
 box-shadow: 2px 0 10px rgba(0, 0, 0, 0.1);
 padding: 4rem 1.5rem;
 transition: right 0.3s ease-in-out;
 z-index: 1000;


 display: flex;
 flex-direction: column;
 justify-content: flex-start;
}


.menu-slide.open {
 right: 0;
}


.close-button {
 position: absolute;
 top: 1rem;
 right: 1rem;


 display: flex;
 align-items: center;
 justify-content: center;


 background: none;
 border: none;
 color: var(--txt);
 cursor: pointer;
 padding: 0.5rem;
 z-index: 1001;
}


.close-button svg {
 width: 24px;
 height: 24px;
}


/* ========================
  OVERLAY
========================= */
.overlay {
 position: fixed;
 top: 0;
 left: 0;
 width: 100%;
 height: 100vh;
 background: rgba(0, 0, 0, 0.4);
 z-index: 999;
 opacity: 0;
 animation: fadeIn 0.3s ease forwards;
}


@keyframes fadeIn {
 to {
   opacity: 1;
 }
}


/* ========================
  DISPLAY HELPERS
========================= */
.desktop-only {
 display: flex;
 gap: 24px;
 align-items: center;
}


.mobile-only {
 display: none;
}


/* ========================
  RESPONSIVE (Mobile First)
========================= */
@media (max-width: 1024px) {

  .headerArea{
    padding: 0 1rem;
  }

 .NavArea-pc {
   display: none;
 }


 .NavArea-m {
   display: flex;
 }





 .menu-button {
   display: flex;
 }


 .desktop-only {
   display: none;
 }


 .mobile-only {
   display: block;
 }


 /* ========================
  MOBILE MENU
========================= */


 .menu {
   padding: 2rem 0;
   flex-direction: column;
   align-items: flex-start;
   gap: 2rem;
 }


 .menu a {
   font-size: 1.25rem;
   justify-content: flex-start;
   text-align: left;
   width: 100%;
   height: 2rem;
 }


 .menu a.active {
   font-weight: bold;
 }




 .menu .sub-menu {
   display: block;
   position: static;
   width: 100%;
   border: none;
   box-shadow: none;
   padding-top: 1rem;
   padding-left: 1rem;
 }


 .menu li.open>.sub-menu {
   display: block;
   /* JSで .open を付けて表示 */
 }


 .contact-m {
   font-size: 1.25rem;
   font-weight: 500;
 }
}


@media (max-width: 768px) {
 .header-left {
   width: 20%;
   height: 3rem;
 }


 .header-right {
  height: 3rem;
   width: 20%;
   font-size: 0.75rem;
 }

  .menu-slide {
    width: 75%;  
  }
}


