/*
 * SWELL標準クラスへの上書き用
 */

/* ======================================

  本文リンクカラー

========================================= */

/* 本文内リンクの通常色と下線の見え方 */
.post_content a {
  color: var(--poscom-link);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
  transition: color 0.2s ease;
}

/* 本文内リンクのhover色 */
.post_content a:hover {
  color: var(--poscom-link-hover);
}

/* ======================================

  SWELL主要リンクのhover色

========================================= */

/* 本文・サイドバー・ウィジェット・投稿リスト系リンクのhover色 */
.post_content a:hover,
.l-sidebar a:hover,
.c-widget a:hover,
.p-postList a:hover,
.p-breadcrumb a:hover,
.c-categoryList a:hover,
.wp-block-latest-posts a:hover,
.wp-block-archives a:hover,
.wp-block-categories a:hover {
  color: var(--poscom-red);
}

/* グローバルナビのhover色 */
.c-gnav a:hover {
  color: var(--poscom-red);
}

/* ======================================

  スマホ開閉メニュー標準表示の非表示

========================================= */

/* ブログパーツで内容を作るため、SWELL標準のメニュー内容を非表示にする */
.p-spMenu__nav {
  display: none;
}

/* ブログパーツで見出しを作るため、SWELL標準のメニュータイトルを非表示にする */
.c-widget__title.-spmenu {
  display: none;
}

/* ======================================
  SP Header Contact Actions
  スマホヘッダー専用：メール・電話・フォーム
====================================== */

@media (max-width: 959px) {
  body.poscom-sp-header-ready #header .l-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 5px;
    min-height: 70px;
    padding-top: 6px;
    padding-bottom: 6px;
  }

  body.poscom-sp-header-ready #header .l-header__logo {
    align-self: stretch;
    flex: 1 1 178px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 7px;
    min-width: 0;
    margin-right: 0;
  }

  body.poscom-sp-header-ready #header .c-headLogo,
  body.poscom-sp-header-ready #header .c-headLogo__link {
    display: flex;
    align-items: center;
    max-width: 100%;
    min-width: 0;
    margin: 0;
    line-height: 0;
  }

  body.poscom-sp-header-ready #header .c-headLogo {
    flex: 0 1 auto;
    min-width: 0;
  }

  body.poscom-sp-header-ready #header .c-headLogo__link {
    flex: 0 1 auto;
    min-width: 0;
  }

  body.poscom-sp-header-ready #header .c-headLogo__img {
    width: auto;
    max-width: min(184px, 100%);
    max-height: 60px;
    object-fit: contain;
  }

  body.poscom-sp-header-ready #header .l-header__logo::after {
    content: "";
    flex: 0 0 auto;
    display: block;
    width: 31px;
    height: 31px;
    align-self: center;
    margin-left: 0;
    border-radius: 5px;
    background-image: url("/wp-content/uploads/2026/06/privacymark-rogo01.png");
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    transform: translateY(7px);
  }

  body.poscom-sp-header-ready #header .poscom-sp-header-actions {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 3px;
    min-width: 0;
    margin-right: 9px;
  }

  body.poscom-sp-header-ready #header .poscom-sp-header-action {
    box-sizing: border-box;
    flex: 0 0 40px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    width: 40px;
    min-width: 40px;
    height: 46px;
    padding: 3px 1px;
    color: #061b3a;
    font-family: var(--font-sans, "Noto Sans JP", "Yu Gothic", "Meiryo", sans-serif);
    text-decoration: none;
    background: #ffffff;
    border-radius: 6px;
  }

  body.poscom-sp-header-ready #header .poscom-sp-header-action:hover,
  body.poscom-sp-header-ready #header .poscom-sp-header-action:focus-visible {
    color: #061b3a;
    text-decoration: none;
    outline: none;
  }

  body.poscom-sp-header-ready #header .poscom-sp-header-action__icon {
    position: relative;
    display: block;
    width: 22px;
    height: 22px;
    color: currentColor;
  }

  body.poscom-sp-header-ready #header .poscom-sp-header-action__icon::before {
    content: "";
    display: block;
    width: 22px;
    height: 22px;
    background: currentColor;
    -webkit-mask-position: center;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    mask-position: center;
    mask-repeat: no-repeat;
    mask-size: contain;
  }

  body.poscom-sp-header-ready #header .poscom-sp-header-action--mail .poscom-sp-header-action__icon {
    color: #0a8fa3;
  }

  body.poscom-sp-header-ready #header .poscom-sp-header-action--mail .poscom-sp-header-action__icon::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%2024%2024%27%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%3E%3Cpath%20d%3D%27M20%204H4c-1.1%200-2%20.9-2%202v12c0%201.1.9%202%202%202h16c1.1%200%202-.9%202-2V6c0-1.1-.9-2-2-2Zm0%204-8%205-8-5V6l8%205%208-5v2Z%27/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%2024%2024%27%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%3E%3Cpath%20d%3D%27M20%204H4c-1.1%200-2%20.9-2%202v12c0%201.1.9%202%202%202h16c1.1%200%202-.9%202-2V6c0-1.1-.9-2-2-2Zm0%204-8%205-8-5V6l8%205%208-5v2Z%27/%3E%3C/svg%3E");
  }

  body.poscom-sp-header-ready #header .poscom-sp-header-action--tel .poscom-sp-header-action__icon {
    color: #b40019;
  }

  body.poscom-sp-header-ready #header .poscom-sp-header-action--tel .poscom-sp-header-action__icon::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%2024%2024%27%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%3E%3Cpath%20d%3D%27M6.62%2010.79c1.44%202.83%203.76%205.15%206.59%206.59l2.2-2.2c.27-.27.67-.36%201.02-.24%201.12.37%202.33.57%203.57.57.55%200%201%20.45%201%201V20c0%20.55-.45%201-1%201C10.61%2021%203%2013.39%203%204c0-.55.45-1%201-1h3.5c.55%200%201%20.45%201%201%200%201.24.2%202.45.57%203.57.11.35.03.74-.25%201.02l-2.2%202.2Z%27/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%2024%2024%27%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%3E%3Cpath%20d%3D%27M6.62%2010.79c1.44%202.83%203.76%205.15%206.59%206.59l2.2-2.2c.27-.27.67-.36%201.02-.24%201.12.37%202.33.57%203.57.57.55%200%201%20.45%201%201V20c0%20.55-.45%201-1%201C10.61%2021%203%2013.39%203%204c0-.55.45-1%201-1h3.5c.55%200%201%20.45%201%201%200%201.24.2%202.45.57%203.57.11.35.03.74-.25%201.02l-2.2%202.2Z%27/%3E%3C/svg%3E");
  }

  body.poscom-sp-header-ready #header .poscom-sp-header-action--form .poscom-sp-header-action__icon {
    color: #16c6d3;
  }

  body.poscom-sp-header-ready #header .poscom-sp-header-action--form .poscom-sp-header-action__icon::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%2024%2024%27%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%3E%3Cpath%20d%3D%27M14%202H6c-1.1%200-2%20.9-2%202v16c0%201.1.9%202%202%202h12c1.1%200%202-.9%202-2V8l-6-6Zm-1%207V3.5L18.5%209H13ZM8%2013h8v2H8v-2Zm0%204h8v2H8v-2Zm0-8h3v2H8V9Z%27/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%2024%2024%27%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%3E%3Cpath%20d%3D%27M14%202H6c-1.1%200-2%20.9-2%202v16c0%201.1.9%202%202%202h12c1.1%200%202-.9%202-2V8l-6-6Zm-1%207V3.5L18.5%209H13ZM8%2013h8v2H8v-2Zm0%204h8v2H8v-2Zm0-8h3v2H8V9Z%27/%3E%3C/svg%3E");
  }

  body.poscom-sp-header-ready #header .poscom-sp-header-action__label {
    display: block;
    width: 100%;
    overflow: hidden;
    color: #061b3a;
    font-size: 10px;
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: 0;
    text-align: center;
    white-space: nowrap;
  }

  body.poscom-sp-header-ready #header .l-header__customBtn {
    display: none;
  }

  body.poscom-sp-header-ready #header .l-header__menuBtn.sp_ {
    flex: 0 0 54px;
    width: 54px;
    min-width: 54px;
    height: 54px;
    margin: 0 6px 0 0;
  }

  body.poscom-sp-header-ready #header .l-header__menuBtn.sp_ .c-iconBtn {
    position: relative;
    display: flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 51px;
    height: 51px;
    padding: 0;
    color: #ffffff;
    background: #061b3a;
    border: 0;
    border-radius: 10px;
    box-shadow:
      0 6px 12px rgba(6, 27, 58, 0.12),
      0 1px 4px rgba(6, 27, 58, 0.06),
      inset 0 0 0 1px rgba(255, 255, 255, 0.06);
    transform: translateY(-1px);
  }

  body.poscom-sp-header-ready #header .l-header__menuBtn.sp_ .c-iconBtn__icon {
    position: relative;
    display: block;
    width: 26px;
    height: 2px;
    margin: 0 0 12px;
    background: #ffffff;
    border-radius: 999px;
    font-size: 0;
    line-height: 0;
    transform: none;
  }

  body.poscom-sp-header-ready #header .l-header__menuBtn.sp_ .c-iconBtn__icon::before,
  body.poscom-sp-header-ready #header .l-header__menuBtn.sp_ .c-iconBtn__icon::after {
    content: "";
    position: absolute;
    left: 0;
    width: 26px;
    height: 2px;
    background: #ffffff;
    border-radius: 999px;
  }

  body.poscom-sp-header-ready #header .l-header__menuBtn.sp_ .c-iconBtn__icon::before {
    top: -8px;
  }

  body.poscom-sp-header-ready #header .l-header__menuBtn.sp_ .c-iconBtn__icon::after {
    top: 8px;
  }

  body.poscom-sp-header-ready #header .l-header__menuBtn.sp_ .c-iconBtn::after {
    content: "MENU";
    position: absolute;
    right: 0;
    bottom: 7px;
    left: 0;
    color: #ffffff;
    font-family: var(--font-en, "IBM Plex Sans", "Helvetica Neue", Arial, sans-serif);
    font-size: 9px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.08em;
    text-align: center;
  }
}

