/* ===========================================
   完全最適化版CSS - 余白調整版・スマホ表示完全対応版
=========================================== */

/* 基本スタイル補完 */
section {
    padding: 50px 0; /* 80px→50px に縮小 */
}

/* 見出しの中央寄せ修正 */
.section-title {
    text-align: center !important;
    font-size: clamp(1.8rem, 4vw, 2.8rem);
    font-weight: 700;
    margin-bottom: 1rem; /* 1.5rem→1rem に縮小 */
    color: #2c3e50;
    line-height: 1.3;
}

.section-subtitle {
    text-align: center !important;
    font-size: clamp(1rem, 2vw, 1.2rem);
    margin-bottom: 1.5rem; /* 2rem→1.5rem に縮小 */
    color: #666;
    line-height: 1.6;
}

/* CTAボタンのサイズ補完 */
.cta-button-secondary {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background: linear-gradient(135deg, #2c3e50 0%, #34495e 100%);
    color: white;
    padding: 16px 32px;
    border-radius: 50px;
    text-decoration: none;
    font-weight: 700;
    font-size: 1.1rem;
    transition: transform 0.3s ease;
    cursor: pointer;
    min-height: 44px;
    position: relative;
    z-index: 1500;
}

.cta-button-secondary:hover {
    transform: translateY(-3px) scale(1.02);
}

.extra-large {
    padding: 24px 48px;
    font-size: 1.4rem;
}

/* 社会的証明 */
.social-proof {
    background: #f8f9fa;
    padding: 20px 0; /* 30px→20px に縮小 */
    border-top: 1px solid #e9ecef;
}

.social-proof-content {
    text-align: center !important;
}

.social-proof-content strong {
    display: block;
    font-size: 1.2rem;
    color: #2c3e50;
    margin-bottom: 1.5rem;
}

.achievement-stats {
    display: flex;
    justify-content: center;
    gap: 40px;
    flex-wrap: wrap;
    margin-top: 20px;
}

.stat-item {
    text-align: center;
}

.stat-number {
    font-size: 2rem;
    font-weight: 900;
    color: #FF5757;
    display: block;
}

.stat-label {
    font-size: 0.9rem;
    color: #666;
    margin-top: 5px;
}

/* 問題提起 */
.problems {
    padding: 40px 0; /* 80px→40px に縮小 */
    background: #f8f9fa;
}

.problems-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem; /* 2rem→1.5rem に縮小 */
    margin-bottom: 2.5rem; /* 3rem→2.5rem に縮小 */
}

.problem-item {
    background: white;
    padding: 2rem;
    border-radius: 20px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.08);
    border-left: 5px solid #FF5757;
    text-align: center;
}

.problem-icon {
    font-size: 2.5rem;
    margin-bottom: 1rem;
    text-align: center;
}

.problem-item h3 {
    font-size: 1.2rem;
    margin-bottom: 0.8rem;
    color: #2c3e50;
    font-weight: 700;
    text-align: center;
}

.problem-item p {
    line-height: 1.6;
    color: #555;
    text-align: center;
}

.solution-highlight {
    text-align: center !important;
    background: linear-gradient(135deg, #FF5757 0%, #FF9956 100%);
    color: white;
    padding: 3rem 2rem;
    border-radius: 25px;
    box-shadow: 0 20px 50px rgba(255,87,87,0.3);
}

.solution-highlight h3 {
    font-size: clamp(1.5rem, 3vw, 2rem);
    margin-bottom: 1rem;
    font-weight: 700;
    text-align: center;
}

.solution-highlight p {
    font-size: clamp(1rem, 2vw, 1.2rem);
    margin-bottom: 0;
    text-align: center;
}

/* 解決策 */
.solution {
    background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
    padding: 40px 0; /* 80px→40px に縮小 */
}

.solution-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem; /* 2rem→1.5rem に縮小 */
    margin-top: 2.5rem; /* 3rem→2.5rem に縮小 */
}

.solution-card {
    background: white;
    padding: 2.5rem;
    border-radius: 25px;
    box-shadow: 0 15px 50px rgba(0,0,0,0.1);
    position: relative;
    border: 2px solid transparent;
    text-align: center;
}

.solution-number {
    position: absolute;
    top: -15px;
    left: 2rem;
    width: 40px;
    height: 40px;
    background: linear-gradient(135deg, #FF5757 0%, #FF9956 100%);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-weight: 900;
    font-size: 1.2rem;
}

.solution-icon {
    font-size: 3rem;
    margin: 1rem 0;
    text-align: center;
}

.solution-card h3 {
    font-size: 1.4rem;
    color: #2c3e50;
    margin-bottom: 1rem;
    font-weight: 700;
    text-align: center;
}

.solution-card p {
    margin-bottom: 1.5rem;
    line-height: 1.6;
    color: #555;
    text-align: center;
}

.solution-features {
    list-style: none;
    padding: 0;
    margin: 0;
    text-align: left;
}

.solution-features li {
    padding: 0.4rem 0;
    font-size: 0.9rem;
    color: #666;
}

.section-cta {
    text-align: center !important;
    margin-top: 35px; /* 50px→35px に縮小 */
}

/* 実績・事例 */
.case-studies {
    padding: 40px 0; /* 80px→40px に縮小 */
    background: white;
}

.cases-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem; /* 2rem→1.5rem に縮小 */
    margin-top: 2.5rem; /* 3rem→2.5rem に縮小 */
}

.case-item {
    background: white;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 15px 40px rgba(0,0,0,0.1);
}

.case-video {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    background: #000;
    overflow: hidden;
}

.case-thumbnail {
    width: 100%;
    height: 100%;
    object-fit: cover;
    aspect-ratio: 16 / 9;
}

.case-info {
    padding: 1.5rem;
    text-align: center;
}

.case-info h3 {
    font-size: 1.3rem;
    color: #2c3e50;
    margin-bottom: 0.5rem;
    font-weight: 700;
    text-align: center;
}

.case-type {
    color: #FF5757;
    font-weight: 600;
    font-size: 0.9rem;
    margin-bottom: 0.8rem;
    text-align: center;
}

.case-info p {
    color: #666;
    margin-bottom: 1rem;
    line-height: 1.5;
    text-align: center;
}

.case-results {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    justify-content: center;
}

.result-item {
    background: #f8f9fa;
    padding: 0.4rem 0.8rem;
    border-radius: 15px;
    font-size: 0.8rem;
    color: #555;
    font-weight: 600;
}

