@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/


/* ▼ SWELLのコピーライト帯の文字色 */
.l-footer__foot{
  color:#fff;
}
.l-footer__foot a{ color:#fff; }

/* ──フッター内のメニューリンクを一括で小さく── */
footer nav a,
footer .wp-block-navigation a,
footer .menu a,
.l-footer nav a,
.l-footer__widgets .wp-block-navigation a,
.l-footer__widgets .menu a,
.l-footer__nav a {
  font-size: 13px !important;
  line-height: 1.6 !important;
}



/* プルダウンの子メニュー（hover時） */
.l-header .sub-menu a:hover {
  color: #fcb400;            /* ← 文字色は親と同じに */
}

/* ヘッダーメニューのホバー・選択中の下線 */
.c-gnav > li > a::after {
  background-color: #FCB400 !important;
}

/* 追従ヘッダー：子メニューのホバー文字色 */
.l-fixHeader .c-gnav .sub-menu a:hover {
  color: #FCB400 !important;
}

/* 下層ページタイトルの下線カラー */
.c-pageTitle__inner::after {
  background-color: #FCB400 !important;
}

/* 下層ページタイトル下の短いライン */
.c-pageTitle[data-style="b_bottom"] .c-pageTitle__inner {
  border-bottom-color: #FCB400 !important;
}


/* ========================================
   TOPページ
======================================== */
/* TOPアバウトメッセージ部分 */
@media (max-width: 599px) {
  .about-message {
    margin-right: 20px !important;
    margin-left: 20px !important;
    text-align: left !important;
    line-height: 1.9;
  }
}

@media (max-width: 599px) {
  .about-message br:nth-of-type(2) {
    display: none;
  }
}

/* ========================================
   お問い合わせフォーム
======================================== */

/* フォーム全体 */
#wpcf7-f437-p21-o1 {
  max-width: 760px;
  margin: 0 auto;
}

/* 項目名 */
#wpcf7-f437-p21-o1 label {
  display: block;
  font-weight: 700;
  color: #04384C;
}

/* 入力欄 */
#wpcf7-f437-p21-o1 input[type="text"],
#wpcf7-f437-p21-o1 input[type="email"],
#wpcf7-f437-p21-o1 textarea {
  width: 100%;
  margin-top: 8px;
  padding: 14px 16px;
  border: 1px solid #D4D4E8;
  border-radius: 6px;
  background-color: #F2F2FD;
  font-size: 16px;
}

/* 入力中 */
#wpcf7-f437-p21-o1 input:focus,
#wpcf7-f437-p21-o1 textarea:focus {
  border-color: #FCB400;
  background-color: #fff;
  outline: none;
  box-shadow: 0 0 0 2px rgba(252, 180, 0, 0.18);
}

/* 送信ボタン */
#wpcf7-f437-p21-o1 input[type="submit"] {
  display: block;
  width: min(100%, 360px);
  margin: 32px auto 0;
  padding: 16px 30px;
  border: 2px solid #FCB400;
  border-radius: 50px;
  background-color: #FCB400;
  color: #04384C;
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 0.08em;
  cursor: pointer;
  transition: 0.25s;
}

/* 送信ボタン hover */
#wpcf7-f437-p21-o1 input[type="submit"]:hover {
  background-color: #04384C;
  border-color: #04384C;
  color: #fff;
  transform: translateY(-2px);
}



/* FV：リード文とボタンだけ右へ移動 */
@media (min-width: 960px) {
  .p-mainVisual .fv-sub-content {
    transform: translateX(60px);
  }
}

/* FV：キャッチコピーとリード文の間を詰める */
.p-mainVisual .p-blogParts > p:first-child {
  margin-bottom: 10px !important;
}

.p-mainVisual .p-blogParts > p:first-child + p {
  margin-top: 0 !important;
}

/* FV画像を少しだけ拡大 */
@media (min-width: 960px) {
  .p-mainVisual__img {
    transform: scale(1.05);
    transform-origin: right center;
  }
}