@media (max-width: 390px) {
  body.poscom-sp-header-ready #header .l-header__inner {
    gap: 3px;
  }

  body.poscom-sp-header-ready #header .l-header__logo {
    flex: 1 1 154px;
    gap: 4px;
  }

  body.poscom-sp-header-ready #header .c-headLogo__img {
    max-width: min(156px, 100%);
    max-height: 50px;
  }

  body.poscom-sp-header-ready #header .l-header__logo::after {
    width: 24px;
    height: 24px;
    margin-left: 0;
    border-radius: 4px;
    transform: translateY(5px);
  }

  body.poscom-sp-header-ready #header .poscom-sp-header-actions {
    gap: 2px;
    margin-right: 6px;
  }

  body.poscom-sp-header-ready #header .poscom-sp-header-action {
    flex-basis: 37px;
    width: 37px;
    min-width: 37px;
  }

  body.poscom-sp-header-ready #header .poscom-sp-header-action__label {
    font-size: 9px;
  }

  body.poscom-sp-header-ready #header .l-header__menuBtn.sp_,
  body.poscom-sp-header-ready #header .l-header__menuBtn.sp_ .c-iconBtn {
    flex-basis: 50px;
    width: 50px;
    min-width: 50px;
    height: 50px;
  }

  body.poscom-sp-header-ready #header .l-header__menuBtn.sp_ .c-iconBtn::after {
    bottom: 6px;
    font-size: 8px;
  }
}

@media (max-width: 360px) {
  body.poscom-sp-header-ready #header .l-header__inner {
    gap: 2px;
  }

  body.poscom-sp-header-ready #header .l-header__logo {
    flex: 1 1 138px;
    gap: 3px;
  }

  body.poscom-sp-header-ready #header .c-headLogo__img {
    max-width: min(140px, 100%);
    max-height: 46px;
  }

  body.poscom-sp-header-ready #header .l-header__logo::after {
    width: 20px;
    height: 20px;
    margin-left: 0;
    border-radius: 3.5px;
    transform: translateY(4px);
  }

  body.poscom-sp-header-ready #header .poscom-sp-header-actions {
    gap: 1px;
    margin-right: 4px;
  }

  body.poscom-sp-header-ready #header .poscom-sp-header-action {
    flex-basis: 35px;
    width: 35px;
    min-width: 35px;
  }

  body.poscom-sp-header-ready #header .poscom-sp-header-action__icon,
  body.poscom-sp-header-ready #header .poscom-sp-header-action__icon::before {
    width: 20px;
    height: 20px;
  }

  body.poscom-sp-header-ready #header .poscom-sp-header-action__label {
    font-size: 8.5px;
  }

  body.poscom-sp-header-ready #header .l-header__menuBtn.sp_,
  body.poscom-sp-header-ready #header .l-header__menuBtn.sp_ .c-iconBtn {
    flex-basis: 48px;
    width: 48px;
    min-width: 48px;
    height: 48px;
  }
}


/* ======================================
  SP Info Bar
  スマホ専用：事業コピー表示
====================================== */

@media (min-width: 960px) {
  .c-infoBar {
    display: none;
  }
}

@media (max-width: 959px) {
  .c-infoBar {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    overflow: hidden;
    background:
      radial-gradient(
        circle at 86% 50%,
        rgba(22, 198, 211, 0.12) 0%,
        rgba(22, 198, 211, 0.05) 28%,
        transparent 58%
      ),
      linear-gradient(
        135deg,
        #f4fbf5 0%,
        #e9f7ed 44%,
        #dff2e7 100%
      );
    border-top: 1px solid rgba(34, 142, 56, 0.16);
    border-bottom: 1px solid rgba(6, 27, 58, 0.12);
    box-shadow:
      inset 0 1px 0 rgba(255, 255, 255, 0.92),
      inset 0 -1px 0 rgba(34, 142, 56, 0.07);
  }

  .c-infoBar::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    width: min(100%, 620px);
    height: 1px;
    background:
      linear-gradient(
        90deg,
        transparent 0%,
        rgba(255, 255, 255, 0.92) 28%,
        rgba(56, 237, 217, 0.34) 50%,
        rgba(255, 255, 255, 0.84) 72%,
        transparent 100%
      );
    transform: translateX(-50%);
    pointer-events: none;
  }

  .c-infoBar::after {
    content: "";
    position: absolute;
    right: -34px;
    top: -28px;
    width: 96px;
    height: 96px;
    background:
      linear-gradient(
        135deg,
        rgba(34, 142, 56, 0.10),
        rgba(22, 198, 211, 0.08)
      );
    transform: rotate(18deg);
    pointer-events: none;
  }

  .c-infoBar__text {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 40px;
    padding: 0 14px;
    color: #061b3a;
    font-size: 14px;
    font-weight: 850;
    line-height: 1;
    letter-spacing: 0.055em;
    text-align: center;
    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.82);
    transform: translateY(1px);
  }

  .c-infoBar .c-infoBar__btn,
  .c-infoBar .infoSep,
  .c-infoBar .infoSep ~ * {
    display: none !important;
  }
}


