/*
Theme Name: raicala
Author: ChatGPT
Description: Custom theme for raicala site
Version: 1.0
*/
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP&display=swap');

html, body {
/*   font-family: 'Noto Sans JP', sans-serif; */
    font-family: "Zen Kaku Gothic New", sans-serif;
  margin: 0;
  padding: 0;
  background: #fff;
  color: #222;
/*   overflow-x: hidden; */
/* 	overflow-y: auto; */
  height: 100%;
	    font-size: 18px;
}
  body.nav-open {
    overflow: hidden;
    touch-action: none;
  }

h3{
	font-size: 1.25em;
}
/* body{
	overflow: auto;
} */


/* HEADER */
.site-header {
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 999;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 40px;
  background: transparent;
  transition: background-color 0.3s, box-shadow 0.3s;
	padding:0;
}
.site-header .site-nav a {
	color:white;
}
.site-logo {
  font-weight: bold;
  font-size: 24px;
	height:50px;
  text-decoration: none;
  color: black;
	width:300px;
	padding-left:20px;
}
.site-nav {
  display: flex;
  gap: 30px;
  align-items: center;
	width: calc(100% - 300px);
	padding-right:20px;
	justify-content:end;
}
.site-nav a {
  text-decoration: none;
  color: white;
  font-size: 14px;
  position: relative;
}
.site-header.scrolled,
body:not(.home) .site-header {
  background: white;
  box-shadow: 0 2px 5px rgba(0,0,0,0.1);
	color:black ;
}
body:not(.home) .site-header a {
	color:black !important;
}
body:not(.home) .site-header a.active{
	color:#3AB54A !important;
}
body:not(.home) .site-header .hamburger span{
	background:black !important;
}
.site-nav a.active {
  color: #3AB54A;
}
.site-nav .menu-item-has-children:hover .sub-menu {
  display: block;
}
.sub-menu {
  display: none;
  position: absolute;
  background: white;
  top: 100%;
  left: 0;
  padding: 10px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
  border-radius: 4px;
  z-index: 999;
}
.sub-menu a {
  white-space: nowrap;
  display: block;
  padding: 5px 10px;
  color: #000;
}

/* Hamburger */
.hamburger {
  display: none;
  flex-direction: column;
  justify-content: space-between;
  width: 24px;
  height: 18px;
  cursor: pointer;
	padding-right:10px;
}
.site-header .hamburger span {
  height: 2px;
  background: white;
  width: 100%;
  display: block;
}
.site-header.scrolled .hamburger span {
	background:black;
}


/* main {
  overflow-x: hidden;
} */

/* HERO */
.hero-section {
  position: relative;
  width: 100%;
  height: 100vh;
  overflow: hidden;
}

.hero-section video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
  pointer-events: none;
}
/* 各スライドアイテムの基本スタイル (変更なし) */
承知いたしました。スマートフォン表示（画面幅768px以下を想定）では動画スライドを非表示にし、画像2枚のスライドのみをループ再生するように修正します。

この機能を実現するには、主にJavaScriptとCSSの両方で調整が必要です。

変更の概要
HTMLの変更 (データ属性の追加):

各スライドに、表示させたいデバイスタイプを示すデータ属性（例: data-display-desktop, data-display-mobile）を追加します。

CSSの変更:

メディアクエリを使用して、スマホ表示時に動画スライドを完全に非表示にします。

JavaScriptの変更:

スライドショーの初期化時に、現在のデバイス（画面幅）に基づいて表示するスライドの配列を動的に作成します。

動画スライドになったら停止するロジックを、スマホ表示の場合はスキップするように修正します。

修正後のコード
1. HTMLの修正
各 hero-slide-item に、デスクトップとモバイルでの表示/非表示を制御するための data-desktop-only や data-mobile-only のようなデータ属性を追加します。ここではシンプルに data-display-on を使用します。

HTML

<section class="hero-section">
    <div class="hero-slide-item active" data-type="image" data-display-on="all" style="background-image: url('https://demosite-richwin.work/wp-content/uploads/2025/07/company.jpg');">
        <div class="hero-overlay"></div>
    </div>

    <div class="hero-slide-item" data-type="image" data-display-on="all" style="background-image: url('https://demosite-richwin.work/wp-content/uploads/2025/06/AI金谷くんガッツポーズ.jpg');">
        <div class="hero-overlay"></div>
    </div>

    <div class="hero-slide-item" data-type="video" data-display-on="desktop">
        <video autoplay muted loop playsinline>
            <source src="https://demosite-richwin.work/wp-content/uploads/2025/05/未来の車走行映像.mp4" type="video/mp4">
        </video>
        <div class="hero-overlay"></div>
    </div>
</section>
ポイント:

data-display-on="all": デスクトップ・モバイル両方で表示

data-display-on="desktop": デスクトップでのみ表示

2. CSSの修正・追加
メディアクエリを使って、スマホ表示時に data-display-on="desktop" の要素（動画スライド）を非表示にします。

CSS

/* 既存のCSSはそのまま */

/* HERO Section (変更なし) */
.hero-section {
    position: relative;
    width: 100%;
    height: 100vh;
    overflow: hidden;
}

.hero-slide-item {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    /* opacity: 0;  JSで初期化時に設定するため、ここでは一旦削除 */
    visibility: hidden; /* デフォルトで非表示 */
    transition: none; /* JSで動的に追加するため、ここでは一旦削除 */
/*     transform: translateY(100%); */
    background-size: cover;
    background-position: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    color: white;
    box-sizing: border-box;
    padding-left: 100px;
    z-index: 1; /* 通常のスライドのz-index */
}

/* 動画スライド専用 (変更なし) */
.hero-slide-item video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
    pointer-events: none;
}
.hero-slide-item .hero-overlay {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    height: 100%;
    width: 100%;
    /* padding-left: 100px; は hero-slide-item に移動 */
    /* ここを削除またはコメントアウト: */
    /* background: rgba(0, 0, 0, 0.4); */
    box-sizing: border-box;
}
/* アクティブなスライドのスタイル (JSでactiveクラスが付与される) */
.hero-slide-item.active {
    /* opacity: 1;  JSで設定 */
    visibility: visible; /* アクティブなものは表示 */
    /* transform: translateY(0); JSで設定 */
    /* z-index はJSで制御 */
}

/* キーフレームアニメーション（新しいスライドが下からスライドアップしてフェードイン） */
/* @keyframes slideUpFadeIn {
    0% {
        opacity: 0;
        transform: translateY(100%);
    }
    100% {
        opacity: 1;
        transform: translateY(0%);
    }
} */
@keyframes fadeIn {
    0% {
        opacity: 0;
        visibility: visible;
    }
    100% {
        opacity: 1;
        visibility: visible;
    }
}

