:root {
    --expo-red: #D9333F;
    --expo-blue: #005BAC;
    --expo-light-bg: #f7f7f7;
    --expo-white: #ffffff;
    --expo-text-dark: #1A1A1A;
    --expo-text-medium: #555555;
    --expo-accent-gray: #e0e0e0;
    --accent-yellow: #f7c800;
    --card-title-color: var(--expo-text-dark);
    --card-description-color: var(--expo-text-medium);
    --number-accent-color: var(--expo-red);
    --icon-silhouette-color: rgba(0, 0, 0, 0.08);
    --dot-inactive: #cccccc;
    --dot-active: var(--expo-red);
    --slides-to-show-desktop: 3.5;
    --slides-to-show-tablet: 2.3;
    --slides-to-show-mobile: 1.2;
    --slide-gap: 20px;
    --rules-section-container-width: 1200px;
    --icon-silhouette-color: #005BAC; 
    --icon-opacity: 0.4; 
    --welfare-accent-special: #f1c40f; /* 特別手当用: 黄色系 */
    --welfare-font-main: 'Noto Sans JP', sans-serif;
    --welfare-font-title: 'Oswald', 'Bebas Neue', sans-serif; /* インパクトのあるフォント */
    --welfare-bg: #f7f8fa;         /* セクション背景色: 参考サイトに近い明るいグレー */
    --welfare-card-bg: #ffffff;
    --welfare-text-dark: #333333;   /* テキスト色を少し濃く */
    --welfare-text-light: #777777;
    --welfare-accent-primary: #E63946; /* 参考サイトの赤に近いアクセントカラー */
    --welfare-accent-secondary: #457B9D; /* 参考サイトの青系もアクセントとして使えるかも */
    --welfare-number-gray: #e0e0e0; /* カード右上の薄い数字の色 */
    -welfare-icon-color: var(--welfare-accent-primary); /* アイコンの色をアクセントカラーに */
    --module-bg: #ffffff; /* モジュールの背景色 */
    --module-border-default: #e8e8e8; 
    --module-text-dark: #2c3e50; 
    --module-accent-red: #e60012; 
    --module-accent-blue: #005bac; 
    --section-bg-color: #f7f9fc;
}




.ttl-center__news::before {
    content: attr(data-en);
    position: absolute;
    top: 85%;
    left: -71%;
    transform: translateX(-50%);
    color: rgba(255, 255, 255, 0.1);
    font-size: 170px;
    z-index: -1;
    text-orientation: upright;
    transform-origin: center center;
    transform: rotate(90deg);
}


.tate .smb-section__background-text__text {
    left: -10%;
    transform: rotate(90deg);
    font-family: "Montserrat", sans-serif;
}


/* フォント */
.smb-section__header .smb-section__subtitle{
    font-family: "Montserrat", sans-serif;
    font-optical-sizing: auto;
    font-weight: 900;
    font-style: normal;
}
.smb-section__header .smb-section__subtitle strong {
        font-family: "Montserrat", sans-serif;
    font-size: 6rem;
}

.wp-block-column.is-vertically-aligned-center.is-layout-flow.wp-block-column-is-layout-flow span.sme-font-size.has-sm-4-xl-font-size {
        font-family: "Montserrat", sans-serif;
}
.wp-block-snow-monkey-blocks-box.smb-box.smb-box--has-link.recruit strong {
        font-family: "Montserrat", sans-serif;
}

.smb-section__background-text__text.has-sm-6-xl-font-size {
    font-family: "Nothing You Could Do", cursive;
}

.is-style-RJE_R002LP_section1:not(:root)>.smb-section__inner>.c-container>.smb-section__contents-wrapper>.smb-section__header .smb-section__subtitle{
        font-family: "Montserrat", sans-serif;
    font-optical-sizing: auto;
    font-weight: 900!important;
    font-style: normal;
    font-size: 3rem;
}
.wp-block-cover.alignfull .wp-block-cover__inner-container.is-layout-constrained.wp-block-cover-is-layout-constrained p {
    font-family: "Montserrat", sans-serif; 
}
/* ヘッダー */
.l-1row-header {
    padding: 1rem 0;
}
.p-global-nav .c-navbar__item>a>span {
    font-size: 1rem;
}
.c-site-branding__title .custom-logo {
    width: 200px;
}

