/* ===================================================
   header.css — ヘッダー・ナビ・ボタン
   =================================================== */

header{
  position:sticky;top:0;z-index:100;
  background:rgba(250,250,248,.92);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  border-bottom:1px solid var(--border);
  padding:0 20px;
}
.header-inner{
  max-width:1360px;margin:0 auto;
  display:flex;align-items:center;
  justify-content:flex-start;
  height:80px;
}
/* ロゴ：左端固定 */
.logo{display:flex;align-items:center;flex-shrink:0;}
.logo-img{
  height:56px;
  width:auto;
  display:block;
}
/* ナビ：margin-left:autoで右寄せ */
nav{
  display:flex;align-items:center;
  gap:20px;
  margin-left:auto;
}
nav a{font-size:13px;color:var(--text);white-space:nowrap;padding:4px 2px;transition:color .2s;}
nav a:hover{color:var(--green);}
.header-right{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-left:20px;}
.tel-block{text-align:right;line-height:1.3;}
.tel-number{font-size:16px;font-weight:700;color:var(--navy);}
.tel-hours{font-size:11px;color:var(--text-light);}
.btn-line-header{
  display:flex;align-items:center;gap:5px;
  background:var(--green);color:#fff;
  border:none;border-radius:4px;padding:8px 14px;
  font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap;
  transition:background .2s;
}
.btn-line-header:hover{background:var(--green-dark);}
.btn-line-header .btn-line-img{width:18px;height:18px;border-radius:4px;}
.btn-contact-header{
  display:flex;align-items:center;gap:5px;
  background:var(--navy);color:#fff;
  border:none;border-radius:4px;padding:8px 14px;
  font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap;
  transition:background .2s;
}
.btn-contact-header:hover{background:var(--navy-dark);}

/* ハンバーガーボタン */
.hamburger-btn {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 40px;
  height: 40px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 6px;
  margin-left: 8px;
  flex-shrink: 0;
}
.hamburger-btn span {
  display: block;
  width: 100%;
  height: 2px;
  background: var(--navy);
  border-radius: 2px;
  transition: all .3s;
}

/* モバイルメニュー */
.mobile-menu {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.55);
  z-index: 200;
  justify-content: flex-end;
}
.mobile-menu.open { display: flex; }
.mobile-menu-close {
  position: absolute;
  top: 16px;
  right: 16px;
  background: none;
  border: none;
  font-size: 24px;
  color: var(--navy);
  cursor: pointer;
  z-index: 201;
  line-height: 1;
}
.mobile-nav {
  background: #fff;
  width: 260px;
  height: 100%;
  display: flex;
  flex-direction: column;
  padding: 60px 24px 32px;
  gap: 4px;
  overflow-y: auto;
}
.mobile-nav a {
  font-size: 15px;
  font-weight: 700;
  color: var(--navy);
  padding: 12px 0;
  border-bottom: 1px solid var(--border);
}
.mobile-nav a:last-child { border-bottom: none; }
.btn-line-free {
  display: flex; align-items: center; gap: 6px;
  background: var(--green); color: #fff;
  border-radius: 6px; padding: 10px 16px;
  font-size: 13px; font-weight: 700;
}
.btn-line-free .btn-line-img { width: 18px; height: 18px; border-radius: 4px; }
.btn-contact-hero {
  display: flex; align-items: center; justify-content: center; gap: 6px;
  background: var(--navy); color: #fff;
  border-radius: 6px; padding: 10px 16px;
  font-size: 13px; font-weight: 700;
}
.mobile-menu-btns {
  background: #fff;
  width: 260px;
  position: absolute;
  bottom: 0;
  right: 0;
  padding: 16px 24px 32px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  border-top: 1px solid var(--border);
}

@media(max-width:900px){.logo-img{height:44px;}}
@media(max-width:768px){
  nav{display:none;}
  .btn-line-header,.btn-contact-header{display:none;}
  .tel-block{display:none;}
  .hamburger-btn{display:flex;margin-left:auto;}
}
@media(max-width:480px){.header-inner{height:68px;}.tel-block{display:none;}.logo-img{height:36px;}}