/* ======================================
  SWELL Fixed Bottom Menu
  スマホ固定フッターメニュー
  メニュー / メール / フォーム / 電話
====================================== */

@media (max-width: 959px) {
  #fix_bottom_menu {
    z-index: 9998;
    background: transparent;
  }

  #fix_bottom_menu .menu_list {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    align-items: stretch;
    justify-content: stretch;
    height: calc(74px + env(safe-area-inset-bottom));
    padding: 0 0 env(safe-area-inset-bottom) !important;
    overflow: hidden;
    background: #061b3a;
    border-top: 1px solid rgba(22, 198, 211, 0.28);
    box-shadow:
      0 -14px 34px rgba(6, 27, 58, 0.34),
      0 -1px 0 rgba(255, 255, 255, 0.08);
  }

  #fix_bottom_menu .menu-item {
    min-width: 0;
    height: 100%;
    margin: 0;
    padding: 0;
  }

  /* 1：メニュー（SWELL出力は a ではなく li.menu_btn） */
  #fix_bottom_menu .menu_btn {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    min-width: 0;
    height: 100%;
    min-height: 74px;
    padding: 8px 2px 7px;
    color: #ffffff;
    background:
      linear-gradient(180deg, #082a57 0%, #061b3a 100%);
    box-shadow:
      inset 0 -1px 0 rgba(255, 255, 255, 0.22),
      inset -1px 0 0 rgba(255, 255, 255, 0.14),
      inset 0 1px 0 rgba(255, 255, 255, 0.10);
    line-height: 1.1;
    letter-spacing: 0.04em;
    overflow: hidden;
    transition:
      filter 0.2s ease,
      transform 0.2s ease,
      background-color 0.2s ease;
  }

  #fix_bottom_menu .menu_list {
    background: #04162f;
  }

  #fix_bottom_menu .menu-item a {
    position: relative;
    display: flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    height: 100%;
    min-height: 74px;
    padding: 8px 2px 7px !important;
    color: #ffffff !important;
    text-decoration: none !important;
    line-height: 1.1;
    letter-spacing: 0.04em;
    overflow: hidden;
    transition:
      filter 0.2s ease,
      transform 0.2s ease,
      background-color 0.2s ease;
  }

  #fix_bottom_menu .menu-item a::before {
    position: relative;
    z-index: 1;
    flex: 0 0 auto;
    display: block;
    margin-inline: auto;
    text-align: center;
  }

  #fix_bottom_menu .menu_btn::after,
  #fix_bottom_menu .menu-item a::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
      linear-gradient(
        180deg,
        rgba(255, 255, 255, 0.18) 0%,
        rgba(255, 255, 255, 0.06) 38%,
        rgba(255, 255, 255, 0) 100%
      );
    opacity: 0.8;
  }

  #fix_bottom_menu .menu-item a:hover,
  #fix_bottom_menu .menu-item a:active,
  #fix_bottom_menu .menu_btn:hover,
  #fix_bottom_menu .menu_btn:active {
    color: #ffffff !important;
    filter: brightness(1.08);
  }

  #fix_bottom_menu .menu_btn:active,
  #fix_bottom_menu .menu-item a:active {
    transform: translateY(1px);
  }

  #fix_bottom_menu .menu_btn .open_btn {
    position: relative;
    z-index: 1;
    flex: 0 0 auto;
    display: block;
    width: 31px;
    height: 18px;
    margin: 0 auto 3px;
    color: transparent;
    font-size: 0;
    line-height: 1;
    text-align: center;
    transform: none;
  }

  #fix_bottom_menu .menu_btn .open_btn::before {
    content: "";
    display: block;
    width: 31px;
    height: 2.5px;
    background: #ffffff;
    border-radius: 999px;
    box-shadow:
      0 8px 0 #ffffff,
      0 16px 0 #ffffff;
  }

  #fix_bottom_menu .menu-item span {
    position: relative;
    z-index: 1;
    display: block;
    width: 100%;
    margin: 0;
    color: inherit;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.18;
    text-align: center;
    white-space: nowrap;
  }

  /* SWELL側やメニュー側で既存アイコンが出る場合は二重表示を防ぐ */
  #fix_bottom_menu .menu-item a > i,
  #fix_bottom_menu .menu-item a > svg,
  #fix_bottom_menu .menu-item a .c-iconBtn__icon {
    display: none !important;
  }

  #fix_bottom_menu .menu-item:nth-child(2) a::before,
  #fix_bottom_menu .menu-item:nth-child(3) a::before,
  #fix_bottom_menu .menu-item:nth-child(4) a::before {
    content: "";
    width: 27px;
    height: 27px;
    background: #ffffff;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
  }

  /* 2：メール */
  #fix_bottom_menu .menu-item:nth-child(2) a {
    background:
      linear-gradient(180deg, #0a8fa3 0%, #087b8d 100%);
  }

  #fix_bottom_menu .menu-item:nth-child(2) a::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%2024%2024%27%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%3E%3Cg%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%20stroke-width%3D%272.15%27%3E%3Crect%20x%3D%273%27%20y%3D%275%27%20width%3D%2718%27%20height%3D%2714%27%20rx%3D%272%27/%3E%3Cpath%20d%3D%27m4%207%208%206%208-6%27/%3E%3Cpath%20d%3D%27m4%2017%205.2-4%27/%3E%3Cpath%20d%3D%27M14.8%2013%2020%2017%27/%3E%3C/g%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%2024%2024%27%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%3E%3Cg%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%20stroke-width%3D%272.15%27%3E%3Crect%20x%3D%273%27%20y%3D%275%27%20width%3D%2718%27%20height%3D%2714%27%20rx%3D%272%27/%3E%3Cpath%20d%3D%27m4%207%208%206%208-6%27/%3E%3Cpath%20d%3D%27m4%2017%205.2-4%27/%3E%3Cpath%20d%3D%27M14.8%2013%2020%2017%27/%3E%3C/g%3E%3C/svg%3E");
  }

  /* 3：フォーム */
  #fix_bottom_menu .menu-item:nth-child(3) a {
    background:
      linear-gradient(180deg, #16c6d3 0%, #0f9fb0 100%);
  }

  #fix_bottom_menu .menu-item:nth-child(3) a::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%2024%2024%27%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%3E%3Cg%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%20stroke-width%3D%272.15%27%3E%3Cpath%20d%3D%27M6%203h8l4%204v14H6z%27/%3E%3Cpath%20d%3D%27M14%203v5h4%27/%3E%3Cpath%20d%3D%27M8.5%2012h7%27/%3E%3Cpath%20d%3D%27M8.5%2016h7%27/%3E%3Cpath%20d%3D%27M8.5%208h3%27/%3E%3C/g%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%2024%2024%27%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%3E%3Cg%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%20stroke-width%3D%272.15%27%3E%3Cpath%20d%3D%27M6%203h8l4%204v14H6z%27/%3E%3Cpath%20d%3D%27M14%203v5h4%27/%3E%3Cpath%20d%3D%27M8.5%2012h7%27/%3E%3Cpath%20d%3D%27M8.5%2016h7%27/%3E%3Cpath%20d%3D%27M8.5%208h3%27/%3E%3C/g%3E%3C/svg%3E");
  }

  /* 4：電話 */
  #fix_bottom_menu .menu-item:nth-child(4) a {
    background:
      linear-gradient(180deg, #b40019 0%, #8f0712 100%);
  }

  #fix_bottom_menu .menu-item:nth-child(4) a::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%2024%2024%27%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%3E%3Cg%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%20stroke-width%3D%272.15%27%3E%3Cpath%20d%3D%27M22%2016.92v3a2%202%200%200%201-2.18%202%2019.79%2019.79%200%200%201-8.63-3.07%2019.5%2019.5%200%200%201-6-6A19.79%2019.79%200%200%201%202.12%204.18%202%202%200%200%201%204.11%202h3a2%202%200%200%201%202%201.72c.12.86.31%201.7.57%202.5a2%202%200%200%201-.45%202.11L8%209.55a16%2016%200%200%200%206.45%206.45l1.22-1.22a2%202%200%200%201%202.11-.45c.8.26%201.64.45%202.5.57A2%202%200%200%201%2022%2016.92Z%27/%3E%3Cpath%20d%3D%27M14%202.4a8.3%208.3%200%200%201%207.6%207.6%27/%3E%3Cpath%20d%3D%27M14.4%206.4a4.3%204.3%200%200%201%203.2%203.2%27/%3E%3C/g%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%2024%2024%27%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%3E%3Cg%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%20stroke-width%3D%272.15%27%3E%3Cpath%20d%3D%27M22%2016.92v3a2%202%200%200%201-2.18%202%2019.79%2019.79%200%200%201-8.63-3.07%2019.5%2019.5%200%200%201-6-6A19.79%2019.79%200%200%201%202.12%204.18%202%202%200%200%201%204.11%202h3a2%202%200%200%201%202%201.72c.12.86.31%201.7.57%202.5a2%202%200%200%201-.45%202.11L8%209.55a16%2016%200%200%200%206.45%206.45l1.22-1.22a2%202%200%200%201%202.11-.45c.8.26%201.64.45%202.5.57A2%202%200%200%201%2022%2016.92Z%27/%3E%3Cpath%20d%3D%27M14%202.4a8.3%208.3%200%200%201%207.6%207.6%27/%3E%3Cpath%20d%3D%27M14.4%206.4a4.3%204.3%200%200%201%203.2%203.2%27/%3E%3C/g%3E%3C/svg%3E");
  }

  /* 固定フッター表示時、目次・ページトップボタンを少し上へ逃がす */
  #fix_bottom_menu + .p-fixBtnWrap {
    bottom: calc(82px + env(safe-area-inset-bottom));
  }
}