/* 採用CTA */
.recruit .smb-box__body.is-layout-constrained.wp-block-box-is-layout-constrained {
    margin: 0 calc(50% - 50vw);
    width: 100vw;
    padding: 0;
}
.wp-block-snow-monkey-blocks-box.smb-box.smb-box--has-link.recruit {
    padding: 0;
	margin-top: 0;
}
.wp-block-cover.alignfull.has-parallax.rec-cta {
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
}
/* CTA */
.contact-icon{
    display: flex;
    align-items: center;
}
.contact-icon .smb-btn__label {
    display: flex;
    align-items: center;
}

/* フッター */
footer.l-footer.l-footer--default {
    border: none;
}

/* 投稿 */
.topics{
    margin-top: 0;
}
aside.p-comments.c-entry-aside {
    display: none;
}
aside.p-trackbacks.c-entry-aside {
    display: none;
}
li.c-meta__item.c-meta__item--author {
    display: none;
}






/* 受託加工 */
summary {
    text-align: center;
}
summary strong {
    color: #0068B7;
}
.type .c-row.c-row--margin {
    background: white;
}

/* セクション全体のスタイル */
.wp-block-snow-monkey-blocks-section.special {
    padding-top: 80px;
    padding-bottom: 100px;
    background-color: var(--section-bg-color);
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; /* モダンなサンセリフフォントスタック */
}

/* セクションヘッダー */
.wp-block-snow-monkey-blocks-section.special .smb-section__header {
    margin-bottom: 60px;
    text-align: center;
}

.wp-block-snow-monkey-blocks-section.special .smb-section__subtitle span.sme-font-size {
    color: var(--module-text-light);
    font-weight: 500;
    font-size: 0.95rem; /* 少し控えめに */
    letter-spacing: 0.05em;
    text-transform: uppercase; /* 大文字でアクセント */
}

.wp-block-snow-monkey-blocks-section.special h2.smb-section__title span.sme-font-size {
    color: var(--module-text-dark);
    font-weight: 700; /* しっかりとした太さ */
    font-size: 2.1rem;
    line-height: 1.35;
}

/* アイテムグリッド */
.wp-block-snow-monkey-blocks-section.special .wp-block-snow-monkey-blocks-items .c-row {
    justify-content: center;
}

/* 各材質アイテム（モジュール）のスタイル */
.wp-block-snow-monkey-blocks-section.special .wp-block-snow-monkey-blocks-items-item-free .smb-items__item--free {
    background-color: var(--module-bg);
    border: 1px solid var(--module-border-default);
    border-radius: 6px; /* シャープさを残しつつ少しだけ角丸 */
    padding: 24px;      /* モジュール内の余白 */
    transition: border-color 0.3s ease, transform 0.25s ease, box-shadow 0.25s ease;
    position: relative; /* 擬似要素 (アクセントライン) の基準 */
    overflow: hidden;   /* 擬似要素が角丸からはみ出ないように */
}

/* モジュールホバー時の効果 */
/* .wp-block-snow-monkey-blocks-section.special .wp-block-snow-monkey-blocks-items-item-free .smb-items__item--free:hover {
    border-color: var(--module-accent-blue); 
    transform: translateY(-6px); 
    box-shadow: 0 10px 25px rgba(44, 62, 80, 0.1); 
} */

/* アクセントライン用擬似要素 (例：モジュール上部に表示) */
/* .wp-block-snow-monkey-blocks-section.special .wp-block-snow-monkey-blocks-items-item-free .smb-items__item--free::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%; 
    transform: translateX(-50%); 
    width: 0; 
    height: 5px;
    background-color: var(--module-accent-red); 
    transition: width 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); 
} */

/* .wp-block-snow-monkey-blocks-section.special .wp-block-snow-monkey-blocks-items-item-free .smb-items__item--free:hover::before {
    width: 60%; 
} */

/* 画像のスタイル */
.wp-block-snow-monkey-blocks-section.special .wp-block-snow-monkey-blocks-items-item-free .smb-items__item__body figure.wp-block-image {
    border-radius: 4px; /* 画像の角も少し丸める */
    overflow: hidden;
}

