/*
Theme Name:Solaris child
Theme URI:
Description:WordPressテーマ「Solaris」の自作子テーマです。
Template:solaris_tcd088
Author:Itsuki Ueda
Version:2.12.1
*/

/* 汎用レスポンシブCSS------------------------------------------------------------ */
/* PC専用表示クラス（781px以上でのみ表示） */
.pc-only {
    display: block !important;
}
.pc-only-inline {
    display: inline !important;
}
.pc-only-inline-block {
    display: inline-block !important;
}
.pc-only-flex {
    display: flex !important;
}
.pc-only-grid {
    display: grid !important;
}

/* スマホ専用表示クラス（480px以下でのみ表示） */
.phone-only {
    display: none !important;
}
.phone-only-inline {
    display: none !important;
}
.phone-only-inline-block {
    display: none !important;
}
.phone-only-flex {
    display: none !important;
}
.phone-only-grid {
    display: none !important;
}

/* モバイル専用表示クラス（780px以下でのみ表示） */
.mobile-only {
    display: none !important;
}
.mobile-only-inline {
    display: none !important;
}
.mobile-only-inline-block {
    display: none !important;
}
.mobile-only-flex {
    display: none !important;
}
.mobile-only-grid {
    display: none !important;
}

/* 非表示専用クラス ------------------------------------------------------------ */

/* PC画面で非表示（781px以上で非表示） */
.hide-pc {
    display: block !important;
}
.hide-pc-inline {
    display: inline !important;
}
.hide-pc-inline-block {
    display: inline-block !important;
}
.hide-pc-flex {
    display: flex !important;
}
.hide-pc-grid {
    display: grid !important;
}

/* スマホ画面で非表示（480px以下で非表示） */
.hide-phone {
    display: block !important;
}
.hide-phone-inline {
    display: inline !important;
}
.hide-phone-inline-block {
    display: inline-block !important;
}
.hide-phone-flex {
    display: flex !important;
}
.hide-phone-grid {
    display: grid !important;
}

/* モバイル全般で非表示（780px以下で非表示） */
.hide-mobile {
    display: block !important;
}
.hide-mobile-inline {
    display: inline !important;
}
.hide-mobile-inline-block {
    display: inline-block !important;
}
.hide-mobile-flex {
    display: flex !important;
}
.hide-mobile-grid {
    display: grid !important;
}

/* メディアクエリ ------------------------------------------------------------ */

/* 780px以下（モバイル全般）での表示制御 */
@media (max-width: 780px) {
    /* PC専用クラスを非表示 */
    .pc-only,
    .pc-only-inline,
    .pc-only-inline-block,
    .pc-only-flex,
    .pc-only-grid {
        display: none !important;
    }
    
    /* モバイル専用クラスを表示 */
    .mobile-only {
        display: block !important;
    }
    
    .mobile-only-inline {
        display: inline !important;
    }
    
    .mobile-only-inline-block {
        display: inline-block !important;
    }
    
    .mobile-only-flex {
        display: flex !important;
    }
    
    .mobile-only-grid {
        display: grid !important;
    }
    
    /* モバイル全般での非表示制御 */
    .hide-mobile,
    .hide-mobile-inline,
    .hide-mobile-inline-block,
    .hide-mobile-flex,
    .hide-mobile-grid {
        display: none !important;
    }
}

/* PC画面での非表示制御（781px以上） */
@media (min-width: 781px) {
    .hide-pc,
    .hide-pc-inline,
    .hide-pc-inline-block,
    .hide-pc-flex,
    .hide-pc-grid {
        display: none !important;
    }
}

/* 480px以下（スマホ）での表示制御 */
@media (max-width: 480px) {
    /* スマホ専用クラスを表示 */
    .phone-only {
        display: block !important;
    }
    
    .phone-only-inline {
        display: inline !important;
    }
    
    .phone-only-inline-block {
        display: inline-block !important;
    }
    
    .phone-only-flex {
        display: flex !important;
    }
    
    .phone-only-grid {
        display: grid !important;
    }
    
    /* スマホ画面での非表示制御 */
    .hide-phone,
    .hide-phone-inline,
    .hide-phone-inline-block,
    .hide-phone-flex,
    .hide-phone-grid {
        display: none !important;
    }
}

/* 投稿ページの見出し設定 ------------------------------------------------------------ */
/* 投稿のヘッダーのマージン */
/* .post-template-default .post_content :not(h2):not(h3):not(h4):not(h5):not(h6) + h2, .post_content :not(h2):not(h3):not(h4):not(h5):not(h6) + h3, .post_content :not(h2):not(h3):not(h4):not(h5):not(h6) + h4, .post_content :not(h2):not(h3):not(h4):not(h5):not(h6) + h5, .post_content :not(h2):not(h3):not(h4):not(h5):not(h6) + h6 {
    margin-top: 4em 0 2em !important;
}

.post-template-default .post_content h2 {
    margin: 4em 0 2em;
}
.post-template-default .post_content h3 {
    margin: 3em 0 2em;
}
.post-template-default .post_content h4 {
    margin: 3em 0 1.5em;
} */