@media (max-width: 420px) {
  #fix_bottom_menu .menu_list {
    height: calc(70px + env(safe-area-inset-bottom));
  }

  #fix_bottom_menu .menu_btn {
    min-height: 70px;
    gap: 4px;
    padding-top: 7px;
    padding-bottom: 6px;
  }

  #fix_bottom_menu .menu-item a {
    min-height: 70px;
    gap: 4px;
    padding-top: 7px !important;
    padding-bottom: 6px !important;
  }

  #fix_bottom_menu .menu_btn .open_btn {
    width: 30px;
    height: 18px;
    margin-bottom: 3px;
  }

  #fix_bottom_menu .menu_btn .open_btn::before {
    width: 30px;
  }

  #fix_bottom_menu .menu-item a::before {
    width: 23px;
    height: 23px;
    font-size: 23px;
  }

  #fix_bottom_menu .menu-item:nth-child(2) a::before,
  #fix_bottom_menu .menu-item:nth-child(3) a::before,
  #fix_bottom_menu .menu-item:nth-child(4) a::before {
    width: 25px;
    height: 25px;
    font-size: 0;
  }

  #fix_bottom_menu .menu-item span {
    font-size: 11px;
    letter-spacing: 0.02em;
  }
}


/* ======================================
  Fixed Page Mobile Content Spacing
  スマホ：固定ページH1上の親余白を共通で詰める
====================================== */

@media (max-width: 600px) {
  /*
   * 固定ページ共通。
   * SWELL標準の #content.l-content padding-top によって
   * H1上の余白が広く見えるため、スマホだけ詰める。
   *
   * TOPページ・投稿詳細・投稿一覧には効かせない。
   */
  #body_wrap.page:not(.home):not(.front-page):not(.blog):not(.archive):not(.single) #content.l-content {
    padding-top: 0.25em !important;
  }

  #body_wrap.page:not(.home):not(.front-page):not(.blog):not(.archive):not(.single) .l-mainContent__inner {
    padding-top: 0.25em !important;
  }
}


/* ======================================
  Common Breadcrumb
  固定ページ / 投稿詳細 / 投稿アーカイブ共通
====================================== */

#body_wrap.page #breadcrumb,
#body_wrap.page .p-breadcrumb,
#body_wrap.single-post #breadcrumb,
#body_wrap.single-post .p-breadcrumb,
#body_wrap.archive #breadcrumb,
#body_wrap.archive .p-breadcrumb,
#body_wrap.blog #breadcrumb,
#body_wrap.blog .p-breadcrumb {
  margin: clamp(10px, 1.8vw, 20px) 0 clamp(18px, 2.6vw, 32px);
  padding: 0;
  color: var(--poscom-muted, #66727f);
  background: transparent;
  border: 0;
  box-shadow: none;
}

#body_wrap.page #breadcrumb .p-breadcrumb__list,
#body_wrap.page .p-breadcrumb__list,
#body_wrap.single-post #breadcrumb .p-breadcrumb__list,
#body_wrap.single-post .p-breadcrumb__list,
#body_wrap.archive #breadcrumb .p-breadcrumb__list,
#body_wrap.archive .p-breadcrumb__list,
#body_wrap.blog #breadcrumb .p-breadcrumb__list,
#body_wrap.blog .p-breadcrumb__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0;
  width: min(100%, 1180px);
  margin: 0 auto;
  padding: 0 clamp(16px, 4vw, 32px);
  color: inherit;
  font-family: var(--font-sans, "Noto Sans JP", "Yu Gothic", "Meiryo", sans-serif);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.7;
  letter-spacing: 0.04em;
  background: transparent;
}

#body_wrap.page #breadcrumb .p-breadcrumb__item,
#body_wrap.page .p-breadcrumb__item,
#body_wrap.single-post #breadcrumb .p-breadcrumb__item,
#body_wrap.single-post .p-breadcrumb__item,
#body_wrap.archive #breadcrumb .p-breadcrumb__item,
#body_wrap.archive .p-breadcrumb__item,
#body_wrap.blog #breadcrumb .p-breadcrumb__item,
#body_wrap.blog .p-breadcrumb__item {
  display: inline-flex;
  align-items: center;
  min-width: 0;
  color: inherit;
}