.wp-block-snow-monkey-blocks-section.special .wp-block-snow-monkey-blocks-items-item-free .smb-items__item__body img {
    display: block;
    width: 100%;
    height: auto; /* 元の画像のアスペクト比を維持 */
    /* もし画像を正方形にしたい場合は以下を有効化 */
    /* aspect-ratio: 1 / 1; */
    /* object-fit: cover; */
    transition: transform 0.3s ease-in-out;
}
/* 
.wp-block-snow-monkey-blocks-section.special .wp-block-snow-monkey-blocks-items-item-free .smb-items__item--free:hover img {
    transform: scale(1.04); 
}
 */

























































/* ホシ技研のルール */
.rules-section {
    background-color: var(--expo-light-bg);
    color: var(--expo-text-dark);
    padding-top: clamp(70px, 10vw, 120px);
    padding-bottom: clamp(70px, 10vw, 120px);
    font-family: 'Noto Sans JP', sans-serif;
    position: relative;
    padding-left: 0;
    padding-right: 0;
    margin-top: 0;
}

.rules-section::before {
    content: '';
    position: absolute;
    top: -10%;
    left: -20%;
    width: 50vw;
    height: 50vw;
    background: radial-gradient(circle, #cd162c4d 0%, rgba(217, 51, 63, 0) 70%);
    border-radius: 50%;
    z-index: 0;
    pointer-events: none;
    transform: rotate(15deg);
}
.rules-section::after {
    content: '';
    position: absolute;
    bottom: -15%;
    left: -10%;
    width: 30vw;
    height: 40vw;
    background: linear-gradient(45deg, rgba(0, 91, 172, 0.03) 0%, rgba(0, 91, 172, 0) 80%);
    transform: skewX(-20deg);
    z-index: 0;
    pointer-events: none;
}

.rules-section__background-deco::before {
    content: 'HOSHIGI KEN RULES';
    position: absolute;
    left: clamp(-100px, -12vw, -70px);
    top: 50%;
    transform: translateY(-50%) rotate(-2deg);
    writing-mode: vertical-rl;
    text-orientation: mixed;
    font-family: 'Oswald', 'Bebas Neue', sans-serif;
    font-size: clamp(30px, 5vw, 50px);
    font-weight: 700;
    line-height: 1.1;
    color: var(--accent-yellow);
    opacity: 0.06;
    z-index: 0;
    white-space: nowrap;
    pointer-events: none;
    height: 130%;
}

.rules-section__container {
    max-width: var(--rules-section-container-width, 1200px);
    margin: 0 auto;
    position: relative;
    z-index: 1;
}

.rules-section__title {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 900;
    font-size: clamp(2.4rem, 5.5vw, 4rem);
    color: var(--expo-red);
    text-align: center;
    margin-bottom: clamp(50px, 7vw, 90px);
    position: relative;
}
.rules-section__title::after {
    content: '';
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    bottom: -18px;
    width: 80px;
    height: 4px;
    background: var(--expo-red);
    border-radius: 3px;
}

.rules-slider-wrapper {
    width: 100vw;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    box-sizing: border-box;
    overflow: visible;
}

.rules-slider-track {
    box-sizing: content-box;
}
/* .rules-slider-track::-webkit-scrollbar {
    display: none;
} */

.slider-slide.rule-card {
/*     flex-shrink: 0;
    scroll-snap-align: start; */
/*     margin-right: var(--slide-gap); */
/*     min-height: 400px; */
    box-sizing: border-box;
}


.rule-card {
    background-color: var(--expo-white);
    border-radius: 12px;
    padding: clamp(25px, 3vw, 35px);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.06);
    border: 5px solid #D9333F;
    position: relative;
    overflow: hidden;
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
    display: flex;
    flex-direction: column;
}


.rule-card__number-display {
    position: absolute;
    top: 15px;
    right: 20px;
    font-family: 'Oswald', 'Bebas Neue', sans-serif;
    font-size: clamp(2.8rem, 6.5vw, 4rem);
    font-weight: 700;
    color: var(--number-accent-color);
    opacity: 0.7;
    line-height: 1;
    z-index: 0;
    transform: rotate(-3deg) translateX(5px) translateY(-5px);
    transition: transform 0.3s ease, color 0.3s ease;
}