/* お問い合わせページ設定 ------------------------------------------------------------ */
/* お問い合わせページの設定（Contact Form 7 対応修正版） */

/* CSS変数定義 */
:root {
    /* プライマリカラー */
    --black-primary: #0a0a0a;
    --black-secondary: #1a1a1a;
    --gray-dark: #333333;
    --gray-medium: #4b5563;
    --gray-light: #6b7280;
    --gray-lighter: #999999;
    --gray-border: #e5e5e5;
    --gray-bg-light: #f8f9fa;
    --gray-bg-lighter: #fafafa;
    --white: #ffffff;
    --white-soft: #fefefe;
    
    /* アクセントカラー */
    --accent-green: #047857;
    --accent-red: #b91c1c;
    --accent-blue: #1d4ed8;
    
    /* タイポグラフィ */
    --font-size-xs: 12px;
    --font-size-sm: 13px;
    --font-size-base: 14px;
    --font-size-md: 15px;
    --font-size-lg: 16px;
    --font-size-xl: 18px;
    --font-size-2xl: 20px;
    --font-size-3xl: 24px;
    
    --font-weight-normal: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    
    --line-height-tight: 1.1;
    --line-height-snug: 1.3;
    --line-height-normal: 1.6;
    --line-height-relaxed: 1.7;
    
    --letter-spacing-tight: -0.02em;
    --letter-spacing-normal: -0.01em;
    --letter-spacing-wide: 1px;
    --letter-spacing-wider: 2px;
    
    /* スペーシング */
    --spacing-1: 4px;
    --spacing-2: 8px;
    --spacing-3: 12px;
    --spacing-4: 16px;
    --spacing-5: 20px;
    --spacing-6: 24px;
    --spacing-8: 32px;
    --spacing-10: 40px;
    --spacing-12: 48px;
    --spacing-15: 60px;
    --spacing-20: 80px;
    --spacing-30: 120px;
    
    /* レイアウト */
    --max-width-form: 800px;
}

/* Contact Form 7 メインコンテナ - デフォルトスタイルを打ち消し */
.wpcf7 {
    max-width: var(--max-width-form);
    margin: 0 auto !important;
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
    font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-size: var(--font-size-lg) !important;
}

/* フォームコンテナ（ヘッダー + フォーム全体） */
.wpcf7 .form-container {
    max-width: var(--max-width-form);
    margin: 0 auto;
    padding: var(--spacing-15) var(--spacing-6);
}

/* ヘッダーセクション */
.wpcf7 .form-header {
    text-align: center;
    margin-bottom: var(--spacing-20);
}

.wpcf7 .label-uppercase {
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-medium);
    color: var(--gray-lighter);
    text-transform: uppercase;
    letter-spacing: var(--letter-spacing-wider);
    margin-bottom: var(--spacing-2);
    display: block;
}

.wpcf7 .heading-primary {
    font-size: var(--font-size-3xl);
    font-weight: var(--font-weight-semibold);
    line-height: var(--line-height-tight);
    letter-spacing: var(--letter-spacing-tight);
    color: var(--black-primary);
    margin-bottom: var(--spacing-3);
    margin-top: 0;
}

.wpcf7 .description-primary {
    font-size: var(--font-size-lg);
    color: var(--gray-light);
    line-height: var(--line-height-relaxed);
    margin: 0 auto var(--spacing-5);
}

/* フォームスタイル */
.wpcf7-form {
    background: var(--white);
    border-radius: 8px;
    padding: var(--spacing-10);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

/* Contact Form 7のデフォルトpタグをリセット */
.wpcf7-form p {
    margin: 0;
    padding: 0;
}

/* フォームグリッドシステム */
.form-row {
    display: grid;
    gap: var(--spacing-6);
    margin-bottom: var(--spacing-6);
}

.form-row.cols-2 {
    grid-template-columns: 1fr 1fr;
}

.form-row.cols-1 {
    grid-template-columns: 1fr;
}

.form-row:last-child {
    margin-bottom: 0;
}

.form-group {
    display: flex;
    flex-direction: column;
}

/* ラベルスタイル */
.wpcf7 .form-label {
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-medium);
    color: var(--black-primary);
    margin-bottom: var(--spacing-2);
    line-height: var(--line-height-normal);
}