#body_wrap.page #breadcrumb .p-breadcrumb__item + .p-breadcrumb__item::before,
#body_wrap.page .p-breadcrumb__item + .p-breadcrumb__item::before,
#body_wrap.single-post #breadcrumb .p-breadcrumb__item + .p-breadcrumb__item::before,
#body_wrap.single-post .p-breadcrumb__item + .p-breadcrumb__item::before,
#body_wrap.archive #breadcrumb .p-breadcrumb__item + .p-breadcrumb__item::before,
#body_wrap.archive .p-breadcrumb__item + .p-breadcrumb__item::before,
#body_wrap.blog #breadcrumb .p-breadcrumb__item + .p-breadcrumb__item::before,
#body_wrap.blog .p-breadcrumb__item + .p-breadcrumb__item::before {
  content: "/";
  display: inline-block;
  margin: 0 0.72em;
  color: rgba(6, 27, 58, 0.36);
  font-family: var(--font-en, "IBM Plex Sans", "Helvetica Neue", Arial, sans-serif);
  font-size: 11px;
  font-weight: 600;
  line-height: 1;
}

#body_wrap.page #breadcrumb .p-breadcrumb__text,
#body_wrap.page .p-breadcrumb__text,
#body_wrap.single-post #breadcrumb .p-breadcrumb__text,
#body_wrap.single-post .p-breadcrumb__text,
#body_wrap.archive #breadcrumb .p-breadcrumb__text,
#body_wrap.archive .p-breadcrumb__text,
#body_wrap.blog #breadcrumb .p-breadcrumb__text,
#body_wrap.blog .p-breadcrumb__text {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  color: var(--poscom-muted, #66727f);
  text-decoration: none;
}

#body_wrap.page #breadcrumb a.p-breadcrumb__text,
#body_wrap.page .p-breadcrumb a.p-breadcrumb__text,
#body_wrap.single-post #breadcrumb a.p-breadcrumb__text,
#body_wrap.single-post .p-breadcrumb a.p-breadcrumb__text,
#body_wrap.archive #breadcrumb a.p-breadcrumb__text,
#body_wrap.archive .p-breadcrumb a.p-breadcrumb__text,
#body_wrap.blog #breadcrumb a.p-breadcrumb__text,
#body_wrap.blog .p-breadcrumb a.p-breadcrumb__text {
  transition: color 0.2s ease;
}

#body_wrap.page #breadcrumb a.p-breadcrumb__text:hover,
#body_wrap.page .p-breadcrumb a.p-breadcrumb__text:hover,
#body_wrap.single-post #breadcrumb a.p-breadcrumb__text:hover,
#body_wrap.single-post .p-breadcrumb a.p-breadcrumb__text:hover,
#body_wrap.archive #breadcrumb a.p-breadcrumb__text:hover,
#body_wrap.archive .p-breadcrumb a.p-breadcrumb__text:hover,
#body_wrap.blog #breadcrumb a.p-breadcrumb__text:hover,
#body_wrap.blog .p-breadcrumb a.p-breadcrumb__text:hover {
  color: var(--poscom-deep-navy, #061b3a);
}

/* ホームアイコンを消して「ホーム」の文字だけ残す */
#body_wrap.page #breadcrumb .__home.icon-home,
#body_wrap.page .p-breadcrumb .__home.icon-home,
#body_wrap.single-post #breadcrumb .__home.icon-home,
#body_wrap.single-post .p-breadcrumb .__home.icon-home,
#body_wrap.archive #breadcrumb .__home.icon-home,
#body_wrap.archive .p-breadcrumb .__home.icon-home,
#body_wrap.blog #breadcrumb .__home.icon-home,
#body_wrap.blog .p-breadcrumb .__home.icon-home {
  font-family: inherit !important;
  padding-left: 0 !important;
  margin-left: 0 !important;
}

/* SWELL / icomoon のホームアイコン疑似要素を確実に消す */
#body_wrap.page #breadcrumb .__home.icon-home::before,
#body_wrap.page #breadcrumb .__home.icon-home::after,
#body_wrap.page .p-breadcrumb .__home.icon-home::before,
#body_wrap.page .p-breadcrumb .__home.icon-home::after,
#body_wrap.single-post #breadcrumb .__home.icon-home::before,
#body_wrap.single-post #breadcrumb .__home.icon-home::after,
#body_wrap.single-post .p-breadcrumb .__home.icon-home::before,
#body_wrap.single-post .p-breadcrumb .__home.icon-home::after,
#body_wrap.archive #breadcrumb .__home.icon-home::before,
#body_wrap.archive #breadcrumb .__home.icon-home::after,
#body_wrap.archive .p-breadcrumb .__home.icon-home::before,
#body_wrap.archive .p-breadcrumb .__home.icon-home::after,
#body_wrap.blog #breadcrumb .__home.icon-home::before,
#body_wrap.blog #breadcrumb .__home.icon-home::after,
#body_wrap.blog .p-breadcrumb .__home.icon-home::before,
#body_wrap.blog .p-breadcrumb .__home.icon-home::after {
  content: none !important;
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  opacity: 0 !important;
  visibility: hidden !important;
}

@media (max-width: 600px) {
  #body_wrap.page #breadcrumb,
  #body_wrap.page .p-breadcrumb,
  #body_wrap.single-post #breadcrumb,
  #body_wrap.single-post .p-breadcrumb,
  #body_wrap.archive #breadcrumb,
  #body_wrap.archive .p-breadcrumb,
  #body_wrap.blog #breadcrumb,
  #body_wrap.blog .p-breadcrumb {
    margin: 8px 0 20px;
  }

  #body_wrap.page #breadcrumb .p-breadcrumb__list,
  #body_wrap.page .p-breadcrumb__list,
  #body_wrap.single-post #breadcrumb .p-breadcrumb__list,
  #body_wrap.single-post .p-breadcrumb__list,
  #body_wrap.archive #breadcrumb .p-breadcrumb__list,
  #body_wrap.archive .p-breadcrumb__list,
  #body_wrap.blog #breadcrumb .p-breadcrumb__list,
  #body_wrap.blog .p-breadcrumb__list {
    padding: 0 14px;
    font-size: 11px;
    line-height: 1.6;
  }

  #body_wrap.page #breadcrumb .p-breadcrumb__item + .p-breadcrumb__item::before,
  #body_wrap.page .p-breadcrumb__item + .p-breadcrumb__item::before,
  #body_wrap.single-post #breadcrumb .p-breadcrumb__item + .p-breadcrumb__item::before,
  #body_wrap.single-post .p-breadcrumb__item + .p-breadcrumb__item::before,
  #body_wrap.archive #breadcrumb .p-breadcrumb__item + .p-breadcrumb__item::before,
  #body_wrap.archive .p-breadcrumb__item + .p-breadcrumb__item::before,
  #body_wrap.blog #breadcrumb .p-breadcrumb__item + .p-breadcrumb__item::before,
  #body_wrap.blog .p-breadcrumb__item + .p-breadcrumb__item::before {
    margin: 0 0.56em;
  }
}


/* ======================================
  POS-COM Category Badge
  お知らせ一覧固定ページ・投稿詳細ページ限定
====================================== */

/* --------------------------------------
  お知らせ一覧固定ページだけ
  page-id-31
-------------------------------------- */

/* 一覧：フォルダアイコン非表示 */
#body_wrap.page-id-31 .post_content .p-postList__cat::before,
#body_wrap.page-id-31 .post_content .p-postList__cat a::before,
#body_wrap.page-id-31 .post_content .p-postList__meta a[rel="category tag"]::before,
#body_wrap.page-id-31 .post_content .p-postList__meta .cat-item a::before {
  content: none !important;
  display: none !important;
}

