@charset "utf-8";

/*========================================================================*\

$root

\*========================================================================*/

:root {
  --line-height: 1.8;
}

:root {
  --inner-padding: 2.5rem 1.25rem;
  --max-width: 100%;
}

/*========================================================================*\

$wrapper

\*========================================================================*/

html {
  scroll-padding-top: 63px;
}

body {
  line-height: var(--line-height);
}

#Co .page h1,
#Co .page h2,
#Co .page h3,
#Co .page h4,
#Co .page h5,
#Co .page h6 {
  line-height: 1.4;
}

/*========================================================================*\

$wrapper

\*========================================================================*/

#wrapper {
  overflow: hidden;
}

/*========================================================================*\

$topmain

\*========================================================================*/

#topmain .mainInner {
  display: block;
}

#topmain .textBox {
  padding: 1.875rem 1.875rem 0.625rem 1.875rem;
}

#topmain .textBox p {
  font-size: 1.0rem;
}

#topmain .textBox h2 {
  font-size: 1.5rem;
  margin: 0 0 0.9375rem 0;
}

#topmain .textBox .small {
  font-size: 0.9375rem;
}

#topmain .textBox .mvBtn {
  margin-top: 1.25rem;
}

#topmain .textBox .mvBtn__link {
  display: flex;
  width: 100%;
  min-width: 0;
  font-size: 1rem;
}

#topmain .photoBox {
  width: 100%;
}

/*========================================================================*\

$section

\*========================================================================*/

#Co .section h3 {
  font-size: 3.125rem;
  margin-bottom: 1.25rem;
}

#Co .section h3 .ss {
  font-size: 1rem;
}

body #Co > .section h3:has(> .ss) {
  font-size: 0.875rem;
}

body #Co > .section h3:has(> .ss) .ss {
  font-size: 1.5rem;
}

#Co > #newsSection h3:has(> .ss) {
  align-items: center;
  text-align: center;
}

#Co .section .catch {
  font-size: 1.375rem;
  line-height: 1.6;
  margin-bottom: 0.9375rem;
}

#Co .section .arrow-button {
  width: 70%;
  text-align: center;
}

#Co .section .arrow-button {
  width: 70%;
  text-align: center;
}

#Co .section .arrow-button::before {
  width: 45px;
  right: -17.5px;
}

.circle_btn__arrow {
  height: 40px;
  width: 40px;
}

/*========================================================================*\

$newsSection

\*========================================================================*/

#Co #newsSection .box02Inner:first-child,
#Co #newsSection .box02Inner:last-child {
  width: 100%;
}

#Co #newsSection .box02Inner .newsBox {
  margin-bottom: 1.875rem;
}

#Co #newsSection .box02Inner .newsBoxInner a {
  padding: 0.9375rem 1.25rem 0.9375rem 0;
}

#Co #newsSection .box02Inner .newsBoxInner a::before {
  right: 0;
}

#Co #newsSection .box02Inner .newsBoxInner time {
  font-size: 0.9375rem;
}

#Co #newsSection .box02Inner .newsBoxInner p {
  font-size: 0.9375rem;
}

/*========================================================================*\

$businessSection

\*========================================================================*/

#Co #businessSection .box02 {
  margin-bottom: 3.125rem;
}

#Co #businessSection .box02Inner {
  margin-bottom: 1.875rem;
}

#Co #businessSection .box03 p,
#Co #businessSection .box04 p {
  font-size: 0.9375rem;
}

/*========================================================================*\

$staffSection

\*========================================================================*/

#Co #staffSection .box02Inner:first-child {
  position: static;
  margin-bottom: 1.875rem;
}

#Co #staffSection .staffBox .staffBoxInner figure {
  width: 90px;
  margin: 0 4% 0 0;
}

#Co #staffSection .staffBox .staffBoxInner .itemBox h4 {
  font-size: 1rem;
}

#Co #staffSection .staffBox .staffBoxInner .itemBox h4 .kana {
  font-size: 0.75rem;
}

/*========================================================================*\

$contactSection

\*========================================================================*/

#contactSection .box02Inner {
  width: 100%;
  margin: 0 !important;
}

#contactSection .box02Inner h3 {
  font-size: 2.5rem;
}