/* 料金プラン */
.plan-table {
    padding: 40px 0; /* 80px→40px に縮小 */
    background: linear-gradient(135deg, #f8f9fa 0%, #ffffff 100%);
}

.plan-guide {
    display: flex;
    justify-content: center;
    gap: 2rem;
    margin: 1.5rem 0 2.5rem 0; /* 2rem 0 3rem 0 → 1.5rem 0 2.5rem 0 */
    flex-wrap: wrap;
}

.guide-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    background: white;
    padding: 1rem 1.5rem;
    border-radius: 25px;
    box-shadow: 0 5px 15px rgba(0,0,0,0.1);
    font-size: 0.9rem;
}

.table-container {
    background: white;
    border-radius: 20px;
    box-shadow: 0 15px 40px rgba(0,0,0,0.1);
    overflow: hidden;
    margin: 2.5rem 0; /* 3rem 0 → 2.5rem 0 */
}

.table-scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.plan-comparison {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9rem;
    min-width: 800px;
}

.plan-comparison th,
.plan-comparison td {
    padding: 1rem;
    text-align: center;
    border-bottom: 1px solid #e5e7eb;
    vertical-align: middle;
}

.feature-col {
    background: #f8f9fa;
    text-align: left !important;
    font-weight: 700;
    color: #2c3e50;
    width: 35%;
    position: sticky;
    left: 0;
    z-index: 10;
}

.plan-col {
    width: 21.67%;
    position: relative;
}