/* 次のスライドがアニメーションして表示される時のスタイル */
.hero-slide-item.slide-in {
/*     animation: slideUpFadeIn 1s forwards; */
	    animation: fadeIn 1s ease forwards;
}
/* **修正**：前のスライドが上へスライドアウトしてフェードアウトするアニメーション */
@keyframes fadeOut {
    0% {
        opacity: 1;
/*         transform: translateY(0%); */
        visibility: visible; /* アニメーション開始時は表示 */
    }
    99% { /* ほぼ完了時にvisibilityをhiddenにする */
        visibility: visible;
    }
    100% {
        opacity: 0;
/*         transform: translateY(-100%); */
        visibility: hidden; /* アニメーション完了後に非表示 */
    }
}
/* **修正**：前のスライドに適用されるクラス */
.hero-slide-item.slide-out {
/*     animation: slideUpFadeOut 1s forwards; */
	animation: fadeOut 1s ease forwards;
}

/* **追加**：アクティブではないスライドの表示状態 */
/* アニメーション中でない、非アクティブなスライドは完全に非表示 */
.hero-slide-item:not(.active):not(.slide-in):not(.slide-out) {
    opacity: 0;
    visibility: hidden;
/*     transform: translateY(100%);  */
}

/* 画面サイズが768px以下の場合の調整 (変更なし) */
@media (max-width: 768px) {
    .hero-slide-item {
        padding-left: 20px;
    }
    .hero-slide-item .hero-overlay {
        /* ここで必要であればhero-overlay内のパディングなどを調整 */
    }
    /* キャッチコピーがないので以下は不要になりますが、残っていても問題ありません */
    /* .hero-title {
        font-size: 36px;
        line-height: 1.2;
    }
    .hero-subtitle {
        font-size: 16px;
        line-height: 1.5;
    } */
}
/* **追加**：メディアクエリによる表示制御 */
@media (max-width: 768px) {
    /* デスクトップのみ表示のスライドをモバイルで非表示にする */
    .hero-slide-item[data-display-on="desktop"] {
        display: none !important; /* 強制的に非表示 */
        visibility: hidden !important;
        opacity: 0 !important;
    }

    /* 以下は既存のレスポンシブスタイルを記述 */
    .hero-slide-item {
        padding-left: 20px;
    }
    /* .hero-title, .hero-subtitle のスタイルなど */
}
.hero-title {
  font-size: 76px;
  line-height: 91px;
  font-weight: 600;
  color: white;
  margin: 0;
}

.hero-subtitle {
  font-size: 22px;
  line-height: 40px;
  font-weight: 500;
  color: #3AB54A;
}

.section {
	padding: 50px 0;
  max-width: 1700px;
  margin: 0 auto;
}

.section-inner {
  padding: 0 100px;
}

@media (max-width: 768px) {
  .section-inner {
    padding: 0 20px;
  }
}

.section-title-en {
  font-size: 70px;
  line-height: 84px;
  font-weight: 600;
	margin-top:0px;
	margin-bottom:10px;
}
.section-title-en img{
	max-width:300px;
}

.section-title-ja {
  font-size: 18px;
  line-height: 25px;
  font-weight: 700;
  color: #3AB54A;
  margin-bottom: 30px;
}
.section-title-ja-yellow{
	color:#FFD900;
}

.section-description {
  font-size: 18px;
  line-height: 42px;
  font-weight: 500;
  margin-bottom: 60px;
}

.service-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 20px;
}

/* .service-box {
  flex: 1 1 calc(33.333% - 20px);
  height: 400px;
  position: relative;
  color: #fff;
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: flex-end;
  border-radius: 16px;
  overflow: hidden;
  text-decoration: none;
} */
.service-box {
    flex: 1 1 calc(33.333% - 20px);
	max-width: calc(33.333% - 20px);
    height: 400px;
    position: relative;
    color: #fff;
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: flex-end;
    border-radius: 16px;
/*     overflow: hidden; */
    text-decoration: none;

    /* ホバー時の背景画像濃淡用 */
    transition: background-image 0.3s ease-in-out; /* 背景画像のトランジションを追加 */
    
    /* 枠線アニメーション用 */
    border: 2px solid transparent; /* 初期状態では透明な枠線 */
    transition: border-color 0s linear 0.3s; /* 枠線色のトランジション（遅延させてアニメーション後に出現） */
}

.service-box .service-overlay {
  background: #3ab54a80;
  width: 100%;
  padding: 20px;
}
/* 枠線アニメーションのコンテナ */
.service-box::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-radius: 16px; /* 親要素と合わせる */
    border: 5px solid transparent;
    box-sizing: border-box; /* paddingとborderをwidth/heightに含める */
    pointer-events: none; /* ホバーイベントを邪魔しないようにする */
}

/* ホバー時の枠線アニメーション */
.service-box:hover::before {
    animation: drawBorder 0.2s linear forwards; /* アニメーション適用 */
}

/* 枠線アニメーションのキーフレーム */
@keyframes drawBorder {
    0% {
        border-top-color: transparent;
        border-right-color: transparent;
        border-bottom-color: transparent;
        border-left-color: transparent;
    }
    25% {
        border-top-color: #FFD900; /* 上辺 */
        border-right-color: transparent;
        border-bottom-color: transparent;
        border-left-color: transparent;
    }
    50% {
        border-top-color: #FFD900;
        border-right-color: #FFD900; /* 右辺 */
        border-bottom-color: transparent;
        border-left-color: transparent;
    }
    75% {
        border-top-color: #FFD900;
        border-right-color: #FFD900;
        border-bottom-color: #FFD900; /* 下辺 */
        border-left-color: transparent;
    }
    100% {
        border-top-color: #FFD900;
        border-right-color: #FFD900;
        border-bottom-color: #FFD900;
        border-left-color: #FFD900; /* 左辺 */
        border-color: #FFD900; /* 全ての辺を白色に */
    }
}

/* .service-box.sns {
  background-image: url('images/service-sns.jpg');
}
.service-box.hp {
  background-image: url('images/service-hp.jpg');
}
.service-box.dx {
  background-image: url('images/service-dx.jpg');
}
.service-box.line {
  background-image: url('images/service-line.jpg');
}
.service-box.syaken {
  background-image: url('images/service-syaken.jpg');
}
.service-box.money {
  background-image: url('images/service-money.jpg');
}
 */

/* SNS */
.service-box.sns {
    background-image: linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3)), url(images/service-sns.jpg); /* ホバーしていないときは画像を薄く表示 */
}
.service-box.sns:hover {
    background-image: url(images/service-sns.jpg); /* ホバーすると画像を濃く表示 */
}

/* HP */
.service-box.hp {
    background-image: linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3)), url(images/service-hp.jpg); /* ホバーしていないときは画像を薄く表示 */
}
.service-box.hp:hover {
    background-image: url(images/service-hp.jpg); /* ホバーすると画像を濃く表示 */
}

/* DX */
.service-box.dx {
    background-image: linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3)), url(images/service-dx.jpg); /* ホバーしていないときは画像を薄く表示 */
}
.service-box.dx:hover {
    background-image: url(images/service-dx.jpg); /* ホバーすると画像を濃く表示 */
}

