/* ポップアップ本体を画面内に収めて中身をスクロール */
.pum-container {
  max-height: 90vh !important;
  overflow: auto !important
}

.sub_menu ul li button {
    color: #fff;
    text-decoration: none;
    font-weight: normal;
}



/* =========================================================
   Search UI (sub menu search)
   ========================================================= */

/* sub menu search (A) */
.sub_menu ul li.sub_menu__searchItem{
  display:block;
  width:100%;
  margin-top:1.6rem;
  margin-right:0;
}
.sub_menu ul li.sub_menu__searchItem::after{content:none;}

.sub_menu__searchBox{
  position:relative;
  width:100%;
}

.sub_menu__searchInput{
  width:100%;
  height:3.8rem;
  padding:0 4.2rem 0 1.2rem;
  border:1px solid rgba(255,255,255,.35);
  border-radius:.6rem;
  background:rgba(255,255,255,.12);
  color:#fff;
  font-size:1.4rem;
  line-height:1;
}
.sub_menu__searchInput::placeholder{color:rgba(255,255,255,.65);}
.sub_menu__searchInput:focus{
  outline:2px solid rgba(255,255,255,.55);
  outline-offset:2px;
  border-color:rgba(255,255,255,.55);
}

.sub_menu__searchBtn{
  position:absolute;
  top:50%;
  right:.6rem;
  transform:translateY(-50%);
  width:2.8rem;
  height:2.8rem;
  border-radius:9999px;
  background:rgba(255,255,255,.15);
  display:flex;
  align-items:center;
  justify-content:center;
  border:0;
  cursor:pointer;
}
.sub_menu__searchBtn:hover{background:rgba(255,255,255,.25);}
.sub_menu__searchBtn:focus{
  outline:2px solid rgba(255,255,255,.55);
  outline-offset:2px;
}

/* 虫眼鏡アイコン（CSSだけで描画） */
.sub_menu__searchBtn::before{
  content:"";
  width:1rem;
  height:1rem;
  border:2px solid rgba(255,255,255,.95);
  border-radius:50%;
  box-sizing:border-box;
}
.sub_menu__searchBtn::after{
  content:"";
  position:absolute;
  width:.7rem;
  height:2px;
  background:rgba(255,255,255,.95);
  right:.85rem;
  bottom:.85rem;
  transform:rotate(45deg);
}

/* =========================================================
   Search UI overrides for search.php (white background)
   - scope: .search-results__headerBody
   ========================================================= */

.search-results__headerBody .sub_menu__searchInput{
  border:1px solid rgba(30,43,66,.18);
  background:#fff;
  color:#1E2B42;
}
.search-results__headerBody .sub_menu__searchInput::placeholder{
  color:rgba(30,43,66,.55);
}
.search-results__headerBody .sub_menu__searchInput:focus{
  outline:2px solid rgba(30,43,66,.25);
  border-color:rgba(30,43,66,.45);
}

.search-results__headerBody .sub_menu__searchBtn{
  width:3.4rem;
  height:3.4rem;
  right:.3rem;
  border-radius:.6rem;
  background:rgba(30,43,66,.08);
}
.search-results__headerBody .sub_menu__searchBtn:hover{
  background:rgba(30,43,66,.14);
}
.search-results__headerBody .sub_menu__searchBtn::before{
  border-color:rgba(30,43,66,.85);
}
.search-results__headerBody .sub_menu__searchBtn::after{
  background:rgba(30,43,66,.85);
}

/* =========================================================
   Header color variations (search pages)
   ========================================================= */

body.search .header__logo a,
body.search-results .header__logo a,
body.search-no-results .header__logo a{
  background:url(../images/common/logo_b.svg) no-repeat center / cover !important;
}

body.search .header__content__sns__insta a,
body.search-results .header__content__sns__insta a,
body.search-no-results .header__content__sns__insta a{
  background:url(../images/common/icon_insta_b.svg) no-repeat center / cover;
}

body.search .header__content__sns__fb a,
body.search-results .header__content__sns__fb a,
body.search-no-results .header__content__sns__fb a{
  background:url(../images/common/icon_fb_b.svg) no-repeat center / cover;
}

body.search .btn_lang,
body.search-results .btn_lang,
body.search-no-results .btn_lang{
  color:#333 !important;
}
body.search .btn_lang::before,
body.search-results .btn_lang::before,
body.search-no-results .btn_lang::before{
  background:url(../images/common/icon_lang_b.svg) no-repeat center / cover;
}