/* ========================================
   FV スマホ表示
======================================== */
@media (max-width: 599px) {

  /* テキスト全体を上へ配置 */
  .p-mainVisual__textLayer {
    justify-content: flex-start !important;
    padding: 10vw 20px 0 !important;
    text-align: left !important;
  }

  .p-mainVisual .p-blogParts {
    width: 100%;
  }

  /* キャッチコピー */
  .p-mainVisual .p-blogParts > p:first-child {
    font-size: 27px !important;
    line-height: 1.4 !important;
    margin-bottom: 12px !important;
    white-space: nowrap;
  }

  /* リード文 */
  .p-mainVisual .fv-sub-content.has-large-font-size {
    font-size: 15px !important;
    line-height: 1.8 !important;
    margin: 0 0 18px 30px !important;
    transform: none !important;
  }

  /* ボタン */
  .p-mainVisual .swell-block-button.fv-sub-content {
    transform: none !important;
  }
  .p-mainVisual .swell-block-button__link {
    padding: 11px 24px !important; 
	  margin-left: 30px !important;
    font-size: 14px !important;
    width: auto !important;
  }
}
@media (max-width: 599px) {

  /* SP用FVの高さ */
  .p-mainVisual__inner {
    height: 80svh !important;
  }

@media (max-width: 599px) {
  .p-mainVisual__img {
    object-position: center -50px !important;
    transform: translateY(-20px) !important;
  }
}

  /* テキスト位置 */
  .p-mainVisual__textLayer {
    justify-content: flex-start !important;
    padding: 18vw 20px 0 !important;
    text-align: left !important;
  }
}


/* ========================================
   固定ページ共通 セクション見出し
======================================== */

/* H2：セクションタイトル */
h2.is-style-section_ttl {
  width: fit-content;
  margin-right: auto;
  margin-bottom: 1.2rem;
  margin-left: auto;
  padding-bottom: 0.8rem !important;

  color: #0b2d63 !important;
  font-weight: 700;
  letter-spacing: 0.08em;

  background: none !important;
  border-bottom: 3px solid #fcb400 !important;
}

/* H3：セクションサブタイトル */
h3.section-subtitle {
  margin-top: 0 !important;
  color: #0b2d63 !important;
  font-weight: 600;
  letter-spacing: 0.06em;
}

/* ========================================
   サービス共通カード
======================================== */
.service-card {
  gap: 0 !important;
  overflow: hidden;
  background: #fff;
  border: 1px solid #CCC;
  border-radius: 16px;
  box-shadow: 0 5px 16px rgba(0, 0, 0, 0.12);
}

/* PC：画像50％ */
.service-card > .wp-block-column:first-child {
  flex-basis: 50% !important;
  align-self: center;
}

/* PC：文章50％ */
.service-card > .wp-block-column:last-child {
  flex-basis: 50% !important;
  padding: 32px;
}

/* 画像 */
.service-card figure {
  margin: 0 !important;
}

.service-card img {
  display: block;
  width: 100%;
  height: auto;
}

/* サービス名 */
.service-card h4 {
  width: fit-content;
  margin-top: 0;
  color: #0b2d63;
}

/* スマホ */
@media (max-width: 781px) {
  .service-card > .wp-block-column:first-child,
  .service-card > .wp-block-column:last-child {
    flex-basis: 100% !important;
  }

  .service-card > .wp-block-column:last-child {
    padding: 24px 20px;
  }
}

/* ========================================
   サービスカード反転版
======================================== */

/* 左側：文章 */
.service-card-reverse > .wp-block-column:first-child {
  padding: 32px;
  align-self: stretch;
}

/* 右側：画像 */
.service-card-reverse > .wp-block-column:last-child {
  padding: 0;
  align-self: center;
}

/* スマホは画像を先に表示 */
@media (max-width: 781px) {
  .service-card-reverse > .wp-block-column:first-child {
    order: 2;
    padding: 24px 20px;
  }

  .service-card-reverse > .wp-block-column:last-child {
    order: 1;
    padding: 0;
  }
}




/* ========================================
   About リード画像 
======================================== */
.about-hero {
  border-radius: 10px;
  overflow: hidden;
  padding: 40px 32px;
}