/* LINE */
.service-box.line {
    background-image: linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3)), url(images/service-line.jpg); /* ホバーしていないときは画像を薄く表示 */
}
.service-box.line:hover {
    background-image: url(images/service-line.jpg); /* ホバーすると画像を濃く表示 */
}

/* SYAKEN (車検) */
.service-box.syaken {
    background-image: linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3)), url(images/service-syaken.jpg); /* ホバーしていないときは画像を薄く表示 */
}
.service-box.syaken:hover {
    background-image: url(images/service-syaken.jpg); /* ホバーすると画像を濃く表示 */
}

/* MONEY */
.service-box.money {
    background-image: linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3)), url(images/service-money.jpg); /* ホバーしていないときは画像を薄く表示 */
}
.service-box.money:hover {
    background-image: url(images/service-money.jpg); /* ホバーすると画像を濃く表示 */
}

/* AI */
.service-box.ai {
    background-image: linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3)), url(https://demosite-richwin.work/wp-content/uploads/2025/07/3970581_m.jpg); /* ホバーしていないときは画像を薄く表示 */
}
.service-box.ai:hover {
    background-image: url(https://demosite-richwin.work/wp-content/uploads/2025/07/3970581_m.jpg); /* ホバーすると画像を濃く表示 */
}

.company-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  margin-top: 40px;
}

/* .company-card {
  flex: 1 1 calc(50% - 20px);
  background-size: cover;
  background-position: center;
  height: 300px;
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  text-decoration: none;
  color: white;
}

.company-card .overlay {
  background: #ffd90080;
  position: absolute;
  bottom: 0;
  width: 100%;
  padding: 20px;
}

.company-card h3 {
  font-size: 24px;
  margin: 0;
}

.company-card.rep { background-image: url('https://demosite-richwin.work/wp-content/uploads/2025/06/717518_m.jpg'); }
.company-card.ai { background-image: url('https://demosite-richwin.work/wp-content/uploads/2025/06/AI金谷くんガッツポーズ.jpg'); }
.company-card.self { background-image: url('https://demosite-richwin.work/wp-content/uploads/2025/06/22141721_m.jpg'); }
.company-card.overview { background-image: url('https://demosite-richwin.work/wp-content/uploads/2025/06/IMG_2819.jpg'); } */

.company-card {
    flex: 1 1 calc(50% - 20px);
    background-size: cover;
    background-position: center;
    height: 400px;
    position: relative;
    border-radius: 16px;
    overflow: hidden;
    text-decoration: none;
    color: white;

    /* Hover background transition */
    transition: background-image 0.3s ease-in-out;

    /* Border animation setup */
    border: 2px solid transparent; /* Start with a transparent border */
    transition: border-color 0s linear 0.4s; /* Delay border color transition */
}

/* Common dimming for all company cards when not hovered */
.company-card.rep,
.company-card.ai,
.company-card.self,
.company-card.overview {
    background-image: linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3)), var(--bg-image); /* Use a CSS variable for the image */
}

/* Specific background images for each card */
.company-card.rep { --bg-image: url('https://demosite-richwin.work/wp-content/uploads/2025/06/717518_m.jpg'); }
.company-card.ai { --bg-image: url('https://demosite-richwin.work/wp-content/uploads/2025/06/AI金谷くんガッツポーズ.jpg');  background-position: top; }
.company-card.self { --bg-image: url('https://demosite-richwin.work/wp-content/uploads/2025/06/22141721_m.jpg'); }
.company-card.overview { --bg-image: url('https://demosite-richwin.work/wp-content/uploads/2025/07/company.jpg'); }

/* Brighten on hover for all company cards */
.company-card.rep:hover,
.company-card.ai:hover,
.company-card.self:hover,
.company-card.overview:hover {
    background-image: var(--bg-image); /* Remove the gradient on hover */
}

/* Border animation overlay */
.company-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-radius: 16px; /* Match parent */
    border: 5px solid transparent;
    box-sizing: border-box;
    pointer-events: none;
}

/* Apply border animation on hover */
.company-card:hover::before {
    animation: drawCompanyCardBorder 0.2s linear forwards;
}

/* Keyframes for the border animation */
@keyframes drawCompanyCardBorder {
    0% {
        border-top-color: transparent;
        border-right-color: transparent;
        border-bottom-color: transparent;
        border-left-color: transparent;
    }
    25% {
        border-top-color: #FFD900; /* 上辺 */
        border-right-color: transparent;
        border-bottom-color: transparent;
        border-left-color: transparent;
    }
    50% {
        border-top-color: #FFD900;
        border-right-color: #FFD900; /* 右辺 */
        border-bottom-color: transparent;
        border-left-color: transparent;
    }
    75% {
        border-top-color: #FFD900;
        border-right-color: #FFD900;
        border-bottom-color: #FFD900; /* 下辺 */
        border-left-color: transparent;
    }
    100% {
        border-top-color: #FFD900;
        border-right-color: #FFD900;
        border-bottom-color: #FFD900;
        border-left-color: #FFD900; /* 左辺 */
        border-color: #FFD900; /* 全ての辺を白色に */
    }
}

/* Existing styles for overlay and heading (keep as is) */
.company-card .overlay {
    background: #ffd90080;
    position: absolute;
    bottom: 0;
    width: 100%;
    padding: 20px;
}

.company-card h3 {
    font-size: 24px;
    margin: 0;
}
/* 
.fadeUp {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}
.fadeUp.show {
  opacity: 1;
  transform: translateY(0);
}
 */

.fadeUp {
    opacity: 0;
    transform: translateY(40px); /* 移動距離を20pxから40pxに増加 */
    transition: opacity 0.8s cubic-bezier(0.2, 0.8, 0.2, 1), transform 0.8s cubic-bezier(0.2, 0.8, 0.2, 1); /* アニメーション時間を0.6sから0.8sに、イージングをcubic-bezierに変更 */
}

/* 複数の要素を連続でフェードアップさせる場合に、アニメーションに時間差を持たせる */
.fadeUp:nth-child(1) { transition-delay: 0s; }
.fadeUp:nth-child(2) { transition-delay: 0.1s; }
.fadeUp:nth-child(3) { transition-delay: 0.2s; }
.fadeUp:nth-child(4) { transition-delay: 0.3s; }
/* 必要に応じて、さらにnth-childを追加してください */


.fadeUp.show {
    opacity: 1;
    transform: translateY(0);
}

.page-wrapper {
  max-width: 1700px;
  margin: 0 auto;
  padding: 0 30px;
}

.breadcrumb-area {
  margin: 38px auto 50px;
}