#contactSection .box02Inner h3 .ss {
  font-size: 0.9375rem;
}

#contactSection .box02Inner figure img {
  max-height: 150px;
  object-position: 0 0;
}

/*========================================================================*\

$footer

\*========================================================================*/

footer {
  padding-bottom: 75px;
}

footer #footerInner {
  display: block;
  padding-bottom: 1.25rem;
}

footer #footerInner #footerL {
  width: 100%;
}

footer #footerInner h2 {
  margin-bottom: 1.25rem;
  width: 70%;
}

footer #footerInner .tel {
  font-size: 1.25rem;
}

footer #footerInner .tel .ss {
  font-size: 0.9375rem;
}

footer #footerInner .reception_hours {
  font-size: 0.75rem;
}

footer #footerInner .address {
  font-size: 0.8125rem;
}

footer #footerInner .addressList {
  display: block;
}

footer #footerInner .addressList .address + .address {
  margin-top: 0.9375rem;
}

footer #footerInner #footerR {
  display: none;
}

footer .footerbottom .inner {
  display: block;
}

footer .footerbottom .inner ul {
  display: none;
}

footer .footerbottom .inner .copy {
  font-size: 0.6875rem;
  width: 100%;
}

/*========================================================================*\

$kasomain

\*========================================================================*/

#kasomain {
  position: relative;
  z-index: 20;
}

#kasomain .inner {
  padding: 3.125rem 1.25rem 2.5rem 1.25rem;
}

#kasomain .photoBox figure {
  aspect-ratio: 1.32;
}

#kasomain .photoBox img {
  height: 100%;
  object-fit: cover;
  object-position: 50% 50%;
}

#kasomain h1 {
  margin-bottom: 0;
}

body #kasomain h1.pageTitle .ss {
  font-size: 1.75rem;
}

body #kasomain h1.pageTitle .en {
  font-size: 0.875rem;
}

#kasomain.business .photoBox img {
  object-position: 62% 50%;
}

/*========================================================================*\

$kasomain

\*========================================================================*/

#Co .page h2 {
  margin-bottom: 1.25rem;
}

#Co .page h2 .jp {
  font-size: 1rem;
}

#Co .page h2:has(.jp) {
  font-size: 0.875rem;
}

#Co .page h2:has(.jp) .jp {
  font-size: 1.5rem;
  text-wrap: balance;
}

#Co .page .ss {
  font-size: 0.75rem;
}

#Co .page h3 {
  font-size: 1.375rem;
  margin: 2.5rem 0 1.25rem 0;
  padding-bottom: 0.625rem;
}

#Co .page h4::before {
  width: 6px;
  height: 6px;
  margin-right: 0.625rem;
}

#Co .page h5 {
  padding: 0.9375rem;
  margin: 1.875rem 0 1.25rem 0;
}

#Co .page .inner > h2:first-child,
#Co .page .inner > h3:first-child,
#Co .page .inner > h4:first-child,
#Co .page .inner > h5:first-child,
#Co .page .inner > h6:first-child {
  margin-top: 0 !important;
}

#Co .page .photoArea {
  display: block;
  gap: 0;
}

#Co .page .photoArea .box02Inner:first-child {
  flex: auto;
  width: 100%;
  margin-bottom: 1.875rem;
}

#Co .page .photoArea .box02Inner:last-child {
  flex: auto;
  width: 100%;
  min-width: 0;
}

#Co .page .photoArea .box02Inner:first-child .fit {
  height: 250px;
  object-fit: cover;
  object-position: 0 0;
  width: 100%;
}

#Co .page .photoArea .box02Innerh2 {
  word-break: break-word;
  overflow-wrap: break-word;
  word-wrap: break-word;
}

#Co .page .photoArea .box02Inner .name {
  font-size: 1rem;
}

#Co .page .photoArea .box02Inner .name .ss {
  font-size: 0.75rem;
}

#Co .page .pointBox {
  padding: 1.25rem;
  margin: 1.875rem 0;
}

#Co .page .pointBox h4 {
  margin-bottom: 0.625rem;
  padding-bottom: 0.3125rem;
}

#Co .page .pointBox p {
  font-size: 0.875rem;
}

