@charset "utf-8";
/* CSS Document */
#selasave {
            /* カラーパレット */
            --brand-blue: #568bb1;
            --light-blue: #dfeffb;
            --text-dark: #002743;
            --white: #ffffff;
            --overlay-white: rgba(255,255,255,0.71);
            
            /* フォントサイズ */
            --hero-title: 22px;
            --section-title: 39px;
            --feature-title: 28px;
            --step-title: 20px;
            --body-text: 18px;
            --small-text: 16px;
            --caption: 14px;
            --tiny-text: 12px;
            --tab-text: 18px;
            
            /* スペーシング */
            --section-gap: 80px;
            --feature-gap: 60px;
            --card-gap: 40px;
            --text-margin: 24px;
            --small-gap: 16px;
            --tight-gap: 8px;
            
            /* コンテナ設定 */
            --max-width: 994px;
            --side-padding: 32px;
            
            /* 基本設定 */
            margin: 0;
            padding: 0;
            box-sizing: border-box;
            font-family: "Noto Sans JP", sans-serif;
            line-height: 1.5;
            color: var(--text-dark);
            background: var(--white) url("../img/bg.jpg") repeat-y center top/cover;
            text-rendering: optimizeLegibility;
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
        }

        #selasave *,
        #selasave *::before,
        #selasave *::after {
            box-sizing: border-box;
        }

        /* レイヤー1: セクションレベル（横幅いっぱい）*/
        #selasave .full-width-section {
            width: 100%;
        }

        /* レイヤー2: コンテナレベル（幅制限 + 中央配置）*/
        #selasave .container {
            max-width: var(--max-width);
            margin: 0 auto;
            padding: 0 var(--side-padding);
        }

        /* ヘッダーセクション */
        #selasave .header-section {
            background: var(--white);
            height: 160px;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        #selasave .header-image {
            width: 1366px;
            height: 160px;
            background: #f0f0f0;
            display: flex;
            align-items: center;
            justify-content: center;
            color: #999;
        }

        /* ヒーローセクション */
        .hero-section {
            background: var(--brand-blue);
            position: relative;
            
            overflow: hidden;
        }

        .hero-background {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: 
                linear-gradient(135deg, rgba(86,139,177,0.95) 0%, rgba(86,139,177,0.98) 100%),
                radial-gradient(circle at 30% 70%, rgba(255,255,255,0.1) 0%, transparent 50%),
                url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1366 548"><rect width="1366" height="548" fill="%23568bb1"/><circle cx="200" cy="300" r="100" fill="%23ffffff" opacity="0.05"/><circle cx="800" cy="200" r="80" fill="%23ffffff" opacity="0.03"/><circle cx="1100" cy="400" r="60" fill="%23ffffff" opacity="0.04"/></svg>');
            background-size: cover, 200px 200px, cover;
            background-position: center, 0 0, center;
            background-repeat: no-repeat, repeat, no-repeat;
        }

        .hero-content {
            position: relative;
            z-index: 2;
            text-align: center;
            color: var(--white);
            max-width: 400px;
        }

        .hero-content {
            position: relative;
            z-index: 2;
            text-align: center;
            color: var(--white);
        }

        .hero-product-name {
            font-size: 15px;
            font-weight: 700;
            margin-bottom: var(--small-gap);
        }

        .hero-title {
            font-size: var(--hero-title);
            font-weight: 500;
            line-height: 1.4;
        }

        /* タブナビゲーション */
        #selasave .tab-navigation {
            background: var(--light-blue);
            height: 60px;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        #selasave .tab-navigation .container {
            text-align: center;
        }

        #selasave .tab-text {
            font-size: var(--tab-text);
            font-weight: 500;
            color: var(--brand-blue);
        }

        /* 特徴セクション */
        #selasave .features-section {
            background: rgba(255,255,255,.71);
            padding: 60px 0 80px 0;
            position: relative;
            min-height: 1700px;
        }

        #selasave .features-overlay {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            backdrop-filter: blur(0.5px);
        }

        #selasave .features-content {
            position: relative;
            z-index: 2;
        }

        #selasave .feature-item {
            display: flex;
            align-items: flex-start;
            margin-bottom: 120px;
            gap: 60px;
            min-height: 350px;
        }

        #selasave .feature-item:last-child {
            margin-bottom: 0;
        }

        #selasave .feature-item:nth-child(odd) {
            flex-direction: row-reverse;
        }

        #selasave .feature-image {
            width: 468px;
            height: 327px;
            border-radius: 6px;
            background: linear-gradient(135deg, #f5f5f5 0%, #f0f0f0 100%);
            flex-shrink: 0;
            display: flex;
            align-items: center;
            justify-content: center;
            color: #666;
            font-size: 14px;
            position: relative;
            overflow: hidden;
        }

        #selasave .feature-image::after {
            
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            font-size: 48px;
            opacity: 0.3;
        }

        #selasave .feature-text {
            flex: 1;
            position: relative;
            padding-top: 20px;
        }

        #selasave .point-badge {
            width: 110px;
            height: 42.676px;
            background: var(--brand-blue);
            border-radius: 21.338px;
            border-top-left-radius: 0;
            border-bottom-left-radius: 0;
            color: var(--white);
            font-size: var(--tab-text);
            font-weight: 500;
            display: flex;
            align-items: center;
            justify-content: center;
            margin-bottom: 20px;
        }

        #selasave .feature-title {
            font-size: var(--feature-title);
            font-weight: 700;
            color: var(--brand-blue);
            margin-bottom: 16px;
            line-height: 1.25;
            letter-spacing: -0.01em;
        }

        #selasave .feature-description {
            font-size: var(--body-text);
            line-height: 1.7;
            color: var(--text-dark);
            letter-spacing: 0.01em;
        }

        #selasave .section-title {
            font-size: var(--section-title);
            font-weight: 700;
            color: var(--text-dark);
            margin-bottom: 48px;
            line-height: 1.15;
            letter-spacing: -0.02em;
            text-align: center;
        }

        #selasave .section-subtitle {
            font-size: 26px;
            font-weight: 500;
            color: var(--brand-blue);
            margin-bottom: 16px;
            letter-spacing: -0.01em;
            text-align: center;
        }

        #selasave .section-title span {
            margin-left: 1em;
            font-weight: normal;
            font-size: 10px;
        }

        /* より精密なスペーシング調整 */
        #selasave .bag-sizes-section {
            padding: 100px 0;
            text-align: center;
        }

        #selasave .food-usage-section {
            padding: 100px 0;
            text-align: center;
        }

        #selasave .usage-section {
            padding: 100px 0;
            text-align: center;
            background: linear-gradient(to bottom, #ffffff 0%, #fafafa 100%);
        }

        #selasave .footer-info {
            padding-top: 0;
            padding-bottom: 60px;
            text-align: left;
            background: #fafafa;
        }

        #selasave .footer-text {
            font-size: var(--caption);
            color: var(--text-dark);
            line-height: 1.8;
            opacity: 0.8;
        }

        #selasave .size-cards {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: var(--card-gap);
            margin-bottom: var(--text-margin);
        }

        #selasave .size-card {
            text-align: center;
        }

        #selasave .size-card-image,
        #selasave .food-card-image,
        #selasave .step-card-image {
            border-radius: 6px;
            background: linear-gradient(135deg, #f8f9fa 0%, #f5f5f5 100%);
            margin-bottom: var(--small-gap);
            display: flex;
            align-items: center;
            justify-content: center;
            color: #666;
            font-size: 14px;
            transition: transform 0.2s ease;
            position: relative;
            overflow: hidden;
        }

        #selasave .size-card-image::after {
            
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            font-size: 36px;
            opacity: 0.3;
        }

        #selasave .food-card-image::after {
           
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            font-size: 36px;
            opacity: 0.3;
        }

        #selasave .step-card-image::after {
            
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            font-size: 36px;
            opacity: 0.3;
        }

        #selasave .size-card-image:hover,
        #selasave .food-card-image:hover,
        #selasave .step-card-image:hover {
            transform: translateY(-2px);
        }

        .size-card-title {
            font-size: var(--body-text);
            font-weight: 700;
            color: var(--text-dark);
            margin-bottom: 8px;
        }

        .size-card-specs {
            font-size: var(--small-text);
            color: var(--text-dark);
            line-height: 1.5;
        }

        .size-note {
            font-size: var(--caption);
            color: var(--text-dark);
            margin-top: 32px;
            padding: 16px;
            border-radius: 4px;
        }

        /* 食材活用セクション */
        .food-usage-section {
            padding: var(--section-gap) 0;
            text-align: center;
        }

        .food-cards {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: var(--card-gap);
            margin-bottom: var(--feature-gap);
        }

        .food-card {
            text-align: center;
        }

        .food-card-image {
            border-radius: 6px;
            background: #f5f5f5;
            margin: 0 auto var(--small-gap) auto;
            display: flex;
            align-items: center;
            justify-content: center;
            color: #999;
            font-size: 14px;
            transition: transform 0.2s ease;
        }

        .food-card-image:hover {
            transform: translateY(-2px);
        }

        .food-card-title {
            font-size: var(--body-text);
            font-weight: 700;
            color: var(--text-dark);
        }

        /* 使い方セクション */
        .usage-section {
            padding: var(--section-gap) 0;
            text-align: center;
        }

        .step-cards {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: var(--card-gap);
            margin-top: var(--feature-gap);
        }

        .step-card {
            text-align: center;
            position: relative;
        }

        /* パフォーマンス最適化 */
        .feature-image,
        .size-card-image,
        .food-card-image,
        .step-card-image {
            contain: layout style;
            will-change: transform;
        }

        /* スムーススクロール */
        html {
            scroll-behavior: smooth;
        }

        /* テキスト最適化 */
        body {
            text-rendering: optimizeLegibility;
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
        }

        /* 印刷対応 */
        @media print {
            .hero-background,
            .features-overlay {
                background: none !important;
                -webkit-print-color-adjust: exact;
            }
            
            .feature-image,
            .size-card-image,
            .food-card-image,
            .step-card-image {
                box-shadow: none;
                border: 1px solid #ccc;
            }
        }

        /* より詳細なアクセシビリティ対応 */
        .sr-only {
            position: absolute;
            width: 1px;
            height: 1px;
            padding: 0;
            margin: -1px;
            overflow: hidden;
            clip: rect(0, 0, 0, 0);
            white-space: nowrap;
            border: 0;
        }

        /* ARIAラベル対応 */
        .feature-item:focus-within,
        .size-card:focus-within,
        .food-card:focus-within,
        .step-card:focus-within {
            outline: 2px solid var(--brand-blue);
            outline-offset: 4px;
            border-radius: 8px;
        }

        /* 高コントラストモード対応の改善 */
        @media (prefers-contrast: high) {
            .point-badge {
                border: 2px solid var(--white);
            }
            
            .step-number {
                border: 2px solid var(--white);
            }
            
            .feature-title,
            .section-title {
                text-shadow: 1px 1px 0 rgba(255,255,255,0.5);
            }
        }

        /* ダークモード対応 */
        @media (prefers-color-scheme: dark) {
            :root {
                --text-dark: #e0e0e0;
                --white: #1a1a1a;
                --light-blue: #2a3a4a;
                --overlay-white: rgba(26,26,26,0.8);
            }
            
            .feature-image,
            .size-card-image,
            .food-card-image,
            .step-card-image {
                background: linear-gradient(135deg, #333 0%, #2a2a2a 100%);
                color: #ccc;
            }
            
            .feature-image::before,
            .size-card-image::before,
            .food-card-image::before,
            .step-card-image::before {
                border-color: #555;
            }
        }
        .step-number {
            width: 40px;
            height: 40px;
            border-radius: 50%;
            background: var(--brand-blue);
            color: var(--white);
            font-size: var(--step-title);
            font-weight: 500;
            display: flex;
            align-items: center;
            justify-content: center;
            margin: 0 auto var(--small-gap) auto;
            transition: transform 0.2s ease;
        }

        .step-number:hover {
            transform: scale(1.05);
        }

        /* フォーカス状態の改善 */
        .step-number:focus,
        .point-badge:focus {
            outline: 2px solid var(--brand-blue);
            outline-offset: 2px;
        }

        /* アニメーション抑制の対応 */
        @media (prefers-reduced-motion: reduce) {
            *,
            *::before,
            *::after {
                animation-duration: 0.01ms !important;
                animation-iteration-count: 1 !important;
                transition-duration: 0.01ms !important;
            }
        }

        /* 高コントラストモード対応 */
        @media (prefers-contrast: high) {
            .feature-image,
            .size-card-image,
            .food-card-image,
            .step-card-image {
                border: 2px solid var(--text-dark);
            }
        }

        .step-card-image {
            border-radius: 6px;
            background: #f5f5f5;
            margin: 0 auto var(--small-gap) auto;
            display: flex;
            align-items: center;
            justify-content: center;
            color: #999;
            font-size: 14px;
            position: relative;
        }

        .step-card-image .step-number {
            position: absolute;
            top: 10px;
            left: 10px;
            margin: 0;
            z-index: 2;
        }

        .step-card-image:hover {
            transform: translateY(-2px);
        }

        .step-title {
            font-size: var(--step-title);
            font-weight: 700;
            color: var(--brand-blue);
            margin-bottom: var(--small-gap);
            line-height: 1.3;
            text-align: left;
        }

        .step-description {
            font-size: var(--small-text);
            color: var(--text-dark);
            line-height: 1.6;
            text-align: left;
        }

        /* フッター情報 */
        .footer-info {
            padding: var(--card-gap) 0;
            text-align: left;
        }

        .footer-text {
            font-size: var(--caption);
            color: var(--text-dark);
            line-height: 1.6;
        }

        /* レスポンシブ対応 */
        @media (max-width: 994px) {
            #selasave .container {
                padding: 0 24px;
            }
        }

        @media (max-width: 768px) {
            #selasave {
                --max-width: 100%;
                --side-padding: 16px;
                --section-gap: 60px;
                --feature-gap: 40px;
                --card-gap: 24px;
                --hero-title: 20px;
                --section-title: 32px;
                --feature-title: 24px;
                --step-title: 18px;
                --body-text: 16px;
                --small-text: 14px;
            }

            #selasave .hero-section {
            }

            #selasave .hero-title {
                font-size: var(--hero-title);
            }

            #selasave .features-section {

                padding: 40px 0 60px 0;
                min-height: auto;
            }

            #selasave .feature-item {
                flex-direction: column;
                text-align: center;
                margin-bottom: 60px;
                gap: 32px;
                align-items: center;
                min-height: auto;
            }

            #selasave .feature-item:nth-child(even) {
                flex-direction: column;
            }

            #selasave .feature-image {
                width: 100%;
                max-width: 400px;
                height: auto;
            }

            #selasave .feature-text {
                padding-top: 0;
            }

            #selasave .section-title {
                font-size: var(--section-title);
                margin-bottom: 40px;
            }

            #selasave .feature-title {
                font-size: var(--feature-title);
            }

            #selasave .size-cards,
            #selasave .food-cards,
            #selasave .step-cards {
                grid-template-columns: 1fr;
                gap: var(--text-margin);
            }

            #selasave .size-card-image,
            #selasave .food-card-image,
            #selasave .step-card-image {
                width: 100%;
                max-width: 300px;
            }

            #selasave .step-description {
                font-size: var(--small-text);
                text-align: center;
            }
        }

        @media (max-width: 480px) {
            #selasave {
                --side-padding: 12px;
                --hero-title: 18px;
                --section-title: 28px;
                --feature-title: 22px;
            }

            #selasave .hero-section {
            }

            #selasave .tab-text {
                font-size: 16px;
            }

            #selasave .feature-item {
                margin-bottom: 48px;
                gap: 24px;
            }

            #selasave .size-card-image,
            #selasave .food-card-image,
            #selasave .step-card-image {
                height: 180px;
            }
        }

