/* request.css: 資料請求（会員登録／サポート） */

.request-body{
  background: #fff;
}

.request-body .bs-header{
  position: relative;
}

.request-body .bs-btn.is-active{
  background: #519de1;
}

.request-main{
  background: #fff;
  font-family: "Noto Sans JP", sans-serif;
}

.request-wrap{
  max-width: 1040px;
  margin: 0 auto;
  padding: 0 16px;
  box-sizing: border-box;
}

.request-breadcrumb-bar{
  background: #cfe4f6;
}

.request-breadcrumb{
  margin: 0;
  padding: 18px 0;
  font-size: 12px;
  color: #5e6f80;
}

.request-stage{
  background: #fff;
  padding: 82px 0 0;
}

.request-title{
  margin: 0;
  text-align: center;
  font-size: 30px;
  font-weight: 500;
  letter-spacing: 0.08em;
  color: #1c2a7a;
  line-height: 1.2;
}

.request-title::after{
  content: "";
  display: block;
  width: 72px;
  height: 3px;
  margin: 12px auto 0;
  background: #2732b2;
}

.request-lead{
  margin: 46px 0 14px;
  background: #fff;
  padding: 4px 10px;
  color: #202020;
  font-size: 13px;
  line-height: 1.6;
}

.request-form{
  margin: 0;
  color: #4a4a4a;
}

.request-form .wpcf7,
.request-form .wpcf7 form,
.request-form .wpcf7 p{
  margin: 0;
}

/* CF7 default CSS is dequeued on request page, so restore hidden SR error list styles */
.request-form .screen-reader-response{
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  clip-path: inset(50%) !important;
  border: 0 !important;
  white-space: nowrap !important;
}

.request-form .hidden-fields-container{
  display: none !important;
}

.request-form .wpcf7-form-control-wrap{
  display: block;
  width: 100%;
}

.request-product__check .wpcf7-form-control-wrap,
.request-checks .wpcf7-form-control-wrap,
.request-consent .wpcf7-form-control-wrap{
  display: inline-block;
  width: auto;
}

.request-zip .wpcf7-form-control-wrap{
  display: inline-block;
  width: auto;
}

.request-pref .wpcf7-form-control-wrap{
  display: block;
  width: 100%;
}

.request-table{
  background: #fff;
  border: 1px solid #d6d6d6;
}

.request-row{
  display: grid;
  grid-template-columns: 36% 64%;
  border-top: 1px solid #d6d6d6;
}

.request-row:first-child{
  border-top: 0;
}

.request-th{
  background: #edf5fd;
  border-right: 1px solid #d6d6d6;
  padding: 16px 16px;
  color: #4a4a4a;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.45;
  text-align: left !important;
}