#Co .page .alp li {
  padding-left: 0.125rem;
}

#Co .page .accordionBox .accordionBoxInner {
  margin-bottom: 1.25rem;
}

#Co .page .accordionBox .accordionBoxInner h4 {
  font-size: 0.9375rem;
}

#Co .page .accordionBox .accordionBoxInner .titleBox::before {
  right: 15px;
}

#Co .page .accordionBox .accordionBoxInner .titleBox::after {
  right: 15px;
}

/*========================================================================*\

$sampleBox

\*========================================================================*/

.sampleBoxInner {
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
  display: block;
}

.sampleBoxInner h3 {
  display: none;
}

#color_btn li a {
  width: 35px;
  height: 35px;
}

/*========================================================================*\

$contactpage

\*========================================================================*/

#Co #contactpage .contactFormInner ul {
  justify-content: space-between;
  align-items: center;
}

#Co #contactpage .contactFormInner ul li {
  width: 48.5%;
}

#Co #contactpage .contactFormInner ul .error {
  width: 100%;
}


/*========================================================================*\

$aboutpage（会社概要・代表者紹介）

\*========================================================================*/

#Co .page .troubleBox {
  padding: 2.5rem 1.25rem 0 1.25rem;
  margin-top: 2.5rem;
}

#Co .page .troubleBox .troubleTitle {
  font-size: 1.25rem;
  margin-bottom: 1.5625rem;
}

#Co .page .troubleBox .troubleTitle::before {
  font-size: 0.75rem;
}

#Co .page .troubleBox .troubleTitle span {
  font-size: 0.8125rem;
  gap: 0.625rem;
}

#Co .page .troubleBox .troubleTitle span::before,
#Co .page .troubleBox .troubleTitle span::after {
  content: none;
}

#Co .page .troubleList {
  grid-template-columns: 1fr;
}

#Co .page .troubleList li {
  font-size: 0.875rem;
  padding: 0.9375rem 0 0.9375rem 2.1875rem;
}

#Co .page .troubleList li::before {
  width: 22px;
  height: 22px;
}

#Co .page .troubleList li::after {
  left: 8px;
  width: 5px;
  height: 10px;
}

#Co .page .troubleBox .troubleLead {
  font-size: 0.9375rem;
  text-align: left;
  margin: 2.5rem -1.25rem 0 -1.25rem;
  padding: 1.875rem 1.25rem 1.5625rem 1.25rem;
}

#Co .page .troubleBox .troubleLead::before {
  border-width: 15px 28px 0 28px;
}

#Co .page .featureList li,
#Co .page .careerList .box02Inner,
#Co .page .accessList li {
  padding: 1.25rem;
}

#Co .page .featureList .pointNum {
  margin-bottom: 0.9375rem;
}

#Co .page .featureList .pointNum span {
  font-size: 2rem;
}

#Co .page .featureList h4,
#Co .page .careerList h4,
#Co .page .accessList h4,
#Co .page .greetingBox h4 {
  font-size: 1.0625rem;
}

#Co .page .featureList p,
#Co .page .careerList p,
#Co .page .careerList li,
#Co .page .accessList p {
  font-size: 0.875rem;
}

#Co .page .missionList li {
  padding: 1.25rem;
}

#Co .page .missionList .missionWord {
  font-size: 1.5rem;
  margin-bottom: 0.3125rem;
}

#Co .page .profileName {
  font-size: 1.375rem;
  margin: 1.25rem 0;
}

#Co .page .greetingBox {
  padding: 1.25rem;
  margin-bottom: 1.875rem;
}

#Co .page .greetingBox p {
  font-size: 0.9375rem;
}

#Co .page .greetingBox .sign {
  font-size: 1.125rem;
  margin-top: 1.875rem;
}

#Co .page .bookBox {
  display: block;
  padding: 1.25rem;
}

#Co .page .bookBox .bookCover {
  width: 60%;
  max-width: 220px;
  margin: 0 auto 1.875rem auto;
}

#Co .page .bookBox .bookSeries {
  font-size: 0.8125rem;
}

#Co .page .bookBox .bookTitle {
  font-size: 1.25rem;
}

#Co .page .bookBox .bookData,
#Co .page .bookBox p {
  font-size: 0.875rem;
}