/* ハンバーガー（search系だけに限定） */
body.search .btn_hamb span,
body.search-results .btn_hamb span,
body.search-no-results .btn_hamb span{
  background:#333;
}
body.search .btn_hamb span::before,
body.search .btn_hamb span::after,
body.search-results .btn_hamb span::before,
body.search-results .btn_hamb span::after,
body.search-no-results .btn_hamb span::before,
body.search-no-results .btn_hamb span::after{
  background:#333;
}

/* =========================================================
   Search result grouping title
   ========================================================= */

.search-results__group-title{
  font-weight:700;
  font-size:2.5rem;
  margin-top:3rem;
}

/* =========================================================
   Search block placed above .main_menu
   ========================================================= */

.main_menu__search{
  width:100%;
  padding:1.6rem 0 2em;
}
.footer .main_menu__search{
  width:100%;
  padding:0 2em 2em;
}

.main_menu__searchList{
  margin:0;
  padding:0;
  list-style:none;
}

/* sub_menu 用の余白をこの文脈では無効化（※最新値を採用） */
.main_menu__search .sub_menu__searchItem{
  margin-top:3em;
  margin-right:0;
}
.main_menu__search .sub_menu__searchItem::after{content:none;}

/* =========================================================
   Contact button hover（検索UI周辺で同ファイルにいるので統合残し）
   ========================================================= */

.js-contact-popup{
  transition:all .4s ease;
  -webkit-transition:all .4s ease;
}
.js-contact-popup:hover{opacity:.6;}
@media (prefers-reduced-motion: reduce){
  .js-contact-popup{transition:none;-webkit-transition:none;}
}
@media screen and (min-width: 850px){
  .js-contact-popup{font-size:1.2rem}
}

/* =========================================================
   Misc
   ========================================================= */

.search__content__list{margin-bottom:8.3333333333%;}



/* floating Contact Us button (bottom-right) */
.contact-float-btn{
  position: fixed;
  right: 16px;
  bottom: 16px;
  z-index: 998;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  padding: 12px 16px;
  border: 0;
  border-radius: 9999px;

  cursor: pointer;

  /* 既存サイトに合わせて調整する前提：とりあえず読みやすい値 */
  background: #1E2B42;
  color: #fff;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;

  box-shadow: 0 12px 28px rgba(0,0,0,.20);
}



/* Floating Contact Us button (under .gnav) */
.contact-float-btn{
  position: fixed;
  right: 16px;
  bottom: 90px; /* reCAPTCHAバッジ回避 */
  z-index: 998; /* .gnav(z-index:999) より下 */

  display: inline-flex;
  align-items: center;
  justify-content: center;

  background: #1E2B42;
  color: #fff;
  font-weight: 700;

  /* 元の指定を維持 */
  letter-spacing: .07em;
  line-height: 1.1;
  padding: 2rem 4rem;

  border-radius: 9999px;
  box-shadow: 0 8px 24px rgba(0,0,0,.20);

  transition: opacity .4s ease, transform .4s ease;
  -webkit-transition: opacity .4s ease, -webkit-transform .4s ease;
  cursor: pointer;
}

.contact-float-btn:hover{
  opacity: .6;
}

@media (prefers-reduced-motion: reduce){
  .contact-float-btn{
    transition: none;
    -webkit-transition: none;
  }
}


l/* Contact Us button: place left side of fixed common hamburger button */
.contact-float-btn[hidden]{
  display:none !important;
}

.contact-float-btn{
  position:fixed;
  top:2rem;
  right:10rem;
  bottom:auto;
  z-index:997;
  font-size:1.8rem!important;
  padding:1.2rem 2.4rem;
  line-height:1;
}

@media screen and (min-width: 850px){
  .contact-float-btn{
    top:5rem;
    right:13rem;
    font-size:1.6rem;
    padding:1.4rem 2.8rem;
  }
}


/* Header top-right search below SNS/LANG/Hamburger */
.header__content{
  flex-wrap:wrap;
  justify-content:flex-end;
}

.header__content__search{
  flex:0 0 100%;
  width:100%;
  max-width:30rem;
  margin:1.2rem 0 0 auto;
  padding:0;
}

.header__content__search .sub_menu__searchItem{
  margin-top:0;
}

@media screen and (min-width: 850px){
  .header__content__search{
    max-width:27rem;
    margin-top:1.6rem;
  }
}


.header__content__search .sub_menu__searchBtn {
    background: rgb(200 200 200 / 50%);
}

.header__content__search .sub_menu__searchInput {
    border: 1px solid rgb(200, 200, 200 );
}