.request-th__line{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.request-badge{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  height: 22px;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 500;
  line-height: 1;
}

.request-badge.is-req{
  background: #2633ad;
  color: #fff;
}

.request-th__line .request-th__label{
  order: 1;
}

.request-th__line .request-badge{
  order: 2;
  margin-left: auto;
}

.request-badge.is-opt{
  display: none;
}

.request-th__label{
  font-size: 15px;
  color: #4a4a4a;
  letter-spacing: 0.02em;
}

.request-th__hint{
  margin-top: 12px;
  font-size: 11px;
  line-height: 1.7;
  color: #5f5f5f;
}

.request-td{
  padding: 14px 14px;
}

.request-row--products .request-th{
  padding-top: 18px;
}

.request-row--products .request-td{
  padding: 0;
}

.request-products{
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 255px;
}

.request-product{
  position: relative;
  padding: 14px 18px 12px;
  border-left: 1px solid #d6d6d6;
  cursor: pointer;
  transition: background-color .2s ease, box-shadow .2s ease;
}

.request-product:first-child{
  border-left: 0;
}

.request-product.is-selected{
  background: #f4f9ff;
  box-shadow: inset 0 0 0 2px #4d9ee1;
}

.request-product:focus-within{
  box-shadow: inset 0 0 0 2px #7eaee0;
}

.request-product__check{
  min-height: 24px;
}

.request-product__check .wpcf7-list-item,
.request-product__check .wpcf7-list-item label{
  margin: 0;
}

.request-product__check .wpcf7-list-item-label{
  display: inline;
  margin-left: 6px;
}

.request-product__check input[type="checkbox"],
.request-product__check input[type="radio"]{
  width: 16px;
  height: 16px;
}

.request-product__media{
  width: 100%;
  height: 120px;
  background: center / contain no-repeat;
  margin: 20px 0 10px;
}

.request-product__media.is-lpure{
  background-image: url("../img/request/request_lpure.webp");
}

.request-product__media.is-plasma{
  background-image: url("../img/request/request_pls.webp");
}

.request-product__list{
  margin: 0;
  padding-left: 16px;
  font-size: 14px;
  line-height: 1.65;
  color: #3d3d3d;
}

.request-product__list li{
  margin: 0;
}

.request-checks .wpcf7-checkbox,
.request-checks .wpcf7-radio{
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;
}

.request-checks .wpcf7-list-item{
  margin: 0;
}

.request-checks .wpcf7-list-item label{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  color: #4a4a4a;
}

.request-checks--stack .wpcf7-checkbox,
.request-checks--stack .wpcf7-radio{
  display: block !important;
}

.request-checks--stack .wpcf7-list-item{
  display: block !important;
  margin: 0 0 8px !important;
}

.request-checks--stack > label{
  display: block;
  align-items: center;
  gap: 6px;
  margin: 0 0 8px;
}

.request-checks input[type="checkbox"],
.request-checks input[type="radio"]{
  width: 16px;
  height: 16px;
  margin: 0;
}

.request-td > .request-checks + input[type="text"]{
  margin-top: 10px;
}

.request-td > label{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0 16px 8px 0;
  font-size: 14px;
  color: #4a4a4a;
}

.request-td > label input[type="checkbox"],
.request-td > label input[type="radio"]{
  width: 16px;
  height: 16px;
  margin: 0;
}

.request-td :where(input[type="text"], input[type="email"], input[type="tel"], textarea, select){
  width: 100%;
  border: 1px solid #cfcfcf;
  border-radius: 2px;
  box-sizing: border-box;
  padding: 15px 20px;
  font-size: 14px;
  color: #4a4a4a;
}

.request-td :where(input[type="text"], input[type="email"], input[type="tel"], textarea)::placeholder,
.request-form table.inquiry :where(input[type="text"], input[type="email"], input[type="tel"], textarea)::placeholder{
  color: #b8b8b8;
  opacity: 1;
}

.request-td textarea{
  min-height: 180px;
  resize: vertical;
}

.request-zip{
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
}

.request-zip-mark{
  font-size: 15px;
  color: #4a4a4a;
}

.request-zip input{
  width: 170px;
}

.request-pref{
  width: 220px;
  margin-bottom: 10px;
}

.request-pref select{
  height: 40px;
  padding-top: 11px;
  padding-bottom: 11px;
}

.request-privacy{
  margin: 12px 0 0;
  background: #fff;
  border: 0;
  padding: 10px 14px;
  font-size: 14px;
  line-height: 1.7;
  color: #3d3d3d;
}

.request-privacy a{
  color: #2339b2;
  text-decoration: underline;
}

.request-consent{
  background: #fff;
  border: 0;
  padding: 10px 14px;
  display: flex;
  justify-content: center;
}

.request-consent .wpcf7-list-item{
  margin: 0;
}

.request-consent label{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
}

.request-submitwrap{
  background: #fff;
  border: 0;
  padding: 26px 18px;
  display: flex;
  justify-content: center;
}

.request-submitwrap .wpcf7-submit,
.request-submitwrap input[type="submit"]{
  width: 320px;
  max-width: 100%;
  height: 65px;
  border: 0;
  background: #4c9fe4;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.10em;
  cursor: pointer;
  margin-top: 50px;
}

/* Legacy CF7 table markup compatibility */
.request-form table.inquiry{
  width: 100%;
  margin: 0;
  border-collapse: collapse;
  table-layout: fixed;
  background: #fff;
  border: 1px solid #d6d6d6;
}

.request-form table.inquiry + table.inquiry{
  margin-top: 14px;
}

.request-form table.inquiry tr{
  border-top: 1px solid #d6d6d6;
}

.request-form table.inquiry tr:first-child{
  border-top: 0;
}

.request-form table.inquiry th,
.request-form table.inquiry td{
  box-sizing: border-box;
  vertical-align: top;
}

.request-form table.inquiry th{
  width: 36%;
  position: relative;
  padding: 16px 74px 16px 16px;
  background: #edf5fd;
  border-right: 1px solid #d6d6d6;
  border-bottom: 2px solid #fff;
  color: #4a4a4a;
  font-size: 15px;
  line-height: 1.45;
  font-weight: 400;
  text-align: left !important;
}

.request-form table.inquiry td{
  padding: 16px 14px;
  color: #4a4a4a;
  font-size: 14px;
  line-height: 1.65;
}

/* Final guard against theme/plugin TH centering overrides on CF7 table markup */
.request-form table.inquiry > tbody > tr > th,
.request-form table.inquiry > tr > th{
  text-align: left !important;
}

.request-form table.inquiry:first-of-type td{
  width: 32%;
  border-left: 1px solid #d6d6d6;
  padding: 18px 14px 16px;
}

.request-form table.inquiry:first-of-type td:first-of-type{
  border-left: 0;
}

.request-form table.inquiry .haveto,
.request-form table.inquiry .any{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  height: 22px;
  margin-right: 0;
  border-radius: 4px;
  font-size: 12px;
  line-height: 1;
  font-weight: 500;
}

.request-form table.inquiry .haveto{
  position: absolute;
  top: 16px;
  right: 16px;
  background: #2633ad;
  color: #fff;
}

.request-form table.inquiry .any{
  display: none;
}

.request-form table.inquiry input[type="text"],
.request-form table.inquiry input[type="email"],
.request-form table.inquiry input[type="tel"],
.request-form table.inquiry textarea,
.request-form table.inquiry select{
  width: 100%;
  border: 1px solid #cfcfcf;
  border-radius: 2px;
  box-sizing: border-box;
  padding: 10px 10px;
  font-size: 14px;
  color: #4a4a4a;
}

.request-form table.inquiry textarea{
  min-height: 180px;
  resize: vertical;
}

.request-form table.inquiry .wpcf7-checkbox .wpcf7-list-item,
.request-form table.inquiry .wpcf7-radio .wpcf7-list-item{
  margin: 0 18px 10px 0;
}

.request-form table.inquiry .wpcf7-form-control-wrap[data-name="request_reason"] .wpcf7-list-item,
.request-form table.inquiry .wpcf7-form-control-wrap[data-name="checkbox-444"] .wpcf7-list-item{
  display: block !important;
  margin: 0 0 8px !important;
}

.request-form table.inquiry .wpcf7-checkbox .wpcf7-list-item:last-child,
.request-form table.inquiry .wpcf7-radio .wpcf7-list-item:last-child{
  margin-right: 0;
}

.request-form table.inquiry .wpcf7-list-item label{
  display: inline-flex;
  align-items: flex-start;
  gap: 6px;
}

.request-form table.inquiry .wpcf7-list-item input[type="checkbox"],
.request-form table.inquiry .wpcf7-list-item input[type="radio"]{
  width: 16px;
  height: 16px;
  margin-top: 2px;
}

.request-form table.inquiry:first-of-type .wpcf7-checkbox .wpcf7-list-item{
  margin: 0;
}

.request-form table.inquiry:first-of-type .wpcf7-list-item-label{
  display: none;
}

.request-form table.inquiry:first-of-type .wpcf7-form-control-wrap{
  display: inline-block;
  width: auto;
}

.request-form table.inquiry #zip,
.request-form table.inquiry #zip1{
  display: inline-block;
  width: 130px;
  max-width: calc(50% - 24px);
  vertical-align: middle;
}