.breadcrumb {
  font-size: 14px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.breadcrumb a {
  text-decoration: none;
  color: #000;
}

.breadcrumb span[property='name'] {
  color: #3AB54A; /* メインカラー */
  font-weight: bold;
}

@media (max-width: 768px) {
  .page-wrapper {
    padding: 0 10px;
  }
.section-title-en {
  font-size: 40px;
  line-height: 48px;
  font-weight: 600;
}
	.breadcrumb-area{
		margin-bottom:20px;
	}
}

.p-contact__form__inputItem:not(:last-child) {
    margin-bottom: 40px;
}

.p-contact__form__inputItem {
    display: flex;
    align-items: center;
}

.p-contact__inputItem__heading {
    width: 200px;
    text-align: right;
    margin-right: 50px;
    position: relative;
}

.p-contact__inputItem__heading--required span::after {
    content: '*';
    color: #c60000;
    position: absolute;
    right: auto;
    top: 50%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
}
/* 
.p-contact__inputItem__inputArea--small {
    max-width: 314px;
} */
.p-contact__inputItem__inputArea {
    width: calc(100% - 250px);
    position: relative;
}

.p-contact__form__inputItem--textarea {
    align-items: flex-start;
}

.c-linkButton {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 480px;
    padding: 26px 0;
    border-radius: 36px;
    color: #000;
    color: var(--txt-dark);
    text-decoration: none;
    z-index: 1;
    overflow: hidden;
}

.p-contact__form__inputButton {
    width: 71.5%;
    margin: 40px auto 0;
    font-weight: 400;
}
.p-contact__inputItem__inputArea>input, .p-contact__inputItem__inputArea>textarea {
    width: 100%;
    margin: 0;
    padding: 0.5em;
    background: #e7e4df;
    background: var(--color-main-light);
    border: none;
    border-radius: 0;
    outline: 0;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

@media screen and (max-width: 768px){
.p-contact__form__inputItem {
    flex-direction: column;
	}
.p-contact__inputItem__heading {
    margin: 0 auto 5px;
    width: 100%;
    text-align: left;
}
.p-contact__inputItem__heading--required::after {
    right: auto;
}
.p-contact__inputItem__inputArea {
    width: 100%;
}
.p-contact__inputItem__inputArea--small {
    margin: 0;
    max-width: 100%;
}
	.elementor-6 .elementor-element.elementor-element-170455b:hover>.elementor-element-populated{
		background-image:none !important;
	}
	.p-contact__form__inputItem:not(:last-child){
		margin-bottom:0;
	}
	.p-contact__inputItem__heading p{
		margin:0;
	}
}

.wpcf7{
	max-width:800px;
	margin:0 auto;
}
input.wpcf7-form-control{
	width:100%;
	height:40px;

}
.wpcf7 .wpcf7-submit{
		    background: #FFD900;
    border: none;
    color: white;
	transition: background-color 0.3s ease-in-out;
	cursor:pointer;
}
.wpcf7 .wpcf7-submit:hover{
	background: #FFD900;
}
textarea.wpcf7-form-control{
	width:100%;
}

.page-heading{
	margin-bottom:50px;
}

.privacy-policy h2 {
  font-size: 20px;
  margin-top: 40px;
  margin-bottom: 12px;
  border-left: 4px solid #3AB54A;
  padding-left: 10px;
}

.privacy-policy p {
  line-height: 1.8;
  margin-bottom: 20px;
}

.privacy-policy ul {
  margin-bottom: 20px;
  padding-left: 20px;
}

.privacy-policy ul li {
  list-style: disc;
  margin-bottom: 8px;
}


.faq-bottom-section {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: #f2f2f2;
  padding: 40px 60px;
  border-radius: 16px;
  margin-top: 60px;
  gap: 40px;
}

.faq-chat-left {
  flex: 1;
/*   display: flex; */
  align-items: center;
  justify-content: center;
}
.faq-chat-left h3{
	margin-bottom:50px;
	font-size:28px;
	font-weight:600;
}
.faq-chat-left p{
	margin-bottom:50px;
	font-size:16px;
/* 	font-weight:600; */
}

.chat-link {
	background: #3ab54a;
  color: #fff;
  font-size: 28px;
  text-decoration: none;
  padding: 20px 40px;
  border-radius: 8px;
  font-weight: bold;
}
.pdf-link2 {
	background: #3ab54a;
  color: #fff;
  font-size: 18px;
  text-decoration: none;
  padding: 20px 40px;
  border-radius: 8px;
  font-weight: bold;
	margin-top:30px;
}

.faq-chat-right {
  flex: 1;
  display: flex;
  justify-content: center;
  align-items: center;
}

.chatbot-image {
  width: 280px;
  height: auto;
  border-radius: 50%;
}

@media (max-width: 768px) {
  .faq-bottom-section {
    flex-direction: column-reverse;
    padding: 30px 20px;
  }
.faq-chat-left h3{
	margin-bottom:30px;
	font-size:18px;
	font-weight:600;
	text-align: center;
}
.faq-chat-left p{
	margin-bottom:30px;
	font-size:14px;
/* 	font-weight:600; */
	text-align: center;
}
  .chat-link {
    font-size: 22px;
    padding: 15px 30px;
  }
	.pdf-link2{
		font-size:16px;
	}
  .chatbot-image {
    width: 200px;
    margin-top: 20px;
  }
	.page-heading{
	margin-bottom:50px;	
	}
}

.message-section {
  background: #f7f7f7;
/*   padding: 50px 0;
	margin-top:50px; */
	padding: 150px 0;
    margin-top: -50px;
    margin-bottom: 100px;
}

.message-container {
  max-width: 1700px;
  padding: 0 100px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
/*   align-items: center; */
  gap: 60px;
}

.message-left {
  flex: 1;
  min-width: 320px;
}

.message-right {
  flex: 1;
  min-width: 300px;
  text-align: center;
}
#section3 .message-right{
	margin-top:50px;
}

.message-right img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
}

.message-heading {
  font-size: 24px;
  font-weight: bold;
  margin: 30px 0 20px;
}

.message-body p {
  line-height: 1.8;
  margin-bottom: 20px;
}

@media (max-width: 768px) {
  .message-container {
    flex-direction: column;
    padding: 0 20px;
  }
	.message-left{
		min-width:0;
		width:100%;
	}
	.message-section{
/* 		padding:30px 0; */
		        padding: 100px 0 30px;
	}
	#section3 .message-right{
	margin-top:0px;
}
	#section3 .message-container{
	gap:20px;
}
}
/* 共通スタイルは既存 .message-section に準拠 */

.message-container.reverse {
  flex-direction: row-reverse;
}
.ai-message{
	background:white;
}

.pdf-link {
  font-size: 16px;
  font-weight: bold;
  color: #3AB54A;
  text-decoration: none;
  display: inline-block;
  padding-left: 20px;
  position: relative;
}

.pdf-link::before {
  content: '📄';
  position: absolute;
  left: 0;
  top: 0;
}

@media (max-width: 768px) {
  .message-container.reverse {
    flex-direction: column;
  }
}

.profile-section {
  background: #fff;
/*   padding: 50px 0; */
	padding: 150px 0 50px;
    margin-top: -50px;
/*     margin-bottom: 100px; */
}

.profile-section .section-inner {
  max-width: 1700px;
  padding: 0 50px;
  margin: 0 auto;
}