.about-hero .wp-block-cover__inner-container {
  max-width: 760px;
  margin-left: 0;
}

.about-hero p {
  margin: 0;
  color: #fff;
  font-size: clamp(22px, 2.3vw, 32px);
  font-weight: 700;
  line-height: 1.6;
  text-align: left;
}

/* Aboutページだけに効くH3装飾 */
/* AboutページのH3だけ */
.page-id-20 .post_content h3 {
  position: relative;
  margin: 32px 0 24px;
  padding: 16px 20px 16px 28px;
  border: 0 !important;
  border-bottom: 1px solid #f6d9a3 !important;
  border-radius: 0 8px 0 0;
  background: #fff7e9 !important;
  color: #0a315b;
}

.page-id-20 .post_content h3::before {
  content: "";
  position: absolute;
  top: 14px;
  bottom: 14px;
  left: 0;
  width: 5px;
  border-radius: 3px;
  background: #f5a623;
}

@media (max-width: 599px) {
  .page-id-20 .post_content h3 {
    padding: 13px 14px 13px 24px;
  }
}






/* About：ページタイトルとMVの間を詰める */
.page-id-20 .c-pageTitle {
  margin-bottom: 24px !important;
}

.page-id-20 .post_content {
  margin-top: 0 !important;
}

@media (max-width: 599px) {
.page-id-20 .about-hero {
  min-height: 100px !important;
  height: 100px !important;
  padding: 8px 12px !important;
}

  .page-id-20 .about-hero .wp-block-cover__image-background {
    object-fit: cover !important;
    object-position: 50% center !important;
  }

  .page-id-20 .about-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(
      90deg,
      #06294d 0%,
      #06294d 46%,
      rgba(6, 41, 77, .85) 65%,
      transparent 100%
    );
    pointer-events: none;
  }

.page-id-20 .about-hero .wp-block-cover__inner-container {
  position: absolute;
  top: 50%;
  left: 12px !important;
  z-index: 2;
  width: 76%;
  margin: 0 !important;
  transform: translateY(-50%);
}

.page-id-20 .about-hero h2.wp-block-heading {
  margin: 0 !important;
  font-size: 14px !important;
  line-height: 1.45;
  text-align: left;
}
}


/* About：サービス4項目 */
.page-id-20 .about-services {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  width: 80%;
  margin: 20px auto 32px;
}

.page-id-20 .about-services > .wp-block-column {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  min-width: 0;
  width: auto;
  margin: 0 !important;
  padding: 18px 8px 14px;
  box-sizing: border-box;
  border: 1px solid #0a315b;
  border-radius: 8px;
  text-align: center;
}

.page-id-20 .about-services figure {
  flex-shrink: 0;
  margin: 0 !important;
}

.page-id-20 .about-services img {
  display: block;
  width: 64px;
  height: 64px;
  object-fit: contain;
}

.page-id-20 .about-services p {
  width: 100%;
  min-height: 3em;
  margin: 0 !important;
  color: #0a315b;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.5;
}

.page-id-20 .about-services p::after {
  content: "";
  display: block;
  width: 30px;
  height: 2px;
  margin: 8px auto 0;
  background: #f5a623;
}

/* タブレット・スマホ：2列×2段 */
@media (max-width: 781px) {
  .page-id-20 .about-services {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
  }
}

/* スマホ：余白・文字・アイコンを調整 */
@media (max-width: 599px) {
  .page-id-20 .about-services {
    gap: 10px;
  }

  .page-id-20 .about-services > .wp-block-column {
    padding: 14px 6px 12px;
  }

  .page-id-20 .about-services p {
    font-size: 13px;
  }

  .page-id-20 .about-services img {
    width: 56px;
    height: 56px;
  }
}


/* ブログ記事本文のH2のみ */
.single-post .post_content h2 {
  padding: 10px 15px;
  color: #0a315b;
  background: #f3f7fa;
  border-left: 5px solid #f5a623;
  border-bottom: 1px solid #dbe5ed;
}

/* 投稿一覧のアイキャッチ画像を統一 */
.p-postList__thumb {
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #f5f5f5;
}

.p-postList__thumb img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}