.rule-card__bg-icon-display {
    position: absolute;
    bottom: 20px;
    left: 40px;
    width: clamp(65px, 9vw, 85px);  /* 表示したいアイコンのサイズに合わせて調整 */
    height: clamp(65px, 9vw, 85px); /* 表示したいアイコンのサイズに合わせて調整 */
    z-index: 0;
    opacity: 0.1; /* PNG画像自体の不透明度も考慮して調整 */
    transform: rotate(-12deg) scale(1.2);
    pointer-events: none;
    transition: opacity 0.3s ease, transform 0.3s ease;
}
.rule-card:hover .rule-card__bg-icon-display {
    opacity: 0.18;
    transform: rotate(-8deg) scale(1.25);
}

.rule-card__bg-icon-display::before {
    content: '';
    display: block;
    width: 100%;
    height: 100%;
    /* background-color は不要になります (PNG画像の色がそのまま使われるため) */
    /* -webkit-mask-image と mask-image は削除 */
    background-size: contain; /* 画像が要素内に収まるように */
    background-repeat: no-repeat;
    background-position: center;
    /* background-image は各アイコン定義で設定 */
}


/* 01: 布団(or ベッド)のアイコン */
.rule-card[data-icon-name="bed"] .rule-card__bg-icon-display::before {
    background-image: url("https://hoshigiken.local/wp-content/uploads/2025/05/ベッドのフリーアイコン8.png");
}

/* 02: 唐揚げのアイコン */
.rule-card[data-icon-name="karaage"] .rule-card__bg-icon-display::before {
    background-image: url("https://hoshigiken.local/wp-content/uploads/2025/05/風呂敷アイコン.png");
}

/* 03: お金のアイコン */
.rule-card[data-icon-name="money"] .rule-card__bg-icon-display::before {
    background-image: url("https://hoshigiken.local/wp-content/uploads/2025/05/シンプルな円袋のアイコン.png");
}

/* 04: メガネのアイコン */
.rule-card[data-icon-name="glasses"] .rule-card__bg-icon-display::before {
    background-image: url("https://hoshigiken.local/wp-content/uploads/2025/05/ガンジーアイコン2.png");
}

/* 05: 車のアイコン */
.rule-card[data-icon-name="car"] .rule-card__bg-icon-display::before {
    background-image: url("https://hoshigiken.local/wp-content/uploads/2025/05/乗用車のアイコン素材2.png");
}

.rule-card__content {
    position: relative;
    z-index: 1;
    margin-top: 2.5rem;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}

.rule-card__title {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 900;
    font-size: clamp(1.1rem, 1.9vw, 1.5rem);
    color: var(--card-title-color);
    margin-bottom: 1.2em;
    line-height: 1.5;
}

.rule-card__description {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 1.2em;
    color: var(--card-description-color);
    line-height: 1.65;
    margin-bottom: 0;
    flex-grow: 1;
}

