@charset "UTF-8";

/*!
Theme Name: Cocoon Child
Description: Cocoon専用の子テーマ
Theme URI: https://wp-cocoon.com/
Author: わいひら
Author URI: https://nelog.jp/
Template:   cocoon
Version:    1.1.3
*/

/************************************
** 子テーマ用のスタイルを書く
************************************/
.customBtn1 {
	display: block;
	width: 100%;
	max-width: 600px;
	font-weight: 700;
	text-align: center;
	padding: 12px 24px;
	border-radius: 10px;
	font-size: 16px;
	border: 1px solid #2638E6;
	transition: .3s;
	background-color: #2638E6;
	color: #fff !important;
	text-decoration: none !important;
	margin: 16px auto;
}
.btnColor1 {
	border: 1px solid #2638E6;
	background-color: #2638E6;
	&:hover{
		background: #fff;
		color: #2638E6 !important;
	}	
}

.btnColor2 {
	border: 1px solid #ee390c;
	background-color: #ee390c;
	margin: 4px auto 16px auto !important;
	&:hover{
		background: #fff;
		color: #ee390c !important;
	}	
}
.btnInfo{
	padding-bottom: 3px !important;
	margin-bottom: 0 !important;
    color: #ee390c;
	text-align: center;
    font-size: 16px !important;
    font-weight: 600 !important;
}


.sidebar h2 {
    font-size: 20px !important;
    margin: 20px auto 10px;
    padding: 10px 10px 10px 16px;
    background-color: #012543;
    color: #fff;
}

.wiget-popular-articles{
	margin-bottom: 1.8em;
}

/* divの枠線 */
.callout {
  border: 1px solid #e0e0e0;
  padding: 20px;
  margin: 16px 0;
  background-color: #ffffff;
  border-radius: 4px;
}

.callout a:hover {
  text-decoration: underline;
}

/************************************
** レスポンシブデザイン用のメディアクエリ
************************************/
/*1023px以下*/
@media screen and (max-width: 1023px){
  /*必要ならばここにコードを書く*/
}

/*834px以下*/
@media screen and (max-width: 834px){
  /*必要ならばここにコードを書く*/
}

/*480px以下*/
@media screen and (max-width: 480px){
  /*必要ならばここにコードを書く*/
}


body.single .under-entry-content { display: none !important; }

.top-banner {
  display: none;
}

/* ====================================
** Pacific Design System Override
** ====================================*/

/* フォント読み込み */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@100..900&family=Noto+Sans+JP:wght@100..900&display=swap');

/* CSS変数 */
:root {
    --pm-primary: #2638E6;
    --pm-dark: #232031;
    --pm-bg: #EFEFF2;
}

/* ベース */
body {
    font-family: "Inter", "Noto Sans JP", "游ゴシック Medium", YuGothic, "ヒラギノ角ゴ ProN", sans-serif !important;
    color: #232031;
    letter-spacing: 0.05em;
}

/* ヘッダー下の余白修正 */
body .content-in,
body #content,
body .wrap {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* ヘッダーレイアウト崩れ修正（全ページ共通） */
.header .headerLogo_img {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.header .nav-menuList > li,
.header .nav-other > li,
.header .nav-other02 > li {
    margin-bottom: 0 !important;
}

/* ====================================
** ヘッダー（pacificヘッダーをそのまま使用）
** ====================================*/

/* SPナビ開放時のスクロール固定 */
html.is-fixed,
html.is-fixed body {
    height: 100%;
    overflow: hidden;
}

/* 上段リンク群の左padding（page.css相当） */
.nav-other02 {
    padding-left: 30px;
}

/* CTAボタン群のgap */
.nav-other {
    column-gap: 10px !important;
    padding-left: 0 !important;
}

/* スラッシュ区切り（nav-other02） */
.nav-other02 li a {
    display: block;
    font-size: 12px;
    line-height: 100%;
    letter-spacing: normal;
    transition: all .3s;
}
.nav-other02 li:not(:last-of-type) {
    padding-right: 5px;
    margin-right: 5px;
    position: relative;
}
.nav-other02 li:not(:last-of-type)::after {
    content: "/";
    display: block;
    position: absolute;
    right: -2px;
    top: 50%;
    transform: translateY(-50%);
    color: #000;
    font-size: 12px;
    font-weight: 600;
    line-height: 100%;
    letter-spacing: normal;
}

/* Cocoon純正ヘッダーを非表示（Pacific共有ヘッダーで代替） */
#header-container {
    display: none !important;
}
/* Cocoon JS が stickyHeader() 時に挿入する余白div も非表示 */
#header-fixed {
    display: none !important;
}
/* SPナビはデスクトップで非表示（Pacific component.css 相当） */
#spNav {
    display: none;
}
@media screen and (max-width: 1000px) {
    #spNav {
        display: block;
    }
    .navMenu, .nav-other, .nav-other02 {
        display: none;
    }
}

/* custom.css の旧ヘッダースタイルを打ち消し＋固定ヘッダー強制
   Cocoonの #header と区別するため :not(#header) で絞り込む */
header.header:not(#header) {
    padding: 0 !important;
    background-color: transparent !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    z-index: 10000 !important;
}
header.header:not(#header) a {
    text-decoration: none !important;
}
header.header:not(#header) a:hover {
    text-decoration: none !important;
}