.profile-block {
  margin-bottom: 80px;
}

.profile-block h3 {
  font-size: 24px;
  margin-top: 40px;
  font-weight: bold;
}

.profile-block h4 {
  font-size: 18px;
  margin-top: 30px;
  margin-bottom: 10px;
  border-left: 4px solid #3AB54A;
  padding-left: 10px;
}

.profile-block p {
  line-height: 1.8;
  margin-bottom: 15px;
}

.profile-block ul {
  padding-left: 20px;
  margin-bottom: 20px;
}

.profile-block ul li {
  list-style: disc;
  margin-bottom: 8px;
}
.double-representative-section{
	padding: 150px 0;
    margin-top: -50px;
    margin-bottom: 100px;
}

@media (max-width: 768px) {
  .profile-section .section-inner {
    padding: 0 20px;
  }
}

.company-info-section {
  background: #f9f9f9;
/*   padding: 50px 0; */
	padding: 100px 0;
    margin-top: -50px;
    margin-bottom: 100px;
}
.company-info-section h2{
	margin-top:50px;
}
.company-info-section-green{
	background:#E3F5E3;
	margin-bottom:50px;
}

.company-info-section .section-inner {
  max-width: 1000px;
  margin: 0 auto;
  padding: 0 15px;
}

.section-title-en.center {
  text-align: center;
  font-size: 70px;
  line-height: 84px;
  font-weight: 600;
  margin-bottom: 60px;
}

.company-info-table .row {
  display: flex;
  border-bottom: 1px solid #ddd;
  padding: 15px 0;
}

.company-info-table .label {
  width: 30%;
  font-weight: bold;
  color: #333;
}

.company-info-table .value {
  width: 70%;
  color: #555;
  line-height: 1.8;
}

.company-info-table .value ul {
  margin: 0;
  padding-left: 20px;
}

.company-info-table .value ul li {
  list-style: disc;
  margin-bottom: 6px;
}

@media (max-width: 768px) {
  .company-info-table .row {
    flex-direction: column;
  }

  .company-info-table .label,
  .company-info-table .value {
    width: 100%;
  }

  .section-title-en.center {
    font-size: 48px;
	  margin-bottom:30px;
  }
	.company-info-section{
		padding:50px 0;
		padding-top:1px;
	}
	.company-info-section h2{
		font-size:20px;
	}
}

.blog-archive .section-inner {
  max-width: 1700px;
  margin: 0 auto;
  padding: 0 100px;
}

.blog-intro {
  font-size: 18px;
  margin-bottom: 40px;
}

.blog-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 40px;
  margin-bottom: 60px;
}
@media screen and (max-width:1400px){
	.blog-grid{
		grid-template-columns: repeat(3, 1fr);
	}
}
@media screen and (max-width:768px){
	.blog-grid{
		grid-template-columns: repeat(2, 1fr);
	}
}
@media screen and (max-width:440px){
	.blog-grid{
		grid-template-columns: repeat(1, 1fr);
	}
}
.blog-card {
  background: #fff;
  overflow: hidden;
  border-radius: 10px;
  box-shadow: 0 0 8px rgba(0,0,0,0.1);
  transition: transform 0.3s ease;
}

.blog-card a {
  display: block;
  color: inherit;
  text-decoration: none;
}

.blog-thumb {
  width: 100%;
  height: 200px;
  overflow: hidden;
}

.blog-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.blog-card:hover .blog-thumb img {
  transform: scale(1.1);
}

.blog-meta {
  padding: 15px;
}

.blog-category {
  display: inline-block;
  font-size: 12px;
  color: #3ab54a;
  border: 1px solid #3ab54a;
  padding: 2px 8px;
  border-radius: 12px;
  margin-bottom: 8px;
}

.blog-title {
  font-size: 18px;
  font-weight: bold;
  margin: 10px 0;
  transition: color 0.3s ease;
}

.blog-card:hover .blog-title {
  color: #3AB54A; /* メインカラー */
}

.blog-date {
  font-size: 12px;
  color: #666;
}

.blog-pagination {
  text-align: center;
}

.blog-pagination .page-numbers {
  display: inline-block;
  margin: 0 6px;
  padding: 6px 12px;
  background: #f3f3f3;
  color: #000;
  border-radius: 4px;
  text-decoration: none;
}

.blog-pagination .current {
  background: #3AB54A;
  color: #fff;
}

@media (max-width: 768px) {
  .blog-archive .section-inner {
    padding: 0 20px;
  }
}

.top-blog-section {
  background: #fff;
  padding: 50px 0;
}

.top-blog-section .section-inner {
  max-width: 1700px;
  margin: 0 auto;
  padding: 0 100px;
}

.top-blog-section .blog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
  margin-bottom: 40px;
}

.top-blog-link {
  text-align: right;
  font-size: 14px;
  font-weight: bold;
}

.top-blog-link a {
  color: #3AB54A;
  text-decoration: none;
}

@media (max-width: 1024px) {
  .top-blog-section .blog-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 640px) {
  .top-blog-section .section-inner {
    padding: 0 20px;
  }
  .top-blog-section .blog-grid {
    grid-template-columns: 1fr;
  }
}

/* .business-circle {
  background: #e3f5e3;;
  padding: 50px 0;
  text-align: center;
  color: #fff;
  position: relative;
}

.circle-container {
  position: relative;
  width: 600px;
  height: 600px;
  margin: 0 auto;
}

.circle-item {
  position: absolute;
  width: 140px;
  height: 140px;
  background: #FFD900;
  border-radius: 50%;
  text-align: center;
  padding: 15px;
  text-decoration: none;
  color: #fff;
  box-shadow: 0 5px 10px rgba(0,0,0,0.2);
  transition: transform 0.3s ease;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.circle-item:hover {
  background: #3ab54a;
}

.circle-item h3 {
  margin: 5px 0;
  font-size: 28px;
  font-weight: bold;
}

.circle-item p {
  font-size: 12px;
  line-height: 1.4;
	margin:0;
}

.pos1 { top: 0%; left: 50%; transform: translate(-50%, 0); }
.pos2 { top: 20%; left: 85%; transform: translate(-50%, 0); }
.pos3 { top: 65%; left: 85%; transform: translate(-50%, -30%); }
.pos4 { top: 100%; left: 50%; transform: translate(-50%, -100%); }
.pos5 { top: 65%; left: 15%; transform: translate(-50%, -30%); }
.pos6 { top: 20%; left: 15%; transform: translate(-50%, 0); }

@media (max-width: 768px) {
  .circle-container {
    width: 100%;
    height: auto;
    display: flex;
    flex-direction: column;
    gap: 20px;
    align-items: center;
  }

  .circle-item {
    position: static;
    transform: none !important;
  }
} */

/* 修正後のCSS */

.business-circle {
  background: #e3f5e3;
  padding: 50px 0;
  text-align: center;
  color: #fff;
  position: relative;
}

