@charset "UTF-8";

header {
  height: 10rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  top: 0;
  left: 0;
  width: 100vw;
  padding: 0 3rem;
  z-index: 10;
  transition: all 0.3s ease;
  position: fixed;
  top: 0;
  background: #fff;
}

@media screen and (max-width: 959.98px) {
  header {
    padding: 0 2rem;
    height: 8rem;
  }
}

@media screen and (max-width: 767.98px) {
  header {
    padding: 0 1.5rem;
    height: 5.5rem;
  }
}

@media screen and (max-width: 320.98px) {
  header {
    padding: 0 0.5rem 0 1.5rem;
  }
}

.header__logo a {
  display: block;
  width: 220px;
  height: 60px;
  background: url(/common/images/logo.svg) no-repeat center center;
  background-size: contain;
}

@media screen and (max-width: 959.98px) {
  .header__logo a {
    max-width: 17.6rem;

  }
}

@media screen and (max-width: 767.98px) {
  .header__logo a {
    max-width: 12rem;
  }
}

#top .header__logo a {
  height: 60px;
  width: 220px;
  background: url(/common/images/logo-w.png) no-repeat center center;
  background-size: contain;
}

.head-nav {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  width: 100%;
}

.head-nav>ul {
  display: flex;
  justify-content: flex-start;
  align-items: center;
}

.head-nav>ul li {
  margin-right: 1rem;
  position: relative;
}

.head-nav>ul li a {
  font-size: 1.5rem;
  font-weight: bold;
  color: #0b499f;
}

#top .head-nav>ul li a {
  color: #fff;
}

.head-nav>ul li.h-btn a {
  position: relative;
  display: block;
  width: 3.5rem;
}

.head-nav>ul li.h-btn img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
  object-fit: contain;
}

/* 2026-05-30 鈴木: 未読バッジがヘッダー上端で見切れる不具合を修正。アイコン右上角に収め白フチで視認性UP */
.head-nav>ul li.h-btn span {
  min-width: 1.7rem;
  height: 1.7rem;
  padding: 0 0.35rem;
  background-color: #e23a0e;
  border: 0.2rem solid #fff;
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 1rem;
  font-weight: bold;
  line-height: 1;
  position: absolute;
  right: -0.3rem;
  top: 0;
  box-sizing: border-box;
  box-shadow: 0 0.1rem 0.3rem rgba(0, 0, 0, 0.18);
}

.head-nav>ul li.h-btn .notice_babble {
  position: absolute;
  top: 20px;
  left: -73px;
}

.head-nav>ul li.h-btn .notice_babble .babble-top {
  position: relative;
  display: inline-block;
  margin: 1.5em 0;
  padding: 7px 10px;
  min-width: 180px;
  max-width: 100%;
  color: #000;
  font-size: 16px;
  background: #FFF;
  border: solid 2px var(--blue);
  box-sizing: border-box;
}

.head-nav>ul li.h-btn .notice_babble .babble-top::before {
  content: "";
  position: absolute;
  top: -24px;
  left: 50%;
  margin-left: -15px;
  border: 12px solid transparent;
  border-bottom: 12px solid #FFF;
  z-index: 2;
}

.head-nav>ul li.h-btn .notice_babble .babble-top::after {
  content: "";
  position: absolute;
  top: -30px;
  left: 50%;
  margin-left: -17px;
  border: 14px solid transparent;
  border-bottom: 14px solid var(--blue);
  z-index: 1;
}

.head-nav>ul li.h-btn .notice_babble ul {
  font-size: 1.4rem;
}

.head-nav>ul li.h-btn .notice_babble ul li {
  margin-right: 0;
}

.head-nav .head-btn-wrap {
  display: flex;
  justify-content: flex-start;
  align-items: center;
}

.head-nav .head-btn {
  display: block;
  height: 3.6rem;
  margin-left: 0.5rem;
  text-align: center;
}

.head-nav .head-btn a {
  width: 100%;
  height: 100%;
  padding: 0 2rem;
  color: #fff;
  font-size: 1.5rem;
  font-weight: 600;
  background-image: linear-gradient(to right, rgb(20, 76, 161), #3e6aca);
  border-radius: 30px;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

#top .head-nav .head-btn a {
  background-image: none;
  background-color: #fff;
  color: var(--blue);
}

.head-nav .head-btn a:hover {
  color: #fff;
  background-image: linear-gradient(to left, rgb(20, 76, 161), #3e6aca);
}

@media screen and (max-width: 959.98px) {
  .head-nav {
    width: auto;
  }

  .head-nav>ul .pc--disp {
    display: none;
  }
}

@media screen and (max-width: 767.98px) {
  .head-nav {
    width: auto;
  }

  .head-nav .head-btn {
    height: 3.5rem;
    margin-left: 0.5rem;
  }

  .head-nav .head-btn a {
    padding: 0 1rem;
    font-size: 1.2rem;
  }
}

.item__badge {
  padding: 0.5rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-content: center;
  align-items: center;
  min-width: 2rem;
  width: auto;
  height: 2rem;
  border-radius: 2rem;
  background: rgba(236, 13, 13, 0.8);
  color: #fff;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1;
  position: absolute;
  right: -0.7rem;
  top: -0.2rem;
  z-index: 1;
  transition: all 0.6s ease 0.2s;
}

.dashboard__menu-others .dashboard__menu-btn {
  position: relative;
  display: block;
}

.dashboard__menu-others .dashboard__menu-btn span {
  width: 25px;
  height: 25px;
  background-color: #c43708;
  border-radius: 25px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 1.4rem;
  font-weight: bold;
  line-height: 1;
  position: absolute;
  right: -8px;
  top: -8px;
}


/**
 * ハンバーガー
**/
#nav-drawer {
  width: 3rem;
  display: unset;
  cursor: pointer;

}

.top #nav-drawer {
  margin: 0 0 0 0.5rem;
}

/*チェックボックス等は非表示に*/
.nav-unshown {
  display: none;
}

/*アイコンのスペース*/
#nav-open {
  display: inline-block;
  width: 3.5rem;
  position: relative;
  cursor: pointer;
}

#nav-open img {
  display: inline-block;
}

#nav-open span {
  position: absolute;
  height: 2px;
  width: 3rem;
  background: #0b499f;
  display: block;
  content: "";
  cursor: pointer;
}

#top #nav-open span {
  background: #fff;
}

#nav-open span::before,
#nav-open span::after {
  position: absolute;
  height: 2px;
  width: 3rem;
  background: #0b499f;
  display: block;
  content: "";
  cursor: pointer;
  transition: 0.2s;
}

#top #nav-open span::before,
#top #nav-open span::after {
  background: #fff;
}

#nav-open span::before {
  bottom: -1rem;
}

#nav-open span::after {
  bottom: -2rem;
}

#nav-open:hover span,
#nav-open:hover span::before,
#nav-open:hover span::after {
  width: 3rem;
  opacity: 0.7;
}

/*ハンバーガーアイコンをCSSだけで表現*/
/*閉じる用の薄黒カバー*/
#nav-close {
  display: none;
  position: fixed;
  z-index: 99;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #000;
  opacity: 0;
  transition: 0.3s ease-in-out;
}

/*中身*/
#nav-content {
  overflow: auto;
  position: fixed;
  top: 1rem;
  right: 1rem;
  z-index: 9999;
  width: 90%;
  max-width: 35rem;
  height: 100%;
  padding: 0 4rem 4rem;
  background: #fff;
  border-radius: 0.5rem;
  box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.1);
  transition: 0.3s ease-in-out;
  transform: translateX(105%);
}

/*チェックが入ったらもろもろ表示*/
#nav-input:checked~#nav-close {
  display: block;
  opacity: 0.5;
}

#nav-input:checked~#nav-content {
  transform: translateX(0%);
  box-shadow: 0.6rem 0 2.5rem rgba(0, 0, 0, 0.15);
}

#nav-content ul {
  margin-top: 4rem;
}

#nav-content ul li {
  margin: 0;
}

.head-nav.user #nav-content ul li:nth-child(3) {
  border-bottom: 1px solid #0051ad;
}

#nav-content ul li a {
  padding: 0.5rem 0;
  font-weight: 400;
  display: block;
}

@media screen and (max-width: 767.98px) {
  #nav-content {
    max-width: 28rem;
    padding: 0 2rem 2rem;
  }

  #nav-content ul {
    margin-top: 2rem;
  }
}

/* 2026-05-30 鈴木: サイドメニュー(ドロワー)刷新。各行を囲む青枠を撤去し、iOS設定風のグループ化カードUIへ */
.head-nav.member.business #nav-content {
  padding: 0 1.6rem 4rem;
}

.head-nav.member.business #nav-content .nav_ttl {
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #9aa3b8;
  margin: 2.2rem 0 0.7rem;
  padding-left: 0.4rem;
}

.head-nav.member.business #nav-content .nav_ttl:first-child {
  margin-top: 2.4rem;
}

.head-nav.member.business #nav-content ul {
  margin: 0 0 0.6rem;
  background: #f6f8fc;
  border-radius: 1.4rem;
  overflow: hidden;
}

.head-nav.member.business #nav-content ul li {
  border: none;
  margin: 0;
  padding: 0;
}

.head-nav.member.business #nav-content ul li:not(:last-child) a {
  border-bottom: 1px solid #e7ebf4;
}

.head-nav.member.business #nav-content ul li a {
  color: #21398e;
  font-size: 1.5rem;
  font-weight: 600;
  padding: 1.25rem 1.4rem;
  display: flex;
  align-items: center;
  transition: background 0.15s ease;
}

.head-nav.member.business #nav-content ul li a:hover,
.head-nav.member.business #nav-content ul li a:active {
  background: #ffffff;
}

.head-nav.member.business #nav-content ul.other li {
  border: none;
}

.head-nav.member.business #nav-content ul.other {
  border: none;
}

#other_accordion_click {
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 0.6rem;
}

#other_accordion_click::after {
  display: inline-block;
  content: "";
  width: 8px;
  height: 8px;
  border: 2px solid;
  border-color: #9aa3b8 #9aa3b8 transparent transparent;
  transform: rotate(45deg);
}

/**
 * 下部固定ボタン
**/
@media only screen and (min-width: 569px) {
  .bottom-btn {
    display: none;
  }
}

.bottom-btn {
  width: 100%;
  position: fixed;
  bottom: 0;
  text-align: center;
  padding: 0.5rem;
  background: rgba(255, 255, 255, 0.85);
  box-sizing: border-box;
  box-shadow: 0 -2px 1rem 0 rgba(0, 0, 0, 0.08);
  z-index: 2;
}

.bottom-btn>div {
  margin: 0 auto;
}

.bottom-btn .btn-box__2 {
  max-width: 100%;
}

.bottom-btn .btn-box__2 .btn {
  flex-basis: 49%;
  max-width: none;
  margin: 0;
}

footer {
  width: 100%;
  margin-top: 5rem;
}

footer .foot-wrap {
  background-color: #f5f5f5;
  padding: 3rem 0;
}

/* 2026-05-30 鈴木: モバイル時のロゴが viewport を埋めるほど大きかったので適正化 */
footer .foot-logo {
  max-width: 20rem;
  width: 100%;
  margin: 0 auto 2rem;
}
@media only screen and (max-width: 767.98px) {
  footer .foot-logo {
    max-width: 16rem;
    margin: 0 auto 1.5rem;
  }
  footer .foot-wrap {
    padding: 2.5rem 0;
  }
}

footer .foot-nav {
  justify-content: center;
  font-size: 1.5rem;
  color: #373737;
}

@media only screen and (max-width: 767.98px) {
  footer .foot-nav {
    flex-direction: column;
  }
}

footer .foot-nav li:not(:last-child) {
  margin-right: 2rem;
}

@media only screen and (max-width: 767.98px) {
  footer .foot-nav li:not(:last-child) {
    margin-bottom: 1rem;
  }
}

footer .foot-subnav {
  font-size: 1.4rem;
  margin-top: 1rem;
}

@media only screen and (max-width: 767.98px) {
  footer .foot-subnav {
    margin-top: 2rem;
  }
}

footer .foot-bottom {
  font-size: 1.4rem;
  background-color: #fff;
  color: #373737;
  text-align: center;
  padding: 1.5rem 0;
}

/**パンくず**/
.breadcrumb {
  background-color: #f8f8f8;
  font-size: 16px;
  margin-bottom: 0 !important;
  margin-top: 10rem;
}

@media screen and (max-width: 767.98px) {
  .breadcrumb {
    font-size: 12px;
    margin-top: 6rem;
  }
}

.breadcrumb__list {
  width: 100%;
  height: 5rem;
  display: flex;
  align-items: center;
  font-size: 1.6rem;
  color: #6c6c6c;
}

.breadcrumb__item::before {
  content: ">";
  padding: 0 0.5rem;
}

.breadcrumb__item:first-child::before {
  content: none;
}

@media screen and (max-width: 767.98px) {
  .breadcrumb__list {
    height: 3.5rem;
    line-height: 3.5rem;
    font-size: 1.4rem;
    display: block;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    overflow-scrolling: touch;
    overflow: auto;
    white-space: nowrap;
  }

  .breadcrumb__item {
    display: inline;
    flex: 0 0 40%;
  }
}





/* 一覧の検索部品 */
.search {
  padding: 0;
}

.search__area {
  padding-bottom: 20px;
}
.search__area--second {
  padding-block: 10px;
  background: #e2eaf4;
}

.search__word,
.search__sort,
.search__filter {
  display: flex;
  flex-flow: row nowrap;
  justify-content: flex-start;
  align-items: center;
  width: 100%;
  max-width: 1360px;
  margin: 0 auto;
  padding: 0 8rem;
  gap: 8px;
}
.search__sort {
  margin-top: 2rem;
  gap: 12px;
}
@media only screen and (max-width: 959.98px) {
  .search__word,
  .search__sort,
  .search__filter {
    flex-wrap: wrap;
    max-width: none;
    padding: 0 2rem;
  }
}
@media screen and (max-width: 767.98px) {
  .search__word,
  .search__sort,
  .search__filter {
    padding: 0 1.5rem;
  }
  .search__sort {
    margin-top: 1rem;
  }
}


.search__ttl {
  font-size: 15px;
  font-weight: 600;
  font-feature-settings: 'palt';
  white-space: nowrap;
  min-width: 88px;
  margin: 0;
  padding: 0;
}
.search__word>li:not([class]),
.search__sort>li:not([class]),
.search__filter>li:not([class]),
.search__item {
  font-size: 15px;
  font-weight: 400;
  font-feature-settings: 'palt';
  margin: 0;
  padding: 0;
}
@media screen and (max-width: 959.98px) {
  .search__ttl,
  .search__item {}
}


.search__item.sort_select a {
  font-weight: bold;
  color: #213464;
  font-size: 1.8rem;
}
@media screen and (max-width: 767.98px) {
  .search__item.sort_select {
    margin-bottom: 0;
  }
}

.search__item [type="text"],
.search__item [type="tel"],
.search__item [type="email"],
.search__item [type="number"],
.search__item [type="time"],
.search__item [type="date"],
.search__item [type="search"] {
  border-radius: 1rem;
  border: 1px solid #213464;
  background: #fff;
  font-size: 1.6rem;
  width: 100%;
  height: 4.5rem;
  line-height: 4.3rem;
  margin: 0;
  padding: 0 2.5rem 0 1.5rem;
}
@media screen and (max-width: 959.98px) {
  .search__item [type="text"],
  .search__item [type="tel"],
  .search__item [type="email"],
  .search__item [type="number"],
  .search__item [type="time"],
  .search__item [type="date"],
  .search__item [type="search"] {
    font-size: 1.4rem;
    padding: 0 0.5rem;
  }
}


.search__item .select {
  width: 100%;
}
.search__item .select > select {
  width: 100%;
}

/* has checkbox */
.search__word>li:has([type="checkbox"]),
.search__sort>li:has([type="checkbox"]),
.search__filter>li:has([type="checkbox"]),
.search__item:has([type="checkbox"]) {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 4px;
}
.search__word>li:not([class]) [type="checkbox"],
.search__sort>li:not([class]) [type="checkbox"],
.search__filter>li:not([class]) [type="checkbox"],
.search__item [type="checkbox"] {
  margin: 0;
}

/* button (submit) */
.search__word>.btn:last-child,
.search__sort>.btn:last-child,
.search__filter>.btn:last-child,
.search__item.btn:last-child {
  margin-inline: auto 0;
}






/* 無料トライアルを始める */
.top-register {
  position: fixed;
  z-index: 999;
  right: 6.5rem;
  bottom: 2rem;
  width: 18.5rem;
}

.top-register img {
  width: 100%;
}

@media only screen and (max-width: 1400.98px) {
  .top-register {
    width: 14rem;
  }
}

@media only screen and (max-width: 959.98px) {
  .top-register {
    right: 2rem;
    bottom: 2rem;
  }
}

@media only screen and (max-width: 767.98px) {
  .top-btn {
    height: 4.8rem;
    line-height: 5.1rem;
    font-size: 1.8rem;
  }

  .top-register {
    right: 1rem;
    bottom: 2rem;
    width: 10rem;
  }
}

/****************modal****************/
#modal-drawer {
  width: 18rem;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  border-radius: 0.5rem;
}

.modal-unshown {
  display: none;
}

.modal__btn {
  max-width: 18rem;
  margin-top: 0;
  margin-left: auto;
}

.modal__btn>span {
  width: 100%;
  height: 4.5rem;
  padding: 0;
  background: #144ca1;
  color: #fff;
  border-radius: 0.2rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

#modal-open {
  display: block;
}

#modal-close {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: black;
  opacity: 0;
  transition: 0.3s ease-in-out;
  z-index: 1000;
}

#modal-content {
  overflow: auto;
  position: fixed;
  width: 900px;
  height: 80%;
  top: 10%;
  left: calc(50% - 400px);
  padding: 2rem;
  background: #fff;
  border: 20px solid #fff;
  transform: translateX(180%);
  opacity: 0;
  border-radius: 6px;
  z-index: 1001;
}

#modal-content .btn {
  margin: 4rem auto;
}

#modal-input:checked~#modal-close {
  display: block;
  opacity: 0.5;
}

#modal-input:checked~#modal-content {
  transform: translateX(0%);
  box-shadow: 6px 0 25px rgba(0, 0, 0, 0.15);
  opacity: 1;
}

#modal-content .table th,
#modal-content .table td {
  padding: 1rem 2rem;
}

@media only screen and (max-width: 959.98px) {
  #modal-drawer {
    width: 11rem;
    font-size: 1.2rem;
  }

  #modal-content {
    width: 80%;
    left: 10%;
    padding: 1rem;
  }
}

@media only screen and (max-width: 767.98px) {
  #modal-content {
    width: 98%;
    left: 1%;
    border: 10px solid #fff;
    padding: 1rem 0;
  }

  #modal-content .table td {
    padding: 1rem 1rem 1.5rem;
  }
}



/* .sub-result */
.sub-result__list {
  --sub-result-item-img-size: 180px;
  position: relative;
}
@media screen and (max-width: 767.98px) {
  .sub-result__list {
    --sub-result-item-img-size: 64px;
  }
}


/* .sub-result list item */
.sub-result__item {
  display: flex;
  flex-flow: row wrap;
  justify-content: flex-start;
  align-content: flex-start;
  align-items: flex-start;
  border-radius: 0.5rem;
  border: solid 1px #ccc;
  background: #fff;
  width: 100%;
  margin: 0 0 32px;
  padding: 4px;
  position: relative;
}
@media screen and (max-width: 959.98px) {
  .sub-result__item {
    padding: 4px;
  }
}
@media screen and (max-width: 767.98px) {
  .sub-result__item {
    margin-bottom: 20px;
    padding: 4px;
  }
}

.sub-result__item-header {
  display: flex;
  flex-flow: row wrap;
  justify-content: flex-start;
  align-content: flex-end;
  align-items: flex-end;
  border-bottom: solid 1px #d3d3d3;
  width: 100%;
  margin: 0 0 4px;
  padding: 0;
  gap: 0 8px;
}

/* .sub-result item image */
.sub-result__img {
  width: var(--sub-result-item-img-size);
}
.sub-result__img img {
  border-radius: 0.5rem;
  background-color: #fafafa;
  width: var(--sub-result-item-img-size);
  height: var(--sub-result-item-img-size);
  object-fit: cover;
}

.sub-result__desc {
  display: flex;
  flex-flow: column nowrap;
  justify-content: flex-start;
  align-items: stretch;
  width: 100%;
  padding: 0;
}
.sub-result__img+.sub-result__desc {
  width: calc( 100% - var(--sub-result-item-img-size) );
  padding: 0 0 0 20px;
}
@media screen and (max-width: 767.98px) {
  .sub-result__desc {
    width: 100%;
    padding: 0;
  }
  .sub-result__img+.sub-result__desc {
    width: calc( 100% - var(--sub-result-item-img-size) );
    padding: 0 0 0 4px;
  }
}

.sub-result__top {
  display: flex;
  flex-flow: row wrap;
  justify-content: flex-start;
  align-content: flex-end;
  align-items: flex-end;
  margin: 0;
  padding: 0;
  gap: 0 8px;
}
.sub-result__top>.sub-result__ttl,
.sub-result__top>.sub-result__txt {
  width: 100%;
}
.sub-result__bottom {
  margin-top: 1rem;
}
@media screen and (max-width: 959.98px) {
  .sub-result__top {
    padding: 0;
  }
}
@media screen and (max-width: 767.98px) {
  .sub-result__top {
    padding: 0;
  }
}

.sub-result__name {
  font-size: 12px;
}

.sub-result__ttl {
  font-size: 24px;
  font-weight: 700;
  line-height: 1.5;
  margin: 8px 0;
}
.deadline {
  text-align: right;
  padding: .5rem auto;
  font-size: .8rem;
}

.sub-result__profile {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  font-size: 1.1rem;
}

.sub-result__profile li {
  margin-top: 0.5rem;
  color: #535d64;
  line-height: 1;
}

.sub-result__btn {
  max-width: 18rem;
  margin-top: 0;
  margin-left: auto;
}
@media screen and (max-width: 767.98px) {
  .sub-result__ttl {
    margin-bottom: 0.5rem;
    font-size: 1.8rem;
  }

  .sub-result__btn {
    max-width: 14rem;
  }

  .sub-result__btn a {
    height: 3.5rem;
    font-size: 1.2rem;
  }
}

@media only screen and (max-width: 767.98px) {
  .sub-result__item .btn--small a,
  .sub-result__item .btn--small button,
  .sub-result__item .btn--small input,
  .sub-result__item .btn--small > span {
    font-feature-settings: 'palt';
    line-height: 1.1;
    padding: 0 2px;
  }
}



.result__rate {
  width: 10rem;
  height: 2.5rem;
  margin: 0.5rem 0;
  color: #fffc20;
  font-size: 1rem;
  font-weight: 700;
  background: #144ca1;
  border-radius: 0.5rem;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  display: flex;
  align-items: center;
  justify-content: center;
}

.result__point {
  padding-left: 0.2rem;
  font-size: 1.5rem;
}

.result__public {
  display: flex;
  justify-content: center;
  align-items: center;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  border-radius: 0;
  border: 1px solid #ff3a31;
  color: #ff3a31;
  font-weight: 700;
  font-size: 12px;
  min-width: 96px;
  height: 28px;
  margin: 0;
}
.result__public.private {
  border-color: #505050;
  background-color: #5c5c5c;
  color: #fff;
}




.result__item,
.outline__item {
  border-radius: 1rem;
  border: solid 1px #aab1c3;
  margin-bottom: 8rem;
  position: relative;
}

/* 募集終了バッジ（2026-05-30 鈴木: 多数表示時にうるさくならないようバナー化） */
.closed {
  position: absolute;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4em;
  background: linear-gradient(135deg, #4a4a4a 0%, #2c2c2c 100%);
  color: #fff;
  top: 10px;
  right: 10px;
  padding: 6px 14px;
  border-radius: 999px;
  font-size: 1.2rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  z-index: 5;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
  pointer-events: none;
}
.closed::before {
  content: "■";
  font-size: 0.7em;
  line-height: 1;
  opacity: 0.85;
}
/* カード全体を退色させて区別を明確に */
.result__item:has(.closed),
.outline__item:has(.closed) {
  opacity: 0.72;
  filter: grayscale(0.35);
  transition: opacity 0.2s, filter 0.2s;
}
.result__item:has(.closed):hover,
.outline__item:has(.closed):hover {
  opacity: 0.92;
  filter: grayscale(0.1);
}

@media only screen and (max-width: 767.98px) {
  .result__item,
  .outline__item {
    margin-bottom: 3rem;
  }
  .result__item:has(.result__head--btn),
  .outline__item:has(.outline__head--btn) {
    padding-bottom: 48px;
  }
  .closed {
    top: 8px;
    right: 8px;
    padding: 5px 11px;
    font-size: 1.1rem;
  }
}

.result__head,
.outline__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  border-radius: 1rem 1rem 0 0;
  background: #e2eaf4;
  padding: 3rem 5rem;
}
.is--juchu .result__head,
.is--juchu .outline__head {
  background: #ffc32e;
  color: #213464;
}
@media only screen and (max-width: 959.98px) {
  .result__head,
  .outline__head {
    padding: 2rem;
  }
}
@media screen and (max-width: 767.98px) {
  .result__head,
  .outline__head {
    padding: 1.5rem;
    position: static;
  }
}


.result__head--ttl,
.outline__head--ttl {
  font-size: 3rem;
  font-weight: 400;
  line-height: 4rem;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  /* 制限したい行数が2の場合 */
  overflow: hidden;
}
.icon_new {
  background: #ff3a31;
  color: #FFF;
  font-size: .8rem;
  padding: .5rem;
}
@media screen and (max-width: 767.98px) {
  .result__head--ttl,
  .outline__head--ttl {
    font-size: 1.8rem;
    line-height: 1.5;
  }
}
.result__head--ttl a,
.outline__head--ttl a {
  color: #213464;
}


.result__head--btn,
.outline__head--btn {
  margin-left: 2rem;
}
@media only screen and (max-width: 767.98px) {
  .result__head--btn,
  .outline__head--btn {
    width: auto;
    margin: 0;
    padding: 0 2rem 2rem;
    position: absolute;
    inset: auto 0 0 0;
    z-index: 1;
  }
}

.result__head--btn a,
.outline__head--btn a {
  width: 18rem;
  height: 4rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 1rem;
  background-color: #213464;
  font-size: 1.9rem;
  font-weight: 400;
  color: #fff;
}

@media only screen and (max-width: 959.98px) {
  .result__head--btn a,
  .outline__head--btn a {
    font-size: 1.7rem;
  }
}

@media only screen and (max-width: 767.98px) {
  .result__head--btn a,
  .outline__head--btn a {
    width: auto;
    font-size: 1.6rem;
  }
}

.result__head--btn a::after,
.outline__head--btn a::after {
  content: '';
  display: inline-block;
  background-image: url(../images/icon_arrow_more_white.png);
  background-size: contain;
  background-position: center center;
  background-repeat: no-repeat;
  width: 11px;
  height: 12px;
  margin-left: 1rem;
}

@media only screen and (max-width: 767.98px) {

  .result__head--btn a::after,
  .outline__head--btn a::after {
    width: 12px;
    height: 16px;
  }
}

.result__desc,
.outline__desc {
  padding: 2rem 5rem;
}

@media only screen and (max-width: 959.98px) {

  .result__desc,
  .outline__desc {
    padding: 2rem;
  }
}

.result__top,
.outline__top {
  border-bottom: 1px solid #d3d3d3;
  padding-bottom: 1rem;
  margin-bottom: 1rem;
}

.result__top--place,
.outline__top--place {
  font-size: 1.8rem;
  font-weight: 400;
  color: #000;
  display: flex;
  align-items: center;
}

@media only screen and (max-width: 767.98px) {

  .result__top--place,
  .outline__top--place {
    font-size: 1.4rem;
    margin-bottom: 1rem;
  }
}

.result__top--place::before,
.outline__top--place::before {
  content: "";
  width: 30px;
  height: 30px;
  background-image: url(../images/icon_map.png);
  background-size: contain;
  background-repeat: no-repeat;
}

@media only screen and (max-width: 767.98px) {

  .result__top--place::before,
  .outline__top--place::before {
    width: 20px;
    height: 20px;
  }
}

.result__top--wrap,
.outline__top--wrap {
  display: flex;
  align-items: center;
}
@media only screen and (max-width: 767.98px) {
  .result__top--wrap,
  .outline__top--wrap {
    flex-direction: column;
    align-items: flex-start;
  }
}

.result__top--name,
.outline__top--name {
  margin-right: 2rem;
  font-size: 2rem;
  font-weight: 400;
}

@media only screen and (max-width: 767.98px) {

  .result__top--name {
    margin-right: 0;
    font-size: 2rem;
  }

  .outline__top--name {
    margin-right: 0;
    font-size: 1.5rem;
  }
}

.result__top--name a,
.outline__top--name a {
  color: #213464;
  font-size: 1.4rem;
}

.outline__top--starwrap,
.result__top--starwrap {
  display: flex;
  align-items: center;
}

.result__top--star,
.outline__top--star {
  position: relative;
  font-size: 3rem;
}

@media only screen and (max-width: 767.98px) {

  .outline__top--starwrap,
  .result__top--starwrap {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
  }

  .result__top--star {
    font-size: 2rem;
  }

  .outline__top--star {
    font-size: 2.4rem;
  }
}

.result__top--star::before,
.result__top--star::after,
.outline__top--star::before,
.outline__top--star::after {
  display: block;
  top: 0;
  left: 0;
}

.result__top--star::before,
.outline__top--star::before {
  position: relative;
  color: #dcdcdc;
  content: "★ ★ ★ ★ ★";
}

.result__top--star.val1::after,
.outline__top--star.val1::after {
  position: absolute;
  color: #ffad45;
  content: "★";
}

.result__top--star.val2::after,
.outline__top--star.val2::after {
  position: absolute;
  color: #ffad45;
  content: "★ ★";
}

.result__top--star.val3::after,
.outline__top--star.val3::after {
  position: absolute;
  color: #ffad45;
  content: "★ ★ ★";
}

.result__top--star.val4::after,
.outline__top--star.val4::after {
  position: absolute;
  color: #ffad45;
  content: "★ ★ ★ ★";
}

.result__top--star.val5::after,
.outline__top--star.val5::after {
  position: absolute;
  color: #ffad45;
  content: "★ ★ ★ ★ ★";
}

