/* 特集ページ共通のヘッダー・フッター（/assets/parts/parts.css）
   ゴルフ特集（golf-feature-final）のものを共通にした（2026-11-03）。ページの CSS より先に読み込む。
   フッター下の帯の色は、ページの CSS で :root { --parts-accent: … } を決める。 */
.parts-in { width:1040px; margin:0 auto; }
/* ページ側の文字の大きさ・行の高さ（忘年会の .lp は 15px・1.75）を受け継がず、どのページでもゴルフと同じ見た目にする */
.header-01, .header-43, .footer-01 { font-size:16px; line-height:normal; text-align:left; }
.header-01 [hidden], .footer-01 [hidden], .header-43[hidden] { display:none !important; }

/* ===== header ===== */
.header-01 {
  background:#fff;
  border-bottom:1px solid #dcdcdc;
  font-family:'Noto Sans JP','Hiragino Sans',system-ui,sans-serif;
}
.header-02 {
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:8px 0 0;
}
.header-03 {
  margin:0;
  font-size:12px;
  color:#555;
}
.header-04 {
  display:flex;
  font-size:12px;
}
.header-05 {
  color:#333;
  text-decoration:none;
  padding:0 12px;
  border-right:1px solid #ccc;
}
.header-06 {
  color:#333;
  text-decoration:none;
  padding:0 0 0 12px;
}
.header-07 {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:10px 0 14px;
}
.header-08 {
  display:flex;
  align-items:center;
  gap:8px;
  text-decoration:none;
  color:#d7000f;
}
.header-09 {
  font:900 46px/1 'Noto Sans JP',sans-serif;
  letter-spacing:-.02em;
}
.header-10 {
  display:flex;
  flex-direction:column;
  line-height:1.05;
}
.header-11 {
  font:700 17px 'Noto Sans JP',sans-serif;
}
.header-12 {
  font:900 21px 'Noto Sans JP',sans-serif;
  letter-spacing:.02em;
}
.header-13 {
  display:flex;
  gap:8px;
  align-items:stretch;
}
.header-14 {
  display:flex;
  flex-direction:column;
  border:2px solid #d7000f;
  border-radius:4px;
  text-decoration:none;
  overflow:hidden;
  width:300px;
}
.header-15 {
  background:#d7000f;
  color:#fff;
  font-size:13px;
  font-weight:700;
  padding:4px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:5px;
}
.header-16 {
  display:flex;
  flex-direction:column;
  align-items:center;
  padding:3px 8px 4px;
  color:#333;
}
.header-17 {
  font-size:11px;
}
.header-18 {
  display:flex;
  align-items:center;
  gap:8px;
}
.header-19 {
  font:700 26px/1.1 'Noto Sans JP',sans-serif;
  letter-spacing:.02em;
}
.header-20 {
  font-size:10px;
  font-weight:700;
  line-height:1.2;
  text-align:center;
}
.header-21 {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;
  width:130px;
  border:1px solid #333;
  border-radius:5px;
  color:#333;
  text-decoration:none;
  font-size:14px;
  font-weight:700;
  font-family:'Noto Sans JP',sans-serif;
}
.header-22 {
  color:#d7000f;
  font-size:20px;
  line-height:1;
}
.header-23 {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;
  width:130px;
  background:#d7000f;
  border-radius:5px;
  color:#fff;
  text-decoration:none;
  font-size:14px;
  font-weight:700;
  font-family:'Noto Sans JP',sans-serif;
}

.header-24 {
  border-top:1px solid #dcdcdc;
}
.header-25 {
  display:flex;
  gap:8px;
  margin:0 auto;
  padding:8px 0;
  list-style:none;
}
.header-26 {
  position:relative;
  flex:1;
}
.header-27 {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  height:40px;
  border:1px solid #ccc;
  border-radius:5px;
  color:#333;
  text-decoration:none;
  font-size:14px;
  font-weight:700;
  white-space:nowrap;
}
.header-27:hover {
  color:#d7000f;
  border-color:#d7000f;
}
.header-28 {
  display:none;
  position:absolute;
  top:100%;
  left:0;
  z-index:100;
  min-width:100%;
  margin:0;
  padding:4px 0;
  list-style:none;
  background:#fff;
  border:1px solid #ccc;
  box-shadow:0 4px 10px rgba(0,0,0,.12);
}
.header-26:hover .header-28,
.header-26:focus-within .header-28 {
  display:block;
}
.header-29 {
  display:block;
  padding:8px 14px;
  color:#333;
  text-decoration:none;
  font-size:13px;
  white-space:nowrap;
}
.header-29:hover {
  background:#fdecee;
  color:#d7000f;
}
.header-30 {
  color:#e6a700;
}
.header-31 {
  display:flex;
  align-items:center;
  justify-content:center;
  height:42px;
  background:#e6a700;
  border-radius:5px;
  color:#fff;
  text-decoration:none;
  font-size:14px;
  font-weight:700;
  white-space:nowrap;
}

/* スマホ用ヘッダー・ドロワー（PCでは非表示） */
.header-32, .header-37, .header-39, .header-43 {
  display:none;
}