#Co .page .bookBox .bookBtn {
  display: block;
}

#Co .page .bookBox .bookBtn .arrow-button {
  display: flex;
  width: calc(100% - 30px);
  margin-bottom: 0.9375rem;
}

#Co .page .ctaArea p {
  text-align: left;
}

#Co .page .ctaArea .btn {
  text-align: center;
}


#Co .page .featureList h4,
#Co .page .careerList .box02Inner > h4:first-child,
#Co .page .accessList h4,
#Co .page .greetingBox h4 {
  margin: 0 0 0.9375rem 0 !important;
}

#Co .page .careerList .box02Inner h4:nth-of-type(n + 2) {
  margin: 1.5625rem 0 0.9375rem 0 !important;
}


/*========================================================================*\

$servicepage（サービス各ページ共通）

\*========================================================================*/

#Co .page .cardList.col2,
#Co .page .cardList.col3 {
  grid-template-columns: 1fr;
}

#Co .page .cardList > li {
  padding: 1.25rem;
}

#Co .page .cardList h4 {
  font-size: 1.0625rem;
  margin: 0 0 0.9375rem 0 !important;
}

#Co .page .standardList h4:nth-of-type(n + 2) {
  margin-top: 2.5rem !important;
}

#Co .page .cardList p,
#Co .page .caseBox p,
#Co .page .flowList .stepText p,
#Co .page .faqList dd {
  font-size: 0.875rem;
}

#Co .page table.tblNum thead {
  display: none;
}

#Co .page table.tblNum,
#Co .page table.tblNum tbody {
  display: block;
}

#Co .page table.tblNum tbody tr {
  display: grid;
  grid-template-columns: 50px 1fr;
  align-items: center;
  border-bottom: 1px solid #dfe4e3;
  padding: 1rem 1.25rem;
}

#Co .page table.tblNum tbody td,
#Co .page table.tblNum tbody th {
  border: none;
  padding: 0;
  width: auto;
  font-size: 0.875rem;
}

#Co .page table.tblNum tbody td.num {
  font-size: 1.25rem;
  text-align: left;
}

#Co .page table.tblNum tbody th.item {
  font-size: 0.9375rem;
}

#Co .page table.tblNum tbody td:last-child {
  grid-column: 1 / -1;
  margin-top: 0.5rem;
}

#Co .page .caseBox {
  padding: 1.25rem;
}

#Co .page .caseBox .caseLabel {
  font-size: 0.75rem;
}

#Co .page .caseBox .caseTtl {
  font-size: 1.125rem;
}

#Co .page .caseBox .caseTtl span {
  font-size: 0.8125rem;
}

#Co .page .caseBox .casePoint {
  padding: 1rem 1.125rem;
}

#Co .page .flowList > li {
  padding: 1.25rem;
  align-items: flex-start;
}

#Co .page .flowList .stepNum {
  width: 50px;
  font-size: 0.625rem;
  letter-spacing: 0.05em;
}

#Co .page .flowList .stepNum span {
  font-size: 1.75rem;
}

#Co .page .flowList .stepText {
  padding-left: 1rem;
  margin-left: 1rem;
}

#Co .page .flowList .stepText h4 {
  font-size: 1rem;
  margin: 0 0 0.3125rem 0 !important;
}

#Co .page .faqList dt,
#Co .page .faqList dd {
  padding-left: 3.5rem;
  padding-right: 1.25rem;
}

#Co .page .faqList dt {
  font-size: 0.9375rem;
  padding-top: 1.25rem;
  padding-bottom: 1rem;
}

#Co .page .faqList dd {
  padding-top: 1rem;
  padding-bottom: 1.25rem;
}

#Co .page .faqList dt::before,
#Co .page .faqList dd::before {
  left: 1.125rem;
  width: 28px;
  height: 28px;
  font-size: 0.875rem;
}

#Co .page .faqList dt::before {
  top: 1.125rem;
}

#Co .page .faqList dd::before {
  top: 0.875rem;
}

#Co .page .linkBox .linkBtn .arrow-button {
  width: calc(100% - 30px);
  justify-content: center;
}


#Co .page .anchorBox.c04 {
  margin-bottom: 2.5rem;
}