.result__info,
.outline__info {
  font-size: 1.7rem;
  font-weight: 400;
  color: #000;
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

@media only screen and (max-width: 767.98px) {

  .result__info,
  .outline__info {
    font-size: 1.4rem;
    /* flex-direction: column; */
    align-items: flex-end;
  }
}

.result__info>*,
.outline__info>* {
  margin-left: 2rem;
}
@media only screen and (max-width: 767.98px) {
  /*
  .result__info>*,
  .outline__info>* {
    margin-left: 0;
  }
  */
}

.result__table,
.outline__table {
  border-top: solid 1px #d3d3d3;
  width: 100%;
  margin-top: 1rem;
  margin-bottom: 3rem;
}
@media only screen and (max-width: 767.98px) {
  .result__table,
  .outline__table {
    border-left: solid 1px #d3d3d3;
    border-right: solid 1px #d3d3d3;
  }
}

.result__table tr,
.outline__table tr {
  border-bottom: solid 1px #d3d3d3;
}
@media only screen and (max-width: 767.98px) {
  .result__table tr,
  .outline__table tr {
    /*display: block;*/
  }
}

.result__table th,
.outline__table th {
  background-color: #e9ebf4;
  color: #000;
  font-size: 1.7rem;
  font-weight: 600;
  text-align: left;
  width: 20%;
  padding: 2rem;
}
@media only screen and (max-width: 767.98px) {
  .result__table th,
  .outline__table th {
    /* display: block; */
    border-bottom: solid 1px #d3d3d3;
    font-size: 1.5rem;
    width: 7.5em;
    padding: 1rem;
  }
}

.result__table td,
.outline__table td {
  font-size: 1.9rem;
  font-weight: 400;
  color: #000;
  padding: 1rem;
  position: relative;
}
@media only screen and (max-width: 767.98px) {
  .result__table td,
  .outline__table td {
    /* display: block; */
    font-size: 1.5rem;
  }
}

/* 足場会アイコン */
.result__table td:has(.result-icon-ashibakai),
.outline__table td:has(.result-icon-ashibakai),
.result__table td:has(.outline-icon-ashibakai),
.outline__table td:has(.outline-icon-ashibakai) {
  position: relative;
  padding-right: 2lh;
}
.result-icon-ashibakai,
.outline-icon-ashibakai {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 1lh;
  height: 1lh;
  margin-left: 1ex;
  vertical-align: baseline;
}
.result__table td .result-icon-ashibakai,
.outline__table td .result-icon-ashibakai,
.result__table td .outline-icon-ashibakai,
.outline__table td .outline-icon-ashibakai {
  margin: 0;
  position: absolute;
  inset: 1.5rem 0.5lh auto auto;
}
.result-icon-ashibakai img,
.outline-icon-ashibakai img {
  width: 100%;
  height: auto;
  transform: translate(0,12.5%) scale(1.125);
}
@media only screen and (max-width: 767.98px) {
  .result__table td .result-icon-ashibakai,
  .outline__table td .result-icon-ashibakai,
  .result__table td .outline-icon-ashibakai,
  .outline__table td .outline-icon-ashibakai {
    inset: 8px 0.5lh auto auto;
  }
}



.result__bottom,
.outline__bottom {
  --result-btn-height: 40px;
  display: flex;
  flex-flow: row nowrap;
  justify-content: center;
  align-items: center;
  gap: 20px;
}
@media only screen and (max-width: 767.98px) {
  .result__bottom,
  .outline__bottom {
    --result-btn-height: 40px;
    flex-flow: column nowrap;
    justify-content: flex-start;
    align-items: stretch;
  }
}

.result__bottom>*,
.outline__bottom>* {
  max-width: calc( (100% - 20px * 2) / 3 );
  flex: 1 1;
}
@media only screen and (max-width: 767.98px) {
  .result__bottom>*,
  .outline__bottom>* {
    max-width: none;
    width: 100%;
    flex: auto;
  }
  .result__bottom--btn {
    display: none;
  }
}

.result__bottom--limit,
.outline__bottom--limit {
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 1rem;
  background: #e5e8ec;
  color: #213464;
  font-size: 16px;
  font-weight: 400;
  line-height: 1;
  height: var(--result-btn-height);
  padding: 0;
  gap: 8px;
}
@media only screen and (max-width: 959.98px) {
  .result__bottom--limit,
  .outline__bottom--limit {
    font-size: 14px;
  }
}
@media only screen and (max-width: 767.98px) {
  .result__bottom--limit,
  .outline__bottom--limit {
    font-size: 16px;
  }
}

.result__bottom--limit span,
.outline__bottom--limit span {
  font-size: 1.5em;
  margin-bottom: 3px;
}

.result__bottom--limit::before,
.outline__bottom--limit::before {
  content: '';
  background-image: url(../images/icon_clock.png);
  background-position: center center;
  background-size: contain;
  background-repeat: no-repeat;
  width: 26px;
  height: 26px;
}

.result__bottom--limit:empty,
.outline__bottom--limit:empty {
  display: none;
}
.result__bottom--limit:empty::before,
.outline__bottom--limit:empty::before {
  display: none;
}

.result__bottom--limit>span,
.outline__bottom--limit>span {
  font-weight: 700;
}



.result__bottom--fav,
.outline__bottom--fav {
  display: block;
  color: #5c5c5c;
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 1;
  position: relative;
}
@media only screen and (max-width: 767.98px) {
  .result__bottom--fav,
  .outline__bottom--fav {}
}

.result__bottom--fav a,
.outline__bottom--fav a {
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 1rem;
  border: 1px solid #aab1c3;
  background: transparent;
  color: #213464;
  font-size: 20px;
  font-weight: 700;
  line-height: 1;
  height: var(--result-btn-height);
  padding-top: 3px;
  gap: 8px;
}
@media only screen and (max-width: 959.98px) {
  .result__bottom--fav a,
  .outline__bottom--fav a {
    font-size: 17px;
  }
}

.result__bottom--fav a::before,
.outline__bottom--fav a::before {
  content: '';
  background-image: url(../images/icon_heart.png);
  background-position: center center;
  background-size: contain;
  background-repeat: no-repeat;
  width: 26px;
  height: 26px;
}

.result__bottom--fav>span,
.outline__bottom--fav>span {
  display: block;
  text-align: center;
  padding: 4px 0 0;
  position: absolute;
  left: 50%;
  bottom: 0;
  z-index: 1;
  transform: translate(-50%,100%);
}
@media only screen and (max-width: 959.98px) {
  .result__bottom--fav>span,
  .outline__bottom--fav>span {
    position: static;
    transform: translate(0,0);
  }
}



.result__bottom--btn a,
.outline__bottom--btn a,
.outline__action--btn a {
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 3em;
  background: #0051ad;
  color: #fff;
  font-size: 23px;
  font-weight: 600;
  height: 100%;
  min-height: 60px;
}
@media only screen and (max-width: 959.98px) {
  .result__bottom--btn a,
  .outline__bottom--btn a,
  .outline__action--btn a {
    font-size: 20px;
  }
}

.result__bottom--btn a::after,
.outline__bottom--btn a::after,
.outline__action--btn a::after {
  content: '';
  display: inline-block;
  width: 15px;
  height: 15px;
  background-image: url(../images/icon_arrow_more_white.png);
  background-position: center center;
  background-size: contain;
  background-repeat: no-repeat;
  margin-left: 1rem;
}




.outline__section {
  margin-top: 3rem;
}

.outline__section .outline__ttl {
  border-bottom: none;
  margin-bottom: 1rem;
}

.outline__ttl {
  font-size: 2.1rem;
  font-weight: 400;
  color: #213464;
  border-bottom: 1px solid #e1e1e1;
  padding-bottom: 0.5rem;
  margin-bottom: 2rem;
}

.outline__sub-ttl {
  font-size: 2rem;
  font-weight: 400;
  color: #213464;
  margin-bottom: 1rem;
}

.outline__txt {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.94;
  color: #000;
}

.outline__action--btn {
  max-width: 36rem;
  margin: 5rem auto;
}


/**
 * dashboard mypage
**/
.dashboard {
  padding-top: 10rem;
}

.dashboard .l-container {
  max-width: 767px;
}

.dashboard__head {
  margin-bottom: 3rem;
  background-color: #21398e;
  text-align: center;
  color: #fff;
  font-size: 1.8rem;
  font-weight: 400;
  line-height: 4rem;
}

.dashboard__news {
  margin-bottom: 3rem;
  border: 1px solid #21398e;
  border-radius: 5px;
  padding: 1rem 1.5rem;
}

.dashboard__news-date {
  color: #21398e;
  font-size: 1.6rem;
}

.dashboard__news-txt {
  font-size: 1.4rem;
}

.dashboard__menu {
  margin-bottom: 3rem;
}
.dashboard__menu.style--divide {
  border-top: solid 2px #E3E7F2;
  padding-top: 3rem;
}

.dashboard__menu-ttl {
  margin-bottom: 1rem;
  border-radius: 50px;
  text-align: center;
  font-size: 1.8rem;
  font-weight: 400;
  line-height: 4rem;
}

.dashboard__menu-ttl-blue {
  background-color: #21398e;
  color: #fff;
}

.dashboard__menu-ttl-yellow {
  background-color: #FCD158;
  color: #21398e;
}

.dashboard__menu-inner {
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
  align-content: flex-start;
  align-items: flex-start;
  gap: 1rem 5%;
}

.dashboard__menu-btn {
  width: 30%;
  position: relative;
}
.dashboard__menu-btn img {
  width: 100%;
  height: auto;
}

.dashboard__menu-btn.is--new::before {
  content: '';
  display: block;
  background-image: url("../images/icon-badge-new.svg");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: contain;
  width: 4rem;
  height: 4rem;
  position: absolute;
  right: 0;
  top: 0;
  z-index: 1;
  transform: translate(5%,-5%);
}



.dashboard__menu-bnrs {
  display: flex;
  flex-flow: column nowrap;
  justify-content: flex-start;
  align-items: stretch;
  width: 65%;
  gap: 1rem;
}
.dashboard__menu-bnrs a {
  display: block;
}
.dashboard__menu-bnrs img {
  width: 100%;
  height: auto;
}

.dashboard__menu-footer {
  display: flex;
  flex-flow: column nowrap;
  justify-content: flex-start;
  align-items: stretch;
  gap: 1rem;
}
*+.dashboard__menu-footer {
  margin-top: 3rem;
}
.dashboard__menu-footer a {
  display: block;
}
.dashboard__menu-footer img {
  width: 100%;
  height: auto;
}


.dashboard__menu-others {
  border-image-source: linear-gradient(#E3E7F2, #E3E7F2);
  border-image-slice: 0 fill;
  border-image-outset: 0 100vw 0 100vw;
  padding: 3rem 0;
}

/* =============================================================
   サービスメニュー (2026-05-30 鈴木 / SOUZOUDO)
   登録会員一覧 + 3サービス + YouTubeのトンマナを統一
   フォント・配色・余白をブランドカラー #21398e で揃える
   ============================================================= */
.svcmenu {
  display: grid;
  grid-template-columns: minmax(140px, 32%) 1fr;
  gap: 14px;
  align-items: stretch;
}

/* 登録会員一覧 (プライマリ) */
/* 2026-05-30 鈴木: border-radius を上部メニューSVG(rx=5.5/95 ≈ 8px相当)に合わせる */
.svcmenu__primary {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  text-decoration: none !important;
  background: linear-gradient(135deg, #21398e 0%, #2c4cb0 100%);
  color: #fff !important;
  border-radius: 8px;
  padding: 24px 12px;
  box-shadow: 0 4px 12px rgba(33, 57, 142, 0.18);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.svcmenu__primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(33, 57, 142, 0.28);
}
.svcmenu__primary .svcmenu__icon {
  width: 56px;
  height: 56px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.14);
  border-radius: 50%;
  color: #fff;
}
.svcmenu__primary .svcmenu__icon svg {
  width: 30px;
  height: 30px;
}
.svcmenu__primary .svcmenu__label {
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.3;
  text-align: center;
}

/* サービス一覧 (セカンダリ) */
.svcmenu__list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.svcmenu__item {
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none !important;
  background: #fff;
  color: #21398e !important;
  border: 1.5px solid #E3E7F2;
  border-radius: 8px;
  padding: 12px 16px;
  font-size: 1.4rem;
  font-weight: 600;
  line-height: 1.3;
  transition: border-color 0.15s ease, background 0.15s ease, transform 0.15s ease;
}
.svcmenu__item:hover {
  border-color: #21398e;
  background: #F4F7FE;
  transform: translateY(-1px);
}
.svcmenu__item .svcmenu__icon {
  flex-shrink: 0;
  width: 38px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #EEF2FA;
  border-radius: 10px;
  color: #21398e;
}
.svcmenu__item .svcmenu__icon svg {
  width: 20px;
  height: 20px;
}
.svcmenu__item .svcmenu__label {
  flex: 1 1 auto;
}
.svcmenu__item .svcmenu__chev {
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #94A3C0;
  transition: color 0.15s ease, transform 0.15s ease;
}
.svcmenu__item .svcmenu__chev svg {
  width: 14px;
  height: 14px;
}
.svcmenu__item:hover .svcmenu__chev {
  color: #21398e;
  transform: translateX(2px);
}

/* YouTube バナー */
/* YouTube CTA: 2026-05-30 鈴木: 外枠撤去・アイコン単体に絞ったミニマル設計 */
/* ページ末尾(ad-btn_box の下)に配置。サービスメニューとは性質が違うため切り離し */
.svcmenu__youtube {
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none !important;
  background: transparent;
  border: none;
  padding: 20px 0 24px;
  margin-top: 12px;
}
.svcmenu__youtube-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #FF0000;
  transition: transform 0.15s ease, filter 0.15s ease;
}
.svcmenu__youtube-icon svg {
  width: 40px;
  height: 40px;
  display: block;
  filter: drop-shadow(0 2px 4px rgba(255, 0, 0, 0.15));
}
.svcmenu__youtube:hover .svcmenu__youtube-icon {
  transform: scale(1.08);
  filter: drop-shadow(0 4px 8px rgba(255, 0, 0, 0.28));
}

/* モバイル */
@media only screen and (max-width: 767.98px) {
  .svcmenu {
    grid-template-columns: minmax(110px, 36%) 1fr;
    gap: 10px;
  }
  .svcmenu__primary {
    padding: 16px 8px;
    gap: 8px;
  }
  .svcmenu__primary .svcmenu__icon {
    width: 46px;
    height: 46px;
  }
  .svcmenu__primary .svcmenu__icon svg {
    width: 24px;
    height: 24px;
  }
  .svcmenu__primary .svcmenu__label {
    font-size: 1.3rem;
  }
  .svcmenu__item {
    padding: 10px 12px;
    font-size: 1.25rem;
    gap: 10px;
  }
  .svcmenu__item .svcmenu__icon {
    width: 32px;
    height: 32px;
  }
  .svcmenu__item .svcmenu__icon svg {
    width: 18px;
    height: 18px;
  }
  .svcmenu__youtube {
    padding: 10px 0 2px;
  }
  .svcmenu__youtube-icon svg {
    width: 34px;
    height: 34px;
  }
}

.dashboard__menu-others .dashboard__menu-inner {
  justify-content: flex-start;
}

.dashboard__nav {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-between;
  align-content: center;
  align-items: center;
  max-width: 768px;
  margin: 0 auto;
}

/* 2026-06-21 鈴木: 会員ステータスを白カード基調に刷新（全体のフラットUIと統一。旧=全幅ベタ塗りネイビーで浮いていた）。 */
.dashboard__status {
  padding: 2.4rem 0 0.5rem;
}

.dashboard__status-ttl {
  margin-bottom: 1.4rem;
  font-size: 1.8rem;
  font-weight: 800;
  color: #21398e;
  text-align: center;
}

.dashboard__status-box {
  position: relative;
  padding: 2.4rem 2rem 2rem;
  background: #fff;
  border: 1px solid #E9EDF4;
  border-radius: 16px;
  box-shadow: 0 2px 8px rgba(26, 34, 54, .05);
  text-align: center;
  font-weight: 400;
}

.dashboard__status-profile {
  display: block;
  width: 8.4rem;
  height: 8.4rem;
  margin: 0 auto 1rem;
  border-radius: 50%;
  background-color: #EEF2FC;
  object-fit: cover;
  border: 3px solid #fff;
  box-shadow: 0 2px 12px rgba(33, 57, 142, .15);
}

.dashboard__name {
  margin-bottom: 1.4rem;
  font-size: 1.8rem;
  color: #21398e;
  text-align: center;
  font-weight: 800;
}

.dashboard__status-info {
  width: 100%;
  margin: 0 auto;
  background: #F7F9FC;
  border: 1px solid #EEF0F4;
  border-radius: 12px;
  overflow: hidden;
  text-align: center;
  padding: 1.4rem 1.2rem;
}

.dashboard__status-subTtl {
  margin: 0 0 .8rem;
  background: transparent;
  color: #6b7280;
  font-size: 1.3rem;
  font-weight: 600;
  line-height: 1.5;
}

.dashboard__status-num {
  margin-bottom: .8rem;
  font-size: 1.4rem;
  font-weight: 700;
  color: #1a2236;
}

.dashboard__status-review {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: .2rem;
  margin-bottom: .2rem;
}

.dashboard__status-review img {
  position: relative;
  top: -.2rem;
  display: inline-block;
  height: 2rem;
  width: auto;
}

.dashboard__guide {
  padding: 3rem 0 0;
}

.dashboard__guide-ttl {
  font-size: 1.8rem;
  font-weight: 400;
  text-align: center;
  color: #21398e;
}

.dashboard__guide-btn {
  position: relative;
  display: inline-block;
  width: 100%;
  margin-top: 2rem;
  border: 1px solid #21398e;
  border-radius: 50px;
  color: #21398e;
  text-align: center;
  line-height: 6rem;
  font-size: 1.8rem;
  padding-right: 2.4rem; /* 矢印スペース予約: テキストと被らないように (2026-05-27 修正) */
}

.dashboard__guide-btn::before {
  content: '';
  position: absolute;
  top: 50%;
  right: 2.4rem;             /* 28%(可変) → 2.4rem(固定): テキスト長に関係なく右端 (2026-05-27 修正) */
  transform: translateY(-50%); /* X方向移動を削除 */
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 7.5px 0 7.5px 10px;
  border-color: transparent transparent transparent #21398e;

}

.dashboard__nav-btn-l {
  width: 100%;
}

.dashboard__nav-btn-m {
  width: 100%;
}

.dashboard__nav-btn-s {
  width: calc((100% - 2rem) / 2);
}

.dashboard__nav-btn-l,
.dashboard__nav-btn-m,
.dashboard__nav-btn-s {
  margin-top: 2rem;
}

/*#059ddf*/
.dashboard__nav-btn-l a,
.dashboard__nav-btn-m a,
.dashboard__nav-btn-s a {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: center;
  align-content: center;
  align-items: center;
  border-radius: 4px;
  border: solid 1px #3e6aca;
  background-image: linear-gradient(to right, rgb(20, 76, 161), #3e6aca);
  color: #fff;
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1;
  width: 100%;
  height: 6.4rem;
  padding: 0 2rem;
}

.dashboard__nav-btn-l a {
  height: 12rem;
}

.dashboard__nav-btn-m a {
  height: 6.4rem;
}

.dashboard__nav-btn-s a {
  border: solid 1px #3e6aca;
  background: #fff;
  color: #3e6aca;
  height: 4.8rem;
}

.dashboard__nav-btn-l i,
.dashboard__nav-btn-m i,
.dashboard__nav-btn-s i {
  transform: scale(1.33);
  transform-origin: right center;
}

.dashboard__nav-btn-l i+*,
.dashboard__nav-btn-m i+*,
.dashboard__nav-btn-s i+* {
  margin-left: 1ex;
}

.dashboard__nav-btn-l span,
.dashboard__nav-btn-m span,
.dashboard__nav-btn-s span {}

@media only screen and (max-width: 767.98px) {
  .dashboard {
    padding-top: 5.5rem;
  }
}

/**
 * カード型リスト mypage
**/
.card__list {
  display: flex;
  flex-wrap: wrap;
}

.card__item {
  width: 23.5%;
  margin-right: 2%;
  margin-bottom: 2%;
  padding: 1.5rem;
  background: #fff;
  border: 1px solid #e9eced;
  border-radius: 0.5rem;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  position: relative;
}

@media screen and (min-width: 768px) {
  .card__item:nth-child(4n) {
    margin-right: 0;
  }
}

.card__img {
  width: 100%;
}

.card__img img {
  width: 100%;
  height: 18rem;
  -o-object-fit: cover;
  object-fit: cover;
  font-family: "object-fit: cover;";
}

.card__desc {
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.card__ttl {
  margin: 1rem 0;
  font-size: 1.6rem;
  font-weight: 700;
}

.card__btn .btn--small {
  margin-bottom: 0.5rem;
}

.card__item .btnBox .btn--small {
  width: 49%;
  margin-top: 2%;
}

@media screen and (max-width: 959.98px) {
  .card__img img {
    height: 14rem;
  }
}

@media screen and (max-width: 767.98px) {
  .card__item {
    width: 49%;
    padding: 1rem;
  }

  .card__item:nth-child(2n) {
    margin-right: 0;
  }

  .card__ttl {
    font-size: 1.5rem;
  }
}

.thread__list {
  margin-bottom: 3rem;
  padding: 4rem;
  border: 1px solid #e9eced;
  border-radius: 0.5rem;
}

.thread__item {
  border-top: 1px solid #e9eced;
}

.thread__item:last-child {
  border-bottom: 1px solid #e9eced;
}

.thread__item a {
  padding: 1.5rem;
  display: block;
}

@media screen and (max-width: 767.98px) {
  .thread__list {
    padding: 1rem 0;
    margin-bottom: 2rem;
  }
}


/**
 * チャット
**/
.chat {
  padding-bottom: 20rem;
}

@media only screen and (max-width: 959.98px) {
  .chat {
    padding-bottom: 14rem;
  }
}

.chat-outline .c-head {
  margin-bottom: 1rem;
}

.chat__status {
  width: 100px;
  height: 40px;
  margin-bottom: 10px;
  padding: 0 10px;
  font-weight: 700;
  color: #fff;
  background: #144ca1;
  border: 1px solid #e9eced;
  border-radius: 0.5rem;
  float: left;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

.chat__status input {
  color: #fff;
}

.chat-inner body {
  margin: 0 !important;
}

.chat-inner .ifrm {
  width: 100%;
  min-height: 35vh;
  padding: 10px 0;
  background: #fff;
  border: 1px solid #e9eced;
  border-radius: 0.5rem;
}

.chat-inner .inner {
  overflow: hidden;
}

@media only screen and (max-width: 767.98px) {
  .chat__status {
    width: 70px;
    height: 30px;
    margin-bottom: 5px;
    font-size: 12px;
  }

  .chat__status input {
    font-size: 12px;
  }

  .chat-inner {
    padding: 1rem;
  }
}

.chat-footer {}

@media (min-width: 768px) {
  .chat-footer {}
}

@media only screen and (max-width: 767.98px) {
  .chat-footer {
    display: block;
    position: fixed;
    left: 1em;
    right: 1em;
    bottom: 1em;
    z-index: 5;
  }
}

/* 2026-06-07 鈴木+Claude: チャットの最後の吹き出しが固定入力バー(.chat-footer)に隠れる問題の対策。
   会話スクロール領域(.chat-scroll)の下に「バー高さ+隙間」分の余白を確保。既定値で隠れ防止、
   JS(quick-reply.js)が実バー高さを --chat-foot-pad で精密に上書きする。 */
@media only screen and (max-width: 767.98px) {
  .chat-scroll {
    box-sizing: border-box;
    padding-bottom: var(--chat-foot-pad, calc(8.5rem + env(safe-area-inset-bottom)));
  }
}

.left_balloon,
.right_balloon {
  margin: 10px 30px;
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
}

.left_balloon p {
  margin: 0;
  color: #535d64;
  font-size: 15px;
  position: relative;
}

.right_balloon p {
  color: #535d64;
  font-size: 15px;
  position: relative;
  /*
    margin: 0;
    padding: 15px 20px;
    color: #535D64;
    font-size: 15px;
    position: relative;
    background: #fafafa;
    border-radius: 0 10px 10px 10px;
    border: 1px solid #707070;
  */
}

.system_balloon {
  background: #f8f8f8;
  border: 2px solid #e8e8e8;
  margin: 5px;
  padding: 5px 10px;
  border-radius: 5px;
}

.balloon_div_right {
  max-width: 500px;
  position: relative;
  padding: 10px 13px 10px 18px;
  border-radius: 12px;
  background: #dbedfc;
  box-sizing: border-box;
  margin: 0 !important;
  line-height: 1.5;
}

.right_balloon .balloon_div_left {
  display: none;
}

.left_balloon .balloon_div_right {
  background: #eee;
}

.right_balloon {
  justify-content: flex-end;
}

.right_balloon .balloon_div_right::after {
  top: 10px;
  right: -26px;
  border-left: 22px solid #dbedfc;
}

.balloon_div_right::after {
  content: "";
  position: absolute;
  border: 10px solid transparent;
}

.left_balloon .balloon_div_right::after {
  top: 10px;
  left: -26px;
  border-right: 22px solid #eee;
}

.balloon_div_right::after {
  content: "";
  position: absolute;
  border: 10px solid transparent;
  margin-top: -3px;
}

.right_balloon img,
.left_balloon img {
  width: 40px;
  height: 40px;
  -o-object-fit: cover;
  object-fit: cover;
  border-radius: 3px;
}

.left_balloon .balloon_div_left {
  margin-right: 25px;
}

.balloon_div_left img {
  width: 45px;
  height: 45px;
  border-radius: 50%;
  -o-object-fit: cover;
  object-fit: cover;
  font-family: "object-fit: cover;";
}

@media only screen and (max-width: 767.98px) {

  .left_balloon,
  .right_balloon {
    width: auto;
    margin-bottom: 20px;
  }

  .left_balloon p,
  .right_balloon p {
    font-size: 12px;
  }
}

.balloon_sub {
  margin: 0 0 2px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}

.balloon_name {
  margin-right: 5px;
  font-size: 13px;
  font-weight: 700;
  display: block;
}

.balloon_date {
  margin-right: 5px;
  color: #7d7d7d;
  font-size: 11px;
}

.balloon_kidoku {
  padding: 0 5px;
  font-size: 10px;
  border: 1px solid #b4bfc2;
  border-radius: 3px;
}

@media screen and (max-width: 767.98px) {

  .balloon_name,
  .balloon_date {
    font-size: 10px;
  }

  .balloon_kidoku {
    font-size: 8px;
  }
}

.chat-footer textarea {
  padding-bottom: 40px;
  position: relative;
  z-index: 1;
}

.submit__area {
  display: flex;
  justify-content: flex-end;
  align-content: center;
  align-items: center;
  width: 100%;
  position: absolute;
  bottom: 0.5rem;
  right: 20px;
  z-index: 5;
}

.chat__submit button,
.chat__submit [type="submit"],
.chat__submit [type="button"] {
  border-left: 1px solid #e9eced;
  background: #3e6aca;
  color: #fff;
  white-space: nowrap;
  height: 4rem;
  padding: 0 20px;
}

.btn-file {
  height: 4rem;
}

.btn-file::before {
  content: "";
  width: 4rem;
  height: 4rem;
  margin-right: 1rem;
  background: url("../images/icon-clip.png") center center/100% no-repeat;
  display: inline-block;
  position: relative;
  top: 0;
  right: 0;
}

@media only screen and (max-width: 767.98px) {
  .chat-footer textarea {
    padding: 15px 10px 40px;
  }

  .chat-footer textarea::-moz-placeholder {
    font-size: 13px;
    line-height: 2;
  }

  .chat-footer textarea::placeholder {
    font-size: 13px;
    line-height: 2;
  }

  .submit__area {
    padding-bottom: 4px;
    right: 10px;
  }

  .btn-file {
    height: 3rem;
  }

  .btn-file::before {
    width: 3rem;
    height: 3rem;
    margin-right: 0;
  }

  .chat__submit button,
  .chat__submit [type="submit"],
  .chat__submit [type="button"] {
    font-size: 10px;
    height: 3rem;
    padding: 0 10px;
  }
}

.pagination__list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

.pagination span,
.pagination a {
  width: 4rem;
  height: 4rem;
  margin-right: 1rem;
  background: #fff;
  border: solid 1px #d5d8e1;
  color: #7284a2;
  border-radius: 0.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  font-weight: 400;
}

.pagination span:last-child,
.pagination a:last-child {
  margin-right: 0;
}

.pagination .current,
.pagination a:hover {
  color: #fff;
  border: solid 1px #213464;
  background: #213464;
}

/* ============================================ */
/* PERSONALIZED HERO (マイページ挨拶バナー)        */
/* LINE版 PersonalizedHero.tsx の移植 (2026-05-26) */
/* ============================================ */
.personalized-hero {
  background: linear-gradient(135deg, #fef3c7 0%, #fed7aa 100%);
  border-radius: 1.6rem;
  padding: 2rem 2.4rem;
  margin: 2rem 0 2.4rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  position: relative;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(245, 158, 11, 0.12);
}

/* 装飾円 */
.personalized-hero::before {
  content: "";
  position: absolute;
  top: -50%;
  right: -10%;
  width: 30rem;
  height: 30rem;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.3) 0%, transparent 70%);
  pointer-events: none;
}

.personalized-hero__left {
  flex: 1;
  min-width: 0;
  position: relative;
  z-index: 1;
}

.personalized-hero__title-row {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  margin-bottom: 0.6rem;
}

/* 時間帯アイコン */
.personalized-hero__icon {
  width: 4.4rem;
  height: 4.4rem;
  background: linear-gradient(135deg, #f59e0b, #f97316);
  border-radius: 1.2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 4px 12px rgba(245, 158, 11, 0.3);
}

.personalized-hero__icon svg {
  width: 2.4rem;
  height: 2.4rem;
  color: #fff;
  stroke-width: 2;
}

/* タイトル「こんにちは、株式会社XXXさん」 */
.personalized-hero__title {
  font-size: 2.2rem;
  font-weight: bold;
  color: #1e3a8a;
  line-height: 1.3;
  margin: 0;
  word-break: break-word;
}

.personalized-hero__name {
  background: linear-gradient(to right, #f59e0b, #f97316);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: #f59e0b; /* fallback */
}

/* サブテキスト「あなたに合った案件が見つかるかも」 */
.personalized-hero__sub {
  font-size: 1.3rem;
  color: #71717a;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding-left: 5.6rem; /* アイコン分のオフセット */
}

.personalized-hero__sub svg {
  width: 1.6rem;
  height: 1.6rem;
  color: #f59e0b;
  flex-shrink: 0;
}

/* CTA ボタン */
.personalized-hero__cta {
  background: linear-gradient(to right, #f59e0b, #f97316);
  color: #fff;
  padding: 1.2rem 2.4rem;
  border-radius: 0.8rem;
  text-decoration: none;
  font-weight: bold;
  font-size: 1.4rem;
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  white-space: nowrap;
  box-shadow: 0 4px 12px rgba(249, 115, 22, 0.35);
  position: relative;
  z-index: 1;
  transition: transform 0.15s, box-shadow 0.15s;
}

.personalized-hero__cta:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(249, 115, 22, 0.45);
  color: #fff;
}

.personalized-hero__cta svg {
  width: 1.6rem;
  height: 1.6rem;
  stroke-width: 2.5;
}

/* モバイル対応 */
@media only screen and (max-width: 767.98px) {
  .personalized-hero {
    flex-direction: column;
    align-items: stretch;
    padding: 1.6rem;
    border-radius: 1.2rem;
  }
  .personalized-hero__title {
    font-size: 1.6rem;
  }
  .personalized-hero__icon {
    width: 3.6rem;
    height: 3.6rem;
    border-radius: 1rem;
  }
  .personalized-hero__icon svg {
    width: 2rem;
    height: 2rem;
  }
  .personalized-hero__sub {
    padding-left: 0;
    font-size: 1.2rem;
  }
  .personalized-hero__cta {
    justify-content: center;
    padding: 1.2rem;
  }
}

/* === ページネーション改善版用 (2026-05-26) === */

/* 「…」省略表示: ボーダーなしのテキストのみ */
.pagination .ellipsis {
  background: transparent;
  border: none;
  color: #7284a2;
  cursor: default;
  width: 3rem;
}

.pagination .ellipsis:hover {
  background: transparent;
  border: none;
  color: #7284a2;
}

/* 前後ナビ「‹ ›」: 太字、ジャンプ動作を強調 */
.pagination .nav {
  font-size: 2.6rem;
  font-weight: bold;
  line-height: 1;
}

/* 無効状態（最初/最終ページ） */
.pagination .nav.disabled {
  opacity: 0.3;
  cursor: not-allowed;
  pointer-events: none;
  background: #f5f5f5;
}

.pagination .nav.disabled:hover {
  color: #7284a2;
  border: solid 1px #d5d8e1;
  background: #f5f5f5;
}

/* モバイルでも1行に収まるよう間隔を調整 */
.pagination__list {
  gap: 0.4rem;
  flex-wrap: nowrap;
  overflow-x: auto;
  padding: 0 1rem;
}

@media only screen and (max-width: 767.98px) {
  .pagination {
    padding: 2rem 0;
  }
  .pagination span,
  .pagination a {
    margin-right: 0;
    width: 3.6rem;
    height: 3.6rem;
    font-size: 1.6rem;
  }
  .pagination .ellipsis {
    width: 2rem;
  }
  .pagination .nav {
    font-size: 2.2rem;
  }
}

@media only screen and (max-width: 320.98px) {
  .pagination {
    font-size: 1.1rem;
  }

  .pagination span,
  .pagination a {
    padding: 0.8rem 1rem 0.8rem 1rem;
  }

  .pagination .current {
    padding: 0.8rem 1rem 0.8rem 1rem;
  }
}

.outline__gallery ul {
  display: flex;
  flex-wrap: wrap;
  margin-top: 2rem;
}

.outline__gallery li {
  width: calc((100% - 6rem) / 3);
  margin-bottom: 3rem;
  margin-right: 3rem;
}

@media only screen and (max-width: 767.98px) {
  .outline__gallery li {
    width: calc((100% - 3rem) / 2);
  }
}

@media only screen and (min-width: 768px) {
  .outline__gallery li:nth-child(3n) {
    margin-right: 0;
  }
}

@media only screen and (max-width: 767.98px) {
  .outline__gallery li:nth-child(2n) {
    margin-right: 0;
  }
}

.outline__gallery img {
  aspect-ratio: 16/9;
  -o-object-fit: cover;
  object-fit: cover;
}

.knowledge__list {
  display: flex;
  flex-wrap: wrap;
}

.knowledge__item {
  width: 18.4%;
  margin-right: 2%;
  margin-bottom: 3rem;
}

.knowledge .slick-arrow {
  color: #fff;
}

@media screen and (min-width: 768px) {
  .knowledge__item:nth-child(5n) {
    margin-right: 0;
  }
}

.knowledge__img img {
  height: 16rem;
  -o-object-fit: cover;
  object-fit: cover;
  font-family: "object-fit: cover;";
  border-radius: 0.5rem;
}

.knowledge__desc {
  margin-top: 1rem;
}

.knowledge__ttl {
  font-weight: 700;
}

.knowledge__txt {
  margin-top: 0.5rem;
}

.knowledge__txt--more {
  color: #144ca1;
}

@media only screen and (max-width: 959.98px) {
  .knowledge__img img {
    height: 10rem;
  }
}

@media screen and (max-width: 767.98px) {
  .knowledge__item {
    width: 48%;
    margin-right: 4%;
    margin-bottom: 2rem;
  }

  .knowledge__item:nth-child(2n) {
    margin-right: 0;
  }
}

#column__main {
  width: 100%;
  max-width: 70rem;
  margin: 0 auto;
}

.column__ttl {
  margin-bottom: 2rem;
  font-size: 2.4rem;
  font-weight: 700;
}

.column__inner {
  padding: 3rem;
  border: 1px solid #e9eced;
  border-radius: 0.5rem;
  line-height: 2;
}

.column__info {
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: #535d64;
}

.column__img {
  margin: 2rem 0;
}

@media screen and (max-width: 767.98px) {
  .column__inner {
    padding: 1rem;
  }

  .column__ttl {
    font-size: 1.8rem;
  }

  #column__main .btn {
    font-size: 1.2rem;
  }
}

#about section {
  padding: 8rem 0
}

@media screen and (max-width: 767.98px) {
  #about section {
    padding: 4rem 0
  }
}

.about {
  width: 100%;
  padding: 10rem 0 15rem;
  text-align: center;
  position: relative;
  display: block;
  background: url("../images/bg-about.jpg") no-repeat center bottom;
  background-size: cover;
}

.about__ttl {
  font-size: 4.2rem;
  font-weight: bold;
  letter-spacing: 10.08px;
  color: #658cc2;
  margin-bottom: 4rem;
}

@media only screen and (max-width: 959.98px) {
  .about__ttl {
    margin-bottom: 2rem;
    letter-spacing: normal;
  }
}

.about__txt {
  font-size: 2.2rem;
  line-height: 2;
  text-align: center;
}

.about__txt+.about__txt {
  margin-top: 1.5rem;
}

.about__img {
  margin: 0 auto;
  width: 980px;
  max-width: 90%;
}

@media only screen and (max-width: 767.98px) {
  .about {
    padding: 5rem 0 6rem;
  }

  .about__ttl {
    font-size: 2.6rem;
  }

  .about__txt {
    margin-top: 1.5rem;
    font-size: 1.2rem
  }

  .about__img {
    margin-top: -4rem;
    margin-bottom: 0;
  }
}

/*
 About Nayaami
*/
section.nayami {
  width: 100%;
  background: -moz-linear-gradient(top, #fff, #d3d3d3);
  background: -webkit-linear-gradient(top, #fff, #d3d3d3);
  background: linear-gradient(to bottom, #fff, #d3d3d3);
  position: relative
}

section.nayami::after {
  content: ' ';
  height: 0;
  position: absolute;
  width: 0;
  border: 60px solid transparent;
  border-top-color: transparent;
  border-top-color: #d3d3d3;
  top: 100%;
  left: 50%;
  margin-left: -60px;
}

.nayami__ttl {
  margin: 3rem 0 4.9rem;
  color: #000;
  font-size: 3.6rem;
  font-weight: 700;
  text-align: center;
  letter-spacing: .07em;
}

.nayami__ttl:last-child {
  margin: 5rem 0 0;
  line-height: 1.35;
}

.nayami__ttl span {
  padding-right: 2px;
  font-size: 125%;
}

.nayami__list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

.nayami__item {
  width: 29.333333%;
  margin: 0 2%;
}

@media only screen and (max-width: 767.98px) {
  section.nayami {
    padding: 5rem 0 !important;
  }

  .nayami {
    background-position: left top
  }

  .nayami__ttl {
    margin-top: 0;
    margin-bottom: 5rem;
    font-size: 2.4rem;
    letter-spacing: 0
  }

  .nayami__list {
    justify-content: center;
    margin-bottom: 5rem;
  }

  .nayami__item {
    width: 90%;
    margin-bottom: 4rem;
  }

  .nayami__item:last-child {
    margin-bottom: 0
  }
}

#about section.merit {
  padding-top: 12rem;
  padding-bottom: 0;
}

#about .merit ul {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
}

#about .merit ul li {
  width: 16%;
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 0 2%;
}

@media screen and (max-width: 767.98px) {
  #about .merit ul li {
    width: 100%;
    margin: 0 0 5rem;
  }
}