/* ナビメニュー（暗背景）の文字色 */
.navMenu a,
.navMenu li,
.navMenu span {
    color: #fff !important;
}
/* ドロップダウンパネル内は白背景なので暗い色に上書き */
.headerDropdown a,
.headerDropdown li,
.headerDropdown span {
    color: #232031 !important;
}
/* サービストップ（青帯）だけは白のまま */
.dropdownTop a,
.dropdownTop span {
    color: #fff !important;
}

/* サービス横の˅矢印を 16px → 14px に縮小 */
.nav-menuListItem-drop > a > span:last-of-type > svg {
    width: 14px !important;
    height: 14px !important;
}

/* ˅spanのwidth固定（letter-spacingによるズレ対策） */
.nav-menuListItem-drop > a > span:last-of-type {
    width: 14px;
    box-sizing: border-box;
    flex-shrink: 0;
}

/* 青帯ナビのletter-spacingをリセット（˅位置ズレ対策） */
.nav-menuList a,
.nav-menuListItem a {
    letter-spacing: normal;
}

/* 青帯ナビの左位置調整（li の開始位置を揃える） */
.nav-menuList {
    padding-left: 0 !important;
    margin-left: 0 !important;
}
.nav-menuList .nav-menuListItem {
    flex: 1 !important;
}

/* 上部リンク（明背景）の文字色 */
.nav-other02 a {
    color: #000 !important;
}

/* ナビリスト記号を非表示 */
.header li,
.nav-other li,
.nav-other02 li,
.nav-menuList li,
#spNav li {
    list-style: none !important;
    list-style-type: none !important;
}

/* ボタン文字色（資料請求・無料相談=白、メルマガ登録=ダーク） */
.navMenuBtn:not(.navMenuBtn03),
.navMenuBtn:not(.navMenuBtn03) span {
    color: #fff !important;
}
.navMenuBtn03,
.navMenuBtn03 span {
    color: #232031 !important;
}

/* ボタンホバー */
.navMenuBtn:hover {
    background: #fff !important;
    color: #232031 !important;
}
.navMenuBtn:hover span {
    color: #232031 !important;
}
.navMenuBtn02:hover {
    background-color: #fff !important;
    color: #2638E6 !important;
}
.navMenuBtn02:hover span {
    color: #2638E6 !important;
}
.navMenuBtn03:hover {
    background-color: #232031 !important;
    color: #fff !important;
}
.navMenuBtn03:hover span {
    color: #fff !important;
}
/* ホバー時SVGアイコン色 */
.navMenuBtn:hover path {
    stroke: #232031 !important;
}
.navMenuBtn02:hover path {
    fill: #2638E6 !important;
    stroke: none !important;
}
.navMenuBtn03:hover path {
    stroke: #fff !important;
}

/* ENボタン */
.multiBtnWrap {
    margin-left: 24px;
}
.multiBtnWrap a {
    font-size: 14px !important;
    line-height: 100%;
    display: block;
    padding: 4px 20px;
    border-radius: 100px;
    color: #74727D !important;
    background-color: #EFEFF2 !important;
    text-decoration: none !important;
    transition: all .3s;
    letter-spacing: normal !important;
}

/* SVGアイコンサイズ */
.navMenuBtn svg,
.navMenuBtn span:first-of-type svg {
    width: 14px !important;
    height: 14px !important;
    display: inline !important;
    flex-shrink: 0;
}
/* SVG path stroke/fill — HTML属性の意図を CSS で明示上書き（干渉対策）
   資料請求: stroke=white, fill=none
   無料相談: fill=white, stroke=none
   メルマガ: stroke=#232031, fill=none */
.navMenuBtn svg path {
    fill: none !important;
    stroke: white !important;
}
.navMenuBtn02 svg path {
    fill: white !important;
    stroke: none !important;
}
.navMenuBtn03 svg path {
    fill: none !important;
    stroke: #232031 !important;
}

/* コンテンツがヘッダーに隠れる対策 */
#container {
    margin-top: 144px !important;
}

/* サイドバー追従がヘッダーを貫通しないようにtopをヘッダー高さ分ずらす */
.sidebar-scroll {
    top: 120px !important;
}

@media (max-width: 768px) {
    #container {
        margin-top: 60px !important;
    }
    .sidebar-scroll {
        top: 70px !important;
    }
}

/* ====================================
** フッター (Pacific Meta スタイル)
** ====================================*/
.pm-footer {
    background-color: #232031;
    color: #fff;
    padding: 60px 0 0;
    margin-top: 60px;
}

.pm-footer__inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 40px 48px;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 40px;
    flex-wrap: wrap;
}

.pm-footer__logo-name {
    font-size: 22px;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: #fff;
    margin-bottom: 10px;
    display: block;
    text-decoration: none !important;
}

.pm-footer__company,
.pm-footer__address {
    color: rgba(255, 255, 255, 0.6);
    font-size: 12px;
    line-height: 1.7;
    margin: 4px 0;
}

.pm-footer__nav {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 40px;
}

.pm-footer__list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.pm-footer__list li a {
    color: rgba(255, 255, 255, 0.75) !important;
    text-decoration: none !important;
    font-size: 13px;
    transition: color 0.2s;
}

.pm-footer__list li a:hover {
    color: #fff !important;
}

.pm-footer__copy {
    text-align: center;
    padding: 16px 40px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    color: rgba(255, 255, 255, 0.45);
    font-size: 12px;
}

@media (max-width: 768px) {
    .pm-footer__inner {
        padding: 0 20px 40px;
        flex-direction: column;
    }
    .pm-footer__copy {
        padding: 16px 20px;
    }
}