.circle-container {
  position: relative;
  width: 600px;
  height: 700px;
  margin: 0 auto;
}

.circle-item {
  position: absolute;
  width: 140px;
  height: 140px;
  border-radius: 50%;
  text-align: center;
  padding: 15px;
  text-decoration: none;
  color: #fff;
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  transition: transform 0.3s ease, background-color 0.3s ease;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  /* アイテムの幅と高さの半分を考慮して中央に配置 */
  left: calc(50% - 70px);
  top: calc(50% - 100px);
}

.circle-item h3 {
  margin: 5px 0;
  font-size: 28px;
  font-weight: bold;
}

.circle-item p {
  font-size: 12px;
  line-height: 1.4;
  margin: 0;
}

/* 7つのアイテムを円状に配置 */
/* 円の中心から各アイテムの中心までの距離 */
/* (600px / 2) - (140px / 2) = 300px - 70px = 230px */
/* 半径R = 230px */

/* 各アイテムの回転と配置 (事前に計算した角度を使用) */
.circle-item:nth-child(1) {
  transform: rotate(-90deg) translate(230px) rotate(90deg);
}
.circle-item:nth-child(2) {
  transform: rotate(-38.57143deg) translate(230px) rotate(38.57143deg);
}
.circle-item:nth-child(3) {
  transform: rotate(12.85714deg) translate(230px) rotate(-12.85714deg);
}
.circle-item:nth-child(4) {
  transform: rotate(64.28571deg) translate(230px) rotate(-64.28571deg);
}
.circle-item:nth-child(5) {
  transform: rotate(115.71428deg) translate(230px) rotate(-115.71428deg);
}
.circle-item:nth-child(6) {
  transform: rotate(167.14285deg) translate(230px) rotate(-167.14285deg);
}
.circle-item:nth-child(7) {
  transform: rotate(218.57142deg) translate(230px) rotate(-218.57142deg);
}

/* 各アイテムの背景色とホバー時の色 */
/* .item-color-1 {
  background: #B3D4EF;
}
.item-color-1:hover {
  background: #7BAFD4;
}

.item-color-2 {
  background: #FFD3A0;
}
.item-color-2:hover {
  background: #F7B977;
}

.item-color-3 {
  background: #AFC6B4;
}
.item-color-3:hover {
  background: #88A38C;
}

.item-color-4 {
  background: #DEBBCB;
}
.item-color-4:hover {
  background: #C9A1B2;
}

.item-color-5 {
  background: #E8DAC6;
}
.item-color-5:hover {
  background: #D8C8B3;
}

.item-color-6 {
  background: #C0C0C0;
}
.item-color-6:hover {
  background: #A8A8A8;
}

.item-color-7 {
  background: #D9D1ED;
}
.item-color-7:hover {
  background: #C3B8DC;
} */

.item-color-1 {
  background: #5C9ED6; /* 濃いスモーキーブルー */
}
.item-color-1:hover {
  background: #347DB8;
}

.item-color-2 {
  background: #FFB366; /* 濃いペールオレンジ */
}
.item-color-2:hover {
  background: #E2943E;
}

.item-color-3 {
  background: #729C82; /* 濃いダスティグリーン */
}
.item-color-3:hover {
  background: #567F68;
}

.item-color-4 {
  background: #C487A3; /* 濃いモーヴピンク */
}
.item-color-4:hover {
  background: #A86D8B;
}

.item-color-5 {
  background: #CBB798; /* 濃いサンドベージュ */
}
.item-color-5:hover {
  background: #B8A381;
}

.item-color-6 {
  background: #888888; /* 濃いスモークグレー */
}
.item-color-6:hover {
  background: #6E6E6E;
}

.item-color-7 {
  background: #A38CC6; /* 濃いペールラベンダー */
}
.item-color-7:hover {
  background: #8B74B1;
}


/* SP対応 */
@media (max-width: 768px) {
  .circle-container {
    width: 100%;
    height: auto;
    display: flex;
    flex-direction: column;
    gap: 20px;
    align-items: center;
  }

  .circle-item {
    position: static;
    transform: none !important;
  }
	.business-circle{
		padding-bottom:100px;
	}
}

.site-footer {
/* 	background: #3AB54A; */
	background: #fff;
  color: #000;
  padding: 40px 0;
  text-align: center;
}

.footer-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

.footer-logo {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
	margin:0 auto;
  margin-bottom: 20px;
	max-width:300px;
}
.footer-logo img{
	width:100%;
}

.footer-company {
  font-weight: bold;
  font-size: 16px;
}

.footer-menu {
  list-style: none;
  padding: 0;
  margin: 0 0 20px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
}

.footer-menu li a {
  color: #000;
  text-decoration: none;
  font-weight: bold;
}

.footer-social a img {
  width: 24px;
  height: 24px;
  margin: 0 8px;
  vertical-align: middle;
}

.footer-copy {
  font-size: 12px;
  margin-top: 20px;
}

.site-nav {
  text-align: center;
  margin: 30px 0;
}

.site-nav ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  gap: 40px;
  justify-content: center;
}
.site-nav ul ul{
	display:none;
}
.site-nav ul li{
	position:relative;
}
.site-header .site-nav ul li a {
  font-family: 'Noto Sans JP', sans-serif;
  text-decoration: none;
  color: white;
  font-weight: 500;
  font-size: 16px;
  transition: color 0.3s ease;
	text-align:left;
}
.site-header .site-nav ul li .sub-menu a{
	color:#3AB54A !important;
	    font-size: 0.8em;
}
.site-header .site-nav ul li .sub-menu a:hover{
	color:#FFD900 !important;
}
.site-header.scrolled .site-nav ul li a {
	color:#000;
}

.site-nav ul li a:hover {
	color: #FFD900 !important; /* メインカラーに変更可 */
}

.site-nav > ul li.current-menu-item > a {
  color: #FFD900 !important; /* アクティブ状態の色 */
  font-weight: bold;
}

.contact-section {
	position: relative;
  background: url('https://demosite-richwin.work/wp-content/uploads/2025/06/25259356_m.jpg') no-repeat center center / cover;
	padding: 80px 20px;
  text-align: center;
  color: #fff;
		margin-top:50px;
}
.contact-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
  z-index: 1;
}

.contact-inner {
  position: relative;
  z-index: 2;
  max-width: 800px;
  margin: 0 auto;
}

.contact-section h2 {
  font-size: 32px;
  margin-bottom: 20px;
  font-weight: bold;
}

.contact-section p {
  font-size: 18px;
  margin-bottom: 30px;
}

.contact-button {
  display: inline-block;
  background: #fff;
  color: #000;
  font-weight: bold;
  padding: 15px 40px;
  border-radius: 40px;
  text-decoration: none;
  font-size: 16px;
  transition: background 0.3s ease;
}

.contact-button:hover {
  background: #f2f2f2;
}

.service-fv {
  position: relative;
  width: 100%;
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: flex-end;
  color: #fff;
}

.service-fv-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.4);
  z-index: 1;
}