.light-plan {
    background: linear-gradient(135deg, #28a745 0%, #20c997 100%);
    color: white;
}

.standard-plan {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
}

.premium-plan {
    background: linear-gradient(135deg, #6f42c1 0%, #9b59b6 100%);
    color: white;
}

.plan-header {
    padding: 0.5rem;
}

.recommended-badge {
    background: #FFE066;
    color: #2c3e50;
    padding: 0.3rem 0.8rem;
    border-radius: 15px;
    font-size: 0.7rem;
    font-weight: 700;
    margin-bottom: 0.5rem;
    display: inline-block;
}

.plan-price {
    font-size: 1.8rem;
    font-weight: 900;
    margin-bottom: 0.3rem;
}

.plan-name {
    font-size: 1.2rem;
    font-weight: 700;
    margin-bottom: 0.3rem;
}

.plan-description {
    font-size: 0.8rem;
    opacity: 0.9;
}

.category-header th {
    background: #2c3e50;
    color: white;
    font-weight: 700;
    padding: 1rem;
}

.category-title {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    justify-content: center;
}

.feature-name {
    text-align: left !important;
    background: #f8f9fa;
    position: sticky;
    left: 0;
    z-index: 5;
}

.plan-feature {
    font-weight: 600;
}

.feature-icon {
    font-size: 1.2rem;
    display: block;
    margin-bottom: 0.3rem;
}

.feature-text {
    font-size: 0.8rem;
    display: block;
}

.included {
    background: rgba(40,167,69,0.1);
    color: #28a745;
}

.not-included {
    background: rgba(108,117,125,0.1);
    color: #6c757d;
}

.plan-cta-section {
    margin-top: 3rem; /* 4rem→3rem に縮小 */
}

.plan-cta-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
    margin-bottom: 2rem;
}

.plan-cta-card {
    background: white;
    padding: 2rem;
    border-radius: 20px;
    text-align: center !important;
    box-shadow: 0 10px 30px rgba(0,0,0,0.1);
    position: relative;
}

.plan-cta-card.recommended {
    border: 3px solid #667eea;
    transform: scale(1.05);
}

.popular-badge {
    position: absolute;
    top: -10px;
    left: 50%;
    transform: translateX(-50%);
    background: #FFE066;
    color: #2c3e50;
    padding: 0.5rem 1rem;
    border-radius: 15px;
    font-size: 0.8rem;
    font-weight: 700;
}

.plan-cta-card h3 {
    font-size: 1.5rem;
    margin-bottom: 1rem;
    color: #2c3e50;
    text-align: center;
}

.cta-price {
    font-size: 2rem;
    font-weight: 900;
    color: #FF5757;
    margin-bottom: 0.5rem;
    text-align: center;
}

.cta-price span {
    font-size: 0.8rem;
    font-weight: normal;
    color: #666;
}

.plan-cta-card p {
    margin-bottom: 1.5rem;
    color: #666;
    text-align: center;
}

.premium-btn {
    background: linear-gradient(135deg, #6f42c1 0%, #9b59b6 100%) !important;
    color: white !important;
}

.plan-note {
    text-align: center !important;
    background: rgba(255,230,102,0.1);
    padding: 2rem;
    border-radius: 15px;
    border: 2px solid #FFE066;
}

.plan-note p {
    margin-bottom: 0.5rem;
    color: #2c3e50;
    text-align: center;
}

.plan-note p:last-child {
    margin-bottom: 0;
    font-size: 0.9rem;
    opacity: 0.8;
    text-align: center;
}

/* 競合比較 - 白背景100%幅対応 */
.pricing {
    padding: 40px 0; /* 80px→40px に縮小 */
    background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
    overflow-x: hidden; /* 横スクロール対策 */
}

.competitor-comparison {
    background: white;
    border-radius: 25px;
    box-shadow: 0 15px 40px rgba(0,0,0,0.1);
    margin: 2.5rem 0; /* 3rem 0 → 2.5rem 0 */
    overflow: hidden;
    width: 100%; /* 100%幅に設定 */
}

.competitor-comparison h3 {
    text-align: center !important;
    font-size: 1.8rem;
    color: #2c3e50;
    margin-bottom: 1.5rem; /* 2rem→1.5rem に縮小 */
    font-weight: 700;
    padding: 2rem 2rem 0;
}

/* テーブル用のフルワイドコンテナ */
.comparison-table-wrapper {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin: 0;
    background: white;
    width: 100%; /* 100%幅に設定 */
}

.comparison-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9rem;
    margin-bottom: 1.5rem; /* 2rem→1.5rem に縮小 */
    min-width: 700px;
}

.comparison-table thead {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: #fff;
}

.comparison-table th,
.comparison-table td {
    padding: 1rem 0.8rem;
    border: 1px solid #e5e7eb;
    vertical-align: top;
    text-align: center;
}

.comparison-table th {
    font-weight: 700;
    text-align: center !important;
}

.comparison-table th:first-child {
    text-align: left !important;
    position: sticky;
    left: 0;
    z-index: 10;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}

.comparison-table td:first-child {
    text-align: left !important;
    position: sticky;
    left: 0;
    z-index: 5;
    background: #f8f9fa;
    font-weight: 600;
}

.comparison-table .our-plan {
    background: linear-gradient(135deg, #FF5757 0%, #FF9956 100%);
    color: white;
    font-weight: 600;
}

.comparison-table td.our-plan {
    background: #fff5f5;
    color: #2c3e50;
    font-weight: 600;
    border-left: 3px solid #FF5757;
}

.comparison-table small {
    font-size: 0.8em;
    opacity: 0.8;
}

.price-row {
    background: #f8f9fa;
    font-weight: 700;
}

.price-row td {
    padding: 1.2rem 0.8rem;
    font-size: 1rem;
}

.pricing-special {
    text-align: center !important;
    background: linear-gradient(135deg, #FF5757 0%, #FF9956 100%);
    color: white;
    padding: 2.5rem 2rem; /* 3rem 2rem → 2.5rem 2rem */
    border-radius: 25px;
    box-shadow: 0 20px 50px rgba(255,87,87,0.3);
    margin: 2.5rem 0; /* 3rem 0 → 2.5rem 0 */
    position: relative;
    overflow: hidden;
}

.special-badge {
    position: absolute;
    top: 20px;
    right: 20px;
    background: rgba(255,255,255,0.2);
    padding: 0.5rem 1rem;
    border-radius: 20px;
    font-size: 0.9rem;
    font-weight: 600;
    backdrop-filter: blur(10px);
}

.special-price {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    margin: 1.5rem 0; /* 2rem 0 → 1.5rem 0 */
    flex-wrap: wrap;
}

.price-old {
    font-size: 1.5rem;
    text-decoration: line-through;
    opacity: 0.8;
}

.price-arrow {
    font-size: 2rem;
    font-weight: 900;
}

.price-new {
    font-size: 3.5rem;
    font-weight: 900;
}

.price-tax {
    font-size: 1.2rem;
    margin-left: 0.5rem;
}

.special-note {
    font-size: 1.3rem;
    font-weight: 700;
    margin-bottom: 1.5rem; /* 2rem→1.5rem に縮小 */
    text-align: center;
}

.cta-container {
    margin-top: 1.5rem; /* 2rem→1.5rem に縮小 */
    text-align: center;
}

/* 収益シミュレーター - 白背景100%幅対応 */
.revenue-simulator-section {
    padding: 40px 0; /* 80px→40px に縮小 */
    background: white;
    overflow-x: hidden; /* 横スクロール対策 */
}

.simulator-container {
    background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
    border-radius: 25px;
    box-shadow: 0 15px 40px rgba(0,0,0,0.1);
    margin-top: 2.5rem; /* 3rem→2.5rem に縮小 */
    overflow: hidden;
    width: 100%; /* 100%幅に設定 */
}

.simulator-inputs {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 2rem;
    margin-bottom: 1.5rem; /* 2rem→1.5rem に縮小 */
    padding: 2.5rem 3rem 0; /* 3rem 3rem 0 → 2.5rem 3rem 0 */
}

.input-group {
    text-align: center;
    width: 100%;
}

.input-group label {
    display: block;
    font-weight: 700;
    color: #2c3e50;
    margin-bottom: 0.8rem;
    font-size: 1rem;
    text-align: center;
}

.input-group select {
    width: 100%;
    padding: 1rem;
    border: 2px solid #ddd;
    border-radius: 15px;
    font-size: 1.1rem;
    font-weight: 600;
    background: white;
    cursor: pointer;
    transition: all 0.3s ease;
    appearance: none;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
    background-position: right 0.5rem center;
    background-repeat: no-repeat;
    background-size: 1.5em 1.5em;
    padding-right: 2.5rem;
}

.input-group select:focus {
    border-color: #FF5757;
    outline: none;
    box-shadow: 0 0 0 3px rgba(255,87,87,0.1);
}

.simulator-result {
    background: linear-gradient(135deg, #FF5757 0%, #FF9956 100%);
    color: white;
    padding: 2.5rem; /* 3rem→2.5rem に縮小 */
    text-align: center !important;
    position: relative;
    overflow: hidden;
}

.result-formula {
    font-size: 1.2rem;
    margin-bottom: 1.2rem; /* 1.5rem→1.2rem に縮小 */
    opacity: 0.9;
    text-align: center;
}

.result-breakdown {
    background: rgba(255,255,255,0.1);
    padding: 1.5rem;
    border-radius: 15px;
    backdrop-filter: blur(10px);
    width: 100%;
}

.result-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.8rem;
    font-size: 1.1rem;
}

.result-item:last-child {
    margin-bottom: 0;
}

.result-item.profit {
    border-top: 2px solid rgba(255,255,255,0.3);
    padding-top: 0.8rem;
    font-weight: 700;
    font-size: 1.3rem;
}

.result-label {
    font-weight: 600;
}

.result-value {
    font-weight: 700;
}

.result-value.cost {
    color: #ffcccb;
}

.result-note {
    margin-top: 1rem;
    font-size: 0.9rem;
    opacity: 0.8;
    text-align: center;
}

/* 成功事例 */
.real-success-cases {
    padding: 40px 0; /* 80px→40px に縮小 */
    background: #f8f9fa;
}

.success-cases-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(500px, 1fr));
    gap: 2rem; /* 3rem→2rem に縮小 */
    margin-top: 2.5rem; /* 3rem→2.5rem に縮小 */
}

.success-case {
    background: white;
    padding: 2.5rem;
    border-radius: 25px;
    box-shadow: 0 15px 40px rgba(0,0,0,0.1);
    position: relative;
    border-left: 5px solid #667eea;
}

.case-badge {
    position: absolute;
    top: -10px;
    left: 2rem;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    padding: 0.5rem 1rem;
    border-radius: 15px;
    font-size: 0.8rem;
    font-weight: 700;
}

.success-case h3 {
    color: #2c3e50;
    margin-bottom: 1.2rem; /* 1.5rem→1.2rem に縮小 */
    font-weight: 700;
    font-size: 1.3rem;
    margin-top: 1rem;
    text-align: center;
}

.case-details {
    margin-bottom: 1.2rem; /* 1.5rem→1.2rem に縮小 */
}

.detail-item {
    display: flex;
    margin-bottom: 0.8rem;
    font-size: 0.9rem;
}

.detail-label {
    font-weight: 600;
    color: #666;
    min-width: 100px;
}

.detail-value {
    color: #333;
}

.calculation {
    background: #f8f9fa;
    padding: 1.5rem;
    border-radius: 15px;
    margin: 1.2rem 0; /* 1.5rem 0 → 1.2rem 0 */
    text-align: center !important;
}

.calc-formula {
    font-size: 1rem;
    margin-bottom: 0;
    line-height: 1.5;
    text-align: center;
}

.result-amount {
    color: #FF5757;
    font-size: 1.3rem;
}

.case-benefits ul {
    list-style: none;
    padding: 0;
    margin: 1rem 0 0 0;
}

.case-benefits li {
    padding: 0.3rem 0;
    font-size: 0.9rem;
    color: #555;
    text-align: center;
}

/* プロセス */
.process {
    padding: 40px 0; /* 80px→40px に縮小 */
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
}

.process .section-title,
.process .section-subtitle {
    color: white;
    text-align: center !important;
}

.process-timeline {
    max-width: 1000px;
    margin: 2.5rem auto 0; /* 3rem auto 0 → 2.5rem auto 0 */
}

.process-step {
    display: flex;
    align-items: flex-start;
    margin-bottom: 2rem; /* 3rem→2rem に縮小 */
    position: relative;
}

.process-step:last-child {
    margin-bottom: 0;
}

.process-step:not(:last-child)::after {
   content: '';
   position: absolute;
   left: 35px;
   top: 70px;
   width: 2px;
   height: calc(100% + 1.5rem); /* 2rem → 1.5rem に縮小 */
   background: rgba(255,255,255,0.3);
}

.step-number {
   width: 70px;
   height: 70px;
   background: rgba(255,255,255,0.9);
   color: #667eea;
   border-radius: 50%;
   display: flex;
   align-items: center;
   justify-content: center;
   font-weight: 900;
   font-size: 1.5rem;
   flex-shrink: 0;
   box-shadow: 0 8px 25px rgba(0,0,0,0.2);
}

.step-content {
   flex: 1;
   padding: 1rem 0 1rem 2rem;
}

.step-content h3 {
   font-size: 1.5rem;
   margin-bottom: 0.5rem;
   font-weight: 700;
}

.step-duration {
   color: #FFE066;
   font-weight: 600;
   margin-bottom: 1rem;
   font-size: 0.9rem;
}

.step-content p {
   margin-bottom: 1rem;
   line-height: 1.6;
   opacity: 0.9;
}

.step-details {
   list-style: none;
   padding: 0;
   margin: 0;
}

.step-details li {
   padding: 0.2rem 0;
   font-size: 0.9rem;
   opacity: 0.8;
}

/* お客様の声 */
.testimonials {
   padding: 40px 0; /* 80px→40px に縮小 */
   background: white;
}

.testimonials-grid {
   display: grid;
   grid-template-columns: repeat(2, 1fr);
   gap: 1.5rem; /* 2rem→1.5rem に縮小 */
   margin-top: 2.5rem; /* 3rem→2.5rem に縮小 */
}

.testimonial-item {
   background: #f8f9fa;
   padding: 2.5rem;
   border-radius: 25px;
   box-shadow: 0 15px 40px rgba(0,0,0,0.1);
   position: relative;
   text-align: center;
}

.testimonial-item::before {
   content: '"';
   position: absolute;
   top: -10px;
   left: 2rem;
   font-size: 4rem;
   color: #FF5757;
   font-weight: 900;
   line-height: 1;
}

.testimonial-rating {
   display: flex;
   align-items: center;
   gap: 1rem;
   margin-bottom: 1.2rem; /* 1.5rem→1.2rem に縮小 */
   justify-content: center;
}

.stars {
  color: #FFD700;
  font-size: 1.2rem;
}

.rating-text {
  color: #666;
  font-size: 0.9rem;
  font-weight: 600;
}

.testimonial-item blockquote {
  font-style: italic;
  margin: 0 0 1.2rem 0; /* 1.5rem → 1.2rem に縮小 */
  line-height: 1.6;
  color: #333;
  font-size: 1rem;
  text-align: center;
}

.testimonial-item cite {
  display: block;
  font-style: normal;
  text-align: center;
}

.testimonial-item cite strong {
  color: #2c3e50;
  font-weight: 700;
  display: block;
  margin-bottom: 0.3rem;
}

.testimonial-item cite span {
  color: #666;
  font-size: 0.9rem;
}

/* 限定募集 */
.schedule-limitation {
 padding: 40px 0; /* 80px→40px に縮小 */
 background: linear-gradient(135deg, #2c3e50 0%, #34495e 100%);
 color: white;
}

.schedule-limitation .section-title,
.schedule-limitation .section-subtitle {
 color: white;
 text-align: center !important;
}

.schedule-details {
 max-width: 1000px;
 margin: 2.5rem auto 0; /* 3rem auto 0 → 2.5rem auto 0 */
 background: rgba(255,255,255,0.1);
 padding: 2.5rem; /* 3rem→2.5rem に縮小 */
 border-radius: 25px;
 backdrop-filter: blur(10px);
}

.schedule-details h3 {
 text-align: center !important;
 font-size: 1.8rem;
 margin-bottom: 1.5rem; /* 2rem→1.5rem に縮小 */
 color: #FFE066;
 font-weight: 700;
}

.time-schedule {
 margin-bottom: 2.5rem; /* 3rem→2.5rem に縮小 */
}

.time-schedule h4 {
 font-size: 1.3rem;
 margin-bottom: 1.2rem; /* 1.5rem→1.2rem に縮小 */
 color: white;
 font-weight: 700;
 text-align: center;
}

.time-slots-grid {
 display: grid;
 grid-template-columns: repeat(2, 1fr);
 gap: 1rem;
 margin-bottom: 1.5rem; /* 2rem→1.5rem に縮小 */
}

.time-slot {
 background: rgba(255,255,255,0.15);
 padding: 1.5rem;
 border-radius: 15px;
 text-align: center !important;
 backdrop-filter: blur(10px);
 border: 1px solid rgba(255,255,255,0.2);
}

.slot-name {
 font-size: 1.2rem;
 font-weight: 700;
 margin-bottom: 0.5rem;
 color: #FFE066;
 text-align: center;
}

.slot-time {
 font-size: 1rem;
 color: white;
 text-align: center;
}

.schedule-breakdown {
 margin-bottom: 2.5rem; /* 3rem→2.5rem に縮小 */
}

.schedule-breakdown h4 {
 font-size: 1.3rem;
 margin-bottom: 1.2rem; /* 1.5rem→1.2rem に縮小 */
 color: white;
 font-weight: 700;
 text-align: center;
}

.breakdown-timeline {
 background: rgba(255,255,255,0.1);
 padding: 2rem;
 border-radius: 15px;
}

.timeline-item {
 display: flex;
 align-items: center;
 padding: 1rem 0;
 border-bottom: 1px solid rgba(255,255,255,0.2);
}

.timeline-item:last-child {
 border-bottom: none;
}

.timeline-item.highlight {
 background: rgba(255,230,102,0.2);
 margin: 0 -1rem;
 padding: 1rem;
 border-radius: 10px;
}

.time-range {
 font-weight: 700;
 color: #FFE066;
 min-width: 120px;
 font-size: 0.9rem;
}

.time-content {
 flex: 1;
 margin-left: 1rem;
 color: white;
}

.duration {
 color: #FFE066;
 font-size: 0.8rem;
 margin-left: 0.5rem;
}

.limitation-reasons {
 margin-bottom: 1.5rem; /* 2rem→1.5rem に縮小 */
}

.limitation-reasons h4 {
 font-size: 1.3rem;
 margin-bottom: 1.2rem; /* 1.5rem→1.2rem に縮小 */
 color: white;
 font-weight: 700;
 text-align: center !important;
}

.reasons-grid {
 display: flex;
 justify-content: center;
 gap: 2rem;
 flex-wrap: wrap;
}

.reason-item {
 display: flex;
 align-items: center;
 gap: 0.5rem;
 background: rgba(255,255,255,0.15);
 padding: 0.8rem 1.5rem;
 border-radius: 25px;
 font-size: 0.9rem;
 backdrop-filter: blur(10px);
}

.urgent-cta {
 text-align: center !important;
 margin-top: 1.5rem; /* 2rem→1.5rem に縮小 */
}

.urgent-note {
 color: #FFE066;
 font-size: 0.9rem;
 margin-bottom: 1.2rem; /* 1.5rem→1.2rem に縮小 */
 font-style: italic;
 text-align: center;
}

/* FAQ */
.faq {
 padding: 40px 0; /* 80px→40px に縮小 */
 background: #f8f9fa;
}

.faq-list {
 max-width: 900px;
 margin: 2.5rem auto 0; /* 3rem auto 0 → 2.5rem auto 0 */
}

.faq-item {
 background: white;
 border-radius: 15px;
 margin-bottom: 1rem;
 overflow: hidden;
 box-shadow: 0 5px 15px rgba(0,0,0,0.1);
 padding: 2rem;
}

.faq-question-static {
 margin-bottom: 1rem;
 color: #2c3e50;
 font-size: 1.1rem;
}

.faq-answer-static p {
 margin: 0;
 line-height: 1.6;
 color: #555;
}

/* 最終CTA */
.final-cta {
 padding: 60px 0; /* 維持 */
 background: linear-gradient(135deg, #FF5757 0%, #FF9956 100%);
 color: white;
 text-align: center !important;
}

.cta-content {
 text-align: center !important;
}

.cta-content h2 {
 font-size: clamp(2rem, 4vw, 3rem);
 margin-bottom: 1.2rem; /* 1.5rem→1.2rem に縮小 */
 font-weight: 900;
 color: white;
 line-height: 1.2;
 text-align: center;
}

.cta-subtitle {
 font-size: clamp(1.1rem, 2vw, 1.3rem);
 margin-bottom: 1.5rem; /* 2rem→1.5rem に縮小 */
 line-height: 1.6;
 opacity: 0.95;
 text-align: center;
}

.cta-benefits {
 display: flex;
 justify-content: center;
 gap: 2rem;
 margin: 1.5rem 0 2.5rem 0; /* 2rem 0 3rem 0 → 1.5rem 0 2.5rem 0 */
 flex-wrap: wrap;
}

.cta-benefit {
 display: flex;
 align-items: center;
 gap: 0.5rem;
 background: rgba(255,255,255,0.15);
 padding: 0.8rem 1.5rem;
 border-radius: 25px;
 font-weight: 600;
 backdrop-filter: blur(10px);
}

.cta-button-container {
 margin-top: 1.5rem; /* 2rem→1.5rem に縮小 */
 text-align: center;
}

.cta-note {
 margin-top: 1rem;
 font-size: 0.9rem;
 opacity: 0.8;
 text-align: center;
}

/* フッター */
.site-footer {
 background: #2c3e50;
 color: white;
 padding: 30px 0 15px 0; /* 40px 0 20px 0 → 30px 0 15px 0 に縮小 */
}

.footer-content {
 display: flex;
 align-items: center;
 justify-content: space-between;
 margin-bottom: 1.5rem; /* 2rem→1.5rem に縮小 */
}

.footer-logo img {
 filter: brightness(0) invert(1);
}

.footer-info {
 text-align: center;
}

.footer-info p {
 margin-bottom: 0.5rem;
 opacity: 0.8;
}

.footer-bottom {
 text-align: center !important;
 padding-top: 1.5rem; /* 2rem→1.5rem に縮小 */
 border-top: 1px solid #34495e;
}

.footer-bottom p {
 margin: 0;
 opacity: 0.7;
 font-size: 0.9rem;
 text-align: center;
}

/* 特別な背景でのCTAスタイル */
.hero .cta-button-primary {
 background: rgba(255,255,255,0.95) !important;
 color: #FF5757 !important;
}

.pricing-special .cta-button-primary {
 background: rgba(255,255,255,0.95) !important;
 color: #FF5757 !important;
}

.schedule-limitation .cta-button-primary {
 background: rgba(255,255,255,0.95) !important;
 color: #2c3e50 !important;
}

.process .cta-button-secondary {
 background: rgba(255,255,255,0.95) !important;
 color: #2c3e50 !important;
}

.final-cta .cta-button-primary {
 background: rgba(255,255,255,0.95) !important;
 color: #FF5757 !important;
 font-size: 1.4rem !important;
 padding: 22px 55px !important;
}

/* セクション表示アニメーション（軽量版） */
.section-visible {
 animation: fadeInUp 0.6s ease-out;
}

@keyframes fadeInUp {
 from {
     opacity: 0;
     transform: translateY(30px);
 }
 to {
     opacity: 1;
     transform: translateY(0);
 }
}

/* 横スクロールヒント表示 */
.table-scroll::after,
.comparison-table-wrapper::after {
 content: "→ 横にスクロールできます";
 display: block;
 text-align: center;
 font-size: 0.8rem;
 color: #666;
 margin: 0.5rem 0;
 opacity: 0.7;
 padding: 0 1rem;
}

@media (min-width: 769px) {
 .table-scroll::after,
 .comparison-table-wrapper::after {
     display: none;
 }
}

/* ===========================================
 レスポンシブデザイン最適化 - 768px以下
=========================================== */
@media (max-width: 768px) {
 /* 基本設定 */
 .container {
     padding: 0 15px;
 }
 
 section {
     padding: 30px 0; /* 40px→30px に縮小 */
 }
 
 /* 特定セクション */
 .problems,
 .solution,
 .case-studies,
 .plan-table,
 .pricing,
 .process,
 .real-success-cases,
 .testimonials,
 .schedule-limitation,
 .faq {
     padding: 25px 0; /* さらに縮小 */
 }
 
 .social-proof {
     padding: 15px 0; /* 20px→15px に縮小 */
 }
 
 .final-cta {
     padding: 40px 0; /* 60px→40px に縮小 */
 }
 
 /* セクションレベルでの横スクロール対策 */
 .pricing,
 .revenue-simulator-section {
     overflow-x: hidden;
 }
 
 /* 基本グリッドの1列化 */
 .problems-grid,
 .solution-grid,
 .cases-grid,
 .testimonials-grid {
     grid-template-columns: 1fr;
     gap: 1.2rem; /* 1.5rem→1.2rem に縮小 */
 }
 
 .success-cases-grid {
     grid-template-columns: 1fr;
     gap: 1.5rem; /* 2rem→1.5rem に縮小 */
 }
 
 /* 見出し調整 */
 .section-title {
     margin-bottom: 0.8rem; /* 1rem→0.8rem に縮小 */
 }
 
 .section-subtitle {
     margin-bottom: 1.2rem; /* 1.5rem→1.2rem に縮小 */
 }
 
 .section-cta {
     margin-top: 25px; /* 35px→25px に縮小 */
 }
 
 /* 収益シミュレーター - 完全修正 */
 .simulator-container {
     margin: 1.5rem -15px 0; /* 2.5rem -15px 0 → 1.5rem -15px 0 */
     border-radius: 15px;
     width: calc(100% + 30px); /* コンテナのパディング分を加算 */
 }
 
 .simulator-inputs {
     grid-template-columns: 1fr;
     gap: 1rem;
     padding: 2rem 1.5rem 0; /* 2.5rem 1.5rem 0 → 2rem 1.5rem 0 */
 }
 
 .input-group select {
     font-size: 1rem;
     padding: 0.8rem;
     padding-right: 2rem;
 }
 
 .simulator-result {
     padding: 2rem 1.5rem; /* 2.5rem 1.5rem → 2rem 1.5rem */
 }
 
 .result-formula {
     font-size: 0.9rem;
     word-break: break-word;
     margin-bottom: 1rem; /* 1.2rem→1rem に縮小 */
 }
 
 .result-item {
     font-size: 0.9rem;
     flex-direction: column;
     align-items: center;
     gap: 0.3rem;
     text-align: center;
 }
 
 .result-item.profit {
     font-size: 1.1rem;
 }
 
 /* 競合比較テーブル - 完全修正 */
 .competitor-comparison {
     margin: 1.5rem -15px; /* 2.5rem -15px → 1.5rem -15px */
     border-radius: 15px;
     width: calc(100% + 30px); /* コンテナのパディング分を加算 */
 }
 
 .competitor-comparison h3 {
     padding: 1.2rem 1.5rem 0; /* 1.5rem 1.5rem 0 → 1.2rem 1.5rem 0 */
     font-size: 1.5rem;
     margin-bottom: 1.2rem; /* 1.5rem→1.2rem に縮小 */
 }
 
 .comparison-table-wrapper {
     margin: 1rem 0 0 0;
 }
 
 .comparison-table {
     font-size: 0.75rem;
     min-width: 600px;
     margin-bottom: 1.2rem; /* 1.5rem→1.2rem に縮小 */
 }
 
 .comparison-table th,
 .comparison-table td {
     padding: 0.7rem 0.5rem;
 }
 
 .comparison-table th:first-child,
 .comparison-table td:first-child {
     min-width: 100px;
     max-width: 120px;
     font-size: 0.7rem;
 }
 
 /* 料金プランテーブル - 既存の良い実装を維持 */
 .plan-comparison {
     font-size: 0.8rem;
     min-width: 600px;
 }
 
 .plan-comparison th,
 .plan-comparison td {
     padding: 0.7rem 0.5rem;
 }
 
 .plan-price {
     font-size: 1.4rem;
 }
 
 .plan-name {
     font-size: 1rem;
 }
 
 .plan-cta-card.recommended {
     transform: none;
 }
 
 .plan-cta-section {
     margin-top: 2.5rem; /* 3rem→2.5rem に縮小 */
 }
 
 .plan-guide {
     margin: 1.2rem 0 2rem 0; /* 1.5rem 0 2.5rem 0 → 1.2rem 0 2rem 0 */
 }
 
 .table-container {
     margin: 2rem 0; /* 2.5rem 0 → 2rem 0 */
 }
 
 /* 時間スロット表示 */
 .time-slots-grid {
     grid-template-columns: 1fr;
     gap: 1rem;
 }
 
 /* その他の要素 */
 .reasons-grid,
 .cta-benefits {
     gap: 1rem;
     justify-content: center;
 }
 
 .plan-cta-grid {
     grid-template-columns: 1fr;
     gap: 1.2rem; /* 1.5rem→1.2rem に縮小 */
 }
 
 .solution-card,
 .case-info,
 .testimonial-item,
 .success-case {
     padding: 1.5rem;
 }
 
 .schedule-details {
     padding: 2rem 1.5rem; /* 2.5rem 1.5rem → 2rem 1.5rem */
     margin: 2rem auto 0; /* 2.5rem auto 0 → 2rem auto 0 */
 }
 
 .special-price {
     flex-direction: column;
     gap: 0.5rem;
     margin: 1.2rem 0; /* 1.5rem 0 → 1.2rem 0 */
 }
 
 .price-arrow {
     transform: rotate(90deg);
     font-size: 1.5rem;
 }
 
 .process-step {
     flex-direction: column;
     text-align: center;
     margin-bottom: 1.5rem; /* 2rem→1.5rem に縮小 */
 }
 
 .process-step::after {
     display: none;
 }
 
 .step-content {
     padding: 1rem 0 0 0;
 }
 
 .step-number {
     width: 60px;
     height: 60px;
     font-size: 1.3rem;
     margin-bottom: 1rem;
 }
 
 .breakdown-timeline {
     padding: 1rem;
 }
 
 .timeline-item {
     flex-direction: column;
     align-items: flex-start;
     text-align: left;
 }
 
 .time-content {
     margin-left: 0;
     margin-top: 0.5rem;
 }
 
 .footer-content {
     flex-direction: column;
     text-align: center;
     gap: 1rem;
     margin-bottom: 1.2rem; /* 1.5rem→1.2rem に縮小 */
 }
 
 .footer-bottom {
     padding-top: 1.2rem; /* 1.5rem→1.2rem に縮小 */
 }
 
 .achievement-stats {
     gap: 25px;
 }
 
 /* マージン調整 */
 .process-timeline {
     margin: 2rem auto 0; /* 2.5rem auto 0 → 2rem auto 0 */
 }
 
 .faq-list {
     margin: 2rem auto 0; /* 2.5rem auto 0 → 2rem auto 0 */
 }
 
 .pricing-special {
     padding: 2rem 1.5rem; /* 2.5rem 2rem → 2rem 1.5rem */
     margin: 2rem 0; /* 2.5rem 0 → 2rem 0 */
 }
 
 .special-note {
     margin-bottom: 1.2rem; /* 1.5rem→1.2rem に縮小 */
 }
 
 .cta-container {
     margin-top: 1.2rem; /* 1.5rem→1.2rem に縮小 */
 }
 
 .cta-content h2 {
     margin-bottom: 1rem; /* 1.2rem→1rem に縮小 */
 }
 
 .cta-subtitle {
     margin-bottom: 1.2rem; /* 1.5rem→1.2rem に縮小 */
 }
 
 .cta-benefits {
     margin: 1.2rem 0 2rem 0; /* 1.5rem 0 2.5rem 0 → 1.2rem 0 2rem 0 */
 }
 
 .cta-button-container {
     margin-top: 1.2rem; /* 1.5rem→1.2rem に縮小 */
 }
}

/* ===========================================
 レスポンシブデザイン最適化 - 480px以下
=========================================== */
@media (max-width: 480px) {
 section {
     padding: 25px 0; /* 30px→25px に縮小 */
 }
 
 .problems,
 .solution,
 .case-studies,
 .plan-table,
 .pricing,
 .process,
 .real-success-cases,
 .testimonials,
 .schedule-limitation,
 .faq {
     padding: 20px 0; /* 25px→20px に縮小 */
 }
 
 .social-proof {
     padding: 12px 0; /* 15px→12px に縮小 */
 }
 
 .final-cta {
     padding: 35px 0; /* 40px→35px に縮小 */
 }
 
 .container {
     padding: 0 10px;
 }
 
 /* CTAボタンサイズ調整 */
 .cta-button-primary,
 .cta-button-secondary {
     padding: 12px 24px;
     font-size: 0.9rem;
 }
 
 .large {
     padding: 16px 32px;
     font-size: 1rem;
 }
 
 .extra-large {
     padding: 18px 36px;
     font-size: 1.1rem;
 }
 
 /* 見出しサイズ調整 */
 .section-title {
     font-size: 1.5rem;
     margin-bottom: 0.7rem; /* 0.8rem→0.7rem に縮小 */
 }
 
 .section-subtitle {
     font-size: 0.9rem;
     margin-bottom: 1rem; /* 1.2rem→1rem に縮小 */
 }
 
 .section-cta {
     margin-top: 20px; /* 25px→20px に縮小 */
 }
 
 /* 収益シミュレーター - 超小画面対応 */
 .simulator-container {
     margin: 1.2rem -10px 0; /* 1.5rem -10px 0 → 1.2rem -10px 0 */
     width: calc(100% + 20px); /* コンテナのパディング分を加算 */
 }
 
 .simulator-inputs {
     padding: 1.5rem 1rem 0; /* 2rem 1rem 0 → 1.5rem 1rem 0 */
 }
 
 .simulator-result {
     padding: 1.5rem 1rem; /* 2rem 1rem → 1.5rem 1rem */
 }
 
 .result-formula {
     font-size: 0.8rem;
     margin-bottom: 0.8rem; /* 1rem→0.8rem に縮小 */
 }
 
 .result-item {
     font-size: 0.85rem;
 }
 
 .result-item.profit {
     font-size: 1rem;
 }
 
 /* 競合比較テーブル - 超小画面対応 */
 .competitor-comparison {
     margin: 1.2rem -10px; /* 1.5rem -10px → 1.2rem -10px */
     width: calc(100% + 20px); /* コンテナのパディング分を加算 */
 }
 
 .competitor-comparison h3 {
     padding: 1rem 1rem 0; /* 1.2rem 1rem 0 → 1rem 1rem 0 */
     font-size: 1.3rem;
     margin-bottom: 1rem; /* 1.2rem→1rem に縮小 */
 }
 
 .comparison-table {
     min-width: 550px;
     font-size: 0.7rem;
     margin-bottom: 1rem; /* 1.2rem→1rem に縮小 */
 }
 
 .comparison-table th,
 .comparison-table td {
     padding: 0.5rem 0.3rem;
 }
 
.comparison-table th:first-child,
 .comparison-table td:first-child {
     min-width: 90px;
     max-width: 100px;
     font-size: 0.65rem;
 }
 
 /* 価格表示 */
 .price-new {
     font-size: 2.5rem;
 }
 
 .special-note {
     font-size: 1.1rem;
     margin-bottom: 1rem; /* 1.2rem→1rem に縮小 */
 }
 
 /* アイコンサイズ */
 .problem-icon,
 .solution-icon {
     font-size: 2rem;
 }
 
 .solution-number {
     width: 35px;
     height: 35px;
     font-size: 1rem;
     top: -12px;
     left: 1.5rem;
 }
 
 .testimonial-item::before {
     font-size: 3rem;
     top: -5px;
     left: 1.5rem;
 }
 
 /* 料金プランテーブル - 超小画面対応 */
 .plan-comparison {
     min-width: 500px;
     font-size: 0.7rem;
 }
 
 .plan-comparison th,
 .plan-comparison td {
     padding: 0.5rem 0.3rem;
 }
 
 .plan-header {
     padding: 0.3rem;
 }
 
 .plan-price {
     font-size: 1.2rem;
 }
 
 .cta-price {
     font-size: 1.5rem;
 }
 
 .plan-cta-card {
     padding: 1.5rem;
 }
 
 .plan-cta-section {
     margin-top: 2rem; /* 2.5rem→2rem に縮小 */
 }
 
 .plan-guide {
     margin: 1rem 0 1.5rem 0; /* 1.2rem 0 2rem 0 → 1rem 0 1.5rem 0 */
 }
 
 .table-container {
     margin: 1.5rem 0; /* 2rem 0 → 1.5rem 0 */
 }
 
 /* グリッド間隔調整 */
 .problems-grid,
 .solution-grid,
 .cases-grid,
 .testimonials-grid {
     gap: 1rem; /* 1.2rem→1rem に縮小 */
 }
 
 .success-cases-grid {
     gap: 1.2rem; /* 1.5rem→1.2rem に縮小 */
 }
 
 .plan-cta-grid {
     gap: 1rem; /* 1.2rem→1rem に縮小 */
 }
 
 /* マージン調整 */
 .problems-grid {
     margin-bottom: 2rem; /* 2.5rem→2rem に縮小 */
 }
 
 .solution-grid,
 .cases-grid {
     margin-top: 2rem; /* 2.5rem→2rem に縮小 */
 }
 
 .success-cases-grid {
     margin-top: 2rem; /* 2.5rem→2rem に縮小 */
 }
 
 /* スケジュール詳細 */
 .schedule-details {
     padding: 1.5rem 1rem; /* 2rem 1.5rem → 1.5rem 1rem */
     margin: 1.5rem auto 0; /* 2rem auto 0 → 1.5rem auto 0 */
 }
 
 .schedule-details h3 {
     margin-bottom: 1.2rem; /* 1.5rem→1.2rem に縮小 */
 }
 
 .time-schedule {
     margin-bottom: 2rem; /* 2.5rem→2rem に縮小 */
 }
 
 .time-schedule h4 {
     margin-bottom: 1rem; /* 1.2rem→1rem に縮小 */
 }
 
 .time-slots-grid {
     margin-bottom: 1.2rem; /* 1.5rem→1.2rem に縮小 */
 }
 
 .schedule-breakdown {
     margin-bottom: 2rem; /* 2.5rem→2rem に縮小 */
 }
 
 .schedule-breakdown h4 {
     margin-bottom: 1rem; /* 1.2rem→1rem に縮小 */
 }
 
 .limitation-reasons {
     margin-bottom: 1.2rem; /* 1.5rem→1.2rem に縮小 */
 }
 
 .limitation-reasons h4 {
     margin-bottom: 1rem; /* 1.2rem→1rem に縮小 */
 }
 
 .urgent-cta {
     margin-top: 1.2rem; /* 1.5rem→1.2rem に縮小 */
 }
 
 .urgent-note {
     margin-bottom: 1rem; /* 1.2rem→1rem に縮小 */
 }
 
 /* プロセス調整 */
 .process-timeline {
     margin: 1.5rem auto 0; /* 2rem auto 0 → 1.5rem auto 0 */
 }
 
 .process-step {
     margin-bottom: 1.2rem; /* 1.5rem→1.2rem に縮小 */
 }
 
 /* FAQ調整 */
 .faq-list {
     margin: 1.5rem auto 0; /* 2rem auto 0 → 1.5rem auto 0 */
 }
 
 /* 成功事例調整 */
 .success-case h3 {
     margin-bottom: 1rem; /* 1.2rem→1rem に縮小 */
 }
 
 .case-details {
     margin-bottom: 1rem; /* 1.2rem→1rem に縮小 */
 }
 
 .calculation {
     margin: 1rem 0; /* 1.2rem 0 → 1rem 0 */
 }
 
 /* 特別価格セクション */
 .pricing-special {
     padding: 1.5rem 1rem; /* 2rem 1.5rem → 1.5rem 1rem */
     margin: 1.5rem 0; /* 2rem 0 → 1.5rem 0 */
 }
 
 .special-price {
     margin: 1rem 0; /* 1.2rem 0 → 1rem 0 */
 }
 
 .cta-container {
     margin-top: 1rem; /* 1.2rem→1rem に縮小 */
 }
 
 /* 最終CTA調整 */
 .cta-content h2 {
     margin-bottom: 0.8rem; /* 1rem→0.8rem に縮小 */
 }
 
 .cta-subtitle {
     margin-bottom: 1rem; /* 1.2rem→1rem に縮小 */
 }
 
 .cta-benefits {
     margin: 1rem 0 1.5rem 0; /* 1.2rem 0 2rem 0 → 1rem 0 1.5rem 0 */
 }
 
 .cta-button-container {
     margin-top: 1rem; /* 1.2rem→1rem に縮小 */
 }
 
 /* フッター調整 */
 .site-footer {
     padding: 25px 0 12px 0; /* 30px 0 15px 0 → 25px 0 12px 0 */
 }
 
 .footer-content {
     margin-bottom: 1rem; /* 1.2rem→1rem に縮小 */
 }
 
 .footer-bottom {
     padding-top: 1rem; /* 1.2rem→1rem に縮小 */
 }
 
 /* お客様の声調整 */
 .testimonial-rating {
     margin-bottom: 1rem; /* 1.2rem→1rem に縮小 */
 }
 
 .testimonial-item blockquote {
     margin: 0 0 1rem 0; /* 1.2rem → 1rem に縮小 */
 }
}

/* ===========================================
 パフォーマンス最適化
=========================================== */

/* GPU加速を活用 */
.cta-button-primary,
.cta-button-secondary,
.solution-card,
.case-item,
.testimonial-item,
.simulator-container,
.competitor-comparison {
 will-change: transform;
 transform: translateZ(0);
}

/* スクロール最適化 */
.table-scroll,
.comparison-table-wrapper {
 scroll-behavior: smooth;
 overscroll-behavior-x: contain;
}

/* フォント表示最適化 */
body {
 font-display: swap;
}

/* 画像最適化 */
img {
 content-visibility: auto;
 contain-intrinsic-size: 0 200px;
}

/* レイアウトシフト防止 */
.case-thumbnail,
.header-icon {
 aspect-ratio: attr(width) / attr(height);
}

/* 非表示要素の最適化 */
[hidden] {
 display: none !important;
}

/* プリフェッチ最適化 */
@media (hover: hover) {
 .cta-button-primary:hover,
 .cta-button-secondary:hover {
     transform: translateY(-3px) scale(1.02);
 }
}

/* タッチデバイス最適化 */
@media (hover: none) {
 .cta-button-primary:active,
 .cta-button-secondary:active {
     transform: scale(0.98);
 }
}

/* 高DPI画面対応 */
@media (-webkit-min-device-pixel-ratio: 2),
    (min-resolution: 192dpi) {
 .header-icon {
     image-rendering: -webkit-optimize-contrast;
     image-rendering: crisp-edges;
 }
}

/* 印刷スタイル */
@media print {
 .cta-button-primary,
 .cta-button-secondary,
 .site-header,
 .site-footer {
     display: none !important;
 }
 
 body {
     font-size: 12pt;
     line-height: 1.4;
 }
 
 .section-title {
     font-size: 18pt;
     page-break-after: avoid;
 }
 
 .container {
     max-width: none;
     padding: 0;
 }
}

/* 動きを減らす設定 */
@media (prefers-reduced-motion: reduce) {
 *,
 *::before,
 *::after {
     animation-duration: 0.01ms !important;
     animation-iteration-count: 1 !important;
     transition-duration: 0.01ms !important;
     scroll-behavior: auto !important;
 }
 
 .section-visible {
     animation: none;
 }
}

/* フォーカス管理最適化 */
:focus-visible {
 outline: 2px solid #FF5757;
 outline-offset: 2px;
}

/* カスタムプロパティによる動的スタイリング */
:root {
 --primary-color: #FF5757;
 --secondary-color: #FF9956;
 --text-color: #2c3e50;
 --background-color: #ffffff;
 --border-radius: 20px;
 --box-shadow: 0 15px 40px rgba(0,0,0,0.1);
 --transition: all 0.3s ease;
}

/* 最終的なパフォーマンス最適化 */
/* Critical rendering path最適化 */
.above-fold {
 contain: layout style;
}

/* Layout containment */
.section-container {
 contain: layout;
}

/* Style containment */
.isolated-component {
 contain: style;
}

/* Size containment */
.fixed-size {
 contain: size;
}

/* Paint containment */
.paint-container {
 contain: paint;
}