#about .merit ul li img {
  width: 170px;
  height: 170px;
  -o-object-fit: contain;
  object-fit: contain;
  font-family: "object-fit: contain;";
  object-position: top;
}

@media screen and (max-width: 767.98px) {
  #about .merit ul li img {
    width: 150px;
    height: auto;
  }
}

#about .merit ul li p {
  max-width: 24rem;
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 1.71;
  color: #fff;
  margin-top: 3rem;
}

@media screen and (max-width: 767.98px) {
  #about .merit ul li p {
    max-width: 90%;
    font-size: 1.6rem;
  }
}

.tab_box .btn_area {
  display: flex;
  justify-content: space-between;
}

.tab_box .tab_btn {
  width: 50%;
  height: 9rem;
  cursor: pointer;
  transition: all 0.2s ease 0s;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 3rem;
  font-weight: bold;
  letter-spacing: 7.68px;
  color: #fff;
  background-color: #a6b4c3;
  position: relative;
}

@media screen and (max-width: 767.98px) {
  .tab_box .tab_btn {
    height: 6rem;
    font-size: 1.8rem;
    letter-spacing: 4px;
  }
}

.tab_box .tab_btn.active {
  background-color: #213464;
  z-index: 1;
}

.tab_box .tab_btn.active::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -16px;
  left: 0;
  width: 0px;
  height: 0px;
  margin: auto;
  border-style: solid;
  border-color: #213464 transparent transparent transparent;
  border-width: 16px 16px 0 16px;
  line-height: 1
}

.tab_box .panel_area {
  padding: 4rem 3%;
  background-color: #658cc2;
}

@media only screen and (max-width: 767.98px) {
  .tab_box .panel_area {
    padding-bottom: 1rem;
    background-color: #658cc2;
  }
}

.tab_box .tab_panel {
  display: none;
}

.tab_box .tab_panel.active {
  display: block;
}

.solve__item {
  width: 100%;
  margin-bottom: 4rem;
}

.solve__item:last-child {
  margin-bottom: 0;
}

.solve__img {
  width: calc((100% - 8rem) / 2);
}

.solve__img img {
  width: 100%;
  height: 30rem;
  border-radius: 0.5rem;
  -o-object-fit: cover;
  object-fit: cover;
  font-family: "object-fit: cover;";
}

.even .solve__desc {
  order: 1;
}

.solve__desc {
  width: calc((100% - 8rem) / 2);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.solve__ttl {
  margin-bottom: 2rem;
  font-size: 3rem;
  font-weight: 700;
  color: #4f8dc6
}

.solve__txt {
  text-align: left;
  font-size: 1.8rem;
}

@media screen and (max-width: 959.98px) {

  .solve__desc,
  .solve__img {
    width: calc((100% - 2rem) / 2);
  }
}

@media only screen and (max-width: 767.98px) {
  .solve__item {
    margin-bottom: 3.5rem;
  }

  .solve__desc,
  .solve__img {
    width: 100%;
  }

  .solve__desc {
    margin-top: 2rem;
    order: 1;
  }

  .solve__ttl {
    margin-bottom: 1.5rem;
    font-size: 2.6rem;
  }

  .solve__img img {
    height: 220px;
  }
}

.flow__list {
  justify-content: center;
  margin-top: 10rem;
}

@media only screen and (max-width: 767.98px) {
  .flow__list {
    width: 200%;
    margin-top: 3rem;
  }
}

.flow__item {
  width: 33.3333333333%;
  max-width: 256px;
}

.flow__item:not(:last-child) {
  margin-right: 6rem;
}

@media only screen and (max-width: 959.98px) {
  .flow__item:not(:last-child) {
    margin-right: 4rem;
  }
}

.flow__img {
  width: 100%;
  margin: 0 auto 2rem;
  position: relative;
}

.flow__img img {
  -o-object-fit: cover;
  object-fit: cover;
}

.flow__ttl {
  text-align: center;
  font-size: 1.9rem;
  font-weight: 600;
  color: #213464;
  margin-bottom: 0.5rem;
}

.flow__num {
  font-family: "Futura", sans-serif;
  font-size: 7rem;
  font-weight: 400;
  color: rgba(33, 52, 100, 0.8);
  position: absolute;
  left: 0.5rem;
  top: -6rem;
}

.flow__txt {
  font-size: 1.4rem;
  line-height: 1.71;
  color: #000;
}

/**
 * ご利用ガイド
**/
.guide__item {
  position: relative;
  padding: 3rem 4rem;
  background: #e1eeff;
  margin-bottom: 2rem;
  font-size: 1.8rem;
}

.guide__item--sub {
  background: #eef1f4;
}

.guide__item .guide_h {
  color: #0b499f;
  font-size: 2.4rem;
  font-weight: bold;
}

.guide__item--sub .guide_h {
  display: flex;
  align-items: center;
  font-size: 2.2rem;
  line-height: 1;
}

.guide__item--sub .w30 {
  width: 30px;
  height: 30px;
  margin-right: 1rem
}

.guide__item--sub em {
  font-weight: 700;
  color: #0b499f;
}

.guide__item .guide_h span {
  font-size: 1.8rem;
  font-weight: 400;
  margin-right: 1.5rem;
}

.guide__item .guide_h span b {
  font-size: 2.4rem;
  font-weight: 400;
  margin-left: .5rem;
}

.guide__item .guide_p {
  color: #505050;
  font-size: 1.6rem;
  margin-top: 1.5rem;
}

@media only screen and (max-width:767px) {
  .guide__item {
    padding: 1.5rem;
  }

  .guide__item .guide_h {
    font-size: 1.8rem;
  }

  .guide__item .guide_h span {
    margin-right: 1.5rem;
    font-size: 1.1rem;
    font-weight: 400;
    display: block;
  }

  .guide__item .guide_h span b {
    font-size: 1.6rem;
    font-weight: 400;
    margin-left: .5rem;
  }

  .guide__item .guide_p {
    font-size: 1.4rem;
    margin-top: .5rem;
    line-height: 1.8em;
  }
}

.faq__area {
  margin-bottom: 8rem;
}

.faq__anchor {
  margin-bottom: 5rem;
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
}

.faq__link {
  margin-right: 3rem;
}

.faq__link a {
  width: 100%;
  height: 4.5rem;
  padding: 0 0.5rem;
  color: #a5a5a5;
  font-size: 1.8rem;
  border-bottom: 2px solid;
  display: flex;
  align-items: center;
  justify-content: center;
}

.faq__link a:hover,
.faq__link a.is-current {
  color: #144ca1;
}

@media only screen and (max-width: 767.98px) {
  .faq__link {
    width: 32.333333%;
    margin-right: 1.5%;
  }

  .faq__link:nth-child(3n) {
    margin-right: 0;
  }

  .faq__link a {
    font-size: 1.2rem;
  }
}

.listAccordion {
  margin: 0 auto;
}

.listAccordion label {
  margin-top: 2rem;
  padding: 2.4rem 0.5rem 2.4rem 7.5rem;
  font-weight: 700;
  background: #fff;
  border: 1px solid #e9eced;
  border-radius: 0.5rem;
  display: block;
  cursor: pointer;
  position: relative;
}

.listAccordion label:first-child {
  margin-top: 0;
}

.listAccordion label:hover {
  background: #fafafa;
}

.listAccordion [type="checkbox"].on-off {
  display: none;
}

.listAccordion .listTips {
  margin: 0;
  padding: 0;
  color: #535d64;
  background: #fff;
  position: relative;
}

.listAccordion [type="checkbox"].on-off+.listTips {
  height: 0;
  overflow: hidden;
}

.listAccordion [type="checkbox"].on-off:checked+.listTips {
  height: auto;
  margin-top: 1rem;
  padding: 2.4rem 1.5rem 2.4rem 10.5rem;
  border: 1px solid #e9eced;
  border-radius: 0.5rem;
}

/*開閉アイコン */
.listAccordion label::before {
  content: "";
  width: 20px;
  height: 2px;
  background: #999;
  position: absolute;
  right: 3rem;
  top: 50%;
  margin-top: -1px;
  transition: 0.3s;
}

.listAccordion label::after {
  content: "";
  width: 20px;
  height: 2px;
  background: #999;
  position: absolute;
  right: 3rem;
  top: 50%;
  margin-top: -1px;
  transition: 0.3s;
  transform-origin: center center;
  transform: rotate(90deg);
}

.listAccordion .label_open::after {
  transform: rotate(0deg);
}

.listAccordion .label_open::before {
  opacity: 0;
}

@media only screen and (max-width: 767.98px) {
  .listAccordion label::before {
    right: 1.5rem;
  }

  .listAccordion label::after {
    right: 1.5rem;
  }
}

.listAccordion label .iconq,
.listAccordion [type="checkbox"].on-off:checked+.listTips .icona {
  position: absolute;
  left: 2rem;
  top: 1.5rem;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #fff;
  font-size: 2rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}

.listAccordion [type="checkbox"].on-off:checked+.listTips .icona {
  left: 5rem;
}

@media only screen and (max-width: 568.98px) {

  .listAccordion label .iconq,
  .listAccordion [type="checkbox"].on-off:checked+.listTips .icona {
    left: 5px;
  }

  .listAccordion label,
  .listAccordion [type="checkbox"].on-off:checked+.listTips {
    padding-left: 5rem;
    padding-right: 5rem;
  }
}

@media screen and (min-width: 768px) {
  .terms__article {
    background: #fff;
    padding: 4rem 4rem 0;
    border: 1px solid #e9eced;
    border-radius: 0.5rem;
  }
}

.terms__article {
  width: 100%;
}

.terms__ttl {
  font-size: 2.4rem;
  font-weight: 700;
  margin-bottom: 1.5rem;
}

.terms__item {
  margin-bottom: 4rem;
}

.terms__txt {
  margin-top: 1rem;
}

@media screen and (max-width: 767.98px) {
  .terms__ttl {
    font-size: 1.8rem;
  }
}

@media screen and (min-width: 768px) {
  .policy__article {
    background: #fff;
    padding: 4rem 4rem 0;
    border: 1px solid #e9eced;
    border-radius: 0.5rem;
  }
}

.policy__article {
  width: 100%;
}

.policy__ttl {
  font-size: 2.4rem;
  font-weight: 700;
  margin-bottom: 1.5rem;
}

.policy__item {
  margin-bottom: 4rem;
}

.policy__txt {
  margin-top: 1rem;
}

.policy__list {
  list-style: auto;
  margin-top: 1rem;
}

.policy__list li {
  margin-top: 1rem;
  padding-left: .5rem;
  margin-left: 2.5rem;
}

.policy__txt--right {
  margin-top: 2rem;
  text-align: right
}

@media screen and (max-width: 767.98px) {
  .policy__ttl {
    font-size: 1.8rem;
  }
}

.clearfix::after {
  content: ".";
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
}

.breadcrumb mark,
.outline-head mark,
.outline-eval mark {
  background-color: inherit !important;
  color: inherit !important;
}

.thumbnail {
  width: auto !important;
  height: auto !important;
  max-width: 150px;
  -o-object-fit: cover;
  object-fit: cover;
}

.slick-list .slick-track .banner_item {
  height: 206px;
  margin: 10px;
}

@media screen and (min-width: 767px) {
  .slick-list .slick-track .banner_item {
    height: 92px;
  }
}

@media screen and (min-width: 959px) {
  .slick-list .slick-track .banner_item {
    height: 150px;
  }
}

.banner_item img {
  height: 100%;
}

.guidance {
  padding: 3rem 0;
  background: #e1eeff;
}

.download {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 5rem;
}

.download__link {
  margin-top: 3rem;
}

.download__link--item:first-child {
  margin-right: 1rem;
}

.download__link--item img {
  height: 50px;
  width: auto;
  -o-object-fit: contain;
  object-fit: contain;
}

#btn_message,
#btn_iine,
#btn_fav {
  display: block;
  height: 3.6rem;
  margin-left: 0.5rem;
  text-align: center;
}

#btn_message a,
#btn_iine a,
#btn_fav a {
  padding: 1rem 2rem;
  color: #fff;
  font-size: 1.3rem;
  background-image: linear-gradient(to right, rgb(20, 76, 161), #3e6aca);
  border-radius: 30px;
  line-height: 1;
  display: inline;
}

#btn_message a:hover,
#btn_iine a:hover,
#btn_fav a:hover {
  color: #fff;
  background-image: linear-gradient(to left, rgb(20, 76, 161), #3e6aca);
}

.pwd_field_top {
  font-size: 1.6rem;
  color: #000;
  margin-bottom: 2rem;
}

.postcode {
  display: flex;
  align-items: center;
}

.postcode input:first-child {
  width: 10rem;
  margin-right: 0.5rem;
}

.postcode input:last-child {
  width: 10rem;
  margin-left: 0.5rem;
}

.br-tab,
.br-sp {
  display: none;
}

@media only screen and (max-width: 959.98px) {
  .br-tab {
    display: inline;
  }
}

@media only screen and (max-width: 767.98px) {
  .br-sp {
    display: inline;
  }

  .br-pc {
    display: none;
  }

  #btn_iine a {
    font-size: 1.3rem;
  }
}

@media only screen and (max-width: 374.98px) {
  #btn_iine {
    margin-left: 0;
  }

  #btn_iine a {
    font-size: 1.2rem;
    padding: 1rem;
  }
}


.list-tab {
  width: 100%;
  max-width: 1360px;
  margin: auto;
}

.list-tab ul {
  display: flex;
  position: relative;
  bottom: -20px;
  left: 10rem;
  z-index: 1;
}

@media only screen and (max-width: 767.98px) {
  .list-tab ul {
    left: .5rem;
    bottom: -10px;
  }
}

.list-tab ul li {

  border: 1px solid #aab1c3;
  border-radius: 5px 5px 0 0;
  margin-right: 1rem;
  border-bottom: none;

}

.list-tab ul li a {
  display: block;
  color: #fff;
  padding: 2rem;
}

.list-tab ul li.active {
  background-color: #fff;
}

.list-tab ul li.active a {
  color: #213464;
}

/* 会員登録完了画面 */
.register .c-head {
  align-items: center;
  margin-bottom: 7rem;
}

.register .c-head {
  align-items: center;
  margin-bottom: 7rem;
}

.tab_container {
  padding-bottom: 1em;
  background-color: #fff;
  border: 1px solid #0051ad;
  margin: 0 auto;
}

.tab_item {
  width: calc(100%/2);
  padding: 15px 0;
  border-bottom: 3px solid #0051ad;
  background-color: #ececec;
  text-align: center;
  color: #0051ad;
  display: block;
  float: left;
  text-align: center;
  font-size: 2.3rem;
  font-weight: bold;
  transition: all 0.2s ease;
}

.tab_item:hover {
  opacity: 0.75;
}

input[name="tab_item"] {
  display: none;
}

.tab_content {
  display: none;
  padding: 4em 1em 3em;
  clear: both;
  overflow: hidden;
}

.tab_content_description {
  display: flex;
  justify-content: center;
  align-items: center;
}

#tab1:checked~#tab1_content,
#tab2:checked~#tab2_content {
  display: block;
}

.tab_container input:checked+.tab_item {
  background-color: #0051ad;
  color: #fff;
}

.tab_content_btn a {
  width: 26rem;
  height: 6rem;
  background-color: #0051ad;
  border-radius: 3rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  font-weight: 600;
  color: #fff;
  margin: 0 2rem;
}

.tab_content_btn.yellow_btn a {
  background-color: #ffc341;
  color: #000;
}

@media screen and (max-width: 767.98px) {
  .tab_item {
    font-size: 2rem;
  }

  .tab_content {
    padding: 3em 0 2em;
  }

  .tab_content_btn a {
    font-size: 1.6rem;
    margin: 1rem 0;
  }

  .tab_content_description {
    flex-direction: column;
  }
}

.m_search_box {
  height: 50vh;
  display: flex;
  justify-content: center;
  flex-direction: column;
}

.m1-sub-title {
  font-size: 2.2rem;
  font-weight: 600;
  color: #251e1c;
  margin: 4rem 0 2rem 0;
}

/** 検索結果の[検索結果が見つかりませんでした。]の余白 **/
p.result__ttl {
  padding: 5rem;
  text-align: center;
}

/* 会員登録ステップの矢印 */
/* 要素本体 */
.content {
  color: white;
}

.step {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
}

.step li {
  position: relative;
  padding: 20px 30px;
  margin: 0 25px 10px 0;
  background: #3e6aca;
  color: #fff;
}

/* 先端部分 */
.step li::after {
  content: "";
  position: absolute;
  top: 0;
  right: -30px;
  border-width: 32px 15px;
  border-color: transparent transparent transparent #3e6aca;
  border-style: solid;
}

/* 現在のステップ */
.step li.is-current {
  background: tomato;
}

.step li.is-current::after {
  border-color: transparent transparent transparent tomato;
}

.step_content .fc_red {
  color: #c43708;
}

.foot-bottom {
  display: flex;
  flex-direction: row;
  justify-content: center;
}

.foot-bottom .jigyo-saikochiku {
  position: absolute;
  left: 2rem;
  line-height: 2rem;
  border: solid 1px #21398e;
  color: #21398e;
  padding: 0.5rem 1rem;
  border-radius: 0.5rem;
  margin-bottom: 1rem;
}

.foot-bottom .copyright {
  line-height: 3rem;
}

/** 評価 **/
.eval_star_wrap {
  display: flex;
  margin: 1rem 0;
}

.eval_star_wrap div {
  margin-right: 1.2rem;
}

.eval_num_wrap {
  display: flex;
}

.eval_num_wrap div {
  margin-right: 10px;
  font-size: 1.6rem;
}

.formset__input [type="number"].w-10,
.formset__input [type="text"].w-10 {
  width: 10rem;
}

.formset__input [type="number"].w-15,
.formset__input [type="text"].w-15 {
  width: 15rem;
}

.c-head__txt_wrap {
  padding: 2rem;
  border: 1px solid #213464;
  border-radius: 1rem;
}

.app-btns {
  display: flex;
  gap: 1.5rem;
  /*display: none;*/
}

.app-btn img {
  width: auto;
  height: 5.6rem;
}

/** 会員登録フロー **/
.flow-arrow-wrap {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 2rem;
}

.flow-arrow-wrap .flow-arrow {
  position: relative;
  width: 33%;
  text-align: center;
  position: relative;
  align-items: center;
  justify-content: center;
  padding: 13px 0;
  line-height: 1.6;
  background: #F8F8F8;
  color: #6c6c6c
}

.flow-arrow-wrap .flow-arrow:not(:last-child)::before,
.flow-arrow-wrap .flow-arrow:not(:last-child)::after {
  position: absolute;
  z-index: 2;
  top: 0;
  bottom: 0;
  left: 100%;
  content: '';
  border: 37px solid transparent;
  border-left: 20px solid #F8F8F8;
  margin: auto;
}

.flow-arrow-wrap .flow-arrow:not(:last-child)::before {
  margin-left: 1px;
  border-left-color: #eeeeee
}

@media screen and (max-width: 767.98px) {
  .flow-arrow-wrap .flow-arrow {
    font-size: 11px;
    line-height: 1.4;
    padding: 10px 0;
  }

  .flow-arrow-wrap .flow-arrow:not(:last-child)::before,
  .flow-arrow-wrap .flow-arrow:not(:last-child)::after {
    border-width: 25px;
    border-left-width: 12px;
  }
}

.flow-arrow-wrap .flow-arrow.active {
  z-index: 1;
  background: #0b499f;
  color: #FFF;
}

.flow-arrow-wrap .flow-arrow.active:not(:last-child)::after {
  border-left-color: #0b499f;
}

.flow-arrow-wrap .flow-arrow.active:not(:last-child)::before {
  border-left: none;
}

.text-small {
  font-size: 10px;
}

.new_chatbox {
  background: #E3E7F2;
  padding: 2rem;
  border-radius: 3px;
  margin-top: 3rem;
}

.new_chatbox p {
  margin-bottom: 2rem;
}

.new_chatbox form {
  font-weight: bold;
}

.new_chatbox .new_title {
  padding: 15px;
  border: 1px solid #aaa;
  border-radius: 0.5rem;
  min-width: 31rem;
  background: #fff;
}

.new_chatbox .btn {
  width: 100%;
  margin: 3rem auto 0;
  max-width: 25rem;
}

.ad-btn_box {
  margin: 3.5rem auto;
}

.ad-btn_box img {
  margin: 1rem 0;
}

@media screen and (max-width: 767.98px) {
  .new_chatbox .new_title {
    min-width: 26rem;
  }
}

.submitbtn2_txt {
  text-align: center;
  margin-top: .5rem;
}

.submitbtn2_txt span {
  color: #f00;
}

.dashboard__bnr {
  margin-bottom: 3rem;
}

.all_pref {
  font-weight: bold;
}

/* =============================================================
   識別バッジ (Phase A - 2026-05-29 SOUZOUDO)
   企業一覧 / 受注希望 / 発注案件 を視覚的に区別する
   ============================================================= */
.list-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 12px 5px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  width: -webkit-fit-content;
  width: fit-content;
  margin: 0 0 8px 0;
  line-height: 1;
  vertical-align: middle;
}
.list-badge svg {
  width: 13px;
  height: 13px;
  flex-shrink: 0;
}

/* 企業情報 (m_member) - ネイビー */
.list-badge--company {
  background: #E0E7FF;
  color: #213464;
}

/* 受注希望 (m_search2 / listo1) - オレンジ */
.list-badge--offer {
  background: #FFEDD5;
  color: #EA580C;
}

/* 発注案件 (m_search1 / listo2) - 青 */
.list-badge--order {
  background: #DBEAFE;
  color: #2563EB;
}

/* PCでは少し大きく */
@media (min-width: 768px) {
  .list-badge {
    padding: 6px 14px 6px 12px;
    font-size: 12px;
  }
  .list-badge svg {
    width: 14px;
    height: 14px;
  }
}


/* =============================================================
   受注希望カード (一覧用) v3 フラットデザイン (2026-05-29 SOUZOUDO)
   絵文字撤去 / モノクロアイコン / 控えめな配色
   ============================================================= */
.o1card {
  background: #FFFFFF;
  border-radius: 12px;
  padding: 16px 18px;
  margin-bottom: 10px;
  border: 1px solid #E5E7EB;
  position: relative;
  box-shadow: none;
}
.o1card__link {
  display: block;
  text-decoration: none !important;
  color: inherit !important;
}
.o1card__link:hover {
  text-decoration: none !important;
}
.o1card__title {
  font-size: 17px;
  font-weight: 600;
  color: #1A1F36;
  margin: 12px 0 14px;
  line-height: 1.4;
  letter-spacing: -0.01em;
}

/* Key stats (期間/人数/締切) */
.o1card__stats {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 8px;
  margin: 0 0 16px;
  padding-bottom: 16px;
  border-bottom: 1px solid #F3F4F6;
}
.o1card__stat {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  min-width: 0;
}
.o1card__stat-icon {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  color: #6B7280;
  margin-top: 3px;
}
.o1card__stat--deadline .o1card__stat-icon {
  color: #DC2626;
}
.o1card__stat-body {
  min-width: 0;
}
.o1card__stat-label {
  font-size: 10px;
  color: #9CA3AF;
  font-weight: 500;
  letter-spacing: 0.03em;
  margin-bottom: 1px;
}
.o1card__stat-value {
  font-size: 12px;
  color: #1A1F36;
  font-weight: 600;
  line-height: 1.3;
  word-break: break-all;
}
.o1card__stat-unit {
  font-size: 10px;
  font-weight: 400;
  color: #6B7280;
  margin-left: 1px;
}
.o1card__stat--deadline .o1card__stat-value {
  color: #DC2626;
}

/* セクション (エリアタグ等) */
.o1card__section {
  margin: 14px 0;
}
.o1card__section-label {
  font-size: 10px;
  font-weight: 600;
  color: #6B7280;
  letter-spacing: 0.05em;
  margin-bottom: 8px;
}

/* チップ - フラット (v8 2026-05-29 余白拡張) */
.o1card .o1-chips,
.o1-chips {
  gap: 8px 10px !important;
}
.o1card .o1-chips > span {
  display: inline-flex;
  align-items: center;
  padding: 6px 12px;
  border-radius: 8px;
  background: #F3F4F6;
  color: #1A1F36;
  font-size: 12px;
  font-weight: 500;
  border: 1px solid #E5E7EB;
  line-height: 1.3;
}
.o1-chips__more {
  display: inline-flex;
  align-items: center;
  padding: 6px 12px;
  border-radius: 8px;
  background: #FAFBFC;
  color: #6B7280;
  font-size: 11px;
  font-weight: 600;
  border: 1px solid #E5E7EB;
}

/* 受注元（企業）情報 - 縦スタック方式 v4 (2026-05-29) */
.o1card__company {
  padding: 12px 0;
  margin-top: 4px;
  border-top: 1px solid #F3F4F6;
}
.o1card__company-top {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}
.o1card__company-icon {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  color: #6B7280;
  margin-top: 2px;
}
.o1card__company-body {
  flex: 1;
  min-width: 0;
}
.o1card__company-label {
  font-size: 10px;
  font-weight: 500;
  color: #9CA3AF;
  letter-spacing: 0.03em;
  margin-bottom: 2px;
}
.o1card__company-name {
  font-size: 14px;
  font-weight: 600;
  color: #1A1F36;
  line-height: 1.4;
  /* 日本語社名のブツ切り防止 */
  word-break: keep-all;
  overflow-wrap: break-word;
}
.o1card__company-tag {
  display: inline-block;
  background: #F3F4F6;
  color: #4B5563;
  font-size: 10px;
  padding: 2px 6px;
  border-radius: 4px;
  font-weight: 500;
  border: 1px solid #E5E7EB;
  margin-left: 6px;
  vertical-align: 2px;
  white-space: nowrap;
}
/* 日本足場会のロゴ (2026-05-29 v7 鈴木) サイズUP + 視認性UP */
.o1card__company-logo {
  display: inline-block;
  width: 32px;
  height: 32px;
  vertical-align: middle;
  margin-left: 10px;
  object-fit: contain;
  background: transparent;
  border-radius: 4px;
}
.o1card__company-rating {
  margin-top: 10px;
  font-size: 11px;
  color: #6B7280;
  line-height: 1.5;
}
/* eval_avg.html の構造を横並びに整える（v6 2026-05-29 鈴木）
   モバイルで flex-direction: column になり、font-size: 2.4rem で巨大化していたので
   全て無効化して、コンパクトな横並びに固定する */
.o1card__company-rating .eval_star_wrap {
  margin: 0 !important;
  display: inline-block;
  vertical-align: middle;
}
.o1card__company-rating .outline__top--starwrap {
  margin-right: 0 !important;
  display: inline-block !important;
  flex-direction: row !important;
  align-items: center !important;
  vertical-align: middle;
}
.o1card__company-rating .outline__top--star {
  font-size: 14px !important;
  position: relative !important;
  display: inline-block !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  white-space: nowrap !important;
}
.o1card__company-rating .outline__top--star::before {
  content: "★★★★★" !important;
  color: #E5E7EB !important;
  letter-spacing: 1px;
  white-space: nowrap !important;
  position: relative !important;
}
.o1card__company-rating .outline__top--star::after {
  letter-spacing: 1px;
  white-space: nowrap !important;
  color: #F59E0B !important;
}
.o1card__company-rating .outline__top--star.val1::after { content: "★" !important; }
.o1card__company-rating .outline__top--star.val2::after { content: "★★" !important; }
.o1card__company-rating .outline__top--star.val3::after { content: "★★★" !important; }
.o1card__company-rating .outline__top--star.val4::after { content: "★★★★" !important; }
.o1card__company-rating .outline__top--star.val5::after { content: "★★★★★" !important; }
.o1card__company-rating .eval_num_wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 12px;
  margin-top: 6px;
  font-size: 11px;
}
.o1card__company-rating .eval_num_wrap > div {
  font-size: 11px;
  color: #4B5563;
  font-weight: 500;
  background: transparent;
  padding: 0;
  margin: 0;
}
.o1card__company-rating b,
.o1card__company-rating strong {
  font-weight: 600;
  color: #1A1F36;
}