.service-fv-inner {
  position: relative;
  z-index: 2;
  width: 100%;
    padding: 100px 100px 60px;
  box-sizing: border-box;
}

.service-fv-title h1 {
  font-size: 64px;
  font-weight: bold;
  margin-bottom: 10px;
}

.service-fv-title .service-sub {
  font-size: 18px;
  font-weight: 600;
}

.service-content .container {
  max-width: 1000px;
  margin: 60px auto;
  padding: 0 20px;
}

@media (max-width: 768px) {
  .service-fv-inner {
    padding: 80px 20px 40px;
  }

  .service-fv-title h1 {
    font-size: 36px;
  }

  .service-fv-title .service-sub {
    font-size: 16px;
  }
	.site-header .site-nav ul li a{
		color:#000;
	}
	.site-nav{
			 height: calc(100vh - 50px);
	}
	.site-nav ul{
		padding:20px;
	}
	.site-nav ul ul{
		display:block;
		position:relative;
		padding:0;
		box-shadow:none;
	}
	.site-nav ul li{
		text-align:left;		
	}
}

.service-content .container {
  max-width: 1000px;
  margin: 60px auto;
  padding: 0 20px;
}
.service-content h2, .service-content h3{
	margin-top:50px;
}

.service-checklist {
  list-style: none;
  padding-left: 0;
  margin-bottom: 2em;
}

.service-checklist li {
  margin-bottom: 1.5em;
  background: #f9f9f9;
  padding: 15px;
  border-left: 5px solid #3AB54A;
}

.flow-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
  gap: 40px;
  margin-bottom: 60px;
}
.flow-item {
  background: #f9f9f9;
  padding: 25px;
  border-radius: 12px;
  text-align: center;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
}
.flow-item img {
  width: 100%;
  height: auto;
  margin-bottom: 15px;
  border-radius: 8px;
}
.flow-item h4 {
  font-size: 18px;
  font-weight: bold;
  margin-bottom: 10px;
}
.flow-item p {
  font-size: 14px;
  line-height: 1.7;
  color: #444;
}
.serrvice-matome{
	margin-top:50px;
}

@media (max-width: 768px) {
	.service-content .container{
		padding:0;
	}
  .service-fv-inner {
    padding: 40px 20px;
  }

  .service-fv-title h1 {
    font-size: 36px;
  }

  .service-fv-title .service-sub {
    font-size: 16px;
  }
	.flow-grid{
		grid-template-columns: repeat(auto-fit, minmax(100%, 1fr));
	}
}

.feature-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
  gap: 40px;
  margin-bottom: 60px;
}
.feature-grid2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  margin-top: 2rem;
}
.feature-panel {
  background: #f9f9f9;
  padding: 1.5rem;
  border-radius: 8px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}
.feature-item {
  background: #f9f9f9;
  padding: 25px;
  border-radius: 12px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}

.feature-item h4 {
  font-size: 20px;
  font-weight: bold;
  margin-bottom: 10px;
}

.feature-item p,
.feature-item ul {
  font-size: 16px;
  line-height: 1.7;
  color: #444;
}

@media (max-width: 768px) {
  .feature-grid {
    grid-template-columns: 1fr;
  }
  .feature-grid2 {
    grid-template-columns: 1fr;
  }
}

      .comparison-table {
        width: 100%;
        border-collapse: collapse;
        margin-top: 2rem;
        margin-bottom: 2rem;
      }
      .comparison-table th,
      .comparison-table td {
        border: 1px solid #ccc;
        padding: 0.75rem 1rem;
        text-align: center;
		  font-size:14px;
      }
      .comparison-table thead {
        background-color: #f0f0f0;
      }
      .comparison-table tbody tr:nth-child(even) {
        background-color: #fafafa;
      }
      .comparison-table tbody tr:hover {
        background-color: #f5f5f5;
      }

@media (max-width: 768px) {
  .site-nav {
    display: none;
    flex-direction: column;
    position: fixed;
    top: 60px;
    right: 0;
    background: white;
    width: 100%;
    box-shadow: 0 2px 10px rgba(0,0,0,0.1);
  }
  .site-nav.open {
    display: flex;
	  top:20px;
	  left:0;
  }
  .hamburger {
    display: flex;
  }
	.site-nav ul{
		display:block;
		width:100%;
    min-height: 0;             /* ★重要：これがないと overflow が効かない */
    overflow-y: auto;          /* 中身をスクロール可 */
    -webkit-overflow-scrolling: touch; /* iOS 慣性スクロール */
	}
	.site-nav ul li{
		padding:10px;
	}
	.hero-overlay{
		padding:10px;
	}
	.service-grid, .company-grid{
		display:block;
	}
	.section{
		padding:20px 0;
	}
	.service-box{
		margin-bottom:20px;
		max-width: 1000px;
	}
	.company-card{
		margin-bottom:20px;
		display:block;
	}
	.top-blog-section{
		padding:20px 0
	}
	.site-header{
		height:60px;
	}
}

.hover-effect1 {
transition: transform 0.3s ease, box-shadow 0.3s ease;
  transition: all 0.4s ease-in-out;
}
.hover-effect1:hover {
  transform: scale(1.05); /* 少し拡大 */
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2); /* 浮き上がるような影 */
	background:#FFD900;
}

.gra1{
	    background: linear-gradient(100deg, rgba(255, 217, 0, 0.15) 5%, rgba(58,181,74, 0.15) 100%);
}
@media screen and (max-width:768px){
	main{
		padding-top:60px !important;}
}


/* ソーシャルアイコンの基本スタイル */
.social-icons {
    display: flex;
    align-items: center;
    gap: 15px; /* アイコン間のスペース */
}

.social-icons a {
    font-size: 24px; /* アイコンのサイズ */
    text-decoration: none;
    color: white; /* デフォルトの色（ヘッダー背景が透明な場合） */
    transition: color 0.3s ease;
}

/* スクロール後またはホーム以外のページでのアイコン色 */
.site-header.scrolled .social-icons a,
body:not(.home) .site-header .social-icons a {
    color: black; /* スクロール後のアイコン色 */
}

.social-icons a:hover {
    color: #FFD900 !important; /* ホバー時の色 */
}

/* PC表示のみの要素 */
.pc-only {
    display: flex; /* Flexboxで横並び */
}

/* SP表示のみの要素 */
.sp-only {
    display: none; /* デフォルトでは非表示 */
}

@media (max-width: 768px) {

    /* PC表示のアイコンを非表示 */
    .pc-only {
        display: none;
    }

    /* SP表示のアイコンを表示 */
    .sp-only {
        display: flex;
        order: 0; /* ハンバーガーメニューの左に配置するために順序を変更 */
        margin-right: auto; /* 左に寄せる */
		padding-right:20px;
		padding-bottom:3px;
        gap: 10px; /* アイコン間のスペースを少し狭く */
    }

    .sp-only a {
        color: white; /* SP時のデフォルトアイコン色 */
    }

    .site-header.scrolled .sp-only a,
    body:not(.home) .site-header .sp-only a {
        color: black; /* SP時のスクロール後のアイコン色 */
    }

}