.request-form table.inquiry #pref{
  width: 220px;
  max-width: 100%;
  margin: 8px 0;
  min-height: 46px;
  padding-top: 11px;
  padding-bottom: 11px;
}

.request-form table.inquiry #addr{
  margin-top: 8px;
}

.request-form table.inquiry .tbl_01,
.request-form table.inquiry .tbr_01{
  line-height: 1.8;
}

.request-form table.inquiry #e_pref,
.request-form table.inquiry #e_addr{
  display: inline;
  margin-left: 6px;
  font-size: 12px;
}

.request-form .al-l,
.request-form .al-l2{
  display: block;
  width: auto;
  max-width: 90%;
  height: 42px;
  margin: 10px 0 6px;
  object-fit: contain;
}

.request-form .al,
.request-form .al2{
  display: block;
  width: auto;
  max-width: 130px;
  height: auto;
  margin: 0 0 10px;
  object-fit: contain;
}

.request-form .nas,
.request-form .nas1{
  font-size: 14px;
  line-height: 1.65;
  color: #3d3d3d;
}

.request-form .pu{
  margin: 42px 0 0;
  background: transparent;
  border: 0;
  padding: 0;
  font-size: 12px;
  line-height: 1.7;
  color: #3d3d3d;
}

.request-form .pu a{
  color: #2339b2;
  text-decoration: underline;
}

.request-form .acceptance{
  margin: 24px 0 0;
  background: transparent;
  border: 0;
  padding: 0;
  display: flex;
  justify-content: center;
}

.request-form .acceptance .wpcf7-list-item{
  margin: 0;
}

.request-form .acceptance label{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
}

.request-form .ho{
  margin: 20px 0 0;
  background: transparent;
  border: 0;
  padding: 0;
  display: flex;
  justify-content: center;
}

.request-form .ho > div{
  width: 100%;
  display: flex;
  justify-content: center;
}

.request-form .ho .wpcf7-submit,
.request-form .ho input[type="submit"],
.request-form .ho .soushinbtn{
  width: min(320px, 100%);
  height: 65px;
  border: 0;
  background: #4c9fe4;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.10em;
  cursor: pointer;
  margin-top: 50px;
}