/* ===== footer ===== */
.footer-01 { background:#e6e6e6; font-family:'Noto Sans JP',sans-serif; }
.footer-02 { padding:56px 0 0; display:flex; flex-direction:column; gap:48px; }
.footer-03 { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:48px 16px; }
.footer-col { display:flex; flex-direction:column; gap:12px; }
.footer-head { font:700 14px 'Noto Sans JP',sans-serif; color:#333; padding:0 4px 8px; border-bottom:1px solid #555; }
.footer-text { margin:0; font:400 13px/1.85 'Noto Sans JP',sans-serif; color:#444; letter-spacing:.03em; }
.footer-links { display:flex; flex-direction:column; gap:9px; }
.footer-links a { font:400 13px 'Noto Sans JP',sans-serif; color:#444; text-decoration:none; letter-spacing:.03em; }
.footer-04 { display:flex; align-items:center; gap:24px; }
.pmark img { display:block; width:76px; height:auto; }
.footer-tel { background:#fff; }
.footer-05 { display:flex; gap:32px; padding-bottom:12px; }
.footer-05 a { display:flex; align-items:center; gap:5px; font:400 14px 'Noto Sans JP',sans-serif; color:#444; text-decoration:none; }
.footer-05 a::before { content:''; width:0; height:0; border-top:4px solid transparent; border-bottom:4px solid transparent; border-left:5px solid #444; }
.footer-06 { background:var(--parts-accent,#d7000f); color:#fff; text-align:center; padding:18px 0; font:400 18px 'Noto Sans JP',sans-serif; letter-spacing:.02em; }

/* ===== レスポンシブ ===== */
@media (max-width:1072px) {
  .parts-in { width:auto; margin:0 16px; }
}

@media (max-width:767px) {
  /* header（PCの段は隠して、スマホ用ヘッダーを表示） */
  .header-02, .header-07, .header-24 { display:none; }
  .header-32 {
    position:relative;
    display:flex;
    align-items:center;
    gap:8px;
    padding:6px 12px;
  }
  .header-33 {
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:5px;
    width:36px;
    height:36px;
    padding:0 7px;
    border:0;
    background:none;
    cursor:pointer;
  }
  .header-33 span {
    display:block;
    height:2px;
    background:#d7000f;
  }
  .header-34 { position:absolute; left:50%; transform:translateX(-50%); gap:4px; }
  .header-34 + .header-35 { margin-left:auto; }
  .header-34 .header-09 { font-size:22px; white-space:nowrap; }
  .header-34 .header-11 { font-size:9px; }
  .header-34 .header-12 { font-size:11px; }
  .header-35 {
    display:flex;
    align-items:center;
    justify-content:center;
    width:36px;
    height:36px;
    text-decoration:none;
  }
  .header-37 {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    margin:0;
    padding:0;
    list-style:none;
    border-top:1px solid #dcdcdc;
  }
  .header-37 li + li { border-left:1px solid #dcdcdc; }
  .header-38 {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:2px;
    width:100%;
    height:44px;
    padding:0 2px;
    border:0;
    background:#fff;
    color:#333;
    text-decoration:none;
    font:700 11px/1.3 'Noto Sans JP',sans-serif;
    text-align:center;
    cursor:pointer;
  }
  .header-38[aria-expanded="true"] { background:#fdecee; color:#d7000f; }
  .header-39:not([hidden]) {
    display:block;
    border-top:1px solid #dcdcdc;
    background:#f7f7f7;
  }
  .header-40 {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:6px;
    margin:0;
    padding:10px 12px;
    list-style:none;
  }
  .header-41, .header-42 {
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    height:36px;
    border:1px solid #ccc;
    border-radius:4px;
    background:#fff;
    color:#333;
    text-decoration:none;
    font:700 12px 'Noto Sans JP',sans-serif;
    cursor:pointer;
  }
  .header-41 { background:#666; border-color:#666; color:#fff; }

  /* ドロワー */
  .header-43:not([hidden]) {
    display:block;
    position:fixed;
    inset:0;
    z-index:1000;
  }
  .header-44 { position:absolute; inset:0; background:rgba(0,0,0,.5); }
  .header-45 {
    position:absolute;
    top:0;
    bottom:0;
    left:0;
    width:min(320px,85vw);
    overflow-y:auto;
    padding:48px 16px 24px;
    box-sizing:border-box;
    background:#fff;
    font-family:'Noto Sans JP',sans-serif;
    text-align:left;
  }
  .header-46 {
    position:absolute;
    top:6px;
    right:6px;
    width:36px;
    height:36px;
    border:0;
    background:none;
    font-size:26px;
    line-height:1;
    color:#333;
    cursor:pointer;
  }
  .header-47 { margin-bottom:20px; }
  .header-48 { margin:0 0 8px; padding:6px 10px; background:#d7000f; color:#fff; font-size:13px; font-weight:700; }
  .header-49 { display:flex; gap:6px; }
  .header-49 input[type="text"] { flex:1; min-width:0; height:36px; padding:0 8px; border:1px solid #ccc; border-radius:4px; font-size:16px; }
  .header-49 button { padding:0 14px; border:0; border-radius:4px; background:#d7000f; color:#fff; font-weight:700; cursor:pointer; }
  .header-50 { margin:0 0 20px; padding:0; list-style:none; }
  .header-51 { display:block; padding:10px 4px; border-bottom:1px solid #eee; color:#333; text-decoration:none; font-size:14px; }

  .footer-03 { grid-template-columns:minmax(0,1fr); }
  .footer-04, .footer-05 { flex-wrap:wrap; gap:16px; }
  .footer-logo { zoom:.7; }
}