/* アクション - フラット */
.o1card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
}
/* 詳細を見る: 詳細導線を最も明確に（全幅・主役）2026-06-01 鈴木 */
.o1card__btn--detail {
  flex: 1 1 100% !important;
  background: #213464 !important;
  color: #FFFFFF !important;
  border: 1px solid #213464 !important;
}
.o1card__btn--detail::after {
  content: "›";
  font-size: 16px;
  line-height: 1;
  margin-left: 4px;
}
/* 相談する: 詳細ボタン追加に伴いセカンダリ（ネイビーのアウトライン）へ */
.o1card__btn--talk {
  background: #FFFFFF !important;
  color: #213464 !important;
  border: 1px solid #213464 !important;
}
.o1card__btn {
  flex: 1;
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 11px 12px !important;
  border-radius: 8px;
  font-size: 13px !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  text-align: center;
  line-height: 1.2;
  white-space: nowrap;
  transition: opacity .15s ease;
  box-shadow: none !important;
}
.o1card__btn:active {
  opacity: 0.7;
}
.o1card__btn--fav {
  background: #FFFFFF !important;
  color: #1A1F36 !important;
  border: 1px solid #E5E7EB !important;
}
.o1card__btn--primary {
  background: #213464 !important;
  color: #FFFFFF !important;
  border: 1px solid #213464 !important;
}

/* メタ情報 (フッター) */
.o1card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px solid #F3F4F6;
  font-size: 11px;
  color: #9CA3AF;
}
.o1card__meta-sep {
  color: #D1D5DB;
}
.o1card__meta .iine-count {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  color: #6B7280;
  font-weight: 500;
}

/* 旧テーブル style を上書き */
.o1card .result__head,
.o1card .result__desc,
.o1card .result__top,
.o1card .result__info,
.o1card .result__table,
.o1card .result__bottom,
.o1card .result__head--ttl {
  display: none !important;
}

/* 一覧 list-badge をフラット寄りに（オレンジを薄く） */
.o1card .list-badge--offer {
  background: #FAFBFC;
  color: #1A1F36;
  border: 1px solid #E5E7EB;
  font-weight: 600;
}
.o1card .list-badge--offer svg {
  color: #6B7280;
}

@media (max-width: 380px) {
  .o1card__stats {
    grid-template-columns: 1fr 1fr;
  }
  .o1card__stat--deadline {
    grid-column: 1 / -1;
  }
}

/* =============================================================
   会員カード (一覧用) v1 フラットデザイン (2026-05-29 SOUZOUDO)
   ============================================================= */
.mcard {
  background: #FFFFFF;
  border-radius: 12px;
  padding: 16px 18px;
  margin-bottom: 10px;
  border: 1px solid #E5E7EB;
  position: relative;
  box-shadow: none;
}
.mcard__link {
  display: block;
  text-decoration: none !important;
  color: inherit !important;
}
.mcard__link:hover {
  text-decoration: none !important;
}
.mcard__title {
  font-size: 17px;
  font-weight: 600;
  color: #1A1F36;
  margin: 12px 0 8px;
  line-height: 1.4;
  letter-spacing: -0.01em;
  word-break: keep-all;
  overflow-wrap: break-word;
}
.mcard__logo {
  display: inline-block;
  width: 32px;
  height: 32px;
  vertical-align: middle;
  margin-left: 10px;
  object-fit: contain;
  background: transparent;
  border-radius: 4px;
}

/* 評価 (mcardでも eval_avg.html の構造を扱う) */
.mcard__rating {
  margin: 6px 0 14px;
  font-size: 11px;
  color: #6B7280;
  line-height: 1.5;
  padding-bottom: 14px;
  border-bottom: 1px solid #F3F4F6;
}
.mcard__rating .eval_star_wrap {
  margin: 0 !important;
  display: inline-block;
  vertical-align: middle;
}
.mcard__rating .outline__top--starwrap {
  margin-right: 0 !important;
  display: inline-block !important;
  flex-direction: row !important;
  align-items: center !important;
  vertical-align: middle;
}
.mcard__rating .outline__top--star {
  font-size: 14px !important;
  position: relative !important;
  display: inline-block !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  white-space: nowrap !important;
}
.mcard__rating .outline__top--star::before {
  content: "★★★★★" !important;
  color: #E5E7EB !important;
  letter-spacing: 1px;
  white-space: nowrap !important;
  position: relative !important;
}
.mcard__rating .outline__top--star::after {
  letter-spacing: 1px;
  white-space: nowrap !important;
  color: #F59E0B !important;
}
.mcard__rating .outline__top--star.val1::after { content: "★" !important; }
.mcard__rating .outline__top--star.val2::after { content: "★★" !important; }
.mcard__rating .outline__top--star.val3::after { content: "★★★" !important; }
.mcard__rating .outline__top--star.val4::after { content: "★★★★" !important; }
.mcard__rating .outline__top--star.val5::after { content: "★★★★★" !important; }
.mcard__rating .eval_num_wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 12px;
  margin-top: 6px;
  font-size: 11px;
}
.mcard__rating .eval_num_wrap > div {
  font-size: 11px;
  color: #4B5563;
  font-weight: 500;
  background: transparent;
  padding: 0;
  margin: 0;
}

/* Stats (拠点) */
.mcard__stats {
  display: flex;
  gap: 10px;
  margin: 0 0 14px;
}
.mcard__stat {
  display: flex;
  align-items: flex-start;
  gap: 6px;
}
.mcard__stat-icon {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  color: #6B7280;
  margin-top: 3px;
}
.mcard__stat-label {
  font-size: 10px;
  color: #9CA3AF;
  font-weight: 500;
  letter-spacing: 0.03em;
  margin-bottom: 1px;
}
.mcard__stat-value {
  font-size: 13px;
  color: #1A1F36;
  font-weight: 600;
  line-height: 1.3;
}

/* 会社紹介セクション */
.mcard__section {
  margin: 14px 0;
}
.mcard__section-label {
  font-size: 10px;
  font-weight: 600;
  color: #6B7280;
  letter-spacing: 0.05em;
  margin-bottom: 6px;
}
.mcard__intro {
  font-size: 13px;
  color: #4B5563;
  line-height: 1.55;
  margin: 0;
  /* 3行に制限 */
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  word-break: break-word;
}

/* アクション - フラット */
.mcard__actions {
  display: flex;
  gap: 8px;
  margin-top: 14px;
}
.mcard__btn {
  flex: 1;
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 11px 12px !important;
  border-radius: 8px;
  font-size: 13px !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  text-align: center;
  line-height: 1.2;
  white-space: nowrap;
  transition: opacity .15s ease;
  box-shadow: none !important;
}
.mcard__btn:active {
  opacity: 0.7;
}
.mcard__btn--fav {
  background: #FFFFFF !important;
  color: #1A1F36 !important;
  border: 1px solid #E5E7EB !important;
}
.mcard__btn--primary {
  background: #213464 !important;
  color: #FFFFFF !important;
  border: 1px solid #213464 !important;
}

/* メタ情報 */
.mcard__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px solid #F3F4F6;
  font-size: 11px;
  color: #9CA3AF;
}
.mcard__meta-sep {
  color: #D1D5DB;
}
.mcard__meta .iine-count {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  color: #6B7280;
  font-weight: 500;
}

/* 旧テーブル style を上書き */
.mcard .result__head,
.mcard .result__desc,
.mcard .result__top,
.mcard .result__info,
.mcard .result__table,
.mcard .result__bottom,
.mcard .result__head--ttl {
  display: none !important;
}

/* 一覧 list-badge をフラット寄りに（ネイビーを薄く） */
.mcard .list-badge--company {
  background: #FAFBFC;
  color: #1A1F36;
  border: 1px solid #E5E7EB;
  font-weight: 600;
}
.mcard .list-badge--company svg {
  color: #6B7280;
}

/* =============================================================
   会員詳細 mcard-disp v1 (2026-05-29 SOUZOUDO)
   ============================================================= */
.mcard-disp .breadcrumb,
.mcard-disp .subpage-head {
  display: none !important;
}

/* Hero */
.mcard-disp__hero {
  padding: 12px 4px 16px;
}
.mcard-disp__title {
  font-size: 22px;
  font-weight: 700;
  color: #1A1F36;
  margin: 12px 0 10px;
  line-height: 1.35;
  letter-spacing: -0.01em;
  word-break: keep-all;
  overflow-wrap: break-word;
}
.mcard-disp__logo {
  display: inline-block;
  width: 36px;
  height: 36px;
  vertical-align: middle;
  margin-left: 10px;
  object-fit: contain;
}
.mcard-disp__rating {
  font-size: 11px;
  color: #6B7280;
  line-height: 1.5;
  padding-bottom: 14px;
  border-bottom: 1px solid #F3F4F6;
}
.mcard-disp__rating .eval_star_wrap {
  margin: 0 !important;
  display: inline-block;
  vertical-align: middle;
}
.mcard-disp__rating .outline__top--starwrap {
  margin-right: 0 !important;
  display: inline-block !important;
  flex-direction: row !important;
  align-items: center !important;
  vertical-align: middle;
}
.mcard-disp__rating .outline__top--star {
  font-size: 16px !important;
  position: relative !important;
  display: inline-block !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  white-space: nowrap !important;
}
.mcard-disp__rating .outline__top--star::before {
  content: "★★★★★" !important;
  color: #E5E7EB !important;
  letter-spacing: 1px;
  white-space: nowrap !important;
  position: relative !important;
}
.mcard-disp__rating .outline__top--star::after {
  letter-spacing: 1px;
  white-space: nowrap !important;
  color: #F59E0B !important;
}
.mcard-disp__rating .outline__top--star.val1::after { content: "★" !important; }
.mcard-disp__rating .outline__top--star.val2::after { content: "★★" !important; }
.mcard-disp__rating .outline__top--star.val3::after { content: "★★★" !important; }
.mcard-disp__rating .outline__top--star.val4::after { content: "★★★★" !important; }
.mcard-disp__rating .outline__top--star.val5::after { content: "★★★★★" !important; }
.mcard-disp__rating .eval_num_wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 12px;
  margin-top: 8px;
  font-size: 12px;
}
.mcard-disp__rating .eval_num_wrap > div {
  font-size: 12px;
  color: #4B5563;
  font-weight: 500;
  background: transparent;
  padding: 0;
  margin: 0;
}

/* Key stats grid */
.mcard-disp__keystats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin: 16px 0;
}
.mcard-disp__keystat {
  background: #FFFFFF;
  border: 1px solid #E5E7EB;
  border-radius: 10px;
  padding: 12px 14px;
  display: flex;
  align-items: flex-start;
  gap: 10px;
}
.mcard-disp__keystat-icon {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  color: #6B7280;
  margin-top: 2px;
}
.mcard-disp__keystat-label {
  font-size: 10px;
  color: #9CA3AF;
  font-weight: 500;
  margin-bottom: 4px;
}
.mcard-disp__keystat-value {
  font-size: 14px;
  font-weight: 600;
  color: #1A1F36;
  line-height: 1.3;
  word-break: keep-all;
}

/* Actions */
.mcard-disp__actions {
  display: flex;
  gap: 8px;
  margin: 14px 0;
}
.mcard-disp__actions--bottom {
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid #F3F4F6;
}
.mcard-disp__btn {
  flex: 1;
  display: flex !important;
  align-items: center;
  justify-content: center;
  padding: 12px 16px !important;
  border-radius: 8px;
  font-size: 14px !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  text-align: center;
  line-height: 1.2;
  white-space: nowrap;
  transition: opacity .15s ease;
  box-shadow: none !important;
}
.mcard-disp__btn:active { opacity: 0.7; }
.mcard-disp__btn--fav {
  background: #FFFFFF !important;
  color: #1A1F36 !important;
  border: 1px solid #E5E7EB !important;
}
.mcard-disp__btn--primary {
  background: #213464 !important;
  color: #FFFFFF !important;
  border: 1px solid #213464 !important;
}

/* Meta */
.mcard-disp__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 10px 4px 16px;
  font-size: 11px;
  color: #9CA3AF;
}
.mcard-disp__meta-sep { color: #D1D5DB; }
.mcard-disp__meta .iine-count {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  color: #6B7280;
  font-weight: 500;
}

/* セクション */
.mcard-disp__section {
  margin: 20px 0;
  padding: 0 4px;
}
.mcard-disp__section-title {
  font-size: 12px;
  font-weight: 700;
  color: #213464;
  margin: 0 0 10px;
  letter-spacing: 0.04em;
  text-transform: none;
}
.mcard-disp__text {
  font-size: 14px;
  color: #1A1F36;
  line-height: 1.7;
  margin: 0;
  word-break: break-word;
  white-space: pre-line;
}

/* チップ */
.mcard-disp__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 10px;
}
.mcard-disp__chips > span {
  display: inline-flex;
  align-items: center;
  padding: 6px 12px;
  border-radius: 8px;
  background: #F3F4F6;
  color: #1A1F36;
  font-size: 12px;
  font-weight: 500;
  border: 1px solid #E5E7EB;
  line-height: 1.3;
}

/* 詳細情報 (dl/dt/dd) */
.mcard-disp__dl {
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 6px 12px;
  margin: 0;
  font-size: 13px;
  line-height: 1.5;
}
.mcard-disp__dl dt {
  color: #6B7280;
  font-weight: 500;
  padding: 6px 0;
}
.mcard-disp__dl dd {
  color: #1A1F36;
  font-weight: 500;
  margin: 0;
  padding: 6px 0;
  word-break: break-word;
}
.mcard-disp__dl dd a {
  color: #213464;
  text-decoration: underline;
}

@media (max-width: 380px) {
  .mcard-disp__keystats {
    grid-template-columns: 1fr;
  }
  .mcard-disp__dl {
    grid-template-columns: 84px 1fr;
  }
}

@media (min-width: 768px) {
  .mcard-disp__title { font-size: 26px; }
  .mcard-disp__keystats { grid-template-columns: repeat(4, 1fr); }
}

/* =============================================================
   mcard-disp v2 余白拡張版 (2026-05-29 SOUZOUDO)
   ============================================================= */

/* 外枠カード自体の padding と余白 */
.mcard-disp {
  padding: 24px 22px !important;
  margin: 8px 0 20px !important;
}

/* Hero 余白拡張 */
.mcard-disp__hero {
  padding: 8px 0 20px !important;
}
.mcard-disp__title {
  font-size: 24px !important;
  margin: 14px 0 14px !important;
  line-height: 1.4 !important;
}
.mcard-disp__rating {
  padding-bottom: 18px !important;
}

/* Key stats 余白拡張 */
.mcard-disp__keystats {
  gap: 10px !important;
  margin: 22px 0 24px !important;
}
.mcard-disp__keystat {
  padding: 14px 16px !important;
}

/* CTA余白拡張 + ボタン自体ふっくら */
.mcard-disp__actions {
  margin: 20px 0 !important;
  gap: 10px !important;
}
.mcard-disp__actions--bottom {
  margin-top: 28px !important;
  padding-top: 24px !important;
}
.mcard-disp__btn {
  padding: 14px 16px !important;
  font-size: 14px !important;
  border-radius: 10px !important;
}

/* Meta 下にスペース */
.mcard-disp__meta {
  margin: 14px 0 24px !important;
  padding: 6px 0 16px !important;
  border-bottom: 1px solid #F3F4F6;
}

/* セクション間にも呼吸 */
.mcard-disp__section {
  margin: 28px 0 !important;
  padding: 0 !important;
}
.mcard-disp__section-title {
  font-size: 13px !important;
  margin-bottom: 12px !important;
}
.mcard-disp__text {
  font-size: 14px !important;
  line-height: 1.75 !important;
}

/* チップ間も広げる */
.mcard-disp__chips {
  gap: 10px 12px !important;
}
.mcard-disp__chips > span {
  padding: 8px 14px !important;
  font-size: 12.5px !important;
}

/* dl の行間 */
.mcard-disp__dl {
  gap: 10px 14px !important;
}
.mcard-disp__dl dt,
.mcard-disp__dl dd {
  padding: 8px 0 !important;
  font-size: 13.5px !important;
}

@media (min-width: 768px) {
  .mcard-disp {
    padding: 32px 32px !important;
  }
  .mcard-disp__title {
    font-size: 28px !important;
  }
}

/* =============================================================
   検索フィルタ モダンUI v1 (2026-05-29 SOUZOUDO)
   ガタガタ感を解消、グリッドレイアウト、SVGアイコン
   ============================================================= */
.search,
.search-head {
  background: linear-gradient(180deg, #FAFBFC 0%, #F3F4F6 100%);
  padding: 16px 0 !important;
}
.search > .l-container,
.search-head > .l-container {
  background: #FFFFFF;
  border-radius: 16px;
  padding: 20px !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.04);
  border: 1px solid #E5E7EB;
  margin: 0 12px !important;
  max-width: none !important;
}

/* 検索フィルタ レイアウト */
.search__filter {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 12px !important;
  padding: 0 !important;
  margin: 0 !important;
  list-style: none;
  width: 100% !important;
  align-items: stretch !important;
}

/* 検索内容 ラベル */
.search__ttl {
  grid-column: 1 / -1 !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  color: #6B7280 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase;
  margin: 0 0 4px !important;
  padding: 0 !important;
  min-width: 0 !important;
}

/* 各検索フィールド */
.search__filter > .search__item {
  margin: 0 !important;
  padding: 0 !important;
  min-width: 0;
}

/* キーワード入力欄を全幅に */
.search__filter > .search__item:has(input[type="text"]) {
  grid-column: 1 / -1 !important;
}

/* チェックボックス（足場会会員）を全幅 */
.search__filter > .search__item:has(input[type="checkbox"]) {
  grid-column: 1 / -1 !important;
  background: #FAFBFC;
  border: 1px solid #E5E7EB;
  border-radius: 10px;
  padding: 12px 14px !important;
  gap: 8px !important;
}

/* テキスト・電話・メール等の入力 */
.search__item [type="text"],
.search__item [type="tel"],
.search__item [type="email"],
.search__item [type="number"],
.search__item [type="search"] {
  width: 100% !important;
  height: 44px !important;
  padding: 10px 14px !important;
  border-radius: 10px !important;
  border: 1px solid #E5E7EB !important;
  background: #FFFFFF !important;
  font-size: 14px !important;
  line-height: 1.4 !important;
  color: #1A1F36 !important;
  transition: border-color .15s ease, box-shadow .15s ease;
  -webkit-appearance: none !important;
  box-shadow: none !important;
}
.search__item [type="text"]::placeholder {
  color: #9CA3AF !important;
}
.search__item [type="text"]:focus,
.search__item input:focus {
  outline: none !important;
  border-color: #213464 !important;
  box-shadow: 0 0 0 3px rgba(33, 52, 100, 0.1) !important;
}

/* セレクト (都道府県/市区町村) */
.search__item .select {
  width: 100% !important;
  position: relative !important;
  display: block !important;
  background: #FFFFFF !important;
  border: 1px solid #E5E7EB !important;
  border-radius: 10px !important;
  overflow: hidden;
  height: 44px;
  box-shadow: none !important;
}
.search__item .select::after {
  content: "";
  position: absolute;
  right: 12px;
  top: 50%;
  width: 10px;
  height: 10px;
  margin-top: -7px;
  border-right: 2px solid #6B7280;
  border-bottom: 2px solid #6B7280;
  transform: rotate(45deg);
  pointer-events: none;
}
.search__item .select > select {
  width: 100% !important;
  height: 44px !important;
  padding: 0 36px 0 14px !important;
  border: none !important;
  background: transparent !important;
  font-size: 14px !important;
  color: #1A1F36 !important;
  line-height: 44px !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
  cursor: pointer;
  box-shadow: none !important;
}
.search__item .select > select:focus {
  outline: none !important;
}

/* チェックボックス（モダン） */
.search__item [type="checkbox"] {
  appearance: none !important;
  -webkit-appearance: none !important;
  width: 20px !important;
  height: 20px !important;
  margin: 0 !important;
  border: 1.5px solid #D1D5DB !important;
  border-radius: 5px !important;
  background: #FFFFFF !important;
  cursor: pointer;
  position: relative;
  flex-shrink: 0;
  transition: background-color .15s, border-color .15s;
}
.search__item [type="checkbox"]:checked {
  background: #213464 !important;
  border-color: #213464 !important;
}
.search__item [type="checkbox"]:checked::after {
  content: "";
  position: absolute;
  top: 2px;
  left: 6px;
  width: 5px;
  height: 9px;
  border-right: 2px solid #FFFFFF;
  border-bottom: 2px solid #FFFFFF;
  transform: rotate(45deg);
}
.search__item label {
  font-size: 14px !important;
  font-weight: 500;
  color: #1A1F36;
  cursor: pointer;
  user-select: none;
}

/* 検索ボタン */
.search__filter > .btn--search,
.search__filter > .btn.btn--search {
  grid-column: 1 / -1 !important;
  margin: 8px 0 0 !important;
  padding: 0 !important;
  list-style: none;
}
.btn--search button {
  width: 100% !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 50px !important;
  padding: 0 24px !important;
  background: #213464 !important;
  color: #FFFFFF !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  border: none !important;
  border-radius: 10px !important;
  cursor: pointer;
  transition: opacity .15s, transform .1s;
  box-shadow: 0 2px 8px rgba(33, 52, 100, 0.15);
}
.btn--search button:hover {
  opacity: 0.92;
}
.btn--search button:active {
  transform: scale(0.98);
}
.btn--search button img {
  display: none !important; /* 旧PNG非表示 */
}
.btn--search button::after {
  content: "";
  width: 18px;
  height: 18px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

/* タブレット以上では3列、ボタンは右半分など */
@media (min-width: 768px) {
  .search__filter {
    grid-template-columns: repeat(3, 1fr) !important;
  }
  .search__filter > .search__item:has(input[type="text"]) {
    grid-column: 1 / -1 !important;
  }
  .search__filter > .btn--search,
  .search__filter > .btn.btn--search {
    grid-column: 1 / -1 !important;
  }
}

/* =============================================================
   検索フィルタ 左右余白拡張 v2 (2026-05-29 SOUZOUDO)
   ============================================================= */

/* 検索エリア section に左右パディング */
.search,
.search-head {
  background: #F9FAFB !important;
  padding: 16px 16px !important;
  margin: 0 !important;
}

/* 検索フィルタの白カード自体の余白拡張 */
.search > .l-container,
.search-head > .l-container {
  padding: 22px 20px !important;
  margin: 0 auto !important;
  max-width: 720px;
}

/* 並び替えセクションにも余白 */
.search__sort,
.search__word {
  padding: 0 4px !important;
}

/* 検索フィルタ自体の内部余白 (要素間) を少し緩める */
.search__filter {
  gap: 14px !important;
}

/* チェックボックス周りも内側 padding を増やして空間 */
.search__filter > .search__item:has(input[type="checkbox"]) {
  padding: 14px 16px !important;
}

/* 検索ボタン上のマージン */
.search__filter > .btn--search,
.search__filter > .btn.btn--search {
  margin-top: 12px !important;
}

/* セクションタイトル(受注希望一覧等)とコンテンツ間 */
.subpage-head + .search,
.subpage-head + .search-head {
  margin-top: 0 !important;
}

/* 一覧結果セクションの左右余白も統一 */
.result,
section.result {
  padding: 8px 16px 24px !important;
}
.result > .l-container,
section.result > .l-container {
  padding: 0 !important;
  max-width: 720px;
  margin: 0 auto !important;
}

/* タブレット以上 */
@media (min-width: 768px) {
  .search,
  .search-head {
    padding: 20px 24px !important;
  }
  .search > .l-container,
  .search-head > .l-container {
    padding: 28px 28px !important;
  }
  .result,
  section.result {
    padding: 12px 24px 32px !important;
  }
}

/* =============================================================
   検索エリア 背景フルワイド化 v3 (2026-05-29 SOUZOUDO)
   背景は画面端まで、カードは center 寄せで余白持たせる
   ============================================================= */

/* セクション背景は画面端まで延ばす (横padding削除、上下のみ) */
.search,
.search-head {
  background: #F9FAFB !important;
  padding: 16px 0 !important;
  margin: 0 !important;
}

/* 白カードは横16pxマージンで余白を確保、PCは中央寄せ */
.search > .l-container,
.search-head > .l-container {
  background: #FFFFFF;
  border-radius: 16px;
  padding: 22px 20px !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.04);
  border: 1px solid #E5E7EB;
  margin: 0 16px !important;
  max-width: none !important;
}

@media (min-width: 768px) {
  .search,
  .search-head {
    padding: 20px 0 !important;
  }
  .search > .l-container,
  .search-head > .l-container {
    margin: 0 auto !important;
    max-width: 720px;
    padding: 28px !important;
  }
}

/* 並び替えセクションも背景に馴染ませる (背景はsection側) */
.search__sort,
.search__word {
  padding: 0 16px !important;
  margin: 0 !important;
}

/* 検索結果一覧セクションは 通常通り */
.result,
section.result {
  padding: 12px 16px 24px !important;
  background: transparent !important;
}
@media (min-width: 768px) {
  .result,
  section.result {
    padding: 16px 24px 32px !important;
  }
}

/* =============================================================
   検索フィルタ ローディング状態 (2026-05-29 SOUZOUDO)
   ============================================================= */
.search__item .select.is-loading,
.search__item select.is-loading {
  opacity: 0.6;
  cursor: progress;
  pointer-events: none;
}
.search__item .select:has(select.is-loading)::after,
.search__item .select:has(select[disabled])::after {
  border-color: #D1D5DB;
}
.search__item select:disabled {
  opacity: 0.6;
  background-color: #F9FAFB !important;
  cursor: progress;
}

/* =============================================================
   検索フィルタ ラグジュアリー版 v4 (2026-05-29 SOUZOUDO)
   並び替えchip化、コンテナ統合、洗練されたインタラクション
   ============================================================= */

/* セクション全体 - グレー寄り清潔背景 */
.search,
.search-head {
  background: #F4F5F7 !important;
  padding: 16px 0 !important;
}

/* 並び替えと検索フィルタを1つの白カードに統合 */
.search > .search__area:first-child,
.search > .search__area--second {
  background: #FFFFFF !important;
  margin: 0 12px !important;
  padding: 18px 18px !important;
  border: 1px solid #E5E7EB;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
}
.search > .search__area:first-child {
  border-radius: 16px 16px 0 0;
  border-bottom: none !important;
  padding-bottom: 14px !important;
}
.search > .search__area--second {
  border-radius: 0 0 16px 16px;
  padding-top: 18px !important;
}
/* 単一エリアの場合(l-containerのみ) */
.search > .l-container {
  background: #FFFFFF !important;
  margin: 0 12px !important;
  padding: 22px 20px !important;
  border-radius: 16px !important;
  border: 1px solid #E5E7EB;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
}

/* ----- 並び替え (chips化) ----- */
.search__sort {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  flex-wrap: wrap;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
}
.search__sort .search__ttl {
  font-size: 11px !important;
  font-weight: 700 !important;
  color: #6B7280 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase;
  margin: 0 8px 0 0 !important;
  min-width: 0 !important;
  white-space: nowrap;
}
/* 各並び替え選択肢 (chip) */
.search__sort .search__item {
  margin: 0 !important;
  padding: 0 !important;
  font-size: 0 !important;
}
.search__sort .search__item a {
  display: inline-flex;
  align-items: center;
  padding: 7px 14px;
  border-radius: 999px;
  background: #F3F4F6;
  color: #4B5563;
  font-size: 12.5px;
  font-weight: 500;
  text-decoration: none !important;
  border: 1px solid transparent;
  transition: background-color .15s, color .15s, border-color .15s;
  white-space: nowrap;
  line-height: 1.2;
}
.search__sort .search__item a:hover {
  background: #E5E7EB;
}
/* アクティブな並び替え */
.search__sort .search__item.sort_select a {
  background: #213464 !important;
  color: #FFFFFF !important;
  border-color: #213464 !important;
  font-weight: 600 !important;
  font-size: 12.5px !important;
}

/* ----- 検索フィルタ ----- */
.search__filter {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 12px !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
  align-items: stretch !important;
}
.search__ttl,
.search__filter .search__ttl {
  grid-column: 1 / -1 !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  color: #6B7280 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase;
  margin: 0 0 2px !important;
  padding: 0 !important;
  min-width: 0 !important;
}

/* 各フィールド */
.search__filter > .search__item {
  margin: 0 !important;
  padding: 0 !important;
  min-width: 0;
}
.search__filter > .search__item:has(input[type="text"]) {
  grid-column: 1 / -1 !important;
}

/* セレクトボックス - 洗練 */
.search__item .select {
  width: 100% !important;
  position: relative !important;
  display: block !important;
  background: #FFFFFF !important;
  border: 1px solid #E5E7EB !important;
  border-radius: 10px !important;
  overflow: hidden;
  height: 46px;
  box-shadow: none !important;
  transition: border-color .15s, box-shadow .15s;
}
.search__item .select:hover {
  border-color: #CBD5E1 !important;
}
.search__item .select:focus-within {
  border-color: #213464 !important;
  box-shadow: 0 0 0 3px rgba(33, 52, 100, 0.12) !important;
}
.search__item .select::after {
  content: "";
  position: absolute;
  right: 14px;
  top: 50%;
  width: 10px;
  height: 6px;
  margin-top: -3px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6' fill='none' stroke='%236B7280' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1l4 4 4-4'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  pointer-events: none;
  border: none !important;
  transform: none !important;
}
.search__item .select > select {
  width: 100% !important;
  height: 46px !important;
  padding: 0 36px 0 14px !important;
  border: none !important;
  background: transparent !important;
  font-size: 14px !important;
  color: #1A1F36 !important;
  line-height: 46px !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
  cursor: pointer;
  box-shadow: none !important;
  font-weight: 500;
}
.search__item .select > select:focus {
  outline: none !important;
}

/* テキスト入力 - 検索アイコン付き */
.search__filter > .search__item:has(input[type="text"]) {
  position: relative;
}
.search__filter > .search__item:has(input[type="text"])::before {
  content: "";
  position: absolute;
  left: 16px;
  top: 50%;
  width: 16px;
  height: 16px;
  margin-top: -8px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239CA3AF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  pointer-events: none;
  z-index: 1;
}
.search__item [type="text"],
.search__item [type="tel"],
.search__item [type="email"],
.search__item [type="search"] {
  width: 100% !important;
  height: 46px !important;
  padding: 10px 16px 10px 42px !important;
  border-radius: 10px !important;
  border: 1px solid #E5E7EB !important;
  background: #FFFFFF !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 1.4 !important;
  color: #1A1F36 !important;
  transition: border-color .15s ease, box-shadow .15s ease;
  -webkit-appearance: none !important;
  box-shadow: none !important;
}
.search__item [type="text"]::placeholder {
  color: #9CA3AF !important;
  font-weight: 400;
}
.search__item [type="text"]:hover {
  border-color: #CBD5E1 !important;
}
.search__item [type="text"]:focus {
  outline: none !important;
  border-color: #213464 !important;
  box-shadow: 0 0 0 3px rgba(33, 52, 100, 0.12) !important;
}

/* チェックボックス - シンプル＆インライン */
.search__filter > .search__item:has(input[type="checkbox"]) {
  grid-column: 1 / -1 !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 13px 16px !important;
  background: #FAFBFC !important;
  border: 1px solid #E5E7EB !important;
  border-radius: 10px !important;
  cursor: pointer;
  transition: background-color .15s, border-color .15s;
}
.search__filter > .search__item:has(input[type="checkbox"]):hover {
  background: #F3F4F6 !important;
  border-color: #CBD5E1 !important;
}
.search__filter > .search__item:has(input[type="checkbox"]:checked) {
  background: #F0F4FF !important;
  border-color: #213464 !important;
}
.search__item [type="checkbox"] {
  appearance: none !important;
  -webkit-appearance: none !important;
  width: 18px !important;
  height: 18px !important;
  margin: 0 !important;
  border: 1.5px solid #CBD5E1 !important;
  border-radius: 5px !important;
  background: #FFFFFF !important;
  cursor: pointer;
  position: relative;
  flex-shrink: 0;
  transition: background-color .15s, border-color .15s;
}
.search__item [type="checkbox"]:checked {
  background: #213464 !important;
  border-color: #213464 !important;
}
.search__item [type="checkbox"]:checked::after {
  content: "";
  position: absolute;
  top: 1px;
  left: 5px;
  width: 5px;
  height: 9px;
  border-right: 2px solid #FFFFFF;
  border-bottom: 2px solid #FFFFFF;
  transform: rotate(45deg);
}
.search__item label {
  font-size: 13.5px !important;
  font-weight: 500 !important;
  color: #1A1F36 !important;
  cursor: pointer;
  user-select: none;
  flex: 1;
}