.request-form .wpcf7-response-output{
  margin: 16px auto 0;
  padding: 12px 16px;
  max-width: 640px;
  text-align: center;
  font-size: 14px;
  line-height: 1.7;
  color: #333;
  border-color: #c9c9c9;
  background: #fff;
}

.request-form .wpcf7-not-valid-tip{
  display: block;
  margin-top: 6px;
  font-size: 12px;
  line-height: 1.5;
  color: #d93025;
}

.request-form .wpcf7-not-valid{
  border-color: #d93025 !important;
}

.request-notebar{
  margin: 50px 0 34px;
  background: #fff;
  padding: 0;
  font-size: 14px;
  line-height: 1.75;
  color: #222;
}

.request-phone{
  color: #333;
  margin-bottom: 50px;
}

.request-phone__title{
  margin: 0 0 13px;
  color: #1f2ea6;
  font-size: 20px;
  font-weight: 400;
  letter-spacing: 0.06em;
}

.request-phone__dept{
  color: #333;
  font-size: 16px;
  font-weight: 400;
  margin-bottom: 6px;
}

.request-phone__hours{
  color: #333;
  font-size: 16px;
  font-weight: 400;
  margin-bottom: 12px;
}

.request-phone__tel{
  color: #333;
  font-size: 30px;
  font-weight: 500;
  display: flex;
  align-items: flex-end;
  gap: 5px;
  line-height: 1;
}

.request-phone__tel-icon{
  width: 26px;
  height: 26px;
  display: block;
  transform: translateY(-1px);
  flex: 0 0 auto;
}

.request-support{
  background: #5da4e7;
  padding: 54px 0 60px;
}

.request-support__title{
  margin: 0 0 24px;
  text-align: center;
  color: #fff;
  font-size: 16px;
  letter-spacing: 0.12em;
  font-weight: 500;
}

.request-support__buttons{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 34px;
}

.request-support__btn{
  background: #fff;
  color: #2a35af;
  text-decoration: none;
  height: 42px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  font-size: 10px;
  letter-spacing: 0.04em;
}

.request-support__btn::after{
  content: "";
  position: absolute;
  right: 24px;
  top: 50%;
  transform: translateY(-50%);
  width: 7px;
  height: 12px;
  background: url("../img/top/arrow_b.svg") center / contain no-repeat;
}

@media (max-width: 980px){
  .request-title{
    font-size: 26px;
  }

  .request-title::after{
    margin-top: 12px;
  }

  .request-lead{
    margin-top: 42px;
  }

  .request-row{
    grid-template-columns: 1fr;
  }

  .request-th{
    border-right: 0;
    border-bottom: 1px solid #d6d6d6;
  }

  .request-products{
    grid-template-columns: 1fr;
  }

  .request-product{
    border-left: 0;
    border-top: 1px solid #d6d6d6;
  }

  .request-product:first-child{
    border-top: 0;
  }

  .request-form table.inquiry,
  .request-form table.inquiry tbody,
  .request-form table.inquiry tr,
  .request-form table.inquiry th,
  .request-form table.inquiry td{
    display: block;
    width: 100% !important;
  }

  .request-form table.inquiry tr{
    border-top: 1px solid #d6d6d6;
  }

  .request-form table.inquiry tr:first-child{
    border-top: 0;
  }

  .request-form table.inquiry th{
    border-right: 0;
    border-bottom: 1px solid #d6d6d6;
  }

  .request-form table.inquiry #zip,
  .request-form table.inquiry #zip1{
    width: calc((100% - 36px) / 2);
    max-width: none;
  }

  /* Keep zip code controls inside viewport on mobile */
  .request-zip{
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto minmax(0, 1fr);
    column-gap: 8px;
    row-gap: 8px;
  }

  .request-zip input{
    width: 100%;
    min-width: 0;
  }

  .request-form table.inquiry:first-of-type td{
    border-left: 0;
    border-top: 1px solid #d6d6d6;
  }

  .request-form table.inquiry:first-of-type td:first-of-type{
    border-top: 0;
  }

  .request-support__buttons{
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .request-support__title{
    font-size: 14px;
  }

  .request-submitwrap{
    padding: 20px 0;
  }

  .request-submitwrap .wpcf7-submit,
  .request-submitwrap input[type="submit"],
  .request-form .ho .wpcf7-submit,
  .request-form .ho input[type="submit"],
  .request-form .ho .soushinbtn{
    width: min(100%, 320px);
    height: 56px;
    margin-top: 20px;
  }

  .request-phone{
    margin-bottom: 40px;
  }

  .request-phone__title{
    font-size: 18px;
  }

  .request-phone__dept,
  .request-phone__hours{
    font-size: 14px;
  }

  .request-phone__tel{
    font-size: 34px;
  }

  .request-phone__tel-icon{
    width: 22px;
    height: 22px;
  }

}