/* --------------------------------------
  投稿一覧：サムネイルカテゴリーのフォルダアイコン非表示
-------------------------------------- */

/* 投稿一覧：サムネイルカテゴリーのフォルダアイコン非表示 */
.p-postList .c-postThumb__cat.icon-folder::before,
.p-postList .c-postThumb__cat.icon-folder::after {
  content: none !important;
  display: none !important;
}

/* アイコンを消した分、ラベル内の余白を自然に整える */
.p-postList .c-postThumb__cat.icon-folder {
  display: inline-flex;
  align-items: center;
  gap: 0;
}

/* 一覧：メタ情報全体 */
#body_wrap.page-id-31 .post_content .p-postList__meta {
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap;
  gap: 0.35em 0.55em;
}

/* 一覧：カテゴリーバッジ本体 */
#body_wrap.page-id-31 .post_content .p-postList__cat {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box;

  height: 24px;
  min-height: 24px;
  padding: 3px 0.72em 0 !important;

  background-color: #2099a6 !important;
  color: #ffffff !important;

  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1.035 !important;
  letter-spacing: 0.06em;

  border-radius: 0;
  text-decoration: none !important;
  vertical-align: middle !important;
  transform: none !important;
}

/* 一覧：中にaがある場合はa側を透明にする */
#body_wrap.page-id-31 .post_content .p-postList__cat a {
  display: inline !important;
  padding: 0 !important;
  margin: 0 !important;

  background: transparent !important;
  color: #ffffff !important;

  font: inherit !important;
  line-height: inherit !important;
  letter-spacing: inherit;
  text-decoration: none !important;
  transform: none !important;
}

/* 一覧：a[rel="category tag"] に直接カテゴリーが出る場合 */
#body_wrap.page-id-31 .post_content .p-postList__meta a[rel="category tag"]:not(.p-postList__cat) {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box;

  height: 24px;
  min-height: 24px;
  padding: 3px 0.72em 0 !important;

  background-color: #061B3A !important;
  color: #ffffff !important;

  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1.035 !important;
  letter-spacing: 0.06em;

  border-radius: 0;
  text-decoration: none !important;
  vertical-align: middle !important;
  transform: none !important;
}

/* 一覧：hover */
#body_wrap.page-id-31 .post_content .p-postList__cat:hover,
#body_wrap.page-id-31 .post_content .p-postList__cat:hover a,
#body_wrap.page-id-31 .post_content .p-postList__meta a[rel="category tag"]:hover {
  background-color: #061b3a !important;
  color: #ffffff !important;
  text-decoration: none !important;
}

/* 一覧：更新日時・日付を少し大きく */
#body_wrap.page-id-31 .post_content .p-postList__meta,
#body_wrap.page-id-31 .post_content .p-postList__times,
#body_wrap.page-id-31 .post_content .p-postList__times time,
#body_wrap.page-id-31 .post_content .p-postList__date,
#body_wrap.page-id-31 .post_content .p-postList__modified {
  font-size: 14px !important;
  line-height: 1.7 !important;
}

/* --------------------------------------
  投稿詳細ページだけ
-------------------------------------- */

/* 投稿詳細：フォルダアイコン非表示 */
.single-post .c-categoryList::before,
.single-post .c-categoryList__link::before,
.single-post .p-articleMetas__termList::before,
.single-post .p-articleMetas__termList a::before,
.single-post .p-articleMetas a[rel="category tag"]::before,
.single-post .p-articleMetas .cat-item a::before {
  content: none !important;
  display: none !important;
}

/* 投稿詳細：カテゴリーバッジ */
.single-post .c-categoryList__link,
.single-post .p-articleMetas__termList a,
.single-post .p-articleMetas a[rel="category tag"] {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box;

  height: 26px;
  min-height: 26px;
  padding: 3.5px 0.72em 0 !important;

  background-color: #2099a6 !important;
  color: #ffffff !important;

  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1.035 !important;
  letter-spacing: 0.06em;

  border-radius: 0;
  text-decoration: none !important;
  vertical-align: middle !important;
  transform: none !important;
}

/* 投稿詳細：hover */
.single-post .c-categoryList__link:hover,
.single-post .p-articleMetas__termList a:hover,
.single-post .p-articleMetas a[rel="category tag"]:hover {
  background-color: #061b3a !important;
  color: #ffffff !important;
  text-decoration: none !important;
}

/* 投稿詳細：日付・更新日時を少し大きく */
.single-post .p-articleMetas,
.single-post .p-articleMetas time,
.single-post .c-postTimes,
.single-post .c-postTimes time,
.single-post .c-postTimes__posted,
.single-post .c-postTimes__modified {
  font-size: 15px !important;
  line-height: 1.7 !important;
}


/* ======================================
  Footer bottom copyright bar
  白系の下帯＋繊細な境界ライン
====================================== */

.l-footer__foot {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(
      180deg,
      #f7f9fb 0%,
      #ffffff 56%,
      #eef4f7 100%
    );
  border-top: none;
}

/* 上フッターとの境目：細い上品な光ライン */
.l-footer__foot::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: min(1520px, calc(100% - 64px));
  height: 1px;
  background:
    linear-gradient(
      90deg,
      transparent 0%,
      rgba(83, 178, 187, 0.18) 12%,
      rgba(255, 255, 255, 0.78) 32%,
      rgba(34, 142, 56, 0.28) 50%,
      rgba(11, 44, 94, 0.20) 68%,
      rgba(83, 178, 187, 0.16) 88%,
      transparent 100%
    );
  transform: translateX(-50%);
  pointer-events: none;
}

/* 境界の下に、ごく薄い影を落として段差を出す */
.l-footer__foot::after {
  content: "";
  position: absolute;
  top: 1px;
  left: 0;
  right: 0;
  height: 18px;
  background:
    linear-gradient(
      180deg,
      rgba(6, 27, 58, 0.08) 0%,
      rgba(6, 27, 58, 0.025) 42%,
      transparent 100%
    );
  pointer-events: none;
}

/* 下帯の内側 */
.l-footer__foot .l-container {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  min-height: 58px;
  padding-top: 12px;
  padding-bottom: 12px;
}

/* 左側：旧CSS疑似要素のサービス名は実リンク化したため使わない */
.l-footer__foot .l-container::before {
  content: none;
  display: none;
}

/* PCフッター下帯：サービス名リンク */
.poscom-footer-service-links {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.38em;
  min-width: 0;
  color: rgba(6, 27, 58, 0.86);
  font-size: 16px;
  font-weight: 700;
  font-style: italic;
  line-height: 1.7;
  letter-spacing: 0.075em;
}

.poscom-footer-service-links__item {
  color: inherit;
  text-decoration: none;
}

.poscom-footer-service-links__item:hover,
.poscom-footer-service-links__item:focus-visible {
  color: inherit;
  text-decoration: none;
  outline: none;
}

.poscom-footer-service-links__sep {
  color: rgba(6, 27, 58, 0.42);
  font-weight: 700;
}

/* 右側：コピーライト */
.l-footer__foot .copyright {
  flex: 0 0 auto;
  margin: 0;
  margin-left: auto;
  margin-right: clamp(120px, 10vw, 190px);
  color: rgba(6, 27, 58, 0.68);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.7;
  letter-spacing: 0.06em;
  text-align: right;
  white-space: nowrap;
}

