/* === 共通スタイル === */
#header-search-box {
  position: absolute !important;
  top: 22px !important;
  right: 10px !important;
  width: 260px !important;
  height: 26px !important;
  display: flex !important;
  align-items: center !important;
  z-index: 10 !important;
}

.gsc-control-searchbox-only {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  height: 26px !important;
  background: transparent !important;
  padding: 0 !important;
  border: none !important;
  box-shadow: none !important;
  margin: 0 !important;
}

input.gsc-input {
  width: 210px !important;
  height: 25px !important;
  font-size: 14px !important;
  padding: 0 8px !important;
  border-radius: 0 !important;
  box-sizing: border-box !important;
  border: 1px solid #b8b8b8 !important;
}

.gsc-search-button,
.gsc-search-button-v2 {
  height: 26px !important;
  width: 29px !important;
  padding: 0 !important;
  margin-left: 4px !important;
  border-radius: 0 !important;
}

.gsc-clear-button {
  display: none !important;
}

.gsc-input-box {
  padding: 0 !important;
  border: none !important;
  background: none !important;
}

/* === モバイル用の虫眼鏡アイコンと検索窓 === */
#search-toggle-icon {
  display: none !important;
}

#sp-search-container {
  display: none !important;
  padding: 10px !important;
  background: #fff !important;
  border-top: 1px solid #ccc !important;
  position: absolute !important;
  top: 50px !important;
  right: 10px !important;
  left: 10px !important;
  z-index: 99 !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.2) !important;
  border-radius: 4px !important;
}

/* 表示切り替え用クラス */
.sp-search-visible {
  display: block !important;
}
.sp-search-hidden {
  display: none !important;
}

/* === レスポンシブ対応 === */
@media screen and (max-width: 991px) {
  #header-search-box {
    display: none !important;
  }

  #search-toggle-icon {
    display: inline-block !important;
    position: absolute !important;
    top: 22px !important;
    right: 59px !important;
    z-index: 100 !important;
    font-size: 18px !important;
    cursor: pointer !important;
  }
  
  input.gsc-input {
    width: 100% !important;
  }
}

.gsib_b {
  display: none !important;
}

.gsc-orderby-container {
  display: none !important;
}

table.gsc-search-box td.gsc-input {
  padding-right: 0px !important;
}


/* ==========================================
   Googleカスタム検索のバージョン違い対策
   v4とv6のスタイル差異を吸収
   
   重要: このセクションのルールはすべて
   Googleの動的CSSより優先されるように
   詳細度を高めています
   ========================================== */

/* 検索ボックス全体のコンテナ */
.gsc-control-cse.gsc-control-cse,
div.gsc-control-searchbox-only.gsc-control-searchbox-only {
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
  margin: 0 !important;
}

/* 検索フォーム */
form.gsc-search-box.gsc-search-box {
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  background: transparent !important;
}

/* 検索ボックステーブル */
table.gsc-search-box.gsc-search-box {
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  background: transparent !important;
  border-spacing: 0 !important;
  border-collapse: collapse !important;
}

/* 入力フィールドのセル */
table.gsc-search-box td.gsc-input.gsc-input {
  padding: 0 !important;
  padding-right: 0px !important;
  vertical-align: middle !important;
}

/* 検索ボタンのセル */
table.gsc-search-box td.gsc-search-button.gsc-search-button {
  padding: 0 !important;
  padding-left: 4px !important;
  vertical-align: middle !important;
  width: auto !important;
}

/* 入力ボックスのラッパー */
div.gsc-input-box.gsc-input-box {
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
  background: none !important;
}

/* 入力フィールド内のテーブル構造 */
table.gsc-input.gsc-input {
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  width: 210px !important;
}

/* 入力フィールドのセル(内側) */
td.gsib_a.gsib_a {
  padding: 0 !important;
}

/* クリアボタン(バツ印) - 確実に非表示 */
.gsib_b,
.gsib_b.gsib_b,
td.gsib_b,
td.gsib_b.gsib_b,
.gsc-clear-button,
.gsc-clear-button.gsc-clear-button {
  display: none !important;
  visibility: hidden !important;
  width: 0 !important;
  height: 0 !important;
  opacity: 0 !important;
  position: absolute !important;
  left: -9999px !important;
}

/* 検索ボタンのスタイル統一 - 詳細度を最大化 */
button.gsc-search-button.gsc-search-button,
button.gsc-search-button-v2.gsc-search-button-v2,
input.gsc-search-button.gsc-search-button,
input.gsc-search-button-v2.gsc-search-button-v2,
.gsc-search-button.gsc-search-button,
.gsc-search-button-v2.gsc-search-button-v2 {
  height: 26px !important;
  width: 29px !important;
  min-width: 29px !important;
  max-width: 29px !important;
  padding: 0 !important;
  margin: 0 !important;
  margin-left: 4px !important;
  border-radius: 0 !important;
  background-color: #4285f4 !important;
  border: 1px solid #4285f4 !important;
  cursor: pointer !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
}

/* 🔍アイコン(SVG) - 最優先で表示 */
button.gsc-search-button svg,
button.gsc-search-button-v2 svg,
.gsc-search-button svg,
.gsc-search-button-v2 svg,
button.gsc-search-button > svg,
button.gsc-search-button-v2 > svg,
.gsc-search-button > svg,
.gsc-search-button-v2 > svg,
button.gsc-search-button.gsc-search-button svg,
button.gsc-search-button-v2.gsc-search-button-v2 svg,
button.gsc-search-button.gsc-search-button > svg,
button.gsc-search-button-v2.gsc-search-button-v2 > svg {
  display: inline-block !important;
  visibility: visible !important;
  width: 13px !important;
  height: 13px !important;
  fill: #fff !important;
  opacity: 1 !important;
  position: static !important;
  pointer-events: none !important;
}

/* SVGのpath要素も確実に表示 */
button.gsc-search-button svg path,
button.gsc-search-button-v2 svg path,
.gsc-search-button svg path,
.gsc-search-button-v2 svg path {
  fill: #fff !important;
  display: block !important;
  visibility: visible !important;
}

/* オートコンプリート(サジェスト) */
.gsc-completion-container,
.gssb_c {
  position: absolute !important;
  z-index: 9999 !important;
}

/* v6で追加される可能性のある要素の制御 */
.gsc-above-wrapper-area,
.gsc-refinementsArea {
  display: none !important;
}

/* 検索結果エリア */
.gsc-results-wrapper-overlay,
.gsc-modal-background-image {
  display: none !important;
}