.wpcf7 .form-label .required {
    color: var(--accent-red);
    margin-left: var(--spacing-1);
}

/* Contact Form 7のbrタグを非表示 */
.wpcf7 .form-group br {
    display: none;
}

/* インプット要素 */
.wpcf7 .form-input,
.wpcf7 .form-select,
.wpcf7 .form-textarea {
    width: 100%;
    padding: var(--spacing-3) var(--spacing-4);
    font-size: var(--font-size-base);
    font-family: inherit;
    color: var(--gray-dark);
    background: var(--white);
    border: 1px solid var(--gray-border);
    border-radius: 4px;
    transition: all 0.2s ease;
    margin: 0;
}

.wpcf7 .form-input:focus,
.wpcf7 .form-select:focus,
.wpcf7 .form-textarea:focus {
    outline: none;
    border-color: var(--accent-blue);
    box-shadow: 0 0 0 2px rgba(29, 78, 216, 0.1);
}

/* バリデーション状態 */
.wpcf7 .form-input.touched:invalid,
.wpcf7 .form-select.touched:invalid,
.wpcf7 .form-textarea.touched:invalid {
    border-color: var(--accent-red);
}

/* Contact Form 7 エラー状態との互換性 */
.wpcf7 .wpcf7-not-valid {
    border-color: var(--accent-red) !important;
}

/* セレクトボックス */
.wpcf7 .form-select {
    color: var(--gray-dark);
}

.wpcf7 .form-select option:disabled {
    color: var(--gray-lighter);
}

/* テキストエリア */
.wpcf7 .form-textarea {
    resize: vertical;
    min-height: 100px;
}

/* チェックボックスセクション */
.checkbox-section {
    margin-bottom: var(--spacing-6);
}

.checkbox-section .checkbox-label {
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-medium);
    color: var(--black-primary);
    margin-bottom: var(--spacing-4);
}

.checkbox-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--spacing-4);
}

.checkbox-item {
    background: var(--gray-bg-lighter);
    border-radius: 4px;
    border: 1px solid var(--gray-border);
    transition: all 0.2s ease;
    overflow: hidden;
}

.checkbox-item:hover {
    background: var(--white);
    border-color: var(--accent-blue);
}

/* Contact Form 7のチェックボックス構造に対応 */
.checkbox-item .wpcf7-list-item {
    padding: var(--spacing-3);
    margin: 0;
}

.checkbox-item .wpcf7-list-item label {
    display: flex;
    align-items: flex-start;
    font-size: var(--font-size-sm);
    color: var(--gray-dark);
    line-height: var(--line-height-normal);
    cursor: pointer;
    font-weight: var(--font-weight-medium);
    margin: 0;
}

.checkbox-item input[type="checkbox"] {
    margin-right: var(--spacing-3);
    margin-top: var(--spacing-1);
    accent-color: var(--accent-blue);
}

.checkbox-item input[type="checkbox"]:checked + .wpcf7-list-item-label {
    color: var(--black-primary);
}

/* セクション区切り */
.section-divider {
    height: 2px;
    background: var(--gray-bg-light);
    margin: var(--spacing-10) 0;
    border-radius: 1px;
}

/* ボタン */
.submit-row {
    margin-top: var(--spacing-10);
    padding-top: var(--spacing-8);
    border-top: 2px solid var(--gray-bg-light);
}

.wpcf7 .btn-primary {
    display: inline-block;
    width: 100%;
    padding: var(--spacing-4) var(--spacing-8);
    background: var(--black-primary);
    color: var(--white-soft);
    text-decoration: none;
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-medium);
    border-radius: 4px;
    border: none;
    cursor: pointer;
    transition: background 0.2s ease;
    text-align: center;
    margin: 0;
}

.wpcf7 .btn-primary:hover {
    background: var(--gray-dark);
    color: var(--white-soft);
}

.wpcf7 .btn-primary:focus {
    outline: none;
    box-shadow: 0 0 0 2px rgba(10, 10, 10, 0.2);
}

/* Contact Form 7 スピナー調整 */
.wpcf7-spinner {
    margin-left: var(--spacing-3);
}

/* レスポンシブ */
@media (max-width: 768px) {
    .wpcf7 .form-container {
        padding: var(--spacing-12) var(--spacing-4);
    }

    .wpcf7 .form-header {
        margin-bottom: var(--spacing-15);
    }

    .wpcf7 .heading-primary {
        font-size: var(--font-size-2xl);
    }

    .wpcf7 .description-primary {
        font-size: var(--font-size-md);
    }

    .wpcf7-form {
        padding: var(--spacing-6);
    }

    .form-row.cols-2 {
        grid-template-columns: 1fr;
    }

    .checkbox-grid {
        grid-template-columns: 1fr;
    }

    .submit-row {
        margin-top: var(--spacing-8);
        padding-top: var(--spacing-6);
    }
}