.rules-slider-pagination {
    display: block; /* ★明示的に表示 */
    visibility: visible; /* ★明示的に表示 */
    opacity: 1; /* ★明示的に表示 */
    text-align: center;
    padding-top: clamp(25px, 4vw, 40px);
    position: relative; /* z-index を有効にするため */
    z-index: 2; /* スライダー本体より手前に来るように */
    max-width: var(--rules-section-container-width, 1200px); /* コンテナ幅に合わせる */
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--slide-gap); /* コンテナの左右パディングと合わせる */
    padding-right: var(--slide-gap);
    /* background-color: transparent; */ /* 背景色が必要な場合は設定 */
}
.rules-slider-pagination .dot {
    display: inline-block; /* 横並びにするため */
    width: 10px; /* サイズを確保 */
    height: 10px; /* サイズを確保 */
    background-color: var(--dot-inactive, #cccccc); /* 色指定 */
    border-radius: 50%;
    margin: 0 7px;
    cursor: pointer; /* JSで操作する場合 */
    transition: background-color 0.3s ease, transform 0.3s ease;
}
.rules-slider-pagination .dot.current {
  background-color: var(--dot-active, #D9333F); /* アクティブな色 */
  transform: scale(1.3);
}











/* 親要素（コンテナ）のスタイル（変更なし） */
.rules-list {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
	justify-content: center;
}

/* 子要素（カード）のスタイル（こちらを修正） */
.rule-card {
  width: 350px;

}
















/* --- セクション全体 --- */
.welfare-section {
    padding: clamp(50px, 8vw, 100px) 20px;
    font-family: var(--welfare-font-main);
    text-align: center; /* 全体を中央寄せに */
}
.welfare-section::before {
    content: '';
    position: absolute;
    top: -10%;
    right: -20%;
    width: 50vw;
    height: 50vw;
    background: radial-gradient(circle, #68b9fc4d 0%, rgba(217, 51, 63, 0) 70%);
    border-radius: 50%;
    z-index: 0;
    pointer-events: none;
    transform: rotate(15deg);
}

.welfare-section__container {
    margin: 0 auto;  
    --_container-max-width: var(--_global--container-max-width);
    --_container-margin: var(--_global--container-margin);
    --_container-margin-right: calc(var(--_container-margin) + env(safe-area-inset-right));
    --_container-margin-left: calc(var(--_container-margin) + env(safe-area-inset-left));
    margin-left: auto;
    margin-right: auto;
    max-width: var(--_container-max-width);
}

.welfare-section__title {
    font-family: var(--welfare-font-title);
    font-size: 3rem;
    color: var(--welfare-text-dark);
    margin-bottom: 15px;
    position: relative;
    display: inline-block; /* 下線のため */
}
.welfare-section__title .title-accent {
    font-family: var(--welfare-font-main);
    font-size: 0.4em;
    color: var(--welfare-accent-secondary);
    display: block; /* タイトルの下に表示 */
    font-weight: normal;
    margin-top: 5px;
}
.welfare-section__title::after { /* タイトル下線 */
    content: '';
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    bottom: -10px;
    border-radius: 3px;
    background: var(--welfare-accent-primary); /* 下線をアクセントカラーに */
    height: 4px; /* 少し細く */
    width: 70px;
    bottom: -12px;
}

.welfare-section__subtitle {
    font-size: clamp(1rem, 2vw, 1.2rem);
    color: var(--welfare-text-light);
    margin-top: 20px;
        margin-bottom: 40px;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

/* --- 福利厚生カードグリッド --- */
.welfare-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); /* レスポンシブなカラム */
    gap: clamp(20px, 3vw, 30px);
}

/* --- 各福利厚生カード --- */
.welfare-card {
    background-color: var(--welfare-card-bg);
    padding: 25px;
    position: relative;
    overflow: hidden; /* 疑似要素での装飾のため */
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    display: flex;
    flex-direction: column;
    border-radius: 8px; /* 角丸を少し控えめに */
    text-align: left; /* ★カード内テキストを左揃えに */
    box-shadow: 0 4px 15px rgba(0,0,0,0.05); /* シャドウを少し薄く */
    border: 1px solid #ebebeb; /* 薄い枠線を追加 */
    align-items: flex-start;
    padding-left: calc(25px + 5px + 10px); /* アイコンと左ボーダーのためのスペース */
}
.welfare-card:hover {
    transform: translateY(-8px) scale(1.03);
    box-shadow: 0 10px 25px rgba(0,0,0,0.1);
}


/* カードの左側にアクセントライン */
.welfare-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 5px; /* ラインの太さ */
    height: 100%;
    background-color: rgb(58, 171, 210);
    border-radius: 8px 0 0 8px; /* 左側の角丸に合わせる */
    opacity: 1; /* 不透明度調整は不要に */
    transform: none; /* 回転やスケールはなし */
    transition: background-color 0.3s ease;
}

.welfare-card:hover::before {
    background-color: var(--welfare-accent-secondary); /* ホバーで色変更も可 */
    transform: none;
}



/* --- 各福利厚生カード (.welfare-card) の右上に番号表示 --- */
.welfare-card::after { 
    counter-increment: welfare-card-counter; 
    content: counter(welfare-card-counter); 
  /* 以下は番号の見た目に関するスタイル（前回と同様） */
    position: absolute;
    color: #3aabd2; 
    top: 15px;
    right: 20px;
    font-family: 'Oswald', 'Bebas Neue', sans-serif;
    font-size:3rem; 
    font-weight: 700;
    line-height: 1;
    z-index: 0; 
    opacity: 0.8; 
}



/* --- 福利厚生カードの親要素でカウンターをリセット --- */
.welfare-grid {
    counter-reset: welfare-card-counter; 
}


.welfare-card__icon {
    width: 48px; 
    height: 48px;
    margin-bottom: 20px;
    background-color: transparent;
    border-radius: 0; 
    margin-left: 0;
}
.welfare-card__icon img,
.welfare-card__icon svg { 
    width: 60%;
    height: 60%;
    object-fit: contain;
    filter: brightness(0) invert(1); 
}

.welfare-card__name {
    font-family: var(--welfare-font-main);
    font-size: clamp(1.1rem, 2.2vw, 1.4rem);
    font-weight: 700;
    color: var(--welfare-text-dark);
    margin-bottom: 20px;
    line-height: 1.3;
}

.welfare-card__amount {
    font-family: var(--welfare-font-title);
    font-size: 1.6rem;    
    font-weight: bold;
    color: var(--welfare-accent-primary);
    margin-bottom: 10px;
}

.welfare-card__details {
    font-size: clamp(0.85rem, 1.6vw, 0.95rem);
    color: var(--welfare-text-light);
    line-height: 1.6;
    flex-grow: 1; /* カードの高さを揃えるため、説明文が残りのスペースを埋める */
}
.welfare-card__details p {
    margin-bottom: 0;
}
































.welfare-card__icon img,
.welfare-card__icon svg {
    width: 100%; /* アイコンサイズをコンテナに合わせる */
    height: 100%;
    object-fit: contain;
    filter: none; 
}


.welfare-card__name {
    color: var(--welfare-text-dark);
    text-align: left;
}

.welfare-card__amount {
    color: var(--welfare-accent-primary);
    text-align: left; /* 左揃え */
}


.welfare-card__details {
    color: var(--welfare-text-light);
    text-align: left; /* 左揃え */
}








/* テーブル全体のスタイル */
.wp-block-table.is-style-regular table {
    border-collapse: collapse; 
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}
figure.wp-block-table.is-style-regular tr {
    align-items: center!important;
}
.wp-block-table.is-style-regular table td {
    border: 2px solid #fff;
    padding: 1em; 

}


.wp-block-table.is-style-regular table tr td:first-child {
    background-color: #e60111;
    color: #fff; 
    font-weight: bold;
    text-align: center;
    width: 25%; 
    min-width: 120px;
}

.wp-block-table.is-style-regular table tr td:first-child strong {
    color: inherit; 
    font-weight: bold; 
}


.wp-block-table.is-style-regular table tr td:nth-child(2) {
    background-color: var(--section-bg-color);; 
    color: #333; 
}




/* CTA */
.wp-block-snow-monkey-blocks-items.smb-items.smb-items--glue.cta.RJE_R001CORP_items_with_bg.is-style-default {
    max-width: none;
    margin: 0;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
}

.cta [data-content-position=bottom-left] {
    font-family: "Montserrat", sans-serif;
    text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.5);
}