/* 右側：PAGE TOPボタンを避ける */
.l-footer__foot .copyright {
  margin-right: clamp(170px, 12vw, 240px);
  color: rgba(6, 27, 58, 0.70);
}

.l-footer__foot .l-container {
  min-height: 64px;
  padding-top: 14px;
  padding-bottom: 14px;
}

/* 画面幅が狭いPCでは、PAGE TOP回避幅を少し控えめにする */
@media (max-width: 1280px) and (min-width: 768px) {
  .l-footer__foot .copyright {
    margin-right: 120px;
  }
}

/* スマホ・タブレット */
@media (max-width: 959px) {
  .l-footer__foot .l-container {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: auto;
    padding-top: 14px;
    padding-bottom: 14px;
    text-align: center;
  }

  /*
   * スマホ・タブレットではサービス名の補助テキストを出さない。
   * PC専用表示として扱う。
   */
  .l-footer__foot .l-container::before {
    content: none;
    display: none;
  }

  .l-footer__foot .copyright {
    flex: 0 1 auto;
    margin: 0;
    color: rgba(6, 27, 58, 0.70);
    font-size: 11px;
    font-weight: 600;
    line-height: 1.7;
    letter-spacing: 0.06em;
    text-align: center;
    white-space: normal;
  }

  .poscom-footer-service-links {
    display: none;
  }
}

/* ======================================
  FAQ Page Only
  よくある質問ページ専用
  page-id-2291 only
====================================== */

/* H1はSWELLデフォルトを使う。余計な下線だけ消す */
#body_wrap.page-id-2291 .c-pageTitle,
#body_wrap.page-id-2291 .c-pageTitle[data-style="b_bottom"] {
  border-bottom: 0 !important;
  background-image: none !important;
  box-shadow: none !important;
}

#body_wrap.page-id-2291 .c-pageTitle::before,
#body_wrap.page-id-2291 .c-pageTitle::after,
#body_wrap.page-id-2291 .c-pageTitle[data-style="b_bottom"]::before,
#body_wrap.page-id-2291 .c-pageTitle[data-style="b_bottom"]::after,
#body_wrap.page-id-2291 .c-pageTitle__inner::before,
#body_wrap.page-id-2291 .c-pageTitle__inner::after {
  content: none !important;
  display: none !important;
}

/* H1下線だけ消す。文字サイズ・位置・余白は基本デフォルト */
#body_wrap.page-id-2291 .c-pageTitle__inner {
  border-bottom: 0 !important;
  box-shadow: none !important;
}

/* H1とFAQの間だけ空ける */
#body_wrap.page-id-2291 .post_content > .swell-block-faq.poscom-faq-page {
  margin-top: clamp(58px, 5vw, 86px) !important;
}

/* FAQブロック */
#body_wrap.page-id-2291 .post_content > .swell-block-faq.poscom-faq-page {
  padding: 0 !important;
  border-top: 1px solid rgba(6, 27, 58, 0.14) !important;
}

/* FAQ 1項目 */
#body_wrap.page-id-2291 .post_content > .swell-block-faq.poscom-faq-page .swell-block-faq__item {
  margin: 0 !important;
  padding: 17px 0 !important;
  border-bottom: 1px solid rgba(6, 27, 58, 0.12) !important;
  background: transparent !important;
}

/* 質問行 */
#body_wrap.page-id-2291 .post_content > .swell-block-faq.poscom-faq-page .faq_q {
  position: relative;
  display: flex !important;
  align-items: center !important;
  min-height: 42px !important;
  margin: 0 !important;
  padding: 0 58px 0 54px !important;
  color: #061b3a !important;
  font-size: clamp(18px, 1.3vw, 22px) !important;
  font-weight: 900 !important;
  line-height: 1.5 !important;
  letter-spacing: 0.045em !important;
  writing-mode: horizontal-tb !important;
  white-space: normal !important;
  border: 0 !important;
  outline: none !important;
  background: transparent !important;
  box-shadow: none !important;
  cursor: pointer;
}

/* クリック時の黒枠を消す */
#body_wrap.page-id-2291 .post_content > .swell-block-faq.poscom-faq-page .faq_q:focus,
#body_wrap.page-id-2291 .post_content > .swell-block-faq.poscom-faq-page .faq_q:focus-visible {
  outline: none !important;
  box-shadow: none !important;
}

/* Qラベル */
#body_wrap.page-id-2291 .post_content > .swell-block-faq.poscom-faq-page .faq_q::before {
  content: "Q" !important;
  position: absolute;
  left: 0;
  top: 50%;
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  color: #fff;
  background: #061b3a;
  border-radius: 6px;
  font-size: 17px;
  font-weight: 900;
  line-height: 1;
  transform: translateY(-50%);
}

/* ＋ / − */
#body_wrap.page-id-2291 .post_content > .swell-block-faq.poscom-faq-page .faq_q::after {
  content: "+";
  position: absolute;
  right: 8px;
  top: 50%;
  color: #38edd9;
  font-size: 32px !important;
  font-weight: 800;
  line-height: 1;
  transform: translateY(-50%);
}

#body_wrap.page-id-2291 .post_content > .swell-block-faq.poscom-faq-page .swell-block-faq__item.is-open .faq_q::after {
  content: "−";
  font-size: 32px !important;
}

/* 開いた時のQとAの間 */
#body_wrap.page-id-2291 .post_content > .swell-block-faq.poscom-faq-page .swell-block-faq__item.is-open .faq_q {
  margin-bottom: 20px !important;
}

/* 回答 */
#body_wrap.page-id-2291 .post_content > .swell-block-faq.poscom-faq-page .faq_a {
  position: relative;
  display: none !important;
  margin: 0 !important;
  padding: 0 0 8px 54px !important;
  color: rgba(6, 27, 58, 0.86) !important;
  font-size: clamp(15px, 1.02vw, 18px) !important;
  font-weight: 600 !important;
  line-height: 1.95 !important;
  letter-spacing: 0.035em !important;
  writing-mode: horizontal-tb !important;
  white-space: normal !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

#body_wrap.page-id-2291 .post_content > .swell-block-faq.poscom-faq-page .swell-block-faq__item.is-open .faq_a {
  display: block !important;
}

/* Aラベル */
#body_wrap.page-id-2291 .post_content > .swell-block-faq.poscom-faq-page .faq_a::before {
  content: "A" !important;
  position: absolute;
  left: 0;
  top: 0;
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  color: #fff;
  background: #78b7c7;
  border-radius: 6px;
  font-size: 17px;
  font-weight: 900;
  line-height: 1;
}

/* A本文 */
#body_wrap.page-id-2291 .post_content > .swell-block-faq.poscom-faq-page .faq_a > *,
#body_wrap.page-id-2291 .post_content > .swell-block-faq.poscom-faq-page .faq_a p {
  margin: 0 !important;
  padding: 0 !important;
}

/* hover */
#body_wrap.page-id-2291 .post_content > .swell-block-faq.poscom-faq-page .swell-block-faq__item:hover {
  background: linear-gradient(
    90deg,
    rgba(56, 237, 217, 0.035),
    transparent 72%
  ) !important;
}

