@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
*/

/* ロゴ画像を下に飛び出させて重ねる */
.l-header__logo {
  position: relative;
  width: 120px;
}
.home .l-header__logo {
  width: 140px;
}
.c-headLogo {
  position: relative;
  top: -26%;
  left: 0;
  z-index: 9999;
  width: 100%;
  margin: 0 !important;
}
.c-headLogo__img {
  max-height: none !important;
  height: auto !important;
  width: 100%;
}
#fix_header .c-headLogo__img {
  width: 70%;
}

/* ヘッダーメニュー横幅を広げる */


/* メニューリンク */
.custom-link {
  display: flex;
  align-items: center;
  text-decoration: none;
  padding: 12px 4px;
  color: #4a4a4a;
  transition: opacity 0.3s ease;
}
.custom-link:hover {
  opacity: 0.6;
}
.link-bor-1 {
  border-bottom: 2px solid #0072BD;
}
.link-bor-2 {
  border-bottom: 2px solid #7BC844;
}
.link-bor-3 {
  border-bottom: 2px solid #F49E15;
}
.link-bor-4 {
  border-bottom: 2px solid #4FBFC1;
}
.link-bor-5 {
  border-bottom: 2px solid #ED1E79;
}
.custom-link .c-link-icon-left {
  display: inline-block;
  margin-right: 20px;
  flex-shrink: 0;
}
.l-icon-1 {
  width: 64px;
  height: 52px;
  background-image: url("images/l-icon-1.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.l-icon-2 {
  width: 60px;
  height: 52px;
  background-image: url("images/l-icon-2.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.l-icon-3 {
  width: 50px;
  height: 52px;
  background-image: url("images/l-icon-3.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.l-icon-4 {
  width: 45px;
  height: 52px;
  background-image: url("images/l-icon-4.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.l-icon-5 {
  width: 61px;
  height: 52px;
  background-image: url("images/l-icon-5.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.custom-link .c-link-text {
  font-size: 2em;
  font-weight: 500;
  letter-spacing: 0.1em;
  flex-grow: 1;
}
.custom-link .c-link-icon-right {
  display: inline-block;
  width: 24px;
  height: 24px;
  flex-shrink: 0;
  margin-right: 1em;

  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.r-icon-1 {
  background-image: url("images/r-icon-1.svg");
}
.r-icon-2 {
  background-image: url("images/r-icon-2.svg");
}
.r-icon-3 {
  background-image: url("images/r-icon-3.svg");
}
.r-icon-4 {
  background-image: url("images/r-icon-4.svg");
}
.r-icon-5 {
  background-image: url("images/r-icon-5.svg");
}

.bg-our {
  background: #fff;
  border-radius: 36px;
  padding: 2em;
}
.img-br img {
  border-radius: 12px;
}

/* トップページ 見出し2 */
.c-custom-h2 {
  display: flex;
  flex-direction: column;
  align-items: center;

  border: none !important;
  background: transparent !important;
  padding: 0 !important;
}
.c-custom-h2-left {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: fit-content;
  margin-bottom: 0 !important;
  margin-left: 1.5rem !important;

  border: none !important;
  background: transparent !important;
  padding: 0 !important;
}
.home .post_content h2::before {
  border-top: none;
  border-bottom: none;
}
.c-custom-h2__icon {
  display: block;
  width: 60px;
  height: 40px;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center bottom;
  margin-bottom: 10px;
}
.ic-news {
  background-image: url('images/ic-news.png');
}
.ic-business {
  background-image: url('images/ic-business.png');
}
.ic-product {
  background-image: url('images/ic-product.svg');
}
.c-custom-h2__main {
  font-size: 1.2em;
  color: #333;
  line-height: 1.4;
  font-weight: 500;
  letter-spacing: 0.1em;
}
.c-custom-h2__sub {
  font-size: 0.75em;
  color: #FB7BAB;
  letter-spacing: 0.1em;
  margin-top: 5px;
}

/* =========================================
   ブログパーツ（右側）の装飾 (スマホ・PC共通)
========================================= */
.custom-header-right {
  display: flex;
  align-items: center;
  gap: 12px;
  height: 100%;
}
.custom-header-right .chr-tel {
  display: flex;
  align-items: center;
  color: #ffffff;
  font-size: 1.2rem;
  margin-right: 8px;
  font-family: "Helvetica Neue", Arial, sans-serif;
  letter-spacing: 1px;
}
.custom-header-right .chr-tel-icon {
  display: inline-block;
  width: 20px;
  height: 20px;
  margin-right: 4px;
  background-image: url("images/ic-phone.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
/* ボタン共通 */
.custom-header-right .chr-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-decoration: none !important;
  color: #ffffff !important;
  line-height: 1.2;
}
.custom-header-right .chr-btn span {
  font-size: 10px;
  margin-top: 4px;
}
/* 白丸アイコン */
.custom-header-right .chr-btn-icon {
  width: 36px;
  height: 36px;
  background-color: #ffffff;
  border-radius: 50%;
  background-repeat: no-repeat;
  background-position: center;
}
/* メールアイコン（青） */
.custom-header-right .mail-icon {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%23285994' d='M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0L492.8 150.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48H48zM0 176V384c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V176L294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176z'/%3E%3C/svg%3E");
  background-size: 18px;
}
/* マップピンアイコン（青） */
.custom-header-right .map-icon {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath fill='%23285994' d='M215.7 499.2C267 435 384 279.4 384 192C384 86 298 0 192 0S0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128z'/%3E%3C/svg%3E");
  background-size: 16px;
}

/* フッター */
.footer-ttl {
  display: flex;
  align-items: center;
  font-size: 1.4em;
  color: #fff;
}
.footer-icon {
  display: inline-block;
  width: 40px;
  height: 40px;
  background-color: #fff;
  border-radius: 50%;
  margin-right: 8px;

  background-repeat: no-repeat;
  background-position: center;
  background-size: 20px;
}
.ic-f-1 {
  background-image: url("images/ic-access.png");
}
.ic-f-2 {
  background-image: url("images/ic-content.png");
}

.swell-block-box-menu.is-style-default .swell-block-box-menu__item {
  border: none;
}
.swell-block-box-menu__link {
  padding: .5em 1em;
}

.footer-logo img {
  border-radius: 8px;
}

.top-msg {
  font-size: 1.5em;
  text-align: center;
  letter-spacing: 2px;
  line-height: 1.6;
  padding-bottom: 1em;
  position: relative;
}
.top-msg::after {
  content: "";
  display: block;
  width: 70%;
  max-width: 450px;
  margin: 24px auto 0;
  border-bottom: 2px dashed #FF7DAD;
}
.top-txt {
  font-size: 1.25em;
  text-align: center;
}

/* =========================================
   SWELL アウトラインボタン：文字色のみ変更（枠線はそのまま）
========================================= */
.swell-block-button.is-style-btn_line .swell-block-button__link span {
  color: #333333 !important;
}
.swell-block-button.is-style-btn_line .swell-block-button__link:hover span {
  color: #ffffff !important;
}

/* JPPS リンクボックス */
.jpps-link-block {
  background-color: #ffffff;
  border-radius: 40px;
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
  padding: 2.5rem 2rem 2rem;
  max-width: 600px;
  width: 100%;
  color: #333333;
  display: flex;
  flex-direction: column;
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.jpps-link-block:hover {
  transform: translateY(-5px);
  box-shadow: 0 15px 30px rgba(0, 0, 0, 0.15);
}
.jpps-top-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 2rem;
}
.jpps-logo-area {
  display: flex;
  align-items: flex-end;
}
.jpps-logo {
  max-height: 70px;
  width: auto;
}
.jpps-details-trigger {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  text-align: right;
}
.jpps-arrow-icon {
  width: 26px;
  height: 26px;
  background-color: #C1282D;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
}
.jpps-arrow-symbol {
  color: #ffffff;
  font-weight: bold;
  font-size: 1rem;
  line-height: 1;
}
.jpps-details-text {
  font-size: 1rem;
}
.jpps-text-area {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.jpps-text-area p {
  font-size: 1.25rem;
  line-height: 1.4;
}

/* 製品紹介 詳しくはこちらボタン */
.home #product .swell-block-button .swell-block-button__link[data-has-icon] {
  border-radius: 8px;
}
.home #product .is-style-more_btn a:after {
  content: none;
}
.home #product .is-style-more_btn a:hover {
  background-color: #fff;
  color: #1c9896;
}

/* トップページのみフッターウィジェットとの余白を詰める */
.home .l-content {
  margin: 0 auto;
}
.home .w-beforeFooter {
  margin: 0 auto 3em;
}

/* 休日タイトルを横並び */
div.holiday-titles {
  display:flex;
  margin-top: 1em;
}
.xo-event-calendar p.holiday-title {
  padding-right: 12px;
}

/* フッターウィジェットの上余白を詰める */
.w-beforeFooter {
  margin-top: 0;
}

/* 記事ページの上部カテゴリー非表示 */
.-top .p-articleMetas__termList {
  display: none;
}

/* 見出しボックス */
.id_45 .is-style-emboss_box {
  border-top: 2px solid #8CC540;
}
.id_47 .is-style-emboss_box {
  border-top: 2px solid #FEB322;
}
.id_49 .is-style-emboss_box {
  border-top: 2px solid #50BEBF;
}

/* 確認画面の時だけ、hide-on-confirm クラスがついた画像を非表示にする */
.snow-monkey-form[data-screen="confirm"] .hide-on-confirm {
  display: none;
}


/* ------------------------------------- */
/* PCのみ */
/* ------------------------------------- */
@media (min-width: 960px) {

/* 番号発信しない */
a[href*="tel:"] {
  pointer-events: none;
  cursor: default;
  text-decoration: none;
}

/* タブレットのみ改行 */
br.tab_only {
  display: none;
}

/* =========================================
   ヘッダーメニュー
========================================= */
/* ナビと右側ウィジェットの隙間をなくす */
.l-header__inner {
  column-gap: 0 !important;
}
/* グローバルナビをカプセルの「左半分」にする */
#gnav,
.l-fixHeader__gnav {
  background-color: #285994;
  border-radius: 60px 0 0 60px;
  padding-left: 24px;
  height: 80px;
  display: flex;
  align-items: center;
}
/* ヘッダー右側（ブログパーツ）をカプセルの「右半分」にする */
.w-header {
  background-color: #285994;
  border-radius: 0 60px 60px 0;
  padding-right: 24px;
  height: 80px;
  display: flex;
  align-items: center;
}
.-series-right .w-header {
  margin-left: 0 !important;
}
.custom-header-right .chr-tel a {
  color: #fff;
}

/* =========================================
   メニュー（左側）の装飾
========================================= */
#gnav .menu-item > a,
#fix_header .menu-item > a {
  color: #ffffff !important;
  font-size: 15px;
  font-weight: 500;
  padding: 0 20px 0 28px;
  position: relative;
  border: none !important;
}
#gnav .menu-item > a::before,
#fix_header .menu-item > a::before {
  content: "";
  position: absolute;
  left: 4px;
  top: 50%;
  transform: translateY(-50%);
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 512'%3E%3Cpath fill='%23ffffff' d='M246.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L178.7 256 73.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 6px;
}
.icon-pink > a::before { background-color: #FE7CAC; }
.icon-blue > a::before { background-color: #41A8F5; }
.icon-green > a::before { background-color: #8CC540; }
.icon-orange > a::before { background-color: #FEB322; }
.icon-teal > a::before { background-color: #50BEBF; }
.icon-red > a::before { background-color: #F01F7B; }

/* =========================================
   画像全体を1画面に収める
========================================= */
.p-mainVisual {
  height: 100dvh !important;
  max-height: 100dvh !important;
  min-height: auto !important;
  background-color: #ffffff;
}
/* スライダー全体の高さを100%に固定 */
.p-mainVisual__inner,
.p-mainVisual__slider,
.p-mainVisual__slide,
.p-mainVisual__imgLayer,
.swiper-container {
  height: 100% !important;
}
img.p-mainVisual__img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important; /* 画像を切らずに全体を表示する */
}

/* ファーストビューの上に余白を入れる */
.l-header {
  margin-top: 1em;
}
/* ヘッダー */
.l-header .l-container,
.l-fixHeader .l-container {
  max-width: fit-content;
  padding-left: 0;
  padding-right: 0;
}

/* お問い合わせ */
.id_152 .wp-block-image img {
  width: 80%;
}

/* キャプション */
.id_155 .wp-block-image figcaption {
  font-size: 1em !important;
}


/* ------------------------------------- */
/* ノートPC以下 */
/* ------------------------------------- */
@media (max-width: 1024px) {

/* ファーストビューの横幅をフル表示 */
.l-header .l-container {
  max-width: 100%;
}
#gnav .menu-item > a,
.custom-header-right .chr-tel {
  font-size: 14px;
}

/* 1024px以下でPCヘッダー内部ウィジェットを非表示 */
.w-header {
  display: none !important;
}

}

/* 1025px以上 */
@media (min-width: 1025px) {
  br.pc_only {
    display: none;
  }
  
}



} /* PC画面 ここまで */


/* ------------------------------------- */
/* ノートPC向け */
/* 1024px以下、タブレット・スマホにも反映
/* ------------------------------------- */
@media (max-width: 1024px) {


} /* ノートPC向け ここまで*/


/* ------------------------------------- */
/* PCとタブレット */
/* ------------------------------------- */
@media (min-width: 600px) {

/* spのみ改行 */
br.sp_only {
  display: none;
}


} /* PCとタブレット ここまで */


/* ------------------------------------- */
/* タブレットのみ */
/* ------------------------------------- */
@media (max-width: 959px) and (min-width: 600px) {


} /* タブレットのみ ここまで */


/* ------------------------------------- */
/* タブレットとSP */
/* ------------------------------------- */
@media (max-width: 959px) {

.custom-header-right {
  background-color: #285994;
  padding: 1em .5em;
}
.custom-header-right .chr-tel {
  font-size: 18px;
  margin-right: 0;
  margin-left: 8px;
}

/* PCのみ表示 */
#message .pc-only {
  display: none;
}

.c-custom-h2__icon {
  width: 45px;
  height: 30px;
}

.footer-logo img {
  width: 60px;
  height: 60px;
}


} /* タブレットとSP ここまで*/


/* ------------------------------------- */
/* SPのみ */
/* ------------------------------------- */
@media (max-width: 599px) {

/* タブレットのみ改行 */
br.tab_only {
  display: none;
}

.l-header__logo {
  width: 80px;
}
.bg-our {
  padding: 1em .25em;
}
.l-icon-1 {
  width: 44px;
  height: 36px;
}
.l-icon-2 {
  width: 42px;
  height: 36px;
}
.l-icon-3 {
  width: 35px;
  height: 36px;
}
.l-icon-4 {
  width: 31px;
  height: 36px;
}
.l-icon-5 {
  width: 42px;
  height: 36px;
}
.custom-link .c-link-icon-left {
  margin-right: 10px;
}
.custom-link .c-link-text {
  font-size: 1.2em;
}
.custom-link .c-link-icon-right {
  margin-right: 0;
}
.top-msg {
  font-size: 1.25em;
}
.top-txt {
  font-size: 1em;
}

} /* SPのみ ここまで*/