.wp-block-snow-monkey-blocks-items-banner .smb-items__banner__figure {
  overflow: hidden;
}

.wp-block-snow-monkey-blocks-items-banner .smb-items__banner__figure img {
  transition: transform 0.3s ease-in-out;
}

.wp-block-snow-monkey-blocks-items-banner .smb-items__banner:hover .smb-items__banner__figure img {
  transform: scale(1.1);
}














/* === Snow Monkey ブレイクポイントに合わせたレスポンシブ対応 === */
/* デスクトップ (デフォルト) */
.slider-slide.rule-card {
  flex-basis: calc((100% - var(--slide-gap) * (var(--slides-to-show-desktop) - 1)) / var(--slides-to-show-desktop));
}

/* lg未満 (～1023.98px) */
@media (max-width: 1023.98px) {
    .tate .smb-section__background-text__text {
        left: -30%;
    }
    .cate .smb-media-text__figure {
        width: 60%;
        margin: 0 auto;
    }
    .cate h2.smb-media-text__title {
        text-align: center;
    }
    .reason .c-row__col.c-row__col--1-1.c-row__col--lg-1-2 {
        margin-bottom: 2rem;
    }
    .reason .wp-block-snow-monkey-blocks-section-break-the-grid.alignfull.smb-section.smb-section-break-the-grid.smb-section-break-the-grid--left.smb-section-break-the-grid--mobile-image.is-style-default {
        padding-bottom: 0;
    }
    .suji .smb-section__background-text__text.has-sm-5-xl-font-size {
        font-family: "Nothing You Could Do", cursive;
    }
    .welfare-section__title {
        font-size: 2rem;
    }
    .rec .c-row__col.c-row__col--1-1.c-row__col--md-1-3 {
        margin-bottom: 0;
    }
    .slider-slide.rule-card {
        flex-basis: calc((100% - var(--slide-gap) * (var(--slides-to-show-tablet) - 1)) / var(--slides-to-show-tablet));
    }

    .special .c-row[data-columns="1"] {
        --_item-width: 30%;
    }
    .wp-block-snow-monkey-blocks-section.special .wp-block-snow-monkey-blocks-items .c-row {
        justify-content: center;
    }
    .ori-sec {
        padding-top: 60px;
        padding-bottom: 60px;
    }
    .ori-sec::before {
        width: 120px;
        height: 120px;
        top: -30px;
        left: -60px;
    }
    .ori-sec::after {
        width: 200px;
        height: 200px;
        bottom: -70px;
        right: -70px;
    }
    .ori-sec .smb-section__header {
        text-align: center;
    }
    .ori-sec .smb-section__subtitle strong,
    .ori-sec .smb-section__title strong .sme-font-size,
    .ori-sec .wp-block-column:not([style*="flex-basis:60%"]) p {
        padding-left: 5px; /* モバイルではパディングを少し控えめに */
        padding-right: 5px;
    }
    .welfare-grid {
        grid-template-columns: 1fr; /* モバイルでは1カラム */
    }
    .welfare-card__name {
        font-size: 1.2rem;
    }
    .welfare-card__amount {
        font-size: 1.5rem;
    }
        .welfare-card {
        padding-left: calc(15px + 5px + 10px); /* モバイルでのパディング調整 */
    }
    .welfare-card::after { /* 番号 */
        font-size: clamp(2rem, 5vw, 3.5rem);
        top: 10px;
        right: 15px;
    }
    .welfare-card__icon {
        width: 40px;
        height: 40px;
    }
    .ori-sec2 {
        padding-top: 60px;
        padding-bottom: 60px;
    }
    .ori-sec2::before { /* 右上アクセントのモバイル調整 */
        width: 150px;   /* サイズ調整 */
        height: 150px;  /* サイズ調整 */
        top: -60px;     /* 位置調整 */
        right: -80px;   /* 位置調整 */
    }
    .ori-sec2::after { /* 左下アクセントのモバイル調整 */
        width: 120px;   /* サイズ調整 */
        height: 100px;  /* サイズ調整 */
        bottom: -50px;  /* 位置調整 */
        left: -40px;    /* 位置調整 */
    }
    .ori-sec2 .smb-section__header {
        text-align: center;
    }
    .ori-sec2 .smb-section__subtitle strong,
    .ori-sec2 .smb-section__title strong .sme-font-size,
    .ori-sec2 .wp-block-column:not([style*="flex-basis:60%"]) p {
        padding-left: 5px;
        padding-right: 5px;
    }
    :root { --rules-section-container-width-tablet: 768px; }
}