#Co .page .anchorBox ul li a.on {
  background: var(--primary-color);
}

#Co .page table.tblNum tbody .num,
#Co .page table.tblNum tbody .item {
  width: auto;
}


#Co .page .extLink a {
  font-size: 0.8125rem;
}

#Co .page table.tblPrice thead th,
#Co .page table.tblPrice tbody th,
#Co .page table.tblPrice tbody td {
  padding: 0.75rem 0.9375rem;
  font-size: 0.8125rem;
}

#Co .page table.tblPrice tbody td.price strong {
  font-size: 1rem;
}

#Co .page .priceNote li {
  font-size: 0.75rem;
}


#Co .page .scroll table.tblPrice {
  width: 680px !important;
}

#Co .page table.tblPrice tbody th.plan {
  width: 150px;
}

#Co .page table.tblPrice .price {
  width: 190px;
}


#Co .page .scroll table.tblPrice {
  table-layout: fixed !important;
}

#Co .page table.tblPrice thead th:nth-child(1) { width: 150px; }
#Co .page table.tblPrice thead th:nth-child(2) { width: 110px; }
#Co .page table.tblPrice thead th:nth-child(3) { width: 210px; }
#Co .page table.tblPrice thead th:nth-child(4) { width: 210px; }


#Co .page .iconCard .cardIcon {
  width: 72px;
  height: 72px;
  margin-bottom: 0.9375rem;
}

#Co .page .iconCard .cardIcon img {
  width: 42px;
  height: 42px;
}

#Co .page .messageBox {
  padding: 1.25rem;
  font-size: 0.875rem;
}

#Co .page .scroll table.tblPrice.type2 {
  width: 560px !important;
}

#Co .page table.tblPrice.type2 thead th:nth-child(1) { width: 120px; }
#Co .page table.tblPrice.type2 thead th:nth-child(2) { width: 220px; }
#Co .page table.tblPrice.type2 thead th:nth-child(3) { width: 220px; }


#Co .page .cardList .cardTag {
  font-size: 0.6875rem;
}

#Co .page .priceBox {
  padding: 1.875rem 1.25rem;
}

#Co .page .priceBox .priceNum {
  font-size: 2.25rem;
}

#Co .page .priceBox .priceNum span {
  font-size: 0.9375rem;
}

#Co .page .priceBox .priceNum .tax {
  display: block;
  font-size: 0.75rem;
}


#Co .page .scroll table.tblData {
  width: 640px !important;
}

#Co .page table.tblData thead th,
#Co .page table.tblData tbody th,
#Co .page table.tblData tbody td {
  padding: 0.75rem 0.9375rem;
  font-size: 0.8125rem;
}

#Co .page table.tblData td.price span {
  display: block;
  font-size: 0.75rem;
}

/* 検査方法の表はスマホで縦積み */
#Co .page table.tblMethod thead {
  display: none;
}

#Co .page table.tblMethod,
#Co .page table.tblMethod tbody,
#Co .page table.tblMethod tr,
#Co .page table.tblMethod tbody th,
#Co .page table.tblMethod tbody td {
  display: block;
  width: 100% !important;
}

#Co .page table.tblMethod tbody th {
  border-bottom: none;
  padding-bottom: 0.25rem;
  background: #ffffff;
}

#Co .page table.tblMethod tbody td {
  padding-top: 0;
}

#Co .page .discountList .discountRate {
  font-size: 2rem;
  margin-bottom: 0.9375rem;
}


#Co .page .scroll table.tblData {
  table-layout: fixed !important;
}

#Co .page .scroll table.tblData thead th:first-child {
  width: 150px;
}

#Co .page .scroll table.tblData tbody th {
  width: auto;
}

/*========================================================================*\

$serviceLabel（サービスページテンプレート：h1上のラベル）

\*========================================================================*/

#kasomain .serviceLabel {
  font-size: 0.8125rem;
  padding: 0.25rem 0.9375rem;
  margin-bottom: 0.75rem;
}

/*========================================================================*\

$troubleLead（お悩みボックス下：オレンジ帯＋人物画像）

\*========================================================================*/

#Co .page .troubleBox .troubleLead {
  gap: 0.9375rem;
  padding: 0 0.9375rem 0 1.25rem;
}