@media (max-width: 480px) {
    .wpcf7 .form-container {
        padding: var(--spacing-10) var(--spacing-3);
    }

    .wpcf7-form {
        padding: var(--spacing-5);
    }

    .form-row {
        gap: var(--spacing-5);
        margin-bottom: var(--spacing-5);
    }

    .checkbox-item .wpcf7-list-item {
        padding: var(--spacing-2);
    }
}

/* Contact Form 7 レスポンス出力の調整 */
.wpcf7-response-output {
    margin-top: var(--spacing-6);
    padding: var(--spacing-4);
    border-radius: 4px;
    font-size: var(--font-size-base);
}

.wpcf7-mail-sent-ok {
    background: rgba(4, 120, 87, 0.1);
    color: var(--accent-green);
    border: 1px solid var(--accent-green);
}

.wpcf7-mail-sent-ng,
.wpcf7-validation-errors {
    background: rgba(185, 28, 28, 0.1);
    color: var(--accent-red);
    border: 1px solid var(--accent-red);
}

/* バリデーションエラーメッセージ */
.wpcf7-not-valid-tip {
    color: var(--accent-red);
    font-size: var(--font-size-sm);
    margin-top: var(--spacing-2);
}

/* ヘッダー直下ページ設定 ------------------------------------------------------------ */
/* 独自名前空間でWordPress既存CSSと競合回避 */
.rpa-landing-wrapper {
    /* リセット */
    box-sizing: border-box;
    margin: 0;
    padding: 80px 0;
    width: 100%;
    max-width: 1050px;
    margin: 0 auto;
    
    /* カラー定義 */
    --rpa-navy-text: #262D75;
    --rpa-blue-accent: #64A5DD;
    --rpa-orange-accent: #D78713;
    --rpa-gray-bg: #F5F5F5;
    --rpa-white: #ffffff;
    --rpa-light-blue-bg: #E0EDF8;
    
    /* スペーシング（8px基準） */
    --rpa-spacing-1: 4px;
    --rpa-spacing-2: 8px;
    --rpa-spacing-3: 12px;
    --rpa-spacing-4: 16px;
    --rpa-spacing-5: 20px;
    --rpa-spacing-6: 24px;
    --rpa-spacing-8: 32px;
    --rpa-spacing-10: 40px;
    --rpa-spacing-12: 48px;
    --rpa-spacing-15: 60px;
    --rpa-spacing-20: 80px;
    --rpa-spacing-30: 120px;
    
    /* フォント */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    color: var(--rpa-navy-text);
    line-height: 1.6;
}

.rpa-landing-wrapper *,
.rpa-landing-wrapper *::before,
.rpa-landing-wrapper *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

.rpa-landing-wrapper h1,
.rpa-landing-wrapper h2,
.rpa-landing-wrapper h3,
.rpa-landing-wrapper p,
.rpa-landing-wrapper div,
.rpa-landing-wrapper a,
.rpa-landing-wrapper img {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    vertical-align: baseline;
    text-decoration: none;
    color: inherit;
}

/* WordPress既存CSSのpタグマージンを強力に打ち消し */
.post_content .rpa-landing-wrapper p,
.rpa-landing-wrapper p {
    line-height: inherit !important;
    margin: 0 !important;
}

/* WordPress既存CSSのmargin-top強制適用を無効化 */
.post_content .rpa-landing-wrapper .rpa-feature-title {
    margin-top: 0 !important;
}

/* セクション共通 */
.rpa-section {
    margin-bottom: var(--rpa-spacing-20);
}

.rpa-section:last-child {
    margin-bottom: 0;
}

/* タイトル */
.rpa-title-main {
    font-size: 36px !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    color: var(--rpa-navy-text) !important;
    text-align: center !important;
    margin-bottom: var(--rpa-spacing-8) !important;
    letter-spacing: -0.02em !important;
}

.rpa-title-sub {
    font-size: 36px !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    color: var(--rpa-navy-text) !important;
    text-align: center !important;
    margin-bottom: var(--rpa-spacing-6) !important;
    letter-spacing: -0.02em !important;
}

/* 悩みセクション */
.rpa-problems-image {
    display: block;
    width: 100%;
    height: auto;
    margin-bottom: var(--rpa-spacing-15);
}

.rpa-problems-image-mobile {
    display: none;
}

.rpa-problems-callout {
	background: var(--rpa-blue-accent);
	border-radius: 16px;
	padding: var(--rpa-spacing-8) !important;
	position: relative;
	margin-bottom: var(--rpa-spacing-15) !important;
	margin-top: var(--rpa-spacing-15) !important;
	text-align: center;
}