/* アニメーションの初期状態 */
.slide-in-left {
    opacity: 0;
    /* clip-path を使って左側を隠す */
    clip-path: inset(0 100% 0 0); /* 上 右 下 左。右端から100%隠す（つまり完全に隠す） */
    transition: opacity 1s ease-out, clip-path 1s ease-out; /* アニメーションの時間とイージング */
}

/* アニメーション後の状態（表示される状態） */
.slide-in-left.is-visible {
    opacity: 1;
    /* clip-path を使って全体を表示 */
    clip-path: inset(0 0 0 0); /* 全て表示 */
}

footer i{
	font-size:32px;
	padding:10px;
	color:#000;
}

/* アンカーリンクセクション全体のコンテナ */
.anchor-links-section {
    width: 100%;
    padding: 30px 20px; /* 上下の余白と左右のパディング */
    background-color: #f9f9f9; /* 背景色 */
    box-shadow: 0 2px 5px rgba(0,0,0,0.05); /* 軽い影 */
    margin-bottom: 50px; /* 次のセクションとの間にスペース */
    box-sizing: border-box;
}

/* ボタンを中央に配置し、フレックスボックスで並べるためのコンテナ */
.anchor-links-container {
    max-width: 1200px; /* コンテンツの最大幅に合わせて調整 */
    margin: 0 auto; /* 中央揃え */
    display: flex;
    flex-wrap: wrap; /* ボタンが多すぎて横に並びきらない場合に折り返す */
    justify-content: center; /* ボタンを中央に配置 */
    gap: 15px; /* ボタン間の隙間 */
}

/* 各アンカーボタンのスタイル */
.anchor-button {
    display: inline-block; /* ボタンとして表示 */
    padding: 12px 25px; /* 内側の余白 */
    background-color: #3AB54A; /* ボタンの背景色（例: 青） */
    color: #fff; /* 文字色 */
    text-decoration: none; /* 下線を消す */
    border-radius: 5px; /* 角を丸くする */
    font-size: 16px; /* フォントサイズ */
    font-weight: bold; /* フォントを太くする */
    transition: background-color 0.3s ease, transform 0.2s ease; /* ホバー時のアニメーション */
    white-space: nowrap; /* ボタン内のテキストを折り返さない */
}

/* ホバー時のスタイル */
.anchor-button:hover {
    background-color: #3AB54A; /* ホバー時の背景色 */
    transform: translateY(-2px); /* 少し上に移動するエフェクト */
    box-shadow: 0 4px 8px rgba(0,0,0,0.1); /* ホバー時の影 */
}

/* スマートフォン表示時の調整 */
@media (max-width: 768px) {
    .anchor-links-section {
        padding: 20px 10px; /* パディングを小さく */
        margin-bottom: 30px; /* マージンを小さく */
    }

    .anchor-button {
        width: calc(50% - 15px); /* 2列で表示、gapを考慮 */
        box-sizing: border-box;
        font-size: 14px; /* フォントサイズを小さく */
        padding: 10px 15px;
    }

    /* ボタンが3つ以上で奇数の場合に中央寄せ */
    .anchor-links-container {
        justify-content: space-around; /* 等間隔に配置 */
    }
}

/* さらに小さい画面での調整（例: 480px以下） */
@media (max-width: 480px) {
    .anchor-button {
        width: 100%; /* 1列で表示 */
		margin-bottom: 10px;
    }
	.anchor-links-container{
		gap:0;
	}
}

.service-flex{
	display:flex;
	gap:2%;
	padding-top:20px;
	align-items:start;
}
.service-flex-left, .service-flex-right{
	width:49%;
}
.service-flex img{
	width:100%;
}
.sp{
	display:none;
}
@media (max-width: 480px) {
.service-flex{
	display:block;
}
	.service-flex-left, .service-flex-right{
	width:100%;
}
.sp{
	display:block;
}
.pc{
	display:none;
}
}

.company-info-section-tetori{
	background:#edd2fe;
}
.company-info-section-picktop{
	background:#C5F6EF;
}

.company-info-section-tetori .service-flex, .company-info-section-picktop .service-flex{
	padding-top:0;
}
.company-info-section-tetori .service-flex p, .company-info-section-picktop .service-flex p{
	margin-top:0;
}
.feature-panel img{
	width:100%;
}

.center{
	text-align:center;
}

.service-content .container-1200{
	max-width:1200px;
}

.section-blog{
	margin-top:100px;
	padding:10px;
}
@media (max-width: 480px) {
a{
  white-space: normal !important;   /* 親やテーマのnowrapを打ち消す */
  overflow-wrap: anywhere;          /* 標準的：どこでも改行可 */
  word-break: break-word;           /* 互換目的：古い環境向け */
  max-width: 100%;                  /* はみ出し防止（念のため） */
}

.section-blog{
	margin-top:50px;
	padding:15px;
}
}
  /* リストをスクロール領域に */
  .site-nav.open > ul {
    flex: 1 1 auto;
    min-height: 0;          /* ★重要：これがないと overflow が効かない */
	  height: calc(100vh - 50px);
/* 	  height:100%; */
    overflow-y: auto;
	  padding: 20px;
	   padding-bottom:100px;
    -webkit-overflow-scrolling: touch;
    margin: 0;
	 
  }

.blog-archive.with-sidebar {
  display: grid;
  grid-template-columns: 1fr 320px; /* 左=メイン, 右=サイドバー */
  gap: 32px;
}
.blog-main { min-width: 0; }
.blog-sidebar .widget { background:#f8f8f8; padding:16px; border-radius:8px; margin-bottom:16px; }
.widget-title { font-size:1.1rem; margin:0 0 12px; }
.blog-filter-form label { display:block; font-size:.9rem; margin:.5rem 0 .25rem; }
.blog-filter-form select { width:100%; padding:.5rem; }
.btn-filter, .btn-reset {
  display:inline-block; margin-top:.75rem; padding:.5rem .9rem; border-radius:6px; text-decoration:none;
}
.btn-filter { background:#222; color:#fff; border:none; cursor:pointer; }
.btn-reset  { background:#e9e9e9; color:#222; margin-left:.5rem; }

/* 既存カードグリッドがある前提 */
.blog-grid {
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 24px;
}
@media (max-width: 1024px) {
  .blog-archive.with-sidebar {
    grid-template-columns: 1fr; /* モバイル：縦並び */
  }
  .blog-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 640px) {
  .blog-grid { grid-template-columns: 1fr; }
}

.hp-faq{
	display:inline-block;
	width:300px;
}
.hp-faq-txt{
	display:inline-block;
	width:calc(100% - 300px);	
}
@media (max-width: 1024px) {

.hp-faq, .hp-faq-txt{
	display:block;
	width:100%;
}
	.hp-faq{
		margin-top:15px;
	}
	.hp-faq-txt{
		margin-top:5px;
	}
}