/* 検索ボタン - ハイクラス */
.search__filter > .btn--search,
.search__filter > .btn.btn--search {
  grid-column: 1 / -1 !important;
  margin: 8px 0 0 !important;
  padding: 0 !important;
  list-style: none;
}
.btn--search button {
  width: 100% !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 52px !important;
  padding: 0 24px !important;
  background: linear-gradient(180deg, #2A4274 0%, #213464 100%) !important;
  color: #FFFFFF !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em;
  border: none !important;
  border-radius: 12px !important;
  cursor: pointer;
  transition: transform .1s, box-shadow .15s, opacity .15s;
  box-shadow: 0 4px 12px rgba(33, 52, 100, 0.22), inset 0 1px 0 rgba(255, 255, 255, 0.12) !important;
}
.btn--search button:hover {
  opacity: 0.94;
  box-shadow: 0 6px 16px rgba(33, 52, 100, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.12) !important;
}
.btn--search button:active {
  transform: scale(0.985);
}
.btn--search button img {
  display: none !important;
}
.btn--search button::after {
  content: "";
  width: 18px;
  height: 18px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

/* 「検索結果が見つかりませんでした」を洗練 */
.result__item:has(p:contains("見つかりません")),
p.result__ttl,
div.result__item > p.result__ttl {
  text-align: center;
  padding: 32px 16px;
  color: #6B7280;
  font-size: 14px;
}

/* タブレット以上 */
@media (min-width: 768px) {
  .search > .search__area:first-child,
  .search > .search__area--second {
    margin: 0 auto !important;
    max-width: 720px;
    padding: 22px 24px !important;
  }
  .search > .search__area--second {
    padding-top: 20px !important;
  }
  .search > .l-container {
    margin: 0 auto !important;
    max-width: 720px;
    padding: 28px !important;
  }
  .search__filter {
    grid-template-columns: repeat(3, 1fr) !important;
  }
  .search__filter > .search__item:has(input[type="text"]) {
    grid-column: 1 / -1 !important;
  }
}

/* =============================================================
   検索フィルタ 微調整 v4.1 (2026-05-29 SOUZOUDO)
   並び替えを1行固定 + 検索ボタン完全全幅
   ============================================================= */

/* ----- 並び替え 1行固定 (溢れたら横スクロール) ----- */
.search__sort {
  flex-wrap: nowrap !important;
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none !important;
  padding-bottom: 2px !important;
  /* iOS Safari 慣性スクロールでも切れないように */
  margin-right: -4px !important;
}
.search__sort::-webkit-scrollbar {
  display: none !important;
}
.search__sort .search__ttl {
  flex-shrink: 0 !important;
  white-space: nowrap !important;
  margin-right: 6px !important;
}
.search__sort .search__item {
  flex-shrink: 0 !important;
}
.search__sort .search__item a {
  padding: 6px 12px !important;
  font-size: 12px !important;
  white-space: nowrap !important;
}

/* ----- 検索ボタン 完全全幅化 ----- */
.search__filter > .btn--search,
.search__filter > .btn.btn--search,
.search__filter > li.btn--search,
.search__filter > li.btn.btn--search {
  grid-column: 1 / -1 !important;
  width: 100% !important;
  max-width: none !important;
  margin: 8px 0 0 !important;
  padding: 0 !important;
  display: block !important;
  box-sizing: border-box !important;
}
.btn--search button {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}

/* =============================================================
   メッセージ一覧 msglist v1 (2026-05-30 SOUZOUDO)
   m_message2 専用。共有パーシャル(listmm1/2)・グローバル .card__item は
   触らず、親 .msglist / .msglist-page でスコープして会話リスト型に刷新。
   ============================================================= */

/* リスト本体：縦1カラムの会話リスト */
.result .card__list.msglist {
  display: block;
  margin-top: 2.4rem;
}
.msglist .card__item {
  width: 100%;
  margin: 0 0 1.2rem;
  padding: 1.6rem;
  display: flex;
  align-items: flex-start;
  gap: 1.4rem;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 1.2rem;
  box-shadow: 0 1px 3px rgba(16, 24, 40, 0.06);
}

/* アバター：円形 */
.msglist .card__img {
  width: auto;
  flex-shrink: 0;
}
.msglist .card__img a {
  display: block;
}
.msglist .card__img img {
  width: 5.6rem;
  height: 5.6rem;
  border-radius: 50%;
  object-fit: cover;
  border: 1px solid #eef0f4;
}

/* 本文 */
.msglist .card__desc {
  flex: 1 1 auto;
  width: auto;
  min-width: 0;
}
.msglist .card__ttl {
  margin: 0.2rem 0 1rem;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.3;
}
.msglist .card__ttl a {
  color: #1a1f36;
  text-decoration: none;
}

/* ボタン群：3つ並ぶが「メッセージを見る」を主役に昇格 */
.msglist .card__btn {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
}
.msglist .card__btn .btn--small {
  flex: 1 1 auto;
  margin: 0;
}
.msglist .card__btn .btn--small a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  padding: 1rem 1.2rem;
  border-radius: 0.8rem;
  font-size: 1.3rem;
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
  text-decoration: none;
  color: #1a1f36;
  background: #fff;
  border: 1px solid #e5e7eb;
  box-shadow: none;
  transition: opacity 0.15s ease;
}
.msglist .card__btn .btn--small a:active {
  opacity: 0.7;
}
/* 2番目=メッセージを見る を全幅プライマリ(ネイビー)に昇格 */
.msglist .card__btn .btn--small:nth-child(2) {
  order: -1;
  flex: 1 1 100%;
}
.msglist .card__btn .btn--small:nth-child(2) a {
  background: #213464;
  color: #fff;
  border-color: #213464;
}

/* 未読ピル：メッセージを見るボタン内にインライン表示
   2026-05-30 SOUZOUDO: 旧版は position:absolute のままで、flexカード上ではボタン右端に
   重なって崩れていた。ボタン<a>は display:flex; justify-content:center; gap:0.4rem 設計済みなので
   position:static にしてテキストの左へインライン配置（崩れ解消＋未読が一目で伝わる） */
.msglist .item__badge {
  position: static;
  flex: 0 0 auto;
  min-width: 0;
  width: auto;
  height: auto;
  margin: 0;
  padding: 0.2rem 0.7rem;
  border-radius: 999px;
  background: #e23a0e;
  color: #fff;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.4;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
}

@media screen and (max-width: 767.98px) {
  .msglist .card__item {
    margin-bottom: 1rem;
    padding: 1.4rem;
  }
  .msglist .card__ttl {
    font-size: 1.5rem;
  }
}


/* ===== 2026-05-30 deploy: modern chat bubbles appended (overrides legacy balloon/footer; thread-list untouched) ===== */
/* =============================================================
   チャット吹き出し刷新 (2026-05-30 SOUZOUDO)
   フラットUI / 自分=ネイビー・白文字 / 相手=白・濃灰文字
   尻尾なし・角丸16px。CSSのみ（chatinner.php のマークアップは不変）
   ※ .left_balloon/.right_balloon/.balloon_* は m_chat1/m_chat2/m_chatg 共通
   ============================================================= */
.left_balloon,
.right_balloon {
  margin: 1.2rem 1.6rem;
  display: flex;
  justify-content: flex-start;
  align-items: flex-end;
  gap: 0.9rem;
}

.right_balloon {
  justify-content: flex-end;
}

/* アバター: 相手側のみ・円形で統一（自分側は非表示） */
.right_balloon .balloon_div_left {
  display: none;
}

.left_balloon .balloon_div_left {
  margin: 0;
  flex: 0 0 auto;
}

.balloon_div_left img {
  width: 4rem;
  height: 4rem;
  border-radius: 50%;
  -o-object-fit: cover;
  object-fit: cover;
  font-family: "object-fit: cover;";
  background: #e5e7eb;
}

/* 吹き出し本体 */
.balloon_div_right {
  max-width: 75%;
  position: relative;
  padding: 1rem 1.4rem;
  border-radius: 1.6rem;
  background: #fff;
  border: 1px solid #e5e7eb;
  box-shadow: 0 1px 2px rgba(16, 24, 40, 0.06);
  box-sizing: border-box;
  margin: 0 !important;
  line-height: 1.6;
}

.left_balloon .balloon_div_right {
  background: #fff;
  border-top-left-radius: 0.4rem;
}

.right_balloon .balloon_div_right {
  background: #213464;
  border-color: #213464;
  border-top-right-radius: 0.4rem;
}

/* 旧・吹き出しの尻尾(三角)は廃止 */
.balloon_div_right::after {
  display: none !important;
}

/* 本文テキスト */
.left_balloon p,
.right_balloon p {
  margin: 0;
  font-size: 1.4rem;
  line-height: 1.6;
  position: relative;
  white-space: pre-wrap;
  word-break: break-word;
}

.left_balloon .balloon_div_right p {
  color: #1A1F36;
}

.right_balloon .balloon_div_right p {
  color: #fff;
}

.left_balloon .balloon_div_right p a {
  color: #213464;
  text-decoration: underline;
}

.right_balloon .balloon_div_right p a {
  color: #fff;
  text-decoration: underline;
}

/* システムメッセージ: 中央寄せの控えめなチップ */
.system_balloon.left_balloon {
  justify-content: center;
}

.system_balloon {
  display: block;
  max-width: 82%;
  margin: 1.4rem auto;
  padding: 0.7rem 1.6rem;
  text-align: center;
  background: #f1f3f7;
  border: none;
  border-radius: 1.2rem;
}

.system_balloon p {
  color: #6B7280 !important;
  font-size: 1.2rem;
}

.system_balloon .balloon_sub {
  justify-content: center;
}

/* メタ情報（名前 / 日時 / 既読） */
.balloon_sub {
  margin: 0 0 0.4rem;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.6rem;
}

.balloon_name {
  font-size: 1.2rem;
  font-weight: 700;
  color: #1A1F36;
}

.balloon_date {
  font-size: 1.1rem;
  color: #9CA3AF;
}

.right_balloon .balloon_date {
  color: rgba(255, 255, 255, 0.7);
}

.balloon_kidoku {
  padding: 0;
  font-size: 1.05rem;
  color: #9CA3AF;
  border: none;
}

.right_balloon .balloon_kidoku {
  color: rgba(255, 255, 255, 0.7);
}

@media only screen and (max-width: 767.98px) {

  .left_balloon,
  .right_balloon {
    margin: 1rem 0.4rem;
    gap: 0.7rem;
  }

  .balloon_div_right {
    max-width: 80%;
  }

  .balloon_div_left img {
    width: 3.4rem;
    height: 3.4rem;
  }

  .left_balloon p,
  .right_balloon p {
    font-size: 1.4rem;
  }

  .balloon_name {
    font-size: 1.1rem;
  }

  .balloon_date,
  .balloon_kidoku {
    font-size: 1rem;
  }
}

.chat-footer textarea {
  width: 100%;
  padding: 1.4rem 1.6rem 5rem;
  position: relative;
  z-index: 1;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 1.4rem;
  box-shadow: 0 2px 10px rgba(16, 24, 40, 0.06);
  font-size: 1.5rem;
  line-height: 1.5;
  resize: none;
}

.submit__area {
  display: flex;
  justify-content: flex-end;
  align-content: center;
  align-items: center;
  gap: 0.6rem;
  width: 100%;
  position: absolute;
  bottom: 0.8rem;
  right: 1.2rem;
  z-index: 5;
}

.chat__submit button,
.chat__submit [type="submit"],
.chat__submit [type="button"] {
  background: #213464;
  color: #fff;
  white-space: nowrap;
  height: 3.6rem;
  padding: 0 2rem;
  border: none;
  border-radius: 999px;
  font-weight: 700;
  font-size: 1.4rem;
}

.btn-file {
  height: 4rem;
}

.btn-file::before {
  content: "";
  width: 4rem;
  height: 4rem;
  margin-right: 1rem;
  background: url("../images/icon-clip.png") center center/100% no-repeat;
  display: inline-block;
  position: relative;
  top: 0;
  right: 0;
}

@media only screen and (max-width: 767.98px) {
  .chat-footer textarea {
    padding: 15px 10px 40px;
  }

  .chat-footer textarea::-moz-placeholder {
    font-size: 13px;
    line-height: 2;
  }

  .chat-footer textarea::placeholder {
    font-size: 13px;
    line-height: 2;
  }

  .submit__area {
    padding-bottom: 4px;
    right: 10px;
  }

  .btn-file {
    height: 3rem;
  }

  .btn-file::before {
    width: 3rem;
    height: 3rem;
    margin-right: 0;
  }

  .chat__submit button,
  .chat__submit [type="submit"],
  .chat__submit [type="button"] {
    font-size: 10px;
    height: 3rem;
    padding: 0 10px;
  }
}


/* ============================================================================
   2026-05-30 SOUZOUDO: メッセージUI クリーン化
   一覧＝LINE/メール風の整った行 / 会話＝LINE風バルーン（自分=ブランドのネイビー維持）
   CSSのみ・後勝ち上書き・chatinner.php等のマークアップ不変
   ============================================================================ */

/* フォント（iframe内チャットが明朝体になるのを防ぐ） */
body:has(.left_balloon), body:has(.right_balloon),
.left_balloon, .right_balloon, .system_balloon, .thread__item {
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif !important;
}

/* ============ メッセージ一覧（行） ============ */
.thread__list { margin: 0 0 2rem !important; border-top: 1px solid #eef0f3; padding: 0 !important; }
.thread__item { border-bottom: 1px solid #eef0f3 !important; background: #fff !important; padding: 0 !important; }
.thread__item > a {
  display: flex !important; align-items: center !important; gap: 1.1rem !important;
  padding: 1.3rem 0.6rem !important; text-decoration: none !important; color: inherit !important;
}
.thread__item > a:hover { background: #f7f8fa !important; }
.thread__avatar { flex: 0 0 auto !important; width: 4.8rem !important; height: 4.8rem !important; border-radius: 50% !important; overflow: hidden !important; background: #e5e7eb !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; }
.thread__avatar img { width: 100% !important; height: 100% !important; object-fit: cover !important; display: block !important; }
.thread__body { flex: 1 1 auto !important; min-width: 0 !important; display: flex !important; flex-direction: column !important; gap: 0.35rem !important; align-items: stretch !important; }
.thread__title { font-size: 1.55rem !important; font-weight: 700 !important; color: #1A1F36 !important; line-height: 1.35 !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.thread__meta { display: flex !important; align-items: center !important; gap: 0.8rem !important; margin: 0 !important; }
.thread__date { font-size: 1.15rem !important; color: #98a1ad !important; }
.thread__badge, .thread__meta .item__badge { background: #e23a3a !important; color: #fff !important; font-size: 1.0rem !important; font-weight: 700 !important; padding: 0.15rem 0.65rem !important; border-radius: 999px !important; line-height: 1.6 !important; border: none !important; }
.thread__chevron { flex: 0 0 auto !important; color: #c4cad3 !important; display: flex !important; align-items: center !important; margin: 0 !important; }
.thread__chevron svg { width: 1.8rem !important; height: 1.8rem !important; }

/* ============ チャット会話（LINE風） ============ */
body:has(.left_balloon), body:has(.right_balloon) { background: #ebedee !important; }
.left_balloon, .right_balloon { margin: 0.5rem 1.1rem !important; gap: 0.7rem !important; align-items: flex-start !important; }
.balloon_div_left img { width: 3.6rem !important; height: 3.6rem !important; }
.balloon_div_right { background: transparent !important; border: none !important; box-shadow: none !important; padding: 0 !important; border-radius: 0 !important; max-width: 80% !important; display: flex !important; flex-direction: column !important; }
.left_balloon .balloon_div_right { align-items: flex-start !important; }
.right_balloon .balloon_div_right { align-items: flex-end !important; }
.balloon_div_right::after { display: none !important; }
.left_balloon .balloon_div_right p, .right_balloon .balloon_div_right p {
  margin: 0 !important; display: inline-block; max-width: 100%; padding: 0.85rem 1.2rem;
  border-radius: 1.6rem; line-height: 1.55; font-size: 1.4rem; white-space: pre-wrap; word-break: break-word;
  box-shadow: 0 1px 1.5px rgba(16,24,40,0.06);
}
.left_balloon .balloon_div_right p { background: #ffffff; border: 1px solid #e6e8ec; color: #1A1F36; border-top-left-radius: 0.5rem; }
.right_balloon .balloon_div_right p { background: #213464; border: 1px solid #213464; color: #ffffff; border-top-right-radius: 0.5rem; }
.left_balloon .balloon_div_right p a { color: #213464; }
.right_balloon .balloon_div_right p a { color: #ffffff; }
.balloon_sub { margin: 0 0.4rem 0.3rem !important; display: flex; gap: 0.5rem; align-items: center; flex-wrap: wrap; background: transparent !important; }
.balloon_name { font-size: 1.1rem !important; color: #5b6472 !important; font-weight: 600 !important; }
.balloon_date, .balloon_kidoku { font-size: 1.02rem !important; color: #98a1ad !important; }

/* システムメッセージ: 小さく中央の控えめチップ（巨大な明朝ボックスを抑制） */
.system_balloon { max-width: 88% !important; margin: 1rem auto !important; padding: 0.55rem 1.2rem !important; background: rgba(33,52,100,0.06) !important; border: none !important; border-radius: 1rem !important; }
.system_balloon p { font-size: 1.1rem !important; color: #5b6472 !important; line-height: 1.5 !important; }
.system_balloon .balloon_sub { display: none !important; }

/* チャット送信エリアの枠の古さを軽減 */
.chat-inner .ifrm { border: 1px solid #e6e8ec !important; border-radius: 1rem !important; }


/* ============================================================================
   2026-05-30 SOUZOUDO: チャット会話画面 ボールド刷新（LINE風スクリーン）
   ============================================================================ */

/* パンくず非表示（チャット画面のみ・ヘッダーに集約） */
body:has(.chat-outline) .breadcrumb { display: none !important; }

/* ヘッダー: 相手名を主役・日時は小さく */
.chat-outline .c-head { margin: 0 0 0.8rem !important; padding: 0.6rem 0 1rem !important; border-bottom: 1px solid #e6ebf1 !important; }
.chat-outline .c-head__ttl { font-size: 1.8rem !important; font-weight: 800 !important; color: #1A1F36 !important; line-height: 1.35 !important; }
.chat-outline .c-head__ttl a { color: #1A1F36 !important; text-decoration: none !important; }
.chat-outline .c-head__ttl span { color: #98a1ad !important; font-weight: 500 !important; font-size: 1.2rem !important; }

/* メッセージエリア: 枠なし・全幅・淡色背景（カード感を排除） */
.chat-outline, .chat-outline.bg__gray { background: #ebedee !important; }
.chat-inner .ifrm, .ifrm { border: none !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; }

/* 空状態（システム文のみ等） */
.chat-empty { text-align: center; color: #9aa3af; font-size: 1.3rem; padding: 4rem 1.5rem; line-height: 1.7; }

/* 入力エリア: LINE風の白カード（送信は丸みボタン） */
.chat-footer form { background: #fff; border: 1px solid #e6e8ec; border-radius: 1.6rem; box-shadow: 0 3px 14px rgba(16,24,40,0.08); padding: 0.3rem; }
.chat-footer textarea { border: none !important; box-shadow: none !important; }
.chat__submit button, .chat__submit [type="submit"], .chat__submit [type="button"] { border-radius: 999px !important; height: 3.8rem !important; }


/* ============================================================================
   2026-05-30 SOUZOUDO: チャット入力欄のサイズ感を適正化（大きすぎ解消）
   ============================================================================ */
.chat-footer form { padding: 0 !important; border-radius: 1.4rem !important; }
.chat-footer textarea {
  height: 8rem !important; min-height: 8rem !important; max-height: 8rem !important;
  padding: 1.1rem 1.3rem 3.4rem !important;
  font-size: 1.42rem !important; line-height: 1.5 !important; border-radius: 1.4rem !important;
}
.chat-footer textarea::placeholder { font-size: 1.4rem !important; }
.submit__area { bottom: 0.6rem !important; right: 0.8rem !important; gap: 0.5rem !important; padding-bottom: 0 !important; }
.chat__submit button, .chat__submit [type="submit"], .chat__submit [type="button"] {
  height: 3.2rem !important; padding: 0 1.9rem !important; font-size: 1.3rem !important;
}
.btn-file { height: 3rem !important; }
.btn-file::before { width: 3rem !important; height: 3rem !important; margin-right: 0 !important; }

/* PC幅は少しゆったり */
@media (min-width: 768px) {
  .chat-footer textarea { height: 9rem !important; min-height: 9rem !important; max-height: 9rem !important; }
}


/* ============================================================================
   2026-05-30 SOUZOUDO: チャット微調整（文字小さく/上見切れ/入力1行＋横並び）
   ============================================================================ */

/* バブル文字を小さく・余白も適正化 */
.left_balloon .balloon_div_right p, .right_balloon .balloon_div_right p { font-size: 1.28rem !important; padding: 0.7rem 1.05rem !important; line-height: 1.5 !important; }
.balloon_date, .balloon_kidoku { font-size: 1.0rem !important; }
.balloon_name { font-size: 1.05rem !important; }

/* 上の見切れ対策（パンくず非表示で詰まった分の上余白） */
.chat-outline { padding-top: 1.8rem !important; }
.chat-outline .c-head { margin-top: 0 !important; }

/* 入力欄: 1行スタート＋横並び（テキスト | クリップ | 送信）。拡張はJSで対応 */
.chat-footer form { display: flex !important; align-items: flex-end !important; gap: 0.5rem !important; padding: 0.5rem 0.6rem !important; }
.chat-footer textarea {
  flex: 1 1 auto !important; width: auto !important;
  height: 4.2rem !important; min-height: 4.2rem !important; max-height: 12rem !important;
  padding: 0.95rem 1.1rem !important; overflow-y: auto !important; resize: none !important;
  font-size: 1.4rem !important;
}
.submit__area {
  position: static !important; flex: 0 0 auto !important; bottom: auto !important; right: auto !important;
  width: auto !important; padding: 0 !important; margin: 0 0 0.4rem !important;
  display: flex !important; align-items: center !important; gap: 0.3rem !important;
}
.chat__submit button, .chat__submit [type="submit"], .chat__submit [type="button"] { height: 3.4rem !important; padding: 0 1.7rem !important; font-size: 1.3rem !important; }
.btn-file { height: 3rem !important; }
.btn-file::before { width: 2.8rem !important; height: 2.8rem !important; margin: 0 !important; }


/* ============================================================================
   2026-05-30 SOUZOUDO: 発注案件カード(listo2)最適化 ＋ 一覧の未読強調
   ============================================================================ */

/* --- 発注案件カード: タイトルの下線除去・クリーンに --- */
.result__head--ttl { text-decoration: none !important; }
.result__head--ttl a { text-decoration: none !important; color: #1A1F36 !important; font-weight: 700 !important; line-height: 1.45 !important; }

/* --- 表の項目名の汚い折り返しを解消（th=内容ぴったり幅・改行なし） --- */
.result__table { border-collapse: separate !important; border-spacing: 0 !important; width: 100% !important; }
.result__table th {
  white-space: nowrap !important; width: 1% !important; vertical-align: top !important;
  background: #f5f7fa !important; color: #5b6472 !important; font-weight: 600 !important;
  font-size: 1.25rem !important; padding: 0.9rem 1.1rem !important; text-align: left !important;
  border-bottom: 1px solid #eef0f3 !important;
}
.result__table td {
  padding: 0.9rem 1.1rem !important; font-size: 1.3rem !important; color: #1A1F36 !important;
  border-bottom: 1px solid #eef0f3 !important; vertical-align: top !important;
}
.result__table tr:last-child th, .result__table tr:last-child td { border-bottom: none !important; }

/* --- 一覧の未読を強調（太字＋淡い背景＋赤バッジ） --- */
.thread__item:has(.thread__badge) .thread__title { font-weight: 800 !important; color: #0f1424 !important; }
.thread__item:has(.thread__badge) { background: #f8fbff !important; }
.thread__badge, .thread__meta .item__badge { background: #e23a3a !important; color: #fff !important; font-weight: 800 !important; }

/* 2026-06-07 鈴木+Claude: 未読を確実に明示。:has()非対応WebView対策で明示クラス .is-unread を併用し、
   背景を分かる色に＋左に青いアクセントバー＋社名前に赤ドット＋太字。一目で未読が分かるようにする。 */
.thread__item.is-unread { background: #eaf2ff !important; box-shadow: inset 0.4rem 0 0 #2563eb !important; }
.thread__item.is-unread > a:hover { background: #e2ecff !important; }
.thread__item.is-unread .thread__title { font-weight: 800 !important; color: #0f1424 !important; }
.thread__item.is-unread .thread__preview { color: #2a3346 !important; font-weight: 600 !important; }
.thread__item.is-unread .thread__title::before {
  content: ""; display: inline-block; width: 0.85rem; height: 0.85rem; border-radius: 50%;
  background: #e23a3a; margin-right: 0.55rem; vertical-align: middle; flex: 0 0 auto;
}


/* ============================================================================
   2026-05-30 SOUZOUDO: チャットヘッダーアバター / 日付区切り / 未読件数バッジ
   ============================================================================ */

/* ヘッダーに相手アバター */
.chat-outline .c-head { display: flex !important; align-items: center !important; gap: 1rem !important; }
.chat-ava { flex: 0 0 auto !important; width: 4.4rem !important; height: 4.4rem !important; border-radius: 50% !important; overflow: hidden !important; background: #e5e7eb !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; }
.chat-ava img { width: 100% !important; height: 100% !important; object-fit: cover !important; display: block !important; }
.chat-outline .c-head__ttl { flex: 1 1 auto !important; min-width: 0 !important; margin: 0 !important; }

/* 日付区切りライン（チャット内・中央の薄いピル） */
.chat-daysep { text-align: center !important; margin: 1.4rem 0 0.8rem !important; }
.chat-daysep span { display: inline-block; background: rgba(33,52,100,0.08); color: #5b6472; font-size: 1.05rem; padding: 0.35rem 1.2rem; border-radius: 999px; }

/* 未読件数バッジ（数字を円形に） */
.thread__badge, .thread__meta .item__badge { min-width: 2rem !important; text-align: center !important; padding: 0.1rem 0.6rem !important; }


/* ============================================================================
   2026-05-30 SOUZOUDO: チャット 上の見切れ解消＋アバター横並び＋文字をpxで小さく
   ============================================================================ */

/* 見切れ対策: 上余白を増やし、はみ出しクリップを止める */
.chat-outline { padding-top: 3rem !important; overflow: visible !important; }
.chat-outline .l-container { overflow: visible !important; }

/* ヘッダー: アバターを名前の左に横並び固定（中央寄せ/縦積みを防ぐ） */
section.chat-outline .l-container .c-head { display: flex !important; align-items: center !important; gap: 1rem !important; text-align: left !important; flex-wrap: nowrap !important; overflow: visible !important; }
.chat-ava { width: 3.8rem !important; height: 3.8rem !important; margin: 0 !important; }
section.chat-outline .c-head__ttl { flex: 1 1 auto !important; min-width: 0 !important; text-align: left !important; margin: 0 !important; }

/* バブル文字をpx指定で確実に小さく（iframe内は基準フォントが大きいため） */
.left_balloon .balloon_div_right p, .right_balloon .balloon_div_right p { font-size: 14px !important; line-height: 1.55 !important; padding: 8px 12px !important; }
.left_balloon .balloon_div_right p a, .right_balloon .balloon_div_right p a { font-size: 14px !important; }
.balloon_name { font-size: 12px !important; }
.balloon_date, .balloon_kidoku { font-size: 11px !important; }
.chat-daysep span { font-size: 11px !important; padding: 4px 14px !important; }

/* ============================================================
   2026-05-30 鈴木: 入力フォーカス時の自動ズーム防止（全ページ・iOS/WebView対策）
   iOS/WebViewはフォーム要素のfont-sizeが16px未満だとフォーカス時に自動ズームするため、
   16pxに固定して画面が勝手にズームしないようにする（ピンチズームは従来どおり可能）。
   ============================================================ */
input,
select,
textarea,
input[type="text"],
input[type="email"],
input[type="password"],
input[type="number"],
input[type="tel"],
input[type="search"],
input[type="url"],
input[type="date"] {
  font-size: 16px !important;
}

/* ============================================================
   2026-05-30 鈴木: チャット吹き出し 本格LINE化（1対1=body.chat-1on1 のみ／グループm_chatgは従来通り）
   ・時刻/既読を吹き出しの「横下」に小さく ・相手名は非表示（1対1）
   ・受信側に既読は出さない ・連続発言はアバター省略＋間隔を詰め時刻はグループ末尾だけ
   ============================================================ */
.chat-1on1 .balloon_name { display: none !important; }
.chat-1on1 .left_balloon .balloon_kidoku { display: none; }
.chat-1on1 .system_balloon .balloon_sub { display: none; }
.chat-1on1 .balloon_div_right { max-width: 72%; }
.chat-1on1 .left_balloon:not(.system_balloon) .balloon_sub,
.chat-1on1 .right_balloon .balloon_sub {
  position: absolute; bottom: 0.1rem; margin: 0 !important;
  display: flex; flex-direction: column; gap: 0.1rem;
  font-size: 1rem; line-height: 1.25; white-space: nowrap; color: #9CA3AF;
}
.chat-1on1 .left_balloon:not(.system_balloon) .balloon_sub { left: calc(100% + 0.5rem); align-items: flex-start; }
.chat-1on1 .right_balloon .balloon_sub { right: calc(100% + 0.5rem); align-items: flex-end; }
.chat-1on1 .balloon_date,
.chat-1on1 .balloon_kidoku,
.chat-1on1 .right_balloon .balloon_date,
.chat-1on1 .right_balloon .balloon_kidoku { font-size: 1rem; color: #9CA3AF; }
.chat-1on1 .left_balloon + .left_balloon,
.chat-1on1 .right_balloon + .right_balloon { margin-top: 0.3rem; }
.chat-1on1 .left_balloon + .left_balloon .balloon_div_left { visibility: hidden; }
.chat-1on1 .left_balloon:not(.system_balloon):has(+ .left_balloon) .balloon_sub,
.chat-1on1 .right_balloon:has(+ .right_balloon) .balloon_sub { display: none; }

/* 2026-05-30 鈴木: (撤回) 会話エリアのflexレイアウトはiOS WebViewでiframe内スクロールを殺すため撤回。固定高さ方式(list.htmlのJS, dh2)に一本化。 */

/* ============================================================
   2026-05-30 鈴木: チャット吹き出しをLINEトーク画面に徹底的に寄せる（1対1=.chat-1on1）
   相手=白／自分=ブランドネイビー、枠線なし・角丸18px・上外側に尻尾・余白LINE準拠
   ============================================================ */
.chat-1on1 .balloon_div_right {
  border: none !important;
  box-shadow: 0 1px 1.5px rgba(16,24,40,0.10);
  border-radius: 1.8rem;
  padding: 0.85rem 1.25rem;
  max-width: 70%;
}
.chat-1on1 .left_balloon .balloon_div_right  { border-top-left-radius: 0.5rem; }
.chat-1on1 .right_balloon .balloon_div_right { border-top-right-radius: 0.5rem; }
/* LINE風の尻尾（上外側）。border三角形 */
.chat-1on1 .left_balloon .balloon_div_right::before {
  content:""; position:absolute; top:0.25rem; left:-0.5rem; width:0; height:0;
  border-top:0.45rem solid transparent; border-bottom:0.45rem solid transparent;
  border-right:0.55rem solid #fff;
}
.chat-1on1 .right_balloon .balloon_div_right::before {
  content:""; position:absolute; top:0.25rem; right:-0.5rem; width:0; height:0;
  border-top:0.45rem solid transparent; border-bottom:0.45rem solid transparent;
  border-left:0.55rem solid #213464;
}
/* アバターとバブルの頭を合わせる＋余白を詰める（連続はさらに密に） */
.chat-1on1 .left_balloon, .chat-1on1 .right_balloon { margin: 0.65rem 1.2rem; align-items: flex-start; }
.chat-1on1 .left_balloon + .left_balloon, .chat-1on1 .right_balloon + .right_balloon { margin-top: 0.2rem; }
.chat-1on1 .left_balloon p, .chat-1on1 .right_balloon p { font-size: 1.45rem; line-height: 1.5; }
/* アバターはバブルの頭に揃える */
.chat-1on1 .left_balloon .balloon_div_left { align-self: flex-start; }

/* 2026-05-30 鈴木: (撤回) スクロール復活のflex試行も撤回。iframeはJSの固定高さ(dh2)でネイティブスクロールさせる。 */

/* ============================================================
   2026-05-30 鈴木: チャット会話ヘッダーをLINE風の細いバーに（最終版・既存の重複指定を上書き）
   小さい丸アイコン＋名前を1行 / 日時は非表示 / 見切れ解消 / 細く
   ============================================================ */
section.chat-outline .c-head {
  display: flex !important; align-items: center !important; gap: 0.9rem !important;
  margin: 0 !important; padding: 0.7rem 0.2rem 0.9rem !important;
  border-bottom: 1px solid #e6ebf1 !important; background: transparent !important;
  overflow: visible !important; min-height: 0 !important; flex: 0 0 auto !important;
}
section.chat-outline .chat-ava {
  flex: 0 0 auto !important; width: 3.4rem !important; height: 3.4rem !important; margin: 0 !important;
  border-radius: 50% !important; overflow: hidden !important; background: #e5e7eb !important;
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
}
section.chat-outline .chat-ava img { width: 100% !important; height: 100% !important; object-fit: cover !important; display: block !important; }
section.chat-outline .c-head__ttl {
  flex: 1 1 auto !important; min-width: 0 !important; margin: 0 !important;
  font-size: 1.6rem !important; font-weight: 700 !important; color: #1A1F36 !important; line-height: 1.2 !important;
  white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important;
}
section.chat-outline .c-head__ttl a { color: #1A1F36 !important; text-decoration: none !important; }
section.chat-outline .c-head__ttl span:not(.c-head__name):not(.c-head__job) { display: none !important; }   /* 日時span等は非表示。会社名(.c-head__name)と案件名(.c-head__job)は表示 */

/* 2026-05-31 鈴木: 空状態メッセージは控えめに（px固定で確実に小さく・大きすぎ/ダサい指摘の修正） */
.chat-empty { font-size: 14px !important; color: #9aa3b0 !important; line-height: 1.85 !important; padding: 2.6rem 2rem !important; text-align: center !important; font-weight: 500 !important; }
/* 2026-05-31 鈴木: モバイルで最後の吹き出しが入力欄に被るのを防ぐ（会話の下に余白。iOS WebViewはtall iframeをスクロール枠でクリップしないため） */
/* モバイルで最後の吹き出しが入力欄に被るのを防ぐ余白（iOS WebView対策）＋PC */
.chat-1on1 .inner { padding-bottom: 8rem !important; }

/* ============================================================
   2026-05-31 鈴木: チャット会話画面 LINEトーク風レイアウト（決定版・構造から）
   会話画面を画面いっぱいに固定表示し、固定サイトヘッダー(100px)を覆う。
   上=細いバー(c-head：戻る+アイコン+名前) / 中=スクロール領域(chat-scroll) / 下=入力(chat-footer)。
   旧JSの高さ計算(dh1/dh2)・sizeChatは撤去。高さは flex + 100dvh で決定。
   → 可動域を最大化し、アバター見切れ・上下スクロールの窮屈さを解消する。
   ============================================================ */
html:has(section.chat-outline), body:has(section.chat-outline) { overflow: hidden !important; height: 100% !important; margin: 0 !important; }
section.chat-outline {
  position: fixed !important;
  top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important;
  width: 100% !important;
  height: 100vh !important;
  height: 100dvh !important;
  margin: 0 !important;
  padding: 0 !important;
  z-index: 60 !important;
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
  background: #ebedee !important;
}
section.chat-outline > .l-container {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
}
section.chat-outline .chat-inner {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  height: auto !important;
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}
section.chat-outline .chat-scroll {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  height: auto !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch !important;
  overscroll-behavior-y: contain !important;
  background: #ebedee !important;
}
section.chat-outline .chat-footer {
  flex: 0 0 auto !important;
  background: #f3f5f8 !important;
  border-top: 1px solid #e3e8ef !important;
  padding: 0.5rem 0.7rem !important;
  margin: 0 !important;
}
/* 細いバー：左に戻る矢印（LINE準拠） */
section.chat-outline .c-head {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  flex-wrap: nowrap !important;
  gap: 0.9rem !important;
  padding: 0.6rem 1.1rem !important;
  min-height: 5rem !important;
  height: auto !important;
  background: #ffffff !important;
}
section.chat-outline .chat-back {
  flex: 0 0 auto !important;
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
  width: 2.6rem !important; height: 4rem !important;
  margin: 0 0.2rem 0 -0.5rem !important;
  font-size: 3rem !important; line-height: 1 !important; font-weight: 300 !important;
  color: #3b4a5e !important; text-decoration: none !important;
}
/* トーク背景（iframe内＝吹き出しの後ろ）をLINE風の青に */
.chat-1on1 { background: #ebedee !important; }
/* 時刻・既読は青背景でも読める控えめなダークに（薄すぎ修正・LINE準拠） */
.chat-1on1 .balloon_sub, .chat-1on1 .balloon_date, .chat-1on1 .balloon_kidoku,
.chat-1on1 .right_balloon .balloon_date, .chat-1on1 .right_balloon .balloon_kidoku { color: #41506a !important; }
/* 送信者アイコンを円形に（LINE準拠） */
.chat-1on1 .balloon_div_left { border-radius: 50% !important; overflow: hidden !important; }
.chat-1on1 .balloon_div_left img { border-radius: 50% !important; object-fit: cover !important; }
/* iframe内のサイト用余白を除去：会話が下で切れる/不自然な余白が出るのを防ぐ */
.chat-1on1 .wrap.sub, .chat-1on1 .l-container { margin: 0 !important; padding: 0 !important; max-width: 100% !important; width: 100% !important; }
.chat-1on1 .inner { margin: 0 !important; padding: 0.6rem 0 1rem !important; }
.chat-1on1 .clear_balloon { display: none !important; }
.chat-1on1 a[name="bott"] { display: block !important; height: 0 !important; line-height: 0 !important; font-size: 0 !important; overflow: hidden !important; }
/* 空状態メッセージは詰まり過ぎないよう余白を確保 */
.chat-empty { margin: 2.4rem 0 !important; }
/* 2026-05-31 鈴木: 背景=薄いグレー。白い受信バブルが埋もれないよう極薄の境界線。時刻は薄グレーに。 */
/* 受信(白)バブルの境界線は「吹き出し本体(p)」に付ける。.balloon_div_right は中身より広い透明ラッパーで、そこに枠線を付けると大きな空箱が見えてしまうため。 */
.chat-1on1 .left_balloon .balloon_div_right { border: none !important; }
.chat-1on1 .left_balloon .balloon_div_right p { border: 1px solid #e3e6ea !important; }

/* ============================================================
   2026-05-31 鈴木: チャット添付の送信前プレビュー（LINE風）。写真=サムネ／ファイル=アイコン＋名前＋サイズ＋×取消。
   入力欄の上に表示。.attach-preview は is-active のときだけ表示。
   ============================================================ */
.chat-footer .attach-preview { display: none; }
.chat-footer .attach-preview.is-active { display: block !important; padding: 0 0.2rem 0.7rem; }
.chat-footer .attach-card { display: inline-flex; align-items: center; gap: 0.9rem; max-width: 100%; background: #fff; border: 1px solid #e3e8ef; border-radius: 1.1rem; padding: 0.6rem 0.7rem; box-shadow: 0 2px 8px rgba(16,24,40,0.08); }
.chat-footer .attach-thumb { width: 5rem; height: 5rem; object-fit: cover; border-radius: 0.8rem; flex: 0 0 auto; background: #eceef2; display: block; }
.chat-footer .attach-fileicon { width: 5rem; height: 5rem; border-radius: 0.8rem; flex: 0 0 auto; background: #213464; color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 1.05rem; font-weight: 700; letter-spacing: 0.05em; }
.chat-footer .attach-meta { display: flex; flex-direction: column; min-width: 0; gap: 0.15rem; }
.chat-footer .attach-name { font-size: 1.3rem; color: #1A1F36; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 18rem; }
.chat-footer .attach-size { font-size: 1.1rem; color: #98a1ad; }
.chat-footer .attach-remove { flex: 0 0 auto; width: 2.4rem; height: 2.4rem; border-radius: 50%; border: none; background: #eceef2; color: #5b6b7f; font-size: 1.6rem; line-height: 1; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; padding: 0; }
.chat-footer .attach-remove:active { background: #d8dde3; }
/* 旧インラインのファイル名・削除リンクはプレビューが代替するため非表示 */
.chat-footer #file_upload_name_file1, .chat-footer #file1_delete { display: none !important; }

/* ============================================================
   2026-05-31 鈴木: 案件登録フォームの入力支援バナー（下書き復元 / 前回内容の呼び出し）
   ============================================================ */
.draft-bar { margin: 0 0 1rem; display: flex; flex-direction: column; gap: 0.6rem; }
.draft-note { display: flex; align-items: center; flex-wrap: wrap; gap: 0.6rem; background: #f3f6fb; border: 1px solid #d7e0ee; border-radius: 0.9rem; padding: 0.7rem 1rem; font-size: 1.25rem; color: #2f3a48; }
.draft-note > span { flex: 1 1 auto; min-width: 0; }
.draft-btn { flex: 0 0 auto; border: none; border-radius: 999px; padding: 0.5rem 1.2rem; font-size: 1.2rem; font-weight: 700; cursor: pointer; background: #e6e9ef; color: #5b6b7f; }
.draft-btn--main { background: #213464; color: #fff; }
.draft-btn:active { opacity: 0.85; }

/* ============================================================
   2026-05-31 鈴木: ドラムスクロール式ピッカー（発注金額等。下からにゅっと出る）
   ============================================================ */
/* トリガーボタン */
.drum-picker-trigger { display: inline-flex; align-items: center; gap: 0.6rem; min-width: 14rem; padding: 0.9rem 1.1rem; border: 1px solid #c9ced6; border-radius: 0.6rem; background: #fff; cursor: pointer; font-size: 16px; color: #1A1F36; user-select: none; }
.drum-picker-trigger:active { background: #f3f5f8; }
.drum-picker-display { flex: 1 1 auto; }
.drum-picker-unit { font-size: 1.3rem; color: #6b7480; }
.drum-picker-arrow { color: #98a1ad; font-size: 1.2rem; }
/* 自由入力モード（ドラムで「自由入力…」を選んだ後） */
.drum-custom-input { flex: 1 1 auto !important; min-width: 0 !important; max-width: 8rem !important; border: none !important; border-bottom: 2px solid #213464 !important; background: transparent !important; font-size: 16px !important; color: #1A1F36 !important; padding: 0.4rem 0 !important; text-align: right !important; outline: none !important; -moz-appearance: textfield !important; }
.drum-custom-input::-webkit-inner-spin-button, .drum-custom-input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.drum-custom-back { flex: 0 0 auto !important; background: none !important; border: none !important; color: #213464 !important; font-size: 1.2rem !important; font-weight: 600 !important; cursor: pointer !important; padding: 0.3rem 0.5rem !important; white-space: nowrap !important; text-decoration: underline !important; }
/* 発注金額：シンプルな数値入力 */
.budget-input-wrap { display: inline-flex; align-items: center; gap: 8px; }
.budget-input { width: 10rem; font-size: 16px !important; padding: 10px 14px; border: 1px solid #c9ced6; border-radius: 8px; background: #fff; color: #1a1f36; outline: none; -moz-appearance: textfield; }
.budget-input::-webkit-inner-spin-button, .budget-input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.budget-input:focus { border-color: #213464; box-shadow: 0 0 0 3px rgba(33,52,100,0.10); }
.budget-input::placeholder { color: #98a1ad; }
.budget-unit { font-size: 14px; color: #4a5568; white-space: nowrap; }
/* 「自由入力」リンク（トリガーの横に常時表示） */
.drum-freetext-link { background: none !important; border: none !important; color: #213464 !important; font-size: 1.25rem !important; font-weight: 600 !important; cursor: pointer !important; padding: 0.4rem 0.3rem !important; text-decoration: underline !important; white-space: nowrap !important; margin-left: 0.8rem !important; }

/* ============================================================
   2026-05-31 鈴木: フッターリニューアル（モダン・モバイル最適化）
   ============================================================ */
.site-footer { width: 100%; margin-top: 4rem; }
.site-footer__main { background: #1a2238; color: #c8cdd6; padding: 3.5rem 0 3rem; }
.site-footer__main .l-container { display: flex; gap: 4rem; flex-wrap: wrap; max-width: 96rem; margin: 0 auto; padding: 0 2rem; }
.site-footer__brand { flex: 0 0 auto; min-width: 18rem; display: flex; flex-direction: column; gap: 1.2rem; }
.site-footer__logo { display: inline-block; }
.site-footer__logo img { height: 3.6rem; width: auto; filter: brightness(0) invert(1); opacity: 0.92; }
.site-footer__tagline { font-size: 1.2rem; line-height: 1.7; color: #8b95a8; }
.site-footer__sns { display: flex; gap: 1rem; margin-top: 0.4rem; }
.site-footer__sns-link { display: inline-flex; align-items: center; justify-content: center; width: 3.2rem; height: 3.2rem; border-radius: 50%; background: rgba(255,255,255,0.08); color: #8b95a8; transition: background 0.15s, color 0.15s; }
.site-footer__sns-link:hover { background: rgba(255,255,255,0.18); color: #fff; }
.site-footer__sns-link svg { width: 1.6rem; height: 1.6rem; }
.site-footer__nav { flex: 1 1 auto; display: flex; gap: 3rem; flex-wrap: wrap; }
.site-footer__nav-group { min-width: 12rem; }
.site-footer__nav-heading { font-size: 1.2rem; font-weight: 700; color: #5a6a84; text-transform: uppercase; letter-spacing: 0.08em; margin: 0 0 1rem; }
.site-footer__nav-group ul { list-style: none; margin: 0; padding: 0; }
.site-footer__nav-group li { margin-bottom: 0.7rem; }
.site-footer__nav-group a { color: #c8cdd6; text-decoration: none; font-size: 1.35rem; line-height: 1.5; transition: color 0.15s; }
.site-footer__nav-group a:hover { color: #fff; }
.site-footer__bottom { background: #141b2d; text-align: center; padding: 1.2rem 0; }
.site-footer__bottom p { font-size: 1.1rem; color: #5a6a84; margin: 0; }
.site-footer__jigyou { font-size: 0.95rem !important; color: #4a5568 !important; margin-bottom: 0.4rem !important; letter-spacing: 0.15em; }
/* モバイル: 縦積み */
@media (max-width: 767.98px) {
  .site-footer__main .l-container { flex-direction: column; gap: 2.5rem; padding: 0 1.6rem; }
  .site-footer__brand { align-items: center; text-align: center; }
  .site-footer__nav { justify-content: space-between; gap: 1.5rem; }
  .site-footer__nav-group { min-width: 9rem; flex: 1 1 auto; }
}
/* 旧フッターを非表示（footer:not(.site-footer) → 共存期間用） */
footer:not(.site-footer) { display: none !important; }

/* ============================================================
   2026-05-31 鈴木: 会員一覧 Web/LINE閲覧者向けグレーアウト（アプリDL促進）
   アプリ版WebView以外（WEB_APP）のとき、会員カードをぼかし+ロックオーバーレイ表示
   ============================================================ */
.mcard--locked { position: relative !important; overflow: hidden !important; }
.mcard--locked .mcard__link,
.mcard--locked .mcard__actions,
.mcard--locked .mcard__meta { filter: blur(3px) !important; opacity: 0.45 !important; pointer-events: none !important; user-select: none !important; }
.mcard--locked .mcard__link h3 { filter: none !important; opacity: 1 !important; }
.mcard--locked .list-badge { filter: none !important; opacity: 1 !important; }
.mcard__lock-overlay { position: absolute !important; top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important; z-index: 5 !important; display: flex !important; flex-direction: column !important; align-items: center !important; justify-content: center !important; background: rgba(255,255,255,0.7) !important; backdrop-filter: blur(2px) !important; padding: 2rem !important; }
.mcard__lock-icon { color: #213464 !important; margin-bottom: 0.8rem !important; }
.mcard__lock-text { font-size: 1.5rem !important; font-weight: 700 !important; color: #213464 !important; margin: 0 0 1.2rem !important; }
.mcard__lock-btns { display: flex !important; gap: 0.8rem !important; }
.mcard__lock-dl { display: inline-block !important; background: #213464 !important; color: #fff !important; padding: 0.6rem 1.4rem !important; border-radius: 999px !important; font-size: 1.25rem !important; font-weight: 700 !important; text-decoration: none !important; }
.mcard__lock-dl:active { opacity: 0.85 !important; }
/* ============================================================
   2026-05-31 鈴木: 案件詳細ページ (outline-head) のUI刷新
   古いテーブルレイアウトをカード風に。o1cardとトンマナ統一。
   ============================================================ */
.outline-head .outline__item { background: #fff; border-radius: 1.4rem; box-shadow: 0 1px 6px rgba(16,24,40,0.06); overflow: hidden; margin-bottom: 1.5rem; }
.outline-head .outline__head { background: #213464; padding: 1.4rem 1.3rem; }
.outline-head .outline__head--ttl { color: #fff !important; font-size: 1.3rem !important; font-weight: 700 !important; line-height: 1.6 !important; margin: 0 !important; }
.outline-head .outline__desc { padding: 0 !important; }
.outline-head .outline__top { padding: 1rem 1.3rem 0; }
.outline-head .outline__top--place { font-size: 1.3rem !important; color: #4a5568 !important; display: flex; align-items: center; gap: 0.4rem; }
.outline-head .outline__top--place::before { content: ''; display: inline-block; width: 1.2rem; height: 1.2rem; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%23213464' stroke-width='2'%3E%3Cpath d='M12 7c0 4-4 7-4 7S4 11 4 7a4 4 0 0 1 8 0z'/%3E%3Ccircle cx='8' cy='7' r='1.5'/%3E%3C/svg%3E") no-repeat center; background-size: contain; flex: 0 0 auto; }
.outline-head .outline__info { display: flex; gap: 1.5rem; padding: 0.5rem 1.3rem; font-size: 1.1rem; color: #98a1ad; }
.outline-head .outline__info p { margin: 0; }
/* テーブル → カードスタッツ */
.outline-head .outline__table { display: flex !important; flex-wrap: wrap !important; gap: 0 !important; border: none !important; border-collapse: separate !important; margin: 0 !important; padding: 0.6rem 1rem !important; }
.outline-head .outline__table tr { display: flex !important; flex-direction: column !important; flex: 1 1 auto !important; min-width: 45% !important; padding: 0.8rem 0.3rem !important; border: none !important; }
.outline-head .outline__table th { display: block !important; background: none !important; border: none !important; color: #98a1ad !important; font-size: 1.05rem !important; font-weight: 600 !important; padding: 0 !important; text-align: left !important; width: auto !important; }
.outline-head .outline__table td { display: block !important; border: none !important; padding: 0.2rem 0 0 !important; font-size: 1.25rem !important; font-weight: 700 !important; color: #1a1f36 !important; }
.outline-head .outline__table td span[style*="color:red"] { font-size: 1.05rem !important; font-weight: 600 !important; }
/* 発注元のセル（最後のtr）はフル幅 */
.outline-head .outline__table tr:last-child { min-width: 100% !important; border-top: 1px solid #f0f2f5 !important; margin-top: 0.3rem !important; padding-top: 1rem !important; }
.outline-head .outline__top--wrap { display: flex; align-items: center; gap: 1rem; }
.outline-head .outline__top--name { font-size: 1.3rem !important; font-weight: 700 !important; color: #1a1f36 !important; margin: 0 !important; }
.outline-head .outline__top--starwrap { margin: 0 !important; }
/* ボトムエリア（お気に入り・応募ボタン） */
.outline-head .outline__bottom { padding: 0 1.3rem 1.3rem; }
.outline-head .outline__bottom--limit { font-size: 1.15rem; color: #6b7480; padding: 0.8rem 0; text-align: center; }
.outline-head .outline__bottom--fav { display: flex; align-items: center; gap: 1rem; margin-bottom: 0.8rem; }
.outline-head .outline__bottom--fav a { font-size: 1.2rem; color: #213464; font-weight: 600; text-decoration: none; }
.outline-head .outline__bottom--fav .iine-count { font-size: 1.1rem; color: #98a1ad; }
.outline-head .result__bottom--btn { margin-top: 0.5rem; }
.outline-head .result__bottom--btn a { display: block; text-align: center; padding: 1rem; border-radius: 999px; background: #213464; color: #fff; font-size: 1.25rem; font-weight: 700; text-decoration: none; }
.outline-head .result__bottom--btn a[style*="opacity"] { background: #e6e9ef !important; color: #98a1ad !important; }
/* 案件詳細セクション */
.outline-head .outline__section { padding: 0 1.3rem 1.3rem; }
.outline-head .outline__ttl { font-size: 1.3rem !important; font-weight: 700 !important; color: #213464 !important; border-left: 4px solid #213464 !important; border-bottom: none !important; padding-left: 0.8rem !important; margin-bottom: 1rem !important; }
.outline-head .outline__txt { font-size: 1.25rem; line-height: 1.8; color: #4a5568; white-space: pre-wrap; }
.outline-head .outline__gallery ul { display: flex; flex-wrap: wrap; gap: 0.8rem; list-style: none; padding: 0; margin: 1rem 0 0; }
.outline-head .outline__gallery li { flex: 0 0 auto; }
.outline-head .outline__gallery img { border-radius: 0.8rem; max-width: 10rem; height: auto; }
/* 下部の詳細テーブルもカード化 */
.outline-head .outline__desc > .outline__table:last-of-type { background: #f9fafb; border-radius: 1rem; margin: 0 1rem 1rem !important; padding: 0.5rem 0.8rem !important; }

/* ============================================================
   2026-05-31 鈴木: エリア選択UI（LINE版から移植・ボトムシート）
   ============================================================ */
#area-sheet { display: none; position: fixed; inset: 0; z-index: 10000; }
#area-sheet.is-open { display: block; }
.area-sheet__backdrop { position: absolute; inset: 0; background: rgba(0,0,0,0.35); }
.area-sheet__panel { position: absolute; bottom: 0; left: 0; right: 0; background: #fff; border-radius: 16px 16px 0 0; max-height: 75vh; display: flex; flex-direction: column; transform: translateY(100%); transition: transform 0.28s cubic-bezier(0.32,0.72,0,1); padding-bottom: env(safe-area-inset-bottom, 0px); }
#area-sheet.is-open .area-sheet__panel { transform: translateY(0); }
.area-sheet__handle { width: 40px; height: 4px; background: #d1d5db; border-radius: 999px; margin: 10px auto 0; }
.area-sheet__head { display: flex; align-items: center; justify-content: space-between; padding: 10px 14px; border-bottom: 1px solid #eef1f4; flex: 0 0 auto; }
.area-sheet__title { font-size: 16px; font-weight: 700; color: #1a1f36; }
.area-sheet__cancel { background: none; border: none; font-size: 14px; color: #98a1ad; padding: 4px 6px; cursor: pointer; }
.area-sheet__ok { background: #213464; color: #fff; border: none; border-radius: 999px; font-size: 14px; font-weight: 700; padding: 6px 20px; cursor: pointer; }
.area-sheet__body { flex: 1 1 auto; overflow-y: auto; -webkit-overflow-scrolling: touch; padding: 0; }
.area-region { border-bottom: 1px solid #f0f2f5; padding-bottom: 8px; margin-bottom: 4px; }
.area-region__head { display: flex; align-items: center; padding: 16px 16px 10px; cursor: pointer; user-select: none; }
.area-region__head:active { background: #f7f8fa; }
.area-region__name { flex: 1; font-size: 15px; font-weight: 700; color: #1a1f36; }
.area-region__badge { display: inline-flex; align-items: center; justify-content: center; background: #213464; color: #fff; font-size: 11px; font-weight: 700; min-width: 20px; height: 20px; border-radius: 999px; padding: 0 6px; margin-right: 8px; }
.area-region__arrow { color: #98a1ad; font-size: 14px; cursor: pointer; }
.area-region__all-btn { flex: 0 0 auto; background: #e8ecf4; color: #213464; border: none; border-radius: 6px; font-size: 12px; font-weight: 700; padding: 4px 10px; margin-right: 8px; cursor: pointer; }
.area-region__all-btn:active { background: #d1d8e8; }
.area-region__list { padding: 8px 12px 18px; display: flex; flex-wrap: wrap; gap: 12px; }
.area-pref { display: inline-flex; align-items: center; gap: 6px; background: #f5f6f8; border: 1px solid #e5e7eb; border-radius: 10px; padding: 14px 20px; font-size: 15px; color: #1a1f36; cursor: pointer; user-select: none; min-height: 48px; margin: 2px; }
.area-pref input[type=checkbox] { width: 16px; height: 16px; accent-color: #213464; margin: 0; }
.area-pref:has(input:checked) { background: #e8ecf8; border-color: #213464; font-weight: 600; }
/* トリガーボタン */
.area-selector-trigger { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; min-height: 48px; padding: 8px 12px; border: 1px solid #c9ced6; border-radius: 8px; background: #fff; cursor: pointer; font-size: 14px; color: #1a1f36; }
.area-selector-trigger:active { background: #f5f7fa; }
.area-selector__text { flex: 1; color: #98a1ad; min-width: 60px; }
.area-selector__tags:not(:empty) + .area-selector__text { display: none; }
/* 選択済みバー */
.area-sheet__selected { flex: 0 0 auto; padding: 8px 14px; display: flex; flex-wrap: wrap; gap: 6px; border-bottom: 1px solid #eef1f4; min-height: 40px; align-items: center; }
.area-selected__empty { font-size: 13px; color: #98a1ad; }
.area-selected__tag { display: inline-flex; align-items: center; gap: 4px; background: #213464; color: #fff; font-size: 12px; font-weight: 600; padding: 5px 10px; border-radius: 999px; }
.area-selected__x { cursor: pointer; font-size: 14px; opacity: 0.7; }
.area-selected__x:active { opacity: 1; }
/* 市区町村タブ切り替え */
.area-city-tabs { border-bottom: 1px solid #eef1f4; }
.area-city-tabbar { display: flex; overflow-x: auto; -webkit-overflow-scrolling: touch; gap: 0; border-bottom: 2px solid #eef1f4; padding: 0 10px; }
.area-city-tabbar::-webkit-scrollbar { display: none; }
.area-city-tab { flex: 0 0 auto; padding: 12px 16px; font-size: 15px; font-weight: 600; color: #6b7480; background: none; border: none; border-bottom: 3px solid transparent; margin-bottom: -2px; cursor: pointer; white-space: nowrap; }
.area-city-tab.is-active { color: #213464; border-bottom-color: #213464; }
.area-city-tab__cnt { display: inline-flex; align-items: center; justify-content: center; background: #213464; color: #fff; font-size: 10px; min-width: 16px; height: 16px; border-radius: 999px; padding: 0 4px; margin-left: 4px; }
.area-city-content { padding: 12px 16px 20px; }
/* 市区町村セクション（旧・互換） */
.area-city-section { padding: 12px 14px; border-bottom: 1px solid #eef1f4; }
.area-city__header { display: flex; align-items: baseline; gap: 8px; margin-bottom: 10px; }
.area-city__pref-name { font-size: 15px; font-weight: 700; color: #213464; }
.area-city__hint { font-size: 11px; color: #98a1ad; }
.area-city__chips { display: flex; flex-wrap: wrap; gap: 10px; padding: 4px 0; }
.area-chip { border: 1px solid #d1d5db; background: #fff; color: #1a1f36; font-size: 15px; padding: 12px 18px; border-radius: 10px; cursor: pointer; user-select: none; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
.area-chip:active { background: #f0f2f5; }
.area-chip.is-selected { background: #e8ecf8; border-color: #213464; color: #213464; font-weight: 700; }
.area-divider { text-align: center; padding: 14px; font-size: 13px; color: #213464; font-weight: 600; border-bottom: 1px solid #eef1f4; }
/* 全国一括選択ボタン */
.area-all-btn { display: block; width: calc(100% - 28px); margin: 10px 14px; padding: 12px; border: 2px solid #213464; border-radius: 10px; background: #fff; color: #213464; font-size: 15px; font-weight: 700; cursor: pointer; text-align: center; }
.area-all-btn:active { background: #f0f2f5; }
.area-all-btn.is-active { background: #213464; color: #fff; }
.area-skip-btn { display: block; width: calc(100% - 28px); margin: 10px 14px; padding: 12px; border: 1px solid #d1d5db; border-radius: 10px; background: #f9fafb; color: #6b7480; font-size: 14px; cursor: pointer; text-align: center; }
.area-skip-btn:active { background: #f0f2f5; }
.area-pref.is-checked { background: #e8ecf8; border-color: #213464; font-weight: 600; }
.area-selector__arrow { color: #98a1ad; font-size: 14px; flex: 0 0 auto; }
.area-selector__tags { display: flex; flex-wrap: wrap; gap: 4px; }

/* プロフィール 対応可能エリア: 地域グループ別チップ（m_o2モーダルと同じチップ／モバイル操作性）2026-06-01 鈴木 */
.m1area { display: flex; flex-direction: column; gap: 1.8rem; }
.m1area-group__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: .9rem; }
.m1area-group__head > span { font-size: 1.25rem; font-weight: 700; color: #98a1ad; letter-spacing: .04em; }
.m1area-bulk { font-size: 1.15rem; font-weight: 700; color: #213464; background: #eef3fb; border: 1px solid #d7e0ee; border-radius: .8rem; padding: .5rem 1.3rem; cursor: pointer; }
.m1area-bulk:active { background: #dde7f6; }
.m1area-chips { display: flex; flex-wrap: wrap; gap: .8rem; }
.m1area .area-all-btn { width: 100%; margin: 0 0 .4rem; }

/* 管理者機能ボタン（マイページ・管理者のみ表示）2026-06-01 鈴木 */
.dashboard__admin { margin: 1.6rem 0 0; }
.dashboard__admin-btn { display: flex; align-items: center; justify-content: center; gap: 1rem; width: 100%; min-height: 5.4rem; padding: 0 2rem; border-radius: 1.2rem; background: #16213d; color: #fff; font-size: 1.6rem; font-weight: 800; text-decoration: none; box-shadow: 0 .6rem 1.6rem rgba(22,33,61,.22); }
.dashboard__admin-btn svg { width: 2rem; height: 2rem; flex: 0 0 auto; }
.dashboard__admin-btn:active { background: #0f1730; }
.dashboard__admin-note { text-align: center; font-size: 1.1rem; color: #98a1ad; margin: .6rem 0 0; }

/* 管理者機能ページ 2026-06-01 鈴木 */
.adm { max-width: 72rem; margin: 0 auto; padding: 1.6rem; font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif; color: #16213d; }
.adm__head { padding: 1.4rem .4rem; }
.adm__back { color: #213464; text-decoration: none; font-size: 1.3rem; font-weight: 700; }
.adm__title { font-size: 2rem; font-weight: 800; color: #16213d; padding: 0 .4rem .4rem; }
.adm__lead { font-size: 1.25rem; color: #8a93a1; padding: 0 .4rem 1.6rem; line-height: 1.7; }
.adm__card { background: #fff; border: 1px solid #e6ebf1; border-radius: 1.6rem; padding: 2rem; box-shadow: 0 1px 2px rgba(16,24,40,.04); }
.adm__card-ttl { font-size: 1.7rem; font-weight: 800; color: #16213d; margin: 0 0 1.6rem; display: flex; align-items: center; gap: .8rem; }
.adm__card-ttl::before { content: ""; width: .5rem; height: 1.8rem; border-radius: 999px; background: #213464; }
.adm__label { display: block; font-size: 1.3rem; font-weight: 700; color: #46546c; margin: 1.6rem 0 .6rem; }
.adm__req { font-size: 1rem; font-weight: 700; color: #fff; background: #e0556b; padding: .2rem .6rem; border-radius: .5rem; margin-left: .4rem; }
.adm__input, .adm__textarea { width: 100%; border: 1.5px solid #d7dee9; border-radius: 1rem; padding: 1.2rem 1.4rem; font-size: 1.5rem; color: #16213d; background: #fff; box-sizing: border-box; }
.adm__textarea { resize: vertical; line-height: 1.6; }
.adm__targets { display: flex; flex-direction: column; gap: .8rem; }
.adm__radio, .adm__check { display: flex; align-items: center; gap: .8rem; font-size: 1.4rem; color: #1a2236; cursor: pointer; }
.adm__radio input, .adm__check input { width: 2rem; height: 2rem; flex: 0 0 auto; }
.adm__sub { margin-top: 1.2rem; padding: 1.4rem; background: #f6f8fb; border: 1px solid #eaeef3; border-radius: 1.2rem; }
.adm__sub-ttl { font-size: 1.2rem; font-weight: 700; color: #98a1ad; margin-bottom: 1rem; }
.adm__channels { display: flex; align-items: center; flex-wrap: wrap; gap: 1.2rem 2rem; margin-top: .4rem; }
.adm__channels-ttl { font-size: 1.3rem; font-weight: 700; color: #46546c; }
.adm__chhint { font-size: 1.1rem; color: #98a1ad; margin: .6rem 0 0; }
.adm__actions { display: flex; flex-direction: column; gap: 1rem; margin-top: 2.2rem; }
.adm__btn { min-height: 5.4rem; border-radius: 1.2rem; font-size: 1.6rem; font-weight: 800; cursor: pointer; border: none; }
.adm__btn--test { background: #fff; color: #213464; border: 1.5px solid #d7dee9; }
.adm__btn--send { background: #16213d; color: #fff; box-shadow: 0 .6rem 1.6rem rgba(22,33,61,.22); }
.adm__btn--send:active { background: #0f1730; }
.adm__hint { font-size: 1.1rem; color: #98a1ad; text-align: center; margin: 1.2rem 0 0; }
.adm__result { background: #fff; border: 1px solid #e6ebf1; border-radius: 1.6rem; padding: 2rem; margin-bottom: 1.6rem; }
.adm__result--ok { border-left: 5px solid #22c55e; }
.adm__result--err { border-left: 5px solid #e0556b; }
.area-tag { display: inline-block; background: #e8ecf4; color: #3b4a6b; font-size: 12px; font-weight: 600; padding: 4px 10px; border-radius: 6px; }

/* ============================================================
   2026-05-31 鈴木: フォーム全体のモダンUI（発注・受注フォーム共通）
   ============================================================ */
/* セクション見出し（さりげなく） */
.formset__section { font-size: 12px; font-weight: 700; color: #98a1ad; letter-spacing: 0.08em; text-transform: uppercase; padding: 20px 0 6px; margin-top: 8px; }
/* フォームページの冒頭余白を圧縮（タイトル重複を解消） */
.form-page .subpage-head { display: none; }
.form-page .subpage-head_bottom { padding: 16px 0 4px !important; }
.form-page section.edit { padding-top: 16px !important; }
.form-page .breadcrumb { margin-bottom: 0 !important; }
/* 2026-06-01 鈴木: 受注希望詳細の重複テーブルを非表示（上部カードと内容が重複・display:noneがflexに上書きされる問題の対処）*/
table.outline__table--dup { display: none !important; }

/* 2026-06-01 鈴木: 会社概要を整ったグリッドカードに（独立クラスで .outline__table の影響を受けない）*/
.company-spec { display: block; width: 100%; background: #fff; border: 1px solid #e6ebf1; border-radius: 14px; overflow: hidden; margin-top: 14px; border-collapse: collapse; }
.company-spec tbody { display: block; }
.company-spec tr { display: grid; grid-template-columns: 132px 1fr; gap: 4px 20px; padding: 14px 18px; margin: 0; border-bottom: 1px solid #f0f2f5; align-items: baseline; }
.company-spec tr:last-child { border-bottom: none; }
.company-spec th { font-size: 1.25rem; font-weight: 600; color: #98a1ad; text-align: left; padding: 0; background: none; border: none; white-space: normal; }
.company-spec td { font-size: 1.4rem; font-weight: 600; color: #1a1f36; padding: 0; border: none; word-break: break-word; line-height: 1.6; }
.company-spec td a { color: #213464; text-decoration: underline; word-break: break-all; }
.company-spec .outline-icon-ashibakai { display: inline-flex; vertical-align: middle; margin-left: 6px; }
.company-spec .outline-icon-ashibakai img { width: 22px; height: 22px; }
@media (max-width: 600px) {
  .company-spec tr { grid-template-columns: 92px 1fr; gap: 2px 12px; padding: 12px 14px; }
}

/* 2026-06-01 鈴木: メッセージ一覧→進行管理への導線 */
.deals-entry { display: inline-flex; align-items: center; gap: 4px; margin-top: 12px; font-size: 1.3rem; font-weight: 700; color: #213464; background: #eef3fb; border: 1px solid #d7e0ee; border-radius: 999px; padding: 8px 18px; text-decoration: none; }
.deals-entry:active { background: #e3e9f5; }

/* 2026-06-01 鈴木: クイック返信テンプレート（チャット定型文）*/
.qr-bar { padding: 4px 0; }
.qr-toggle { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 700; color: #213464; background: #eef3fb; border: 1px solid #d7e0ee; border-radius: 999px; padding: 5px 14px; cursor: pointer; }
.qr-toggle.is-open { background: #213464; color: #fff; }
.qr-panel { background: #fff; border: 1px solid #e3e8ef; border-radius: 12px; padding: 10px; margin-bottom: 8px; max-height: 200px; overflow-y: auto; }
.qr-panel__list { display: flex; flex-direction: column; gap: 6px; }
.qr-chip { display: flex; align-items: center; gap: 8px; background: #f5f6f8; border: 1px solid #e5e7eb; border-radius: 8px; padding: 8px 10px; }
.qr-chip__txt { flex: 1; font-size: 13px; color: #1a1f36; cursor: pointer; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.qr-chip__del { flex: 0 0 auto; width: 22px; height: 22px; border-radius: 50%; background: #e9edf2; color: #6b7480; border: none; font-size: 14px; line-height: 1; cursor: pointer; }
.qr-empty { font-size: 12px; color: #98a1ad; padding: 10px; text-align: center; line-height: 1.6; }
.qr-panel__foot { margin-top: 8px; text-align: center; }
.qr-save { font-size: 12px; font-weight: 700; color: #213464; background: #f0f4fb; border: 1px dashed #b9c4dd; border-radius: 8px; padding: 8px 14px; cursor: pointer; }

/* ============================================================
   2026-06-01 鈴木: 相談スタートのワンクッション（初回のみ・第一報プリセット）
   案件の相談/依頼で初めてチャットを開いたとき、入力欄のすぐ上に案内＋第一報候補を出す。
   第一報を「空欄から自由入力」させない（迷わせない）ためのUI。
   ============================================================ */
.qs-cushion { background: #fff; border: 1px solid #e3e8ef; border-radius: 1.4rem; box-shadow: 0 2px 10px rgba(16,24,40,0.06); margin: 0 0.2rem 0.7rem; padding: 1.1rem 1.2rem 1rem; }
.qs-cushion__head { display: flex; align-items: flex-start; gap: 0.8rem; }
.qs-cushion__icon { flex: 0 0 auto; width: 3.2rem; height: 3.2rem; border-radius: 50%; background: #eef3fb; color: #213464; display: inline-flex; align-items: center; justify-content: center; }
.qs-cushion__icon svg { width: 1.8rem; height: 1.8rem; }
.qs-cushion__titles { min-width: 0; }
.qs-cushion__title { display: block; font-size: 1.5rem; font-weight: 800; color: #1A1F36; line-height: 1.4; }
.qs-cushion__case { margin: 0.2rem 0 0; font-size: 1.2rem; color: #6b7480; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.qs-cushion__lead { margin: 0.7rem 0 0.8rem; font-size: 1.2rem; color: #5b6472; line-height: 1.6; }
.qs-presets { display: flex; flex-direction: column; gap: 0.5rem; }
.qs-preset { display: block !important; width: 100% !important; text-align: left !important; font-size: 1.32rem !important; line-height: 1.45 !important; color: #213464 !important; background: #f4f7fc !important; border: 1px solid #dbe3f0 !important; border-radius: 1rem !important; padding: 0.85rem 1.05rem !important; cursor: pointer; transition: background .15s, border-color .15s, color .15s; }
.qs-preset:hover { background: #e9f0fb !important; }
.qs-preset.is-selected { background: #213464 !important; color: #fff !important; border-color: #213464 !important; }
.qs-cushion__foot { text-align: center; margin-top: 0.75rem; }
.qs-own { display: inline-block; padding: 0.3rem 0.7rem; font-size: 1.18rem; color: #8a93a1; background: none; border: none; text-decoration: underline; cursor: pointer; }

/* ============================================================
   2026-06-01 鈴木: チャット上部の「商談の進捗」バー（共有ステータス）
   DAT_MCONTACT.ETC01 を表示・変更。両者で共有（相手にも反映）。色は進行管理ページと統一。
   ============================================================ */
.chatstage { display: flex; align-items: center; flex-wrap: wrap; gap: 0.5rem 0.7rem; padding: 0.55rem 1.1rem; background: #fff; border-bottom: 1px solid #e6ebf1; }
.chatstage--confirm { background: #fff8ec; }
.chatstage__btn { flex: 0 0 auto; font-size: 1.22rem; font-weight: 700; color: #213464; background: #eef3fb; border: 1px solid #d7e0ee; border-radius: 0.9rem; padding: 0.5rem 1.15rem; cursor: pointer; }
.chatstage__btn.is-primary { background: #213464; color: #fff; border-color: #213464; }
.chatstage--confirm .chatstage__btn.is-primary { background: #e8932a; border-color: #e8932a; }
.chatstage__btn[disabled] { opacity: 0.5; cursor: default; }
.chatstage__link { flex: 0 0 auto; font-size: 1.1rem; color: #8a93a1; background: none; border: none; text-decoration: underline; cursor: pointer; }
.chatstage__badge { flex: 0 0 auto; font-size: 1.3rem; font-weight: 800; }
.chatstage__badge.is-deal, .chatstage__badge.is-done { color: #15803d; }
.chatstage__badge.is-wait { color: #b4801f; }
.chatstage__ask { flex: 1 1 16rem; min-width: 0; font-size: 1.22rem; font-weight: 700; color: #16213d; line-height: 1.4; }
.chatstage__hist { flex: 1 1 100%; font-size: 1.0rem; color: #98a1ad; line-height: 1.5; padding-top: 0.1rem; }
.chatstage__label { flex: 0 0 auto; font-size: 1.15rem; font-weight: 700; color: #6b7480; }
.chatstage__sel { flex: 0 0 auto; min-width: 9.5rem; color: #16213d !important; font-weight: 700 !important; padding: 0.35rem 2.6rem 0.35rem 0.9rem !important; border: 1px solid #d1d5db !important; border-radius: 0.8rem !important; background-color: #fff !important; -webkit-appearance: none !important; appearance: none !important; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M6 8L1 3h10z' fill='%2398a1ad'/%3E%3C/svg%3E") !important; background-repeat: no-repeat !important; background-position: right 0.9rem center !important; }
.chatstage__sel.cs-talk { border-left: 4px solid #94a3b8 !important; }
.chatstage__sel.cs-quote { border-left: 4px solid #3b82f6 !important; }
.chatstage__sel.cs-deal { border-left: 4px solid #22c55e !important; }
.chatstage__sel.cs-done { border-left: 4px solid #15803d !important; }
.chatstage__sel.cs-pass { border-left: 4px solid #cbd5e1 !important; color: #98a1ad !important; }
.chatstage__saved { flex: 0 0 auto; font-size: 1.1rem; font-weight: 700; color: #22c55e; opacity: 0; transition: opacity .2s; }
.chatstage__saved.show { opacity: 1; }
.chatstage__hint { margin-left: auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 1.0rem; color: #b2bac6; }

/* 2026-06-01 鈴木: 検索結果の空状態（設計された空状態・絵文字なし）*/
.result-empty { text-align: center; padding: 56px 24px; }
.result-empty__icon { width: 56px; height: 56px; margin: 0 auto 18px; color: #c5ccd6; display: block; }
.result-empty__title { font-size: 16px; font-weight: 700; color: #3b4a5e; margin-bottom: 8px; }
.result-empty__text { font-size: 13px; color: #8a93a1; line-height: 1.7; }

/* 2026-06-01 鈴木: 案件カードのタイトルを2行で省略（長い一文ベタ書きを読みやすく）*/
.o1card__title { display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; line-height: 1.55; max-height: 3.1em; }

/* 必須数バナー */
.form-intro { background: linear-gradient(135deg, #eef3fb, #f5f8fd); border: 1px solid #dde6f3; border-radius: 14px; padding: 12px 16px; margin-bottom: 16px; }
.form-intro__main { font-size: 15px; font-weight: 700; color: #213464; }
.form-intro__main strong { font-size: 19px; color: #2a8c4a; margin: 0 2px; }
.form-intro__sub { font-size: 12px; color: #6b7480; margin-top: 5px; line-height: 1.6; }
/* 折りたたみセクション */
.formset__section--toggle { display: flex; align-items: center; justify-content: space-between; cursor: pointer; background: #f7f9fc; border: 1px solid #e5eaf2; border-radius: 12px; padding: 14px 16px; margin: 10px 0; text-transform: none; letter-spacing: normal; }
.formset__section--toggle .formset__section-label { font-size: 14px; font-weight: 700; color: #3b4a5e; }
.formset__section--toggle .formset__section-toggle { font-size: 13px; font-weight: 700; color: #213464; }
.formset__section--toggle:active { background: #eef2f8; }
/* 項目の余白 */
.formset__item { padding: 14px 0; border-bottom: 1px solid #f0f2f5; }
.formset__item:last-child { border-bottom: none; }
/* ペア項目を横2列に（工期 始/終 など） */
.formset__row { display: flex; gap: 12px; border-bottom: 1px solid #f0f2f5; }
.formset__row .formset__item { flex: 1 1 0; min-width: 0; border-bottom: none; }
.formset__row .formset__input input,
.formset__row .formset__input select { width: 100%; }
/* インライン要相談（本体入力の下に小さく） */
.formset__item--inline { padding: 4px 0 14px; border-bottom: 1px solid #f0f2f5; margin-top: -8px; }
.formset__item--inline .formset__input ul li { padding: 8px 14px; min-height: 0; background: #fff; }
.formset__sub-note { font-size: 12px; color: #98a1ad; }
/* ラベル左・選択肢右の横並び（相手先条件など） */
.formset__item--horizontal { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.formset__item--horizontal .formset__ttl { flex: 0 0 100px; margin-bottom: 0; font-size: 14px; }
.formset__item--horizontal .formset__input { flex: 1 1 auto; min-width: 0; }
.formset__item--horizontal .formset__input ul { gap: 8px; }
.formset__item--horizontal .formset__input ul li { padding: 8px 12px; min-height: 38px; font-size: 13px; }
/* ラベル */
.formset__ttl { font-size: 15px; font-weight: 700; color: #1a1f36; margin-bottom: 8px; display: flex; align-items: center; gap: 6px; }
.formset__must { font-size: 11px; background: #e23a3a; color: #fff; padding: 2px 8px; border-radius: 4px; font-weight: 700; white-space: nowrap; flex: 0 0 auto; line-height: 1.4; }
/* 2列など狭い幅でも、ラベルは折り返し可・バッジは固定 */
.formset__ttl { flex-wrap: wrap; }
/* 入力欄の統一スタイル */
.formset__input input[type="text"],
.formset__input input[type="number"],
.formset__input input[type="email"],
.formset__input input[type="tel"],
.formset__input textarea,
.formset__input select { width: 100%; font-size: 16px !important; padding: 12px 14px; border: 1px solid #d1d5db; border-radius: 10px; background: #fff; color: #1a1f36; outline: none; transition: border-color 0.15s; box-sizing: border-box; }
.formset__input input:focus,
.formset__input textarea:focus,
.formset__input select:focus { border-color: #213464; box-shadow: 0 0 0 3px rgba(33,52,100,0.08); }
.formset__input textarea { min-height: 120px; resize: vertical; line-height: 1.6; }
.formset__input select { appearance: none; -webkit-appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M6 8L1 3h10z' fill='%2398a1ad'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; padding-right: 36px; }
/* チェックボックス・ラジオのリスト */
.formset__input ul { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.formset__input ul li { display: inline-flex; align-items: center; gap: 8px; margin: 0; padding: 10px 16px; border: 1px solid #e5e7eb; border-radius: 10px; background: #f9fafb; min-height: 44px; cursor: pointer; }
.formset__input ul li label { font-size: 15px; color: #1a1f36; cursor: pointer; margin: 0; }
.formset__input ul li input[type="checkbox"],
.formset__input ul li input[type="radio"] { width: 18px; height: 18px; accent-color: #213464; margin: 0; flex: 0 0 auto; }
.formset__input ul li:has(input:checked) { background: #e8ecf8; border-color: #213464; }
.formset__input ul li:has(input:checked) label { font-weight: 700; color: #213464; }
/* ヒントテキスト */
.formset__hint { font-size: 12px; color: #8a93a1; margin-top: 6px; line-height: 1.6; }
/* 送信ボタン */
.formset__btn { padding: 24px 0; }
.formset__btn input[type="submit"] { width: 100%; height: auto !important; min-height: 54px; padding: 0 16px !important; font-size: 17px !important; font-weight: 700; line-height: 54px; background: #213464; color: #fff; border: none; border-radius: 12px; cursor: pointer; box-sizing: border-box; }
.formset__btn input[type="submit"]:active { opacity: 0.9; }
/* ファイル添付（統合アップローダー・写真とファイルをまとめて） */
.fileup { display: flex; flex-wrap: wrap; gap: 12px; }
.fileup__tile { position: relative; width: 100px; height: 100px; border-radius: 12px; overflow: hidden; border: 1px solid #e5e7eb; background: #f5f6f8; flex: 0 0 auto; }
.fileup__tile img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fileup__doc { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; text-align: center; padding: 8px; font-size: 12px; color: #4a5568; line-height: 1.4; }
.fileup__remove { position: absolute; top: 4px; right: 4px; width: 24px; height: 24px; border-radius: 50%; background: rgba(0,0,0,0.6); color: #fff; border: none; font-size: 16px; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; padding: 0; }
.fileup__add { width: 100px; height: 100px; border-radius: 12px; border: 2px dashed #b9c4dd; background: #f9fbfd; color: #213464; cursor: pointer; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; flex: 0 0 auto; }
.fileup__add:active { background: #eef3fa; }
.fileup__add-plus { font-size: 28px; font-weight: 300; line-height: 1; }
.fileup__add-txt { font-size: 12px; font-weight: 600; }
/* 幅制限クラスを上書き */
.w-10, .w-15 { width: 100% !important; }
/* リアルタイムバリデーション ステータスアイコン */
.formset__status { margin-left: 6px; font-size: 14px; }
.formset__status.is-ok { color: #22c55e; }
/* 入力進捗バー（画面下部に固定） */
.form-progress { position: fixed; bottom: 0; left: 0; right: 0; z-index: 100; background: #fff; border-top: 1px solid #eef1f4; padding: 10px 16px; padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px)); box-shadow: 0 -2px 8px rgba(0,0,0,0.06); }
.form-progress + .formset { padding-top: 0; }
.form-progress__bar { height: 4px; background: #e5e7eb; border-radius: 999px; overflow: hidden; margin-bottom: 6px; }
.form-progress__fill { height: 100%; background: #213464; border-radius: 999px; transition: width 0.4s cubic-bezier(0.4,0,0.2,1); width: 0%; }
.form-progress__text { font-size: 12px; color: #98a1ad; }
.form-progress__text.is-complete { color: #213464; font-weight: 600; }

/* FAQ セクション見出し */
.faq__section { margin-top: 3rem; }
.faq__section-ttl { font-size: 1.8rem; font-weight: 700; color: #213464; border-left: 4px solid #213464; padding-left: 1rem; margin: 0 0 1.5rem; }
/* FAQ 検索ボックス */
.faq-search { position: relative; max-width: 48rem; margin: 0 auto 2rem; }
.faq-search__input { width: 100%; font-size: 16px; padding: 1.1rem 1.2rem 1.1rem 3.4rem; border: 1px solid #c9ced6; border-radius: 999px; background: #fff; color: #1A1F36; outline: none; box-sizing: border-box; transition: border-color 0.15s; }
.faq-search__input:focus { border-color: #213464; box-shadow: 0 0 0 3px rgba(33,52,100,0.10); }
.faq-search__input::placeholder { color: #98a1ad; }
.faq-search__icon { position: absolute; left: 1.1rem; top: 50%; transform: translateY(-50%); color: #98a1ad; pointer-events: none; display: flex; }
.faq-search__noresult { text-align: center; color: #6b7480; font-size: 1.4rem; padding: 2rem 0; }
/* シート */
#drum-sheet { display: none; position: fixed; inset: 0; z-index: 10000; }
#drum-sheet.is-open { display: block; }
.drum-sheet__backdrop { position: absolute; inset: 0; background: rgba(0,0,0,0.35); }
.drum-sheet__panel { position: absolute; bottom: 0; left: 0; right: 0; background: #fff; border-radius: 1.6rem 1.6rem 0 0; padding-bottom: env(safe-area-inset-bottom, 0px); transform: translateY(100%); transition: transform 0.28s cubic-bezier(0.32,0.72,0,1); }
#drum-sheet.is-open .drum-sheet__panel { transform: translateY(0); }
.drum-sheet__handle { width: 4rem; height: 0.45rem; background: #d1d5db; border-radius: 999px; margin: 1rem auto 0; }
.drum-sheet__head { display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.4rem; border-bottom: 1px solid #eef1f4; }
.drum-sheet__title { font-size: 1.55rem; font-weight: 700; color: #1A1F36; }
.drum-sheet__cancel { background: none; border: none; font-size: 1.45rem; color: #98a1ad; padding: 0.4rem 0.6rem; cursor: pointer; }
.drum-sheet__ok { background: #213464; color: #fff; border: none; border-radius: 999px; font-size: 1.45rem; font-weight: 700; padding: 0.55rem 1.8rem; cursor: pointer; }
/* ドラム本体（マルチカラム対応） */
.drum-sheet__body { display: flex; flex-direction: column; align-items: center; padding: 0 1rem 2rem; }
.drum-labels { display: flex; width: 100%; max-width: 44rem; padding: 0.6rem 0 0; }
.drum-label-item { flex: 1; text-align: center; font-size: 1.2rem; color: #98a1ad; font-weight: 700; }
.drum-selector { position: relative; width: 100%; max-width: 44rem; height: calc(5 * 52px); display: flex; overflow: hidden; }
.drum-col { flex: 1; overflow: hidden; height: 100%; }
.drum-list { list-style: none; margin: 0; padding: 0; cursor: grab; touch-action: none; }
.drum-item { height: 52px; line-height: 52px; text-align: center; font-size: 1.9rem; color: #5a6373; user-select: none; }
.drum-item.drum-pad { visibility: hidden; }
.drum-overlay { position: absolute; inset: 0; pointer-events: none; z-index: 3; }
.drum-highlight { position: absolute; top: calc(2 * 52px); left: 0.8rem; right: 0.8rem; height: 52px; border-top: 2px solid #213464; border-bottom: 2px solid #213464; border-radius: 0.6rem; background: rgba(33,52,100,0.04); }
.drum-fade-top { position: absolute; top: 0; left: 0; right: 0; height: calc(2 * 52px); background: linear-gradient(to bottom, rgba(255,255,255,0.92) 0%, rgba(255,255,255,0) 100%); }
.drum-fade-bot { position: absolute; bottom: 0; left: 0; right: 0; height: calc(2 * 52px); background: linear-gradient(to top, rgba(255,255,255,0.92) 0%, rgba(255,255,255,0) 100%); }

/* 2026-05-31 鈴木: Flatpickr ボトムシート（モバイルで下からにゅっと出るカレンダー） */
/* 入力欄はそのままのスタイルを使い、カレンダーのみ下に固定 */
.fp-bottom-sheet {
  position: fixed !important;
  bottom: 0 !important; left: 0 !important; right: 0 !important; top: auto !important;
  width: 100% !important; max-width: 100% !important;
  border-radius: 1.6rem 1.6rem 0 0 !important;
  box-shadow: 0 -4px 32px rgba(16,24,40,0.18) !important;
  z-index: 9999 !important;
  padding-bottom: env(safe-area-inset-bottom, 0px) !important;
  transform: translateY(100%);
  animation: fp-slidein 0.26s cubic-bezier(0.32,0.72,0,1) forwards;
}
@keyframes fp-slidein { to { transform: translateY(0); } }
/* 横幅に余裕があるとき（タブレット/PC）はポップオーバーのまま */
@media (min-width: 600px) { .fp-bottom-sheet { position: absolute !important; bottom: auto !important; border-radius: 0.8rem !important; width: auto !important; animation: none !important; } }
/* カレンダー見た目 */
.flatpickr-calendar { font-size: 1.5rem !important; background: #fff !important; }
.flatpickr-day { font-size: 1.45rem !important; height: 3.8rem !important; line-height: 3.8rem !important; border-radius: 50% !important; }
.flatpickr-day.selected, .flatpickr-day.selected:hover { background: #213464 !important; border-color: #213464 !important; }
.flatpickr-day.today { border-color: #213464 !important; color: #213464 !important; font-weight: 700 !important; }
.flatpickr-day.today.selected { color: #fff !important; }
.flatpickr-months { padding: 1.4rem 0.5rem 0.5rem !important; }
.flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-current-month input.cur-year { font-size: 1.65rem !important; font-weight: 700 !important; color: #1A1F36 !important; }
.flatpickr-prev-month, .flatpickr-next-month { padding: 1.2rem !important; }
.flatpickr-prev-month svg, .flatpickr-next-month svg { width: 1.4rem !important; height: 1.4rem !important; fill: #213464 !important; }
.flatpickr-weekday { font-size: 1.15rem !important; color: #98a1ad !important; font-weight: 700 !important; }
/* 日曜赤・土曜青 */
.flatpickr-day:nth-child(7n+1) { color: #d93e3e; }
.flatpickr-day:nth-child(7n) { color: #3574cc; }
.chat-1on1 .balloon_sub, .chat-1on1 .balloon_date, .chat-1on1 .balloon_kidoku,
.chat-1on1 .right_balloon .balloon_date, .chat-1on1 .right_balloon .balloon_kidoku { color: #8a93a1 !important; }
/* 2026-05-31 鈴木: ヘッダーは左寄せ＋上下中央（戻る矢印→アイコン→社名を左から1行で／縦は中央） */
section.chat-outline .c-head { justify-content: flex-start !important; padding-left: 1.1rem !important; padding-right: 1.1rem !important; }
section.chat-outline .c-head__ttl { flex: 0 1 auto !important; max-width: 100% !important; text-align: left !important; }
section.chat-outline .chat-back { position: static !important; transform: none !important; left: auto !important; top: auto !important; margin: 0 0.1rem 0 -0.2rem !important; }

/* ============================================================
   2026-05-31 鈴木: メッセージ一覧（全会話 /m_message2/）をLINE/メッセンジャー風に最適化
   1行=アイコン｜（社名＋最終日時 / 直近メッセージ＋未読バッジ）。プレビュー追加・余白整理。
   ============================================================ */
.msglist-page .result .l-container { max-width: 72rem !important; }
.thread__list { margin: 0 0 2.4rem !important; padding: 0 !important; background: #fff !important; border: 1px solid #e7eaef !important; border-radius: 1.4rem !important; overflow: hidden !important; box-shadow: 0 1px 5px rgba(16,24,40,0.05) !important; }
.thread__item { border: none !important; border-top: 1px solid #eef1f4 !important; border-radius: 0 !important; margin: 0 !important; background: #fff !important; box-shadow: none !important; padding: 0 !important; }
.thread__item:first-child { border-top: none !important; }
.thread__item:last-child { border-bottom: none !important; }
.thread__item > a { display: flex !important; align-items: center !important; gap: 1.15rem !important; padding: 1.35rem 1.3rem !important; text-decoration: none !important; }
.thread__item > a:hover, .thread__item > a:active { background: #f5f7fa !important; }
.thread__avatar { flex: 0 0 auto !important; width: 5rem !important; height: 5rem !important; border-radius: 50% !important; overflow: hidden !important; background: #e5e7eb !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; }
.thread__avatar img { width: 100% !important; height: 100% !important; object-fit: cover !important; display: block !important; }
.thread__body { flex: 1 1 auto !important; min-width: 0 !important; display: flex !important; flex-direction: column !important; gap: 0.35rem !important; align-items: stretch !important; }
.thread__row1 { display: flex !important; align-items: baseline !important; gap: 0.8rem !important; }
.thread__title { flex: 1 1 auto !important; min-width: 0 !important; font-size: 1.55rem !important; font-weight: 700 !important; color: #1A1F36 !important; line-height: 1.3 !important; white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; }
.thread__date { flex: 0 0 auto !important; font-size: 1.15rem !important; color: #98a1ad !important; white-space: nowrap !important; }
.thread__row2 { display: flex !important; align-items: center !important; gap: 0.8rem !important; margin: 0 !important; }
.thread__preview { flex: 1 1 auto !important; min-width: 0 !important; font-size: 1.3rem !important; color: #707a87 !important; line-height: 1.4 !important; white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; }
.thread__preview:empty::before { content: "メッセージを送ってみましょう"; color: #aab2bd; }
/* 案件名ラベル（プレビュー行の先頭に小さなピルで表示） */
.thread__case:not(:empty) { display: inline-block !important; background: #e8ecf4 !important; color: #3b4a6b !important; font-size: 1.1rem !important; font-weight: 600 !important; padding: 0.1rem 0.55rem !important; border-radius: 0.5rem !important; margin-right: 0.5rem !important; white-space: nowrap !important; max-width: 10rem !important; overflow: hidden !important; text-overflow: ellipsis !important; vertical-align: middle !important; flex: 0 0 auto !important; }
.thread__case:empty { display: none !important; }
.thread__badge, .thread__meta .item__badge { flex: 0 0 auto !important; background: #e23a3a !important; color: #fff !important; font-size: 1.05rem !important; font-weight: 800 !important; min-width: 1.9rem !important; text-align: center !important; padding: 0.15rem 0.6rem !important; border-radius: 999px !important; line-height: 1.5 !important; border: none !important; }
.thread__item:has(.thread__badge) .thread__title { font-weight: 800 !important; color: #0f1424 !important; }
.thread__item:has(.thread__badge) .thread__preview { color: #2f3a48 !important; font-weight: 600 !important; }
.thread__item:has(.thread__badge) { background: #f8fbff !important; }
.thread__chevron { display: none !important; }
/* 案内文は控えめにしてリストを主役に（このページのみ） */
.msglist-page .subpage-head_bottom .c-head__txt_wrap { font-size: 1.3rem !important; color: #6b7480 !important; line-height: 1.6 !important; }

/* ============================================================
   2026-05-31 鈴木: ①ヘッダー会社名をアイコンに対して上下中央 ②添付ファイル選択時のレイアウト崩れ解消
   ============================================================ */
/* ① 会社名: テキストをflexで縦中央寄せ（boxが高くてもテキストが上に寄らない）。省略表示はspanで維持 */
/* 2行（会社名＋案件名）縦積み */
section.chat-outline .c-head__ttl { display: flex !important; flex-direction: column !important; align-items: flex-start !important; justify-content: center !important; height: 100% !important; min-height: 3.4rem !important; gap: 0.1rem !important; line-height: 1.2 !important; align-self: stretch !important; }
section.chat-outline .c-head__name { display: block !important; min-width: 0 !important; max-width: 100% !important; white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; font-size: 1.5rem !important; font-weight: 700 !important; color: #1A1F36 !important; line-height: 1.25 !important; }
section.chat-outline .c-head__job { display: block !important; min-width: 0 !important; max-width: 100% !important; white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; font-size: 1.1rem !important; font-weight: 400 !important; color: #707a87 !important; line-height: 1.3 !important; }
/* ② 添付ファイル選択時: ファイル名を省略表示して、送信ボタンが画面外に出るのを防ぐ */
.chat-footer .submit__area { flex: 0 1 auto !important; min-width: 0 !important; }
.chat-footer #file_upload_name_file1 { display: inline-block !important; max-width: 7rem !important; overflow: hidden !important; text-overflow: ellipsis !important; white-space: nowrap !important; vertical-align: middle !important; font-size: 1.1rem !important; color: #46546c !important; }
.chat-footer #file1_delete { font-size: 1.1rem !important; padding: 0 0.4rem !important; white-space: nowrap !important; }
.chat-footer .chat__submit, .chat-footer .chat__submit button { flex: 0 0 auto !important; }

/* ============================================================
   詳細ページ デザインシステム (.dp-*)   2026-06-01 鈴木
   目的: ジャンプ率・余白・トンマナの統一。1rem = 10px。
   発注=ネイビー(#213464) / 受注=アンバー(is--juchu) の意味的アクセント。
   既存 .outline__* と衝突しない独立クラス群。
   ============================================================ */
section.dp { background: #eceff4; padding: 3.2rem 0 6rem; }
@media screen and (max-width: 767.98px) { section.dp { padding: 1.4rem 0 4rem; } }
.dp .l-container { max-width: 80rem; }

.dp-card {
  background: #fff; border-radius: 2rem; overflow: hidden;
  box-shadow: 0 1px 2px rgba(16,24,40,.04), 0 1.2rem 3.2rem rgba(16,24,40,.07);
}

/* ---------- HERO ---------- */
.dp-hero { padding: 3.6rem 4rem 3.2rem; background: linear-gradient(180deg,#f6f9fd 0%,#ffffff 70%); }
@media screen and (max-width: 767.98px) { .dp-hero { padding: 2.4rem 2rem; } }
.dp-hero__status { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.6rem; }
.dp-badge { display: inline-flex; align-items: center; gap: .6rem; font-size: 1.2rem; font-weight: 700; letter-spacing: .04em; padding: .55rem 1.2rem; border-radius: 999px; }
.dp-badge--open { background: #e7f7ee; color: #15803d; }
.dp-badge--open::before { content: ""; width: .7rem; height: .7rem; border-radius: 50%; background: #22c55e; }
.dp-badge--closed { background: #eef0f3; color: #8a93a1; }
.dp-badge--juchu { background: #fdf0db; color: #b4690e; }
.dp-hero__type { font-size: 1.2rem; font-weight: 700; letter-spacing: .06em; color: #2a4a8c; }
.is--juchu .dp-hero__type { color: #b4690e; }

.dp-title { font-size: 3.2rem; font-weight: 800; line-height: 1.32; letter-spacing: -.01em; color: #16213d; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }
@media screen and (max-width: 767.98px) { .dp-title { font-size: 2.1rem; line-height: 1.42; } }

.dp-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1.2rem; margin-top: 1.4rem; font-size: 1.3rem; color: #98a1ad; }
.dp-meta__loc { display: inline-flex; align-items: center; gap: .5rem; font-weight: 700; color: #4a5568; }
.dp-meta__loc::before { content: ""; width: 1.6rem; height: 1.6rem; background: url(../images/icon_map.png) center/contain no-repeat; opacity: .65; }
.dp-meta__sep { color: #cbd2da; }

/* 発注金額: 主役にせず key-fact の一つとして控えめに扱う（お金主導の応募を招かないため）2026-06-01 鈴木 */
.dp-keyfact__money { font-size: 1.8rem; font-weight: 800; color: #213464; white-space: nowrap; }
.is--juchu .dp-keyfact__money { color: #b4690e; }
.dp-keyfact__sub { font-size: 1.15rem; font-weight: 600; color: #98a1ad; margin-left: .2rem; white-space: nowrap; }
.dp-fact-nego { display: inline-block; margin: 0; font-size: 1.05rem; font-weight: 700; color: #5b6472; background: #eef0f3; padding: .2rem .7rem; border-radius: 999px; }

/* key facts */
/* キーファクトは常に2カラム（2×2）。幅を確保して値の不規則な折り返しを防ぐ。2026-06-01 鈴木 */
.dp-keyfacts { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.2rem; margin-top: 3rem; }
/* 奇数個で最後の1枚がぼっちになる時は全幅にして「のけたオチ」を解消 */
.dp-keyfacts > div:last-child:nth-child(odd) { grid-column: 1 / -1; }
.dp-keyfact { background: #f6f8fb; border: 1px solid #eaeef3; border-radius: 1.2rem; padding: 1.5rem 1.7rem; min-width: 0; overflow: hidden; }
.dp-keyfact dt { font-size: 1.15rem; font-weight: 700; letter-spacing: .06em; color: #98a1ad; margin-bottom: .6rem; }
.dp-keyfact dd { display: flex; flex-direction: column; align-items: flex-start; gap: .6rem; font-size: 1.6rem; font-weight: 700; line-height: 1.4; color: #1a2236; min-width: 0; max-width: 100%; }
/* 日付範囲は〜で折り返し可、各日付と金額は語中改行しない（見切れ防止）2026-06-01 鈴木 */
.dp-kf-main { max-width: 100%; }
.dp-date { white-space: nowrap; }
.dp-nego-s { display: inline-block; margin-left: .4rem; font-size: 1.1rem; font-weight: 700; color: #c2410c; }

/* ---------- CTA ---------- */
.dp-cta { padding: 2.6rem 4rem 3rem; display: flex; flex-direction: column; gap: 1.6rem; }
@media screen and (max-width: 767.98px) { .dp-cta { padding: 2rem; } }
.dp-btn { display: flex; align-items: center; justify-content: center; gap: .8rem; min-height: 5.6rem; padding: 0 2rem; border-radius: 1.2rem; font-size: 1.8rem; font-weight: 800; text-decoration: none; transition: transform .15s, background .15s, box-shadow .15s; }
.dp-btn--primary { background: #213464; color: #fff; box-shadow: 0 .6rem 1.6rem rgba(33,52,100,.22); }
.dp-btn--primary:hover { background: #1a2a52; transform: translateY(-1px); }
.is--juchu .dp-btn--primary { background: #b4690e; box-shadow: 0 .6rem 1.6rem rgba(180,105,14,.22); }
.is--juchu .dp-btn--primary:hover { background: #98590b; }
.dp-btn--primary::after { content: ""; width: 1.1rem; height: 1.2rem; background: url(../images/icon_arrow_more_white.png) center/contain no-repeat; }
.dp-btn--disabled { background: #eef0f3; color: #98a1ad; cursor: not-allowed; font-weight: 700; }
.dp-btn--ghost { background: #fff; color: #213464; border: 1.5px solid #d7dee9; }
.dp-btn--share { background: #06C755; color: #fff; box-shadow: 0 .6rem 1.6rem rgba(6,199,85,.22); } /* 2026-06-02 鈴木: 案件シェアボタン */
.dp-btn--share:hover { background: #05b34c; transform: translateY(-1px); }
.dp-btn--ghost:hover { background: #f6f8fb; }
.dp-cta .dp-fav { display: flex; align-items: center; justify-content: center; gap: 1rem; margin: 0; padding: 0; background: none; border: none; }
.dp-cta .dp-fav a { width: auto; height: auto; min-height: 0; margin: 0; padding: 0; border: none; background: none; border-radius: 0; font-size: 1.4rem; font-weight: 700; color: #46546c; text-decoration: none; display: inline-flex; align-items: center; gap: .6rem; }
.dp-cta .dp-fav a:hover { color: #213464; }
.dp-cta .dp-fav a::before { content: "♡"; background: none; width: auto; height: auto; margin: 0; font-size: 1.7rem; line-height: 1; color: #e0556b; }
.dp-cta .dp-fav .iine-count { font-size: 1.2rem; font-weight: 600; color: #98a1ad; }

/* ---------- SECTIONS ---------- */
.dp-section { padding: 3.2rem 4rem; border-top: 1px solid #eef1f5; }
@media screen and (max-width: 767.98px) { .dp-section { padding: 2.6rem 2rem; } }
.dp-section__title { display: flex; align-items: center; gap: 1rem; margin: 0 0 2rem; font-size: 1.9rem; font-weight: 800; line-height: 1.3; color: #16213d; }
.dp-section__title::before { content: ""; width: .5rem; height: 2rem; border-radius: 999px; background: #213464; }
.is--juchu .dp-section__title::before { background: #f0a522; }

.dp-desc { font-size: 1.55rem; line-height: 2; color: #3d4658; white-space: pre-wrap; word-break: break-word; }

/* info definition list */
.dp-info { display: flex; flex-direction: column; }
.dp-info__row { display: grid; grid-template-columns: 15rem 1fr; gap: .4rem 2rem; padding: 1.6rem 0; border-bottom: 1px solid #f2f4f7; align-items: baseline; }
.dp-info__row:first-child { padding-top: 0; }
.dp-info__row:last-child { border-bottom: none; padding-bottom: 0; }
.dp-info__row dt { font-size: 1.3rem; font-weight: 700; color: #98a1ad; }
.dp-info__row dd { font-size: 1.55rem; font-weight: 600; line-height: 1.6; color: #1a2236; }
@media screen and (max-width: 767.98px) { .dp-info__row { grid-template-columns: 1fr; gap: .4rem; padding: 1.3rem 0; } }

/* company */
.dp-company__head { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1.2rem; margin-bottom: 1.6rem; }
.dp-company__name { font-size: 1.9rem; font-weight: 800; color: #16213d; }
.dp-company .company-spec { margin-top: 0; }

/* gallery */
.dp-gallery ul { display: flex; flex-wrap: wrap; gap: 1rem; list-style: none; padding: 0; margin: 0; }
.dp-gallery li { flex: 0 0 auto; }
.dp-gallery img { border-radius: 1rem; max-width: 14rem; height: auto; border: 1px solid #eef1f5; }
/* 対応エリア（受注）: 都道府県ごとに市区をグルーピング表示 2026-06-01 鈴木 */
.dp-area { display: flex; flex-direction: column; gap: 1.6rem; }
.dp-area__group { display: flex; flex-direction: column; gap: .5rem; }
.dp-area__pref { display: inline-flex; align-items: center; gap: .7rem; font-size: 1.45rem; font-weight: 700; color: #16213d; }
.dp-area__pref::before { content: ""; width: .6rem; height: .6rem; border-radius: 50%; background: #213464; flex: 0 0 auto; }
.is--juchu .dp-area__pref::before { background: #d98a1f; }
.dp-area__cities { font-size: 1.35rem; font-weight: 500; color: #4b5563; line-height: 1.75; padding-left: 1.3rem; }
.dp-area__cities--all { color: #9ca3af; }
.dp-area__empty { color: #9ca3af; font-size: 1.3rem; }
/* ===== /詳細ページ デザインシステム ===== */

/* ============================================================
   2026-06-02 鈴木: PC（デスクトップ）最適化
   機能はそのまま。広い画面でレイアウトを最適化（モバイル <768px は従来どおり）。
   ① 案件カード一覧を 2〜4列グリッド化＋コンテナ幅拡張
   ============================================================ */
@media (min-width: 768px) {
  /* 一覧ページのコンテンツ幅をPCで拡張（モバイルの中央寄せ767px → 最大1220px） */
  section.result > .l-container { max-width: 122rem !important; }
  /* 案件カード一覧（.o1card を含む一覧のみ）をグリッド化。会員一覧(.outline)等は対象外 */
  .result__list:has(.o1card) {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(32rem, 1fr)) !important;
    gap: 1.6rem !important;
    align-items: start !important;
  }
  .result__list:has(.o1card) > .o1card { margin: 0 !important; }
  /* ② 会員一覧（PC/Webはロック表示）も2列以上のグリッドに（広い画面で1枚が間延びするのを防ぐ） */
  .result__list:has(.mcard) {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(34rem, 1fr)) !important;
    gap: 1.6rem !important;
    align-items: start !important;
  }
  .result__list:has(.mcard) > .result__item { margin: 0 !important; }
  /* ③ チャット会話画面：PCでは中央寄せの読みやすいカラムに（全画面いっぱいで間延びするのを防ぐ） */
  section.chat-outline > .l-container {
    max-width: 86rem !important;
    margin-left: auto !important; margin-right: auto !important;
    border-left: 1px solid #e1e5ea !important; border-right: 1px solid #e1e5ea !important;
  }
  /* ④ 入力フォーム（プロフィール編集・案件登録など）：PCで広がりすぎないよう上限幅＋中央寄せ */
  .wrap.sub form:has(.formset__item) { max-width: 64rem !important; margin-left: auto !important; margin-right: auto !important; }
}

/* ============================================================
   2026-06-02 鈴木: PC左サイドバー（≥768px）
   既存のハンバーガー内ナビ(#nav-content)を常時表示の左サイドバーに転用（マークアップ変更なし）。
   コンテンツ・固定ヘッダー・全画面チャットをサイドバー分だけ右へオフセット。
   アプリ/スマホ(<768px)は従来どおり（ドロワー）。
   ============================================================ */
@media (min-width: 768px) {
  /* ★ログイン中のみ（ドロワーにログアウトリンクがある）サイドバー化。ログアウト中の公開LPは従来の上部ナビのまま。 */
  /* ドロワー → 左固定サイドバー（パネル）に転用 */
  body:has(#nav-content a[href*="/logout"]) #nav-content {
    transform: none !important;
    left: 0 !important; right: auto !important; top: 0 !important; bottom: 0 !important;
    width: 20rem !important; height: 100vh !important; height: 100dvh !important;
    max-height: none !important; border-radius: 0 !important;
    border-right: 1px solid #e3e8ef !important; box-shadow: none !important;
    padding: 7.4rem 0 2.4rem !important; overflow-y: auto !important;
    background: #f8fafc !important; z-index: 70 !important;
    -webkit-overflow-scrolling: touch !important;
  }
  body:has(#nav-content a[href*="/logout"]) #nav-open,
  body:has(#nav-content a[href*="/logout"]) #nav-close { display: none !important; }
  /* アシバッチのロゴをサイドバー最上部に固定（実ロゴ要素を再配置＝トップへのリンク維持） */
  body:has(#nav-content a[href*="/logout"]) .header__logo {
    position: fixed !important; top: 0 !important; left: 0 !important; margin: 0 !important; padding: 0 !important;
    width: 20rem !important; height: 6.6rem !important;
    display: flex !important; align-items: center !important; justify-content: center !important;
    background: #f8fafc !important; border-right: 1px solid #e3e8ef !important; border-bottom: 1px solid #e9edf3 !important;
    z-index: 72 !important;
  }
  body:has(#nav-content a[href*="/logout"]) .header__logo a {
    width: 15rem !important; height: 4.2rem !important; margin: 0 !important; padding: 0 !important;
    background-size: contain !important; background-position: center !important; background-repeat: no-repeat !important;
  }
  body:has(#nav-content a[href*="/logout"]) #nav-content ul { display: block !important; margin: 0 0 0.3rem !important; padding: 0 !important; }
  body:has(#nav-content a[href*="/logout"]) #nav-content ul.other { margin-bottom: 0 !important; }
  body:has(#nav-content a[href*="/logout"]) #nav-content li { list-style: none !important; margin: 0 !important; border: none !important; }
  /* セクション見出し（区切り線つき） */
  body:has(#nav-content a[href*="/logout"]) #nav-content .nav_ttl {
    font-size: 1.02rem !important; font-weight: 800 !important; color: #9aa3b2 !important;
    letter-spacing: .09em !important; padding: 1.4rem 1.9rem 0.5rem !important; margin: 0 !important;
    text-align: left !important; background: none !important;
  }
  body:has(#nav-content a[href*="/logout"]) #nav-content > .nav_ttl:not(:first-child) {
    border-top: 1px solid #e9edf3 !important; margin-top: 0.5rem !important; padding-top: 1.4rem !important;
  }
  body:has(#nav-content a[href*="/logout"]) #nav-content .nav_ttl::after,
  body:has(#nav-content a[href*="/logout"]) #nav-content .nav_ttl::before { content: none !important; display: none !important; }
  /* リンク（ピル型ホバー） */
  body:has(#nav-content a[href*="/logout"]) #nav-content .nav-drawer__item a {
    display: flex !important; align-items: center !important;
    padding: 0.78rem 1.4rem !important; margin: 0.1rem 0.7rem !important;
    border-radius: 0.9rem !important;
    font-size: 1.32rem !important; font-weight: 600 !important; color: #3b4a5e !important;
    border: none !important; white-space: nowrap !important; text-decoration: none !important;
    overflow: hidden !important; text-overflow: ellipsis !important;
    transition: background .12s, color .12s !important;
    --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E");
  }
  /* リンク左の小アイコン（currentColorで文字色に追従＝ホバー/現在ページで色変化） */
  body:has(#nav-content a[href*="/logout"]) #nav-content .nav-drawer__item a::before {
    content: "" !important; flex: 0 0 auto !important; width: 1.7rem !important; height: 1.7rem !important;
    margin-right: 0.85rem !important; background-color: currentColor !important;
    -webkit-mask: var(--ic) center / contain no-repeat !important; mask: var(--ic) center / contain no-repeat !important;
  }
  body:has(#nav-content a[href*="/logout"]) #nav-content a[href="/m_top/"] { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11l9-8 9 8'/%3E%3Cpath d='M5 10v10h14V10'/%3E%3C/svg%3E"); }
  body:has(#nav-content a[href*="/logout"]) #nav-content a[href="/m_deals/"] { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='3 17 9 11 13 15 21 7'/%3E%3Cpolyline points='15 7 21 7 21 13'/%3E%3C/svg%3E"); }
  body:has(#nav-content a[href*="/logout"]) #nav-content a[href="/m_o2/?mode=new"], body:has(#nav-content a[href*="/logout"]) #nav-content a[href="/m_o1/?mode=new"] { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M12 11v6M9 14h6'/%3E%3C/svg%3E"); }
  body:has(#nav-content a[href*="/logout"]) #nav-content a[href="/m_o2/"], body:has(#nav-content a[href*="/logout"]) #nav-content a[href="/m_o1/"] { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='4' width='14' height='17' rx='2'/%3E%3Cpath d='M9 9h6M9 13h6M9 17h4'/%3E%3C/svg%3E"); }
  body:has(#nav-content a[href*="/logout"]) #nav-content a[href="/m_search1/"], body:has(#nav-content a[href*="/logout"]) #nav-content a[href="/m_search2/"] { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4-4'/%3E%3C/svg%3E"); }
  body:has(#nav-content a[href*="/logout"]) #nav-content a[href="/m_m1/"] { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M5 21a7 7 0 0 1 14 0'/%3E%3C/svg%3E"); }
  body:has(#nav-content a[href*="/logout"]) #nav-content a[href="/m_member/"] { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3.5'/%3E%3Cpath d='M3 20a6 6 0 0 1 12 0'/%3E%3Cpath d='M16 5a3.5 3.5 0 0 1 0 7'/%3E%3C/svg%3E"); }
  body:has(#nav-content a[href*="/logout"]) #nav-content a[href="/m_iine2/"] { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='3' width='14' height='18' rx='1'/%3E%3Cpath d='M9 7h2M13 7h2M9 11h2M13 11h2M9 15h2M13 15h2'/%3E%3C/svg%3E"); }
  body:has(#nav-content a[href*="/logout"]) #nav-content a[href="/m_iine1/"] { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20s-7-4.5-7-10a4 4 0 0 1 7-2 4 4 0 0 1 7 2c0 5.5-7 10-7 10z'/%3E%3C/svg%3E"); }
  body:has(#nav-content a[href*="/logout"]) #nav-content a[href="/notice/"] { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 8a6 6 0 0 0-12 0c0 7-3 9-3 9h18s-3-2-3-9'/%3E%3Cpath d='M13.5 21a1.5 1.5 0 0 1-3 0'/%3E%3C/svg%3E"); }
  body:has(#nav-content a[href*="/logout"]) #nav-content a[href="/m_message2/"] { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='M3 7l9 6 9-6'/%3E%3C/svg%3E"); }
  body:has(#nav-content a[href*="/logout"]) #nav-content a[href="/logout1/"] { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4'/%3E%3Cpath d='M16 17l5-5-5-5M21 12H9'/%3E%3C/svg%3E"); }
  /* 「その他」（補助リンク）はアイコンなしで控えめに */
  body:has(#nav-content a[href*="/logout"]) #nav-content ul.other .nav-drawer__item a::before { display: none !important; }
  body:has(#nav-content a[href*="/logout"]) #nav-content .nav-drawer__item a:hover { background: #e9eefb !important; color: #213464 !important; }
  body:has(#nav-content a[href*="/logout"]) #nav-content .nav-drawer__item a.is-active { background: #213464 !important; color: #fff !important; font-weight: 700 !important; }
  /* 「その他」グループは補助リンクとして控えめに */
  body:has(#nav-content a[href*="/logout"]) #nav-content ul.other .nav-drawer__item a {
    font-size: 1.16rem !important; font-weight: 500 !important; color: #8a93a1 !important;
    padding-top: 0.5rem !important; padding-bottom: 0.5rem !important;
  }
  /* 固定ヘッダー・コンテンツ・全画面チャットをサイドバー分だけ右へ */
  body:has(#nav-content a[href*="/logout"]) header { left: 20rem !important; width: calc(100% - 20rem) !important; }
  body:has(#nav-content a[href*="/logout"]) .wrap { margin-left: 20rem !important; }
  body:has(#nav-content a[href*="/logout"]) section.chat-outline { left: 20rem !important; }
  /* ③ ヘッダーの「発注したい／受注したい」テキストはサイドバーと重複するためPC非表示（お知らせ/メッセージ/マイページは残す） */
  body:has(#nav-content a[href*="/logout"]) header .head-nav > ul > li.pc--disp { display: none !important; }
  /* 一覧は2列を維持できる最小幅に（サイドバー有無どちらでも・840pxでも2列） */
  .result__list:has(.o1card), .result__list:has(.mcard) {
    grid-template-columns: repeat(auto-fill, minmax(27rem, 1fr)) !important;
  }
}

/* ============================================================
   2026-06-02 鈴木: PC(>600px) 入力フォームの整列（m_o2/m_o1/m_m1）
   従来PCでは .formset が display:table レイアウトになり、工期/エリア/金額など
   行ごとにフィールドの左端・幅が揃わずガタついていた。ラベル上・フィールド全幅の
   クリーンな1カラムに統一して整列させる。モバイル(≤600px)は従来の専用レイアウトのまま
   （このブロックは min-width:601 なので干渉しない）。
   ※ フィールド幅指定は .formset__input の「直下」のみに限定（> 結合子）。
     金額(.budget-input)・エリア選択(.select-modal)など入れ子コンポーネントは現状維持。
   ============================================================ */
@media (min-width: 601px) {
  /* フォーム幅の上限（601px以上で一貫。768pxでの段差を防ぐ） */
  .wrap.sub form:has(.formset__item) {
    max-width: 64rem !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
  .wrap.sub .formset__item {
    display: block !important;
    padding: 1.6rem 0 !important;
    border-bottom: 1px solid #f0f2f5 !important;
  }
  .wrap.sub .formset__item:last-child { border-bottom: none !important; }
  .wrap.sub .formset__ttl {
    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 0.6rem !important;
    width: auto !important;
    margin: 0 0 0.8rem !important;
    padding: 0 !important;
    font-size: 1.5rem !important;
    font-weight: 700 !important;
    color: #1a1f36 !important;
    text-align: left !important;
  }
  .wrap.sub .formset__input {
    display: block !important;
    width: 100% !important;
    padding-left: 0 !important; /* 旧table風レイアウト由来の40px左インデントを解除（ラベルと左端を揃える） */
  }
  .wrap.sub .formset__input > input[type="text"],
  .wrap.sub .formset__input > input[type="number"],
  .wrap.sub .formset__input > input[type="email"],
  .wrap.sub .formset__input > input[type="password"],
  .wrap.sub .formset__input > input[type="tel"],
  .wrap.sub .formset__input > input[type="date"],
  .wrap.sub .formset__input > input:not([type]),
  .wrap.sub .formset__input > textarea,
  .wrap.sub .formset__input > select {
    width: 100% !important;
    max-width: none !important; /* 入力の max-width:500px 制限を解除（textarea/select/passwordと幅を統一）2026-06-20 password追加 */
    box-sizing: border-box !important;
  }
  /* 工期（始）/（終）・支払いサイクル/方法など横並び行は2カラムを維持し、各フィールドを枠いっぱいに */
  .wrap.sub .formset__row {
    display: flex !important;
    gap: 1.6rem !important;
    border-bottom: 1px solid #f0f2f5 !important;
  }
  .wrap.sub .formset__row .formset__item {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    display: block !important;
    border-bottom: none !important;
    padding: 1.6rem 0 !important;
  }
  /* 工期などのドラム式日付ピッカーのトリガーも列幅いっぱいに（select等と見た目を統一） */
  .wrap.sub .formset__input > .drum-picker-trigger {
    display: flex !important;
    width: 100% !important;
    max-width: none !important;
    justify-content: space-between !important;
    align-items: center !important;
    box-sizing: border-box !important;
  }
}

/* ============================================================
   2026-06-02 鈴木: 過去案件から引用ボックス（登録フォーム上部・新規登録時のみ表示）
   モバイル・PC共通。
   ============================================================ */
.copyfrom {
  margin: 0 0 1.6rem;
  padding: 1.4rem 1.6rem;
  background: #f4f7fe;
  border: 1px solid #dde6f7;
  border-radius: 1.2rem;
}
.copyfrom__ttl {
  font-size: 1.4rem;
  font-weight: 700;
  color: #213464;
  margin: 0 0 0.8rem;
}
.copyfrom__select {
  width: 100%;
  font-size: 16px;
  padding: 12px 36px 12px 14px;
  border: 1px solid #d1d5db;
  border-radius: 10px;
  background-color: #fff;
  color: #1a1f36;
  box-sizing: border-box;
  -webkit-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M6 8L1 3h10z' fill='%2398a1ad'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
}
.copyfrom__note {
  font-size: 1.2rem;
  color: #6b7685;
  margin: 0.8rem 0 0;
  line-height: 1.5;
}

/* ============================================================
   2026-06-02 鈴木: LINE連携 促進バナー（マイページ・未連携者のみ表示）
   会議の「アプリ内でLINE登録を促す」導線。入口=/api/v1/auth/line_start.php
   ============================================================ */
.line-promo {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  margin: 0 0 1.6rem;
  padding: 1.4rem 1.6rem;
  background: #f0fbf3;
  border: 1px solid #b9e6c7;
  border-radius: 1.2rem;
  text-decoration: none;
  color: #1a1f36;
}
.line-promo__icon {
  flex: 0 0 auto;
  width: 4rem;
  height: 4rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #06C755;
  color: #fff;
  border-radius: 1rem;
}
.line-promo__icon svg { width: 2.4rem; height: 2.4rem; }
.line-promo__body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 0.2rem; }
.line-promo__title { font-size: 1.5rem; font-weight: 700; color: #06934a; }
.line-promo__txt { font-size: 1.3rem; color: #4a5568; line-height: 1.5; }
.line-promo__cta {
  flex: 0 0 auto;
  align-self: center;
  padding: 0.9rem 1.6rem;
  background: #06C755;
  color: #fff;
  font-size: 1.4rem;
  font-weight: 700;
  border-radius: 999px;
  white-space: nowrap;
}
@media (max-width: 600px) {
  .line-promo { gap: 1rem; padding: 1.2rem; }
  .line-promo__cta { padding: 0.8rem 1.2rem; font-size: 1.3rem; }
}

/* ============================================================
   2026-06-02 鈴木: 募集中の職人 公開シェアページ /talent/
   足場会グループ等への外部共有導線。個人情報は出さずエリア・時期のみ＋登録CTA。
   ============================================================ */
.talent { max-width: 72rem; margin: 0 auto; padding: 0 1.6rem 4rem; padding-top: env(safe-area-inset-top); }
/* Web(モバイル)でも左右に余白を確保し、ノッチ端末で上端が隠れないように 2026-06-03 鈴木 */
/* 2026-06-20 鈴木: 汎用 header{position:fixed;height:10rem} がこの独自ヘッダにも効きヒーロー上部が隠れていた。文書フローに戻す。 */
.talent__head { position: static; width: auto; height: auto; top: auto; z-index: auto; display: flex; align-items: center; justify-content: space-between; padding: 1.6rem 0; }
.talent__logo img { height: 3.6rem; width: auto; }
.talent__head-btns { display: flex; gap: 0.8rem; }
.talent__btn { display: inline-flex; align-items: center; justify-content: center; padding: 0.9rem 1.6rem; border-radius: 999px; font-size: 1.4rem; font-weight: 700; text-decoration: none; cursor: pointer; border: none; }
.talent__btn--main { background: #213464; color: #fff; }
.talent__btn--ghost { background: #fff; color: #213464; border: 1px solid #c9d4e6; }
.talent__btn--line { background: #06C755; color: #fff; }
.talent__btn--lg { font-size: 1.7rem; padding: 1.4rem 2.4rem; }
.talent__hero { text-align: center; background: #fff; border: 1px solid #e6ecf5; border-radius: 1.6rem; padding: 3.2rem 2rem; margin-top: 0.8rem; }
.talent__eyebrow { font-size: 1.3rem; font-weight: 700; color: #06934a; margin: 0 0 0.8rem; }
.talent__title { font-size: 2.6rem; font-weight: 800; color: #16213d; line-height: 1.4; margin: 0 0 1.2rem; }
.talent__num { color: #213464; font-size: 3.4rem; }
.talent__lead { font-size: 1.5rem; color: #4a5568; line-height: 1.7; margin: 0 0 2rem; }
.talent__cta { margin-top: 1.6rem; }
.talent__list-wrap { margin-top: 3.2rem; }
.talent__list-ttl { font-size: 1.8rem; font-weight: 700; color: #16213d; margin: 0 0 1.6rem; }
.talent__list { display: grid; grid-template-columns: 1fr; gap: 1.2rem; }
@media (min-width: 600px) { .talent__list { grid-template-columns: 1fr 1fr; } }
.talent__card { background: #fff; border: 1px solid #e6ecf5; border-radius: 1.2rem; padding: 1.6rem; }
.talent__card-area { font-size: 1.6rem; font-weight: 700; color: #16213d; display: flex; align-items: center; gap: 0.6rem; }
.talent__pin { color: #213464; font-size: 1.2rem; }
.talent__card-period { font-size: 1.4rem; color: #4a5568; margin-top: 0.6rem; }
.talent__card-lock { font-size: 1.2rem; color: #98a1ad; margin-top: 1rem; padding-top: 1rem; border-top: 1px dashed #e6ecf5; }
.talent__note { font-size: 1.2rem; color: #98a1ad; margin-top: 1.4rem; line-height: 1.6; }
.talent__empty { color: #6b7685; }
.talent__share { text-align: center; margin-top: 3.2rem; padding: 2.4rem; background: #fff; border: 1px solid #e6ecf5; border-radius: 1.6rem; }
.talent__share-ttl { font-size: 1.5rem; font-weight: 700; color: #16213d; margin: 0 0 1.2rem; }
.talent__share-btns { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }
.talent__footer { text-align: center; margin-top: 3.2rem; font-size: 1.3rem; color: #6b7685; }
.talent__footer a { color: #213464; }
.talent__copy { font-size: 1.1rem; color: #98a1ad; margin-top: 1rem; }

/* 個別案件の公開シェアページ /job/ */
.job { background: #fff; border: 1px solid #e6ecf5; border-radius: 1.6rem; padding: 2.8rem 2rem; margin-top: 0.8rem; }
.job__badge { display: inline-block; font-size: 1.2rem; font-weight: 700; color: #fff; background: #06934a; padding: 0.4rem 1.2rem; border-radius: 999px; margin: 0 0 1.2rem; }
.job__title { font-size: 2.2rem; font-weight: 800; color: #16213d; line-height: 1.4; margin: 0 0 1.6rem; }
.job__facts { margin: 0 0 1.6rem; padding: 0; }
.job__fact { display: flex; gap: 1.2rem; padding: 1.1rem 0; border-bottom: 1px solid #f0f3f8; }
.job__fact dt { flex: 0 0 8rem; font-size: 1.3rem; font-weight: 700; color: #6b7685; margin: 0; }
.job__fact dd { flex: 1 1 auto; font-size: 1.5rem; color: #16213d; margin: 0; font-weight: 600; }
.job__lock { font-size: 1.3rem; color: #6b7685; background: #f4f7fb; border-radius: 1rem; padding: 1.2rem 1.4rem; margin: 1.6rem 0; line-height: 1.6; }

/* アプリWebViewはネイティブのヘッダー/下部ナビを持つため、公開シェアページ(/job//talent/)では
   自前ヘッダーを隠し、上下にネイティブバー分の余白を確保（上部が隠れる・下部ナビ被り対策。2026-06-02 鈴木） */
body.in-app .talent__head { display: none; }
body.in-app .talent { padding-top: calc(env(safe-area-inset-top) + 2rem); padding-bottom: calc(env(safe-area-inset-bottom) + 9rem); }

/* /job/ /talent/ の公開ページ: アプリストアバッジがカード枠からはみ出さないよう収める（モバイル対策） */
.talent .app-btns { flex-wrap: wrap; justify-content: center; gap: 1rem; max-width: 100%; }
.talent .app-btn { flex: 0 1 16rem; min-width: 0; }
.talent .app-btn img { width: 100%; height: auto; max-height: 5.6rem; display: block; }
/* 念のため公開ページ全体の横はみ出しを防止 */
.talent, .talent * { max-width: 100%; box-sizing: border-box; }