.rpa-problems-callout::after {
	content: "";
	position: absolute;
	top: -12px;
	left: 50%;
	transform: translateX(-50%);
	width: 0;
	height: 0;
	border-left: 12px solid transparent;
	border-right: 12px solid transparent;
	border-bottom: 12px solid var(--rpa-blue-accent);
}

.rpa-problems-callout-text {
	font-size: 30px !important;
	font-weight: 500 !important;
	color: var(--rpa-white) !important;
	line-height: 1.6 !important;
	margin: 0 !important;
}

@media (max-width:768px) {
	.rpa-problems-callout {
		padding: var(--rpa-spacing-6) !important;
		margin-bottom: var(--rpa-spacing-12) !important;
	}
	
	.rpa-problems-callout-text {
		font-size: 26px !important;
	}
}

/* 自動化業務セクション - 全幅背景 */
.rpa-automation-section {
    background: var(--rpa-light-blue-bg);
    padding: var(--rpa-spacing-20) 0;
    margin-bottom: var(--rpa-spacing-20);
    border-radius: 0;
    
    /* 画面全幅にする */
    width: 100vw;
    margin-left: calc(-50vw + 49%);
    margin-right: calc(-50vw + 50%);
    position: relative;
    left: 0; /* 位置リセット */
    right: 0; /* 位置リセット */
}

.rpa-automation-section-inner {
    max-width: 1050px;
    margin: 0 auto !important; /* 強制的に中央寄せ */
    padding: 0 var(--rpa-spacing-8);
    position: relative;
    left: auto !important; /* 左寄りを防ぐ */
    right: auto !important; /* 右寄りを防ぐ */
    width: auto !important; /* 幅リセット */
    transform: none !important; /* transform による位置ずれを防ぐ */
}

/* さらに確実な中央寄せのための追加ルール */
.rpa-automation-section-inner .rpa-automation-title,
.rpa-automation-section-inner .rpa-automation-grid {
    margin-left: auto !important;
    margin-right: auto !important;
}

.rpa-automation-title {
    font-size: 36px !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    color: var(--rpa-navy-text) !important;
    text-align: center !important;
    margin-bottom: var(--rpa-spacing-15) !important;
    letter-spacing: -0.02em !important;
}

.rpa-automation-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--rpa-spacing-6);
    max-width: 1000px;
    margin: 0 auto;
}

.rpa-automation-section .rpa-automation-section-inner .rpa-automation-text {
    font-size: 16px !important;
    line-height: 1.7 !important;
    color: var(--rpa-navy-text) !important;
    text-align: center !important;
    margin-bottom: var(--rpa-spacing-15) !important;
    font-weight: 400 !important;
    margin: 0 auto !important;
    margin-top: var(--rpa-spacing-8) !important;
}

/* ===== カードレイアウト（アニメーション無効時のベーススタイル） ===== */
.rpa-automation-item {
    background: var(--rpa-white);
    border: 2px solid var(--rpa-navy-text) !important;
    border-radius: 8px !important;
    padding: var(--rpa-spacing-3) var(--rpa-spacing-5) !important;
    display: flex;
    flex-direction: column;
    align-items: center; /* アイコンを中央揃えに */
    height: auto;
    min-height: 200px;
    /* アニメーション関連のスタイルは汎用CSSに移行 */
}

/* カード内コンテンツ */
.rpa-automation-icon {
    width: 80px;
    height: 60px !important;
    margin: 0 auto var(--rpa-spacing-3);
    display: block;
    object-fit: contain; /* 画像の縦横比を保持 */
    border-radius: 4px;
    flex-shrink: 0;
}

.rpa-automation-grid .rpa-automation-item .rpa-automation-item-title {
    font-size: 20px !important;
    font-weight: 600 !important;
    color: var(--rpa-navy-text) !important;
    text-align: center !important;
    margin: var(--rpa-spacing-3) 0 !important;
    line-height: 1.3 !important;
    flex-shrink: 0;
}

.rpa-automation-item-description {
    font-size: 16px !important;
    color: var(--rpa-navy-text) !important;
    line-height: 1.5 !important;
    text-align: left !important;
    font-weight: 400 !important;
    padding: 0 var(--rpa-spacing-2); /* 左右に8pxの余白追加 */
    flex: 1;
    display: flex;
    align-items: flex-start;
}

/* 提案セクション */
.rpa-landing-wrapper .rpa-section .rpa-proposal-text {
    font-size: 16px !important;
    line-height: 1.7 !important;
    color: var(--rpa-navy-text) !important;
    margin-bottom: var(--rpa-spacing-15) !important;
    font-weight: 400 !important;
    margin: 0 auto !important;
    max-width: 860px;
    text-align: justify;
}