/* sm未満 (～639.98px) */
@media (max-width: 639.98px) {
    .slider-slide.rule-card {
        flex-basis: calc((100% - var(--slide-gap) * (var(--slides-to-show-mobile) - 1)) / var(--slides-to-show-mobile));
        scroll-snap-align: center;
    }

/*     .rules-slider-track {
        padding-left: 0; 
        padding-right: calc(100% - (100% / var(--slides-to-show-mobile)) + var(--slide-gap));
    } */
    .rule-card__number-display {
        font-size: clamp(2.8rem, 8vw, 3.8rem);
    }
    .rule-card__bg-icon-display {
        width: clamp(55px, 10vw, 70px);
        height: clamp(55px, 10vw, 70px);
    }
    .rules-section__title {
        font-size: clamp(2rem, 5vw, 3rem);
    }
    .rules-slider-pagination .dot {
        width: 8px; height: 8px; margin: 0 4px;
    }
    .special .c-row[data-columns="1"] {
        --_item-width: 50%;
    }
    .wp-block-snow-monkey-blocks-section.special .wp-block-snow-monkey-blocks-items .c-row {
        justify-content: flex-start;
    }
    .rule-card__title {
        font-size: 1rem;
    }
    .rule-card__description {
        font-size: 0.88rem;
    }
    .slider-slide.rule-card {
        min-height: auto;
    }
}