#Co .page .troubleBox .troubleLead p {
  padding: 1.875rem 0 1.5625rem 0;
}

#Co .page .troubleBox .troubleLead .troubleLeadImg {
  width: 100px;
  margin: 0.9375rem 0;
}

/*========================================================================*\

$roleBox（aboutページ ROLE：文章＋イメージ画像）

\*========================================================================*/

#Co .page .roleBox {
  display: block;
}

#Co .page .roleBox .roleImg {
  width: 100%;
  margin-top: 1.25rem;
}

/*========================================================================*\

$txtImgBox / $caseInner（文章＋写真：縦並び）

\*========================================================================*/

#Co .page .txtImgBox,
#Co .page .caseBox .caseInner {
  display: block;
}

#Co .page .txtImgBox .txtImgImg,
#Co .page .caseBox .caseImg {
  width: 100%;
  margin-top: 1.25rem;
}

/*========================================================================*\

$discountMark（割引カード上部の丸シンボル）

\*========================================================================*/

#Co .page .discountList {
  margin-top: 3.4375rem;
  row-gap: 3.75rem;
}

#Co .page .discountList > li {
  padding-top: 3.4375rem;
}

#Co .page .discountList .discountMark {
  top: -2.5rem;
  width: 80px;
  height: 80px;
  font-size: 0.875rem;
}

/*========================================================================*\

$topicsDetail（トピックス詳細ページ：記事本文）

\*========================================================================*/

#Co .page.detail #newsSection h2.news {
  font-size: 1.25rem;
}

#Co .page.detail #newsSection .date {
  margin-bottom: 1.875rem;
}

#Co .page.detail #newsSection .sectionInner > h1 {
  margin-bottom: 1.875rem;
}

#Co .page.detail #newsSection .sectionInner > h2:not(.news) {
  font-size: 1.1875rem;
  border-left-width: 4px;
  padding-left: 0.75rem;
  margin: 3.125rem 0 1.25rem 0;
}

#Co .page.detail #newsSection .sectionInner > h3 {
  font-size: 1.0625rem;
  margin: 2.1875rem 0 1rem 0;
}

#Co .page.detail #newsSection hr {
  margin: 2.5rem 0 1.5625rem 0;
}

#Co .page.detail #newsSection .aCenter {
  margin-top: 3.125rem;
}

/*========================================================================*\

$btnTop（ページトップボタン）

\*========================================================================*/

#btnTop {
  right: 15px;
  bottom: 15px;
  width: 50px;
  height: 50px;
}

#btnTop a {
  gap: 3px;
}

#btnTop a::before {
  width: 8px;
  height: 8px;
  margin-top: 4px;
}

#btnTop a::after {
  font-size: 0.625rem;
}

/* サービスページ：アイコン付きタブ・表タイトル */
#Co .page .anchorBox.withIcon ul li a {
  gap: 0.5rem;
  padding: 0.5rem 1.5rem 0.5rem 0.5rem;
  font-size: 0.8125rem;
}

#Co .page .anchorBox.withIcon .anchorIcon {
  width: 36px;
  height: 36px;
}

#Co .page .anchorBox.withIcon .anchorIcon img {
  width: 28px;
  height: 28px;
}

#Co .page h3.tblTtl span {
  display: block;
  margin-left: 0;
}

#Co .page .sectionInner > h2.midTtl {
  margin-top: 3.125rem;
}

#Co .page .linkBox .linkBtn .arrow-button {
  min-width: 0;
  width: calc(100% - 30px);
}

/* 投稿詳細：ブロックの余白 */
#Co .page.detail #newsSection .wp-block-table td,
#Co .page.detail #newsSection .wp-block-table th {
  padding: 0.75rem 1rem;
}

#Co .page.detail #newsSection .sectionInner > .wp-block-table,
#Co .page.detail #newsSection .sectionInner > .wp-block-image,
#Co .page.detail #newsSection .sectionInner > .wp-block-gallery,
#Co .page.detail #newsSection .sectionInner > .wp-block-embed,
#Co .page.detail #newsSection .sectionInner > .wp-block-video {
  margin: 0 0 1.875rem 0;
}