/* 特徴セクション */
.rpa-features {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--rpa-spacing-8);
    margin-bottom: var(--rpa-spacing-15);
}

.rpa-feature-item {
    flex: 1;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    /* アニメーション関連のスタイルは汎用CSSに移行 */
}

.rpa-feature-icon {
    width: 150px !important;
    height: 150px !important;
    margin-bottom: var(--rpa-spacing-5) !important; /* 20pxに変更 */
    display: block;
}

.rpa-feature-title {
    font-size: 20px !important;
    font-weight: 600 !important;
    color: var(--rpa-navy-text) !important;
    margin-bottom: var(--rpa-spacing-3) !important;
    line-height: 1.3 !important;
}

.rpa-feature-description {
    font-size: 16px !important;
    color: var(--rpa-navy-text) !important;
    line-height: 1.6 !important;
    font-weight: 400 !important;
    text-align: left !important;
    max-width: 250px !important;
    margin: 0 auto !important;
}

/* CTAセクション */
.rpa-cta-section {
    text-align: center;
	margin-top:60px;
}

.rpa-cta-text {
    font-size: 20px !important;
    font-weight: 500 !important;
    color: var(--rpa-navy-text) !important;
    margin-bottom: var(--rpa-spacing-2) !important;
    line-height: 1.4 !important;
}

.rpa-cta-button {
    display: inline-block !important;
    background: var(--rpa-orange-accent) !important;
    color: var(--rpa-white) !important;
    padding: var(--rpa-spacing-5) var(--rpa-spacing-12) !important;
    font-size: 18px !important;
    font-weight: 600 !important;
    border-radius: 8px !important;
    text-decoration: none !important;
    border: none !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    line-height: 1.2 !important;
    margin-top: 30px !important;
}

.rpa-cta-button:hover {
    background: #c6750f !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 4px 12px rgba(215, 135, 19, 0.3) !important;
    color: var(--rpa-white) !important;
}

/* アニメーション制御ボタン */
.animation-control {
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 1000;
    background: var(--rpa-navy-text);
    color: white;
    border: none;
    padding: 12px 20px;
    border-radius: 8px;
    cursor: pointer;
    font-weight: 600;
    font-size: 14px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.2);
    transition: all 0.2s ease;
}

.animation-control:hover {
    background: #1e2660;
    transform: translateY(-2px);
}

.animation-control.disabled {
    background: #999;
}

/* レスポンシブ - 1020px以下 */
@media (max-width: 1020px) {
    .rpa-automation-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--rpa-spacing-4);
    }
    
    .rpa-automation-item {
        min-height: 180px;
    }
    
    .rpa-landing-wrapper {
        padding-left: 20px;
        padding-right: 20px;
    }
    
    .rpa-automation-section-inner {
        padding: 0 20px !important;
        margin: 0 auto !important; /* 確実に中央寄せ */
        left: auto !important;
        right: auto !important;
    }
}

/* レスポンシブ - 930px以下で左右padding追加 */
@media (max-width: 930px) {
    .rpa-landing-wrapper {
        padding-left: 20px;
        padding-right: 20px;
    }
    
    .rpa-automation-section-inner {
        padding: 0 20px !important;
        margin: 0 auto !important; /* 確実に中央寄せ */
        left: auto !important;
        right: auto !important;
    }
}

/* レスポンシブ - 768px以下でレイアウト調整 */
@media (max-width: 768px) {
    /* レスポンシブ - PC/スマホ画像切り替え */
    .rpa-problems-image-desktop {
        display: none !important;
    }
    .rpa-landing-wrapper .rpa-problems-image-mobile {
        display: block !important;
        padding: 0 20px;
        margin: 0 auto;
        max-width: 450px;
    }
    
    .rpa-landing-wrapper {
        padding: 40px 20px;
    }
    
    .rpa-automation-section {
        padding: var(--rpa-spacing-15) 0;
    }
    
    .rpa-automation-section-inner {
        padding: 0 20px !important;
        margin: 0 auto !important; /* 確実に中央寄せ */
        left: auto !important;
        right: auto !important;
        max-width: 1050px !important; /* 最大幅維持 */
    }

    .rpa-title-main {
        font-size: 26px !important;
        margin-bottom: var(--rpa-spacing-8) !important;
    }

    .rpa-title-sub {
        font-size: 26px !important;
        margin-bottom: var(--rpa-spacing-5) !important;
    }

    .rpa-automation-title {
        font-size: 26px !important;
        margin-bottom: var(--rpa-spacing-12) !important;
    }

    .rpa-section {
        margin-bottom: var(--rpa-spacing-15);
    }

    .rpa-proposal-text {
        font-size: 15px !important;
        margin-bottom: var(--rpa-spacing-12) !important;
    }

    .rpa-automation-icon {
        width: 70px;
        height: 50px;
    }

    .rpa-automation-grid .rpa-automation-item .rpa-automation-item-title {
        font-size: 15px !important;
    }

    .rpa-automation-item-description {
        font-size: 14px !important;
    }

    /* 特徴セクション縦積み */
    .rpa-features {
        flex-direction: column;
        gap: var(--rpa-spacing-12);
        align-items: center;
    }

    .rpa-feature-icon {
        width: 160px !important;
        height: 160px !important;
    }

    .rpa-feature-title {
        font-size: 26px !important;
    }

    .rpa-feature-description {
        font-size: 16px !important;
        max-width: 240px !important;
    }

    .rpa-cta-text {
        font-size: 18px !important;
    }

    .rpa-cta-button {
        font-size: 16px !important;
        padding: var(--rpa-spacing-4) var(--rpa-spacing-6) !important;
    }

    .animation-control {
        top: auto;
        bottom: 20px;
        right: 20px;
    }
}