/* SP */
@media (max-width: 768px) {
  #body_wrap.page-id-2291 .post_content > .swell-block-faq.poscom-faq-page {
    margin-top: 42px !important;
  }

  #body_wrap.page-id-2291 .post_content > .swell-block-faq.poscom-faq-page .swell-block-faq__item {
    padding: 15px 0 !important;
  }

  #body_wrap.page-id-2291 .post_content > .swell-block-faq.poscom-faq-page .faq_q {
    min-height: 38px !important;
    padding: 0 44px 0 44px !important;
    font-size: 17px !important;
    line-height: 1.5 !important;
  }

  #body_wrap.page-id-2291 .post_content > .swell-block-faq.poscom-faq-page .faq_q::before,
  #body_wrap.page-id-2291 .post_content > .swell-block-faq.poscom-faq-page .faq_a::before {
    width: 32px;
    height: 32px;
    font-size: 16px;
  }

  #body_wrap.page-id-2291 .post_content > .swell-block-faq.poscom-faq-page .faq_q::after,
  #body_wrap.page-id-2291 .post_content > .swell-block-faq.poscom-faq-page .swell-block-faq__item.is-open .faq_q::after {
    right: 4px;
    font-size: 28px !important;
  }

  #body_wrap.page-id-2291 .post_content > .swell-block-faq.poscom-faq-page .faq_a {
    padding-left: 44px !important;
    font-size: 15px !important;
    line-height: 1.85 !important;
  }

  #body_wrap.page-id-2291 .post_content > .swell-block-faq.poscom-faq-page .swell-block-faq__item.is-open .faq_q {
    margin-bottom: 16px !important;
  }
}


/* ======================================
  FAQ Page Index Compact SP
  よくある質問ページ本体だけ：スマホ文字・行間調整
  ※各サービスページ内FAQには効かせない
====================================== */

@media (max-width: 768px) {
  #body_wrap.page-id-2291 .post_content > .swell-block-faq.poscom-faq-page.poscom-faq-page--index .swell-block-faq__item {
    padding: 12px 0 !important;
  }

  #body_wrap.page-id-2291 .post_content > .swell-block-faq.poscom-faq-page.poscom-faq-page--index .faq_q {
    min-height: 34px !important;
    padding: 0 38px 0 40px !important;
    font-size: 15.5px !important;
    line-height: 1.38 !important;
    letter-spacing: 0.025em !important;
  }

  #body_wrap.page-id-2291 .post_content > .swell-block-faq.poscom-faq-page.poscom-faq-page--index .faq_q::before,
  #body_wrap.page-id-2291 .post_content > .swell-block-faq.poscom-faq-page.poscom-faq-page--index .faq_a::before {
    width: 29px;
    height: 29px;
    font-size: 14.5px;
  }

  #body_wrap.page-id-2291 .post_content > .swell-block-faq.poscom-faq-page.poscom-faq-page--index .faq_q::after,
  #body_wrap.page-id-2291 .post_content > .swell-block-faq.poscom-faq-page.poscom-faq-page--index .swell-block-faq__item.is-open .faq_q::after {
    right: 4px;
    font-size: 24px !important;
  }

  #body_wrap.page-id-2291 .post_content > .swell-block-faq.poscom-faq-page.poscom-faq-page--index .faq_a {
    padding: 0 0 4px 40px !important;
    font-size: 15px !important;
    line-height: 1.85 !important;
    letter-spacing: 0.025em !important;
  }

  #body_wrap.page-id-2291 .post_content > .swell-block-faq.poscom-faq-page.poscom-faq-page--index .faq_a p {
    font-size: 15px !important;
    line-height: 1.85 !important;
  }

  #body_wrap.page-id-2291 .post_content > .swell-block-faq.poscom-faq-page.poscom-faq-page--index .swell-block-faq__item.is-open .faq_q {
    margin-bottom: 10px !important;
  }
}


/* ======================================
  Single Bottom Widget Accordion
  Hide category folder icons in article-bottom widgets
====================================== */

.single-post .w-singleBottom .swell-block-accordion .wp-block-categories,
.single-post .w-singleBottom .swell-block-accordion .wp-block-categories-list {
  padding-left: 0;
  margin-left: 0;
  list-style: none;
}

.single-post .w-singleBottom .swell-block-accordion .wp-block-categories li,
.single-post .w-singleBottom .swell-block-accordion .wp-block-categories-list li,
.single-post .w-singleBottom .swell-block-accordion .cat-item {
  padding-left: 0;
  list-style: none;
}

.single-post .w-singleBottom .swell-block-accordion .wp-block-categories li::before,
.single-post .w-singleBottom .swell-block-accordion .wp-block-categories-list li::before,
.single-post .w-singleBottom .swell-block-accordion .cat-item::before,
.single-post .w-singleBottom .swell-block-accordion .wp-block-categories-list > li > a::before,
.single-post .w-singleBottom .swell-block-accordion .widget_categories > ul > .cat-item > a::before,
.single-post .w-singleBottom .swell-block-accordion .c-listMenu a::before {
  content: none !important;
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
}

.single-post .w-singleBottom .swell-block-accordion .wp-block-categories .icon-folder,
.single-post .w-singleBottom .swell-block-accordion .wp-block-categories-list .icon-folder,
.single-post .w-singleBottom .swell-block-accordion .cat-item .icon-folder {
  display: none !important;
}

.single-post .w-singleBottom .swell-block-accordion .wp-block-categories-list > li > a,
.single-post .w-singleBottom .swell-block-accordion .widget_categories > ul > .cat-item > a,
.single-post .w-singleBottom .swell-block-accordion .c-listMenu a {
  padding-left: 0 !important;
}

/* ======================================
  FAQ Page H1 Only
  よくある質問ページのH1だけ調整
  ※アコーディオン・開閉メニューには触らない
====================================== */

/* ヘッダー下〜H1までの余白を適度に戻す */
#body_wrap.page-id-2291 .l-content {
  padding-top: 22px !important;
  margin-top: 0 !important;
}

#body_wrap.page-id-2291 .l-mainContent,
#body_wrap.page-id-2291 .l-mainContent__inner {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

/* H1本体：文字サイズは維持、上下余白だけ調整 */
#body_wrap.page-id-2291 .c-pageTitle {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  border-bottom: none !important;
  box-shadow: none !important;
  background: transparent !important;
}

/* H1文字サイズは現状維持 */
#body_wrap.page-id-2291 .c-pageTitle__inner {
  font-size: clamp(32px, 3.1vw, 46px) !important;
  font-weight: 900 !important;
  line-height: 1.25 !important;
  letter-spacing: 0.06em !important;
  border-bottom: none !important;
  box-shadow: none !important;
}

/* SWELL標準のH1装飾を消す */
#body_wrap.page-id-2291 .c-pageTitle::before,
#body_wrap.page-id-2291 .c-pageTitle::after,
#body_wrap.page-id-2291 .c-pageTitle__inner::before,
#body_wrap.page-id-2291 .c-pageTitle__inner::after {
  content: none !important;
  display: none !important;
}

/* H1下〜FAQブロックまでの余白だけ調整 */
#body_wrap.page-id-2291 .l-mainContent__inner > .post_content {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-top: 0 !important;
}

/* H1とFAQアコーディオンの間を詰める */
#body_wrap.page-id-2291 .post_content > .swell-block-faq.poscom-faq-page {
  margin-top: 27px !important;
}


/* ======================================
  Common / Footer Top Spacing
  全ページ：本文下〜フッター前の余白を調整
====================================== */

#body_wrap #content.l-content {
  margin-bottom: 1.8em !important;
}

#body_wrap #before_footer_widget.w-beforeFooter {
  min-height: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}