p.te {
    width: 100%;
    max-width: 900px;
    margin: 1em auto; margin-bottom: 60px;
} 
#zj_ma17-info table {margin-bottom: 1em;}

        @media screen and (max-width: 767px) {
            p.te {
    width: 100%;
    max-width: 900px;
    margin: 1em auto;
    margin-bottom: 60px;
}
  #selasave {
    padding-top: 50px;
  }
}

#zj_ma17-gNav {
    background: #DFEFFB;
    color: #588CB1;
}
#zj_ma17-gNav .inner li a {
    color: #588CB1;
}
#zj_ma17-gNav p {
  color: #588CB1;
}

.contain_rspnsv,
.res2021 #main2012 {
  margin-top: 0;
}

@media screen and (max-width: 767px) {
  #selasave .feature-item {
    text-align: left;
  }
  #selasave .feature-item:nth-child(odd) {
    flex-direction: column;
  }
  #selasave .size-card-image,
  #selasave .food-card-image,
  #selasave .step-card-image {
    max-width: 100%;
    height: auto;
  }
  #selasave .food-usage-section,
  #selasave .bag-sizes-section,
  #selasave .features-section,
  #selasave .usage-section {
    padding: 50px 0;
  }
  #zj_ma17-gNav {
    border: none;
  }
  #selasave .step-description {
    text-align: left;
  }
}