@media (max-width: 480px) {
    .rpa-landing-wrapper {
        padding: 60px 15px;
    }
    
    .rpa-automation-section {
        padding: var(--rpa-spacing-12) 0;
    }
	
	.rpa-cta-section {
	margin-top:30px;
}
    
    .rpa-automation-section-inner {
        padding: 0 15px !important;
        margin: 0 auto !important; /* 確実に中央寄せ */
        left: auto !important;
        right: auto !important;
        max-width: 1050px !important; /* 最大幅維持 */
    }

    .rpa-automation-grid {
        gap: var(--rpa-spacing-3);
    }

    .rpa-automation-item {
        min-height: 195px;
    }

    .rpa-automation-icon {
        width: 60px;
        height: 45px;
    }

    .rpa-feature-description {
        max-width: 220px !important;
    }

    .rpa-cta-button {
        width: 100%;
        max-width: 320px;
    }
}

/* =================================================================
   汎用アニメーションシステム - 全ページ共通
   ================================================================= */

/* 基本設定 - 動きを苦手とするユーザー配慮 */
@media (prefers-reduced-motion: reduce) {
  .js-animate,
  .js-animate.is-visible {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  
  .js-animate::before,
  .js-animate.is-visible::before {
    display: none !important;
  }
}

/* 固定CTAボタン - PC右下 */
.service-fixed-cta {
    position: fixed;
    bottom: 100px;
    right: 32px;
    z-index: 1000;
    background: #D78713 !important;
    color: #ffffff !important;
    padding: 16px 20px !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    border-radius: 8px !important;
    text-decoration: none !important;
    border: none !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    line-height: 1.3 !important;
    max-width: 200px;
    text-align: center;
    box-shadow: 0 4px 16px rgba(215, 135, 19, 0.3) !important;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.service-fixed-cta:hover {
    background: #c6750f !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 24px rgba(215, 135, 19, 0.5) !important;
    color: #ffffff !important;
}

@media (max-width: 1300px) {
    .service-fixed-cta {
        bottom: 32px;
    }
}

/* 固定CTAボタンをモバイルでは非表示 */
@media (max-width: 768px) {
    .service-fixed-cta {
        display: none;
    }
}

/* =================================================================
   1. スライドリビール（カード系）アニメーション
   ================================================================= */

/* 初期状態 */
.js-animate[data-animation="slide-reveal"] {
    position: relative;
    overflow: hidden; /* カード外に色が漏れないように */
}

/* スライドオーバーレイ */
.js-animate[data-animation="slide-reveal"]::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: var(--overlay-color, #E0EDF8); /* CSS変数で色指定可能 */
    z-index: 2;
    transform: translateX(0%);
    transition: transform 1.2s cubic-bezier(0.4, 0.0, 0.2, 1);
}

/* アニメーション実行時 - オーバーレイが右にスライドアウト */
.js-animate[data-animation="slide-reveal"].is-visible::before {
    transform: translateX(100%);
}

/* カード内コンテンツのz-index調整 */
.js-animate[data-animation="slide-reveal"] > * {
    position: relative;
    z-index: 1;
}

/* =================================================================
   2. フェードアップアニメーション
   ================================================================= */

/* フェードアップ用キーフレーム */
@keyframes fadeInUp {
  from { 
    opacity: 0; 
    transform: translateY(60px); 
  }
  to { 
    opacity: 1; 
    transform: translateY(0); 
  }
}

/* 初期状態 */
.js-animate[data-animation="fade-up"] {
  opacity: 0;
  transform: translateY(60px);
}

/* アニメーション実行時 */
.js-animate[data-animation="fade-up"].is-visible {
  animation: fadeInUp 1.5s cubic-bezier(.22,.61,.36,1) both;
  animation-delay: calc(var(--animation-delay, 0ms) + var(--stagger-delay, 0ms));
  will-change: transform, opacity;
}

/* =================================================================
   3. フェードイン（シンプル）アニメーション
   ================================================================= */

.js-animate[data-animation="fade-in"] {
  opacity: 0;
  transition: opacity 1s ease;
}

.js-animate[data-animation="fade-in"].is-visible {
  opacity: 1;
  transition-delay: calc(var(--animation-delay, 0ms) + var(--stagger-delay, 0ms));
}

/* =================================================================
   4. スライドイン（左から）アニメーション - レスポンシブ対応
   ================================================================= */

.js-animate[data-animation="slide-left"] {
  opacity: 0;
  transform: translateX(var(--slide-distance-desktop, -50px));
  transition: all 0.8s cubic-bezier(0.4, 0.0, 0.2, 1);
}

.js-animate[data-animation="slide-left"].is-visible {
  opacity: 1;
  transform: translateX(0);
  transition-delay: calc(var(--animation-delay, 0ms) + var(--stagger-delay, 0ms));
}

/* モバイル用の移動幅調整 */
@media (max-width: 768px) {
  .js-animate[data-animation="slide-left"] {
    /* モバイル用のデフォルト値: 20px */
    transform: translateX(var(--slide-distance-mobile, -5px));
  }
}

/* =================================================================
   5. スライドイン（右から）アニメーション - レスポンシブ対応
   ================================================================= */

.js-animate[data-animation="slide-right"] {
  opacity: 0;
  transform: translateX(var(--slide-distance-desktop, 40px));
  transition: all 0.8s cubic-bezier(0.4, 0.0, 0.2, 1);
}

.js-animate[data-animation="slide-right"].is-visible {
  opacity: 1;
  transform: translateX(0);
  transition-delay: calc(var(--animation-delay, 0ms) + var(--stagger-delay, 0ms));
}

/* タブレット用の移動幅調整 */
@media (max-width: 965px) {
  .js-animate[data-animation="slide-right"] {
    /* モバイル用のデフォルト値: 20px */
    transform: translateX(var(--slide-distance-mobile, 20px));
  }
}
/* モバイル用の移動幅調整 */
@media (max-width: 480px) {
  .js-animate[data-animation="slide-right"] {
    /* モバイル用のデフォルト値: 5px */
    transform: translateX(var(--slide-distance-mobile, 5px));
  }
}

/* =================================================================
   6. スケール（拡大）アニメーション
   ================================================================= */

.js-animate[data-animation="scale-up"] {
  opacity: 0;
  transform: scale(0.8);
  transition: all 0.8s cubic-bezier(0.4, 0.0, 0.2, 1);
}

.js-animate[data-animation="scale-up"].is-visible {
  opacity: 1;
  transform: scale(1);
  transition-delay: calc(var(--animation-delay, 0ms) + var(--stagger-delay, 0ms));
}

/* =================================================================
   既存クラスとの互換性維持
   ================================================================= */

/* 既存のRPAランディングページ用クラス */
.rpa-automation-item {
  /* 汎用クラスの設定を継承 */
  position: relative;
  overflow: hidden;
}

.rpa-automation-item::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--rpa-light-blue-bg, #E0EDF8);
  z-index: 2;
  transform: translateX(0%);
  transition: transform 1.2s cubic-bezier(0.4, 0.0, 0.2, 1);
}

.rpa-automation-item.animate::before,
.rpa-automation-item.is-visible::before {
  transform: translateX(100%);
}

.rpa-automation-item > * {
  position: relative;
  z-index: 1;
}

/* 既存のフェードアップアニメーション */
.rpa-feature-item {
  opacity: 0;
  transform: translateY(60px);
}

.rpa-feature-item.is-inview,
.rpa-feature-item.is-visible {
  animation: fadeInUp 1.5s cubic-bezier(.22,.61,.36,1) both;
  animation-delay: calc(var(--i, 0) * var(--stagger, 300ms));
  will-change: transform, opacity;
}

/* =================================================================
   ユーティリティクラス
   ================================================================= */

/* アニメーション無効化 */
.no-animation .js-animate,
.no-animation .js-animate.is-visible {
  animation: none !important;
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}

/* 即座にアニメーション完了状態にする */
.instant-animation .js-animate {
  opacity: 1 !important;
  transform: none !important;
}

/* デバッグ用：アニメーション境界を可視化 */
.debug-animation .js-animate {
  outline: 2px dashed red;
}

.debug-animation .js-animate.is-visible {
  outline: 2px solid green;
}