    /* =========================================
       1. Base Variables & Reset
       ========================================= */
    :root {
      --primary-color: #00A0BD; /* bonobo Blue */
      --primary-dark: #007f96;
      --accent-color: #E56E2C;  /* CTA Orange */
      --text-color: #333333;
      --bg-light: #F4F7F8;
      --white: #ffffff;
      --border-radius: 8px;
      --shadow-card: 0 4px 20px rgba(0,0,0,0.05);
    }

    body {
      font-family: 'Noto Sans JP', sans-serif;
      color: var(--text-color);
      line-height: 1.6;
      margin: 0;
      padding: 0;
      background-color: var(--white);
    }

    a { text-decoration: none; transition: 0.3s; }
    ul { list-style: none; padding: 0px 40px; margin: 0; }
    img { max-width: 100%; height: auto; vertical-align: bottom; }

    /* Utility Classes (PC/SP Switching) */
    .br-pc { display: block; }
    .br-sp { display: none; }

    /* =========================================
       2. Common UI Components (Buttons, Sections)
       ========================================= */
    
    /* --- Buttons --- */
    .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      padding: 14px 24px;
      border-radius: 4px;
      font-weight: 700;
      font-size: 14px;
      cursor: pointer;
      transition: all 0.3s;
      text-decoration: none;
      line-height: 1.2;
      min-width: 100px;
    }

    /* Outline Button (資料請求) */
    .btn-outline {
      border: 2px solid var(--primary-color);
      color: var(--primary-color);
      background: #ffffff;
    }
    .btn-outline:hover {
      background: #f0f8ff;
      transform: translateY(-2px);
    }

    /* Main Color Button (オンライン相談) */
    .btn-main {
      background: var(--primary-color);
      color: #ffffff;
      border: 2px solid var(--primary-color);
    }
    .btn-main:hover {
      background: var(--primary-dark);
      border-color: var(--primary-dark);
      transform: translateY(-2px);
      box-shadow: 0 4px 10px rgba(0, 160, 189, 0.3);
    }

    /* Accent Color Button (お申し込み) */
    .btn-solid {
      background: var(--accent-color);
      color: #ffffff;
      border: 2px solid var(--accent-color);
    }
    .btn-solid:hover {
      background: #ffffff;
      color: var(--accent-color);
      transform: translateY(-2px);
      box-shadow: 0 4px 10px rgba(229, 110, 44, 0.3);
    }

    /* Text Link with Icon */
    .btn-text-link {
      color: var(--primary-color);
      text-decoration: none;
      font-weight: bold;
      display: inline-block;
      margin-right: 15px;
      margin-bottom: 5px;
    }
    .btn-text-link:hover { text-decoration: underline; }
    .fa-file-pdf::before { content: "\f1c1"; } /* Fallback */

    /* --- Section Layout --- */
    section {
      padding: 80px 20px;
      overflow-x: clip; /* Prevent horizontal scroll due to nowrap */
    }

    .section-title {
      text-align: center;
      margin-bottom: 50px;
    }
    .section-title h2 {
      font-size: clamp(22px, 5vw, 28px);
      position: relative;
      display: inline-block;
      white-space: nowrap; /* Prevent line break */
    }
    .section-title h2::after {
      content: '';
      display: block;
      width: 60px;
      height: 4px;
      background: var(--primary-color);
      margin: 15px auto 0;
      border-radius: 2px;
    }
    .section-title p {
      font-size: clamp(11px, 3.5vw, 16px);
      color: #888;
      margin-top: 15px;
      white-space: nowrap;
    }

    /* =========================================
       3. Header & Navigation
       ========================================= */
    header {
      position: fixed;
      top: 0;
      width: 100%;
      height: 80px;
      background: rgba(255, 255, 255, 0.95);
      backdrop-filter: blur(10px);
      box-shadow: 0 2px 10px rgba(0,0,0,0.05);
      z-index: 1000;
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 0 40px;
      box-sizing: border-box;
      opacity: 0.9;
    }

    .header-logo img { height: 40px; width: auto; }
    .header-nav ul { display: flex; gap: 20px; }
    .header-nav a { color: var(--text-color); font-weight: 700; font-size: 14px; }
    .header-nav a:hover { color: var(--primary-color); }
    .header-cv { display: flex; gap: 15px; }

    /* Hamburger Menu Icon */
    .hamburger {
      display: none;
      flex-direction: column;
      cursor: pointer;
      gap: 5px;
      margin-left: 15px;
    }
    .hamburger span {
      width: 25px; height: 3px; background-color: #333; transition: 0.3s;
    }

    /* Mobile Menu Drawer */
    .mobile-menu {
      position: fixed;
      top: 60px;
      left: 0;
      width: 100%;
      background: white;
      padding: 20px;
      box-shadow: 0 10px 10px rgba(0,0,0,0.1);
      display: flex;
      flex-direction: column;
      gap: 15px;
      transform: translateY(-150%);
      transition: 0.3s ease-in-out;
      z-index: 999;
    }
    .mobile-menu.active { transform: translateY(0); }
    .mobile-menu a {
      color: #333; font-weight: bold; text-decoration: none;
      font-size: 16px; padding: 10px 0; border-bottom: 1px solid #eee;
    }

    /* =========================================
       4. Hero Section
       ========================================= */
    .hero {
      padding: 140px 40px 80px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      max-width: 1200px;
      margin: 0 auto;
    }
    .hero-content { flex: 1; padding-right: 40px; }
    .hero h1 {
      font-size: clamp(20px, 3.5vw, 38px);
      margin-bottom: 20px;
      line-height: 1.6;
      white-space: nowrap;
    }
    .hero h1 span { color: var(--primary-color);background-color: #fff; }
    .hero p {
      font-size: clamp(12px, 1.2vw, 16px);
      color: #666;
      margin-bottom: 30px;
    }
    .hero-image { flex: 1; text-align: right; }
    .hero-image img { border-radius: 20px; }

    /* =========================================
       5. Concerns & Data Section
       ========================================= */
    #openCalcModal {
      background: #E56E2C;
      color: #ffffff;
      font-size: 1rem;
      cursor: pointer;
      transition: 0.3s;
      border: 0px solid #ffffff;
      padding: 10px 30px;
      border-radius: 5px;
    }
    .concern-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
      gap: 30px;
      max-width: 1000px;
      margin: 0 auto 50px;
    }
    .concern-item {
      background: #fdfdfd;
      border: 1px solid #eee;
      border-radius: 12px;
      padding: 30px 20px;
      text-align: center;
      position: relative;
      box-shadow: 0 5px 15px rgba(0,0,0,0.03);
    }
    /* Bubble Tail */
    .concern-item::after {
      content: '';
      position: absolute; bottom: -15px; left: 50%; transform: translateX(-50%);
      border-width: 15px 15px 0; border-style: solid;
      border-color: #fdfdfd transparent transparent transparent;
      filter: drop-shadow(0 2px 2px rgba(0,0,0,0.05));
    }
    .icon-circle {
      width: 60px; height: 60px; background: #e0f7fa; color: var(--primary-color);
      border-radius: 50%; display: flex; align-items: center; justify-content: center;
      margin: 0 auto 15px; font-size: 24px;
    }
    .concern-item h3 { font-size: 18px; margin-bottom: 10px; }
    .concern-item p { font-size: 14px; color: #666; line-height: 1.5; }

    /* Data Box */
    .data-evidence-box {
      background: #fafafa; border: 1px solid #ddd; border-radius: 8px;
      padding: 30px; max-width: 900px; margin: 0 auto;
    }
    .data-title {
      text-align: center; margin-top: 0; margin-bottom: 30px; font-size: 18px;
      border-bottom: 1px dashed #ccc; padding-bottom: 15px;
    }
    .data-flex {
      display: flex; flex-wrap: wrap; gap: 40px; justify-content: space-between;
    }
    .data-content { flex: 1; min-width: 280px; }
    .data-content h4 { font-size: 16px; margin: 0 0 15px; color: var(--primary-dark); }
    
    /* Bar Chart */
    .bar-chart-container { margin-bottom: 15px; }
    .bar-label { font-size: 14px; margin-bottom: 5px; font-weight: bold; }
    .bar-area { background: #e0e0e0; border-radius: 4px; height: 24px; width: 100%; position: relative; }
    .bar-fill {
      background: var(--accent-color); height: 100%; border-radius: 4px;
      color: white; font-size: 12px; font-weight: bold;
      display: flex; align-items: center; justify-content: flex-end;
      padding-right: 10px; box-sizing: border-box;
    }
    
    /* Ranking List */
    .ranking-list { list-style: none; padding: 0; margin-bottom: 15px; width: 80%; }
    .ranking-list li {
      display: flex; justify-content: space-between; border-bottom: 1px solid #eee;
      padding: 8px 0; font-size: 14px;
    }
    .ranking-list .rank {
      background: var(--primary-color); color: white; width: 20px; height: 20px;
      display: inline-flex; align-items: center; justify-content: center;
      border-radius: 50%; font-size: 12px; margin-right: 8px;
    }
    .ranking-list .percent { font-weight: bold; }
    .data-caption { font-size: 12px; color: #666; }

    /* Bridge Arrow */
    .solution-bridge { text-align: center; margin-top: 30px; font-size: 16px; }
    .arrow-down {
      color: var(--primary-color); margin-top: 10px; font-size: 20px;
      animation: bounce 1.5s infinite;
    }
    @keyframes bounce {
      0%, 20%, 50%, 80%, 100% {transform: translateY(0);}
      40% {transform: translateY(-10px);} 60% {transform: translateY(-5px);}
    }

    /* =========================================
       6. Features (3 Cards)
       ========================================= */
    .features-bg { background-color: var(--bg-light); }
    .card-grid {
      display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
      gap: 30px; max-width: 1200px; margin: 0 auto;
    }
    .card {
      background: var(--white); padding: 40px 30px; border-radius: var(--border-radius);
      box-shadow: var(--shadow-card); transition: transform 0.3s;
      border-top: 4px solid transparent;
    }
    .card:hover { transform: translateY(-5px); border-top-color: var(--primary-color); }
    .card-num {
      color: var(--primary-color); font-size: 40px; font-weight: bold;
      opacity: 0.3; margin-bottom: -10px; display: block;
    }
    .card h3 { font-size: 20px; margin-bottom: 15px; }
    .card p { font-size: 14px; color: #666; }
    .card-link {
      display: inline-block; margin-top: 20px; color: var(--primary-color);
      font-weight: bold; border-bottom: 1px solid var(--primary-color);
    }

    /* =========================================
       7. Services (Grid)
       ========================================= */
    #services { background-color: #ffffff; }
    .service-grid {
      display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
      gap: 30px; max-width: 1200px; margin: 0 auto; align-items: stretch;
    }
    .service-item {
      background: var(--white); border: 1px solid #e0e0e0;
      border-radius: var(--border-radius); border-top: 5px solid var(--primary-color);
      padding: 0; text-align: left; transition: all 0.3s ease; height: 100%;
      display: flex; flex-direction: column; box-shadow: 0 5px 15px rgba(0,0,0,0.05);
    }
    .service-item:hover {
      transform: translateY(-5px); box-shadow: 0 12px 25px rgba(0,0,0,0.1);
      border-color: var(--primary-color);
    }
    .service-inner {
      padding: 25px; display: flex; flex-direction: column; flex: 1;
    }
    .service-header {
      display: flex; align-items: center; margin-bottom: 15px; padding-bottom: 15px;
      border-bottom: 2px solid #f2f2f2;
    }
    .service-header img { height: 30px; width: auto; margin-right: 15px; object-fit: contain; }
    .service-header h4 { font-size: 18px; margin: 0; color: var(--primary-dark); font-weight: 700; }
    .service-desc {
      font-size: 14px; color: #555; line-height: 1.6; margin-bottom: 20px; flex-grow: 1;
    }
    .service-specs {
      background: #eef6f8; padding: 12px 15px; border-radius: 6px;
      font-size: 13px; color: #333; border: 1px solid #daeef2;
    }
    .service-specs li { margin-bottom: 5px; display: flex; align-items: flex-start; font-weight: 500; }
    .service-specs li::before {
      content: "✔"; color: var(--primary-color); font-size: 10px; margin-right: 8px; margin-top: 4px;
    }

    /* =========================================
       8. Coverage Section
       ========================================= */
    .coverage-container { max-width: 1000px; margin: 0 auto; }
    .coverage-intro {
      text-align: center; margin-bottom: 40px; line-height: 1.8;
      font-size: clamp(10px, 2.8vw, 16px); white-space: nowrap;
    }
    .coverage-box-wrapper {
      display: flex; flex-wrap: wrap; gap: 30px; justify-content: center;
    }
    .coverage-card {
      background: white; border-radius: 12px; box-shadow: 0 4px 15px rgba(0,0,0,0.05);
      flex: 1; min-width: 300px; overflow: hidden; border: 1px solid #e0e0e0;
    }
    .coverage-header {
      background: var(--primary-color); color: white; padding: 15px;
      text-align: center; font-weight: bold; font-size: 18px;
    }
    .coverage-body { padding: 25px; }
    .coverage-icon {
      text-align: center; font-size: 40px; color: var(--primary-color); margin-bottom: 15px;
    }
    .coverage-list li {
      padding: 10px 0px 10px 35px; border-bottom: 1px dashed #eee;
      display: flex; align-items: center; position: relative;
    }
    .coverage-list li::before {
      content: '\f00c'; font-family: 'Font Awesome 6 Free'; font-weight: 900;
      color: var(--accent-color); position: absolute; left: 10px;
    }
    .coverage-note {
      font-size: 12px; color: #888; text-align: center; margin-top: 10px;
      background: #f9f9f9; padding: 10px; border-radius: 4px;
    }
    .insurance-flow {
      margin-top: 40px; background: white; padding: 30px; border-radius: 12px;
      text-align: center; border: 2px dashed #ddd;
    }
    .insurance-flow h3 {
      font-size: 18px; color: var(--primary-dark); margin-bottom: 20px;
    }

    /* =========================================
       9. Cases Section (Tabs)
       ========================================= */
    .tab-container { max-width: 1200px; margin: 0 auto; }
    .tabs {
      display: flex; justify-content: center; gap: 10px;
      margin-bottom: 30px; flex-wrap: wrap;
    }
    .tab-btn {
      padding: 10px 20px; background: #eee; border-radius: 20px;
      cursor: pointer; font-weight: bold; color: #666;
    }
    .tab-btn.active { background: var(--primary-color); color: var(--white); }
    
    .tab-content {
      display: none; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
      gap: 20px; animation: fadeIn 0.5s;
    }
    .tab-content.active { display: grid; }
    
    .trouble-card {
      position: relative; cursor: pointer; overflow: hidden;
      border-radius: 8px; margin: auto;
    }
    .trouble-card img {
      width: 100%; height: auto; transition: transform 0.3s; max-width: 386px;
    }
    .trouble-card:hover img { transform: scale(1.05); }

    /* =========================================
       10. Voice Section (User Reviews)
       ========================================= */
    .section-voice { background-color: #fff; padding: 80px 20px; }
    .voice-grid {
      display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
      gap: 30px; max-width: 1100px; margin: 0 auto;
    }
    .voice-card {
      background: #f9fbfc; border: 1px solid #e1e4e8; border-radius: 8px;
      padding: 25px; position: relative; transition: transform 0.3s;
    }
    .voice-card:hover {
      transform: translateY(-3px); box-shadow: 0 5px 15px rgba(0,0,0,0.05);
      border-color: var(--primary-color);
    }
    /* Speech Bubble Tail */
    .voice-card::after, .voice-card::before {
      content: ''; position: absolute; left: 30px; border-style: solid;
    }
    .voice-card::after {
      bottom: -15px; border-width: 15px 15px 0;
      border-color: #f9fbfc transparent transparent transparent; z-index: 1;
    }
    .voice-card::before {
      bottom: -16px; border-width: 15px 15px 0;
      border-color: #e1e4e8 transparent transparent transparent; z-index: 0;
    }
    .voice-card:hover::before { border-top-color: var(--primary-color); }

    .voice-head {
      font-size: 16px; font-weight: bold; color: var(--primary-dark);
      margin-bottom: 15px; line-height: 1.5; display: flex; align-items: flex-start;
    }
    .voice-head i { color: var(--accent-color); font-size: 20px; margin-right: 10px; }
    .voice-text { font-size: 14px; color: #555; line-height: 1.6; margin: 0; }
    
    .voice-user {
      margin-top: 25px; display: flex; align-items: center; padding-left: 10px;
    }
    .user-icon {
      width: 40px; height: 40px; border-radius: 50%; display: flex;
      align-items: center; justify-content: center; color: #fff;
      font-size: 20px; margin-right: 12px; background: var(--primary-color);
    }
    .user-info { font-size: 13px; font-weight: bold; color: #333; }
    .user-info span { display: block; font-size: 11px; color: #888; font-weight: normal; }

    /* =========================================
       11. Pricing Plans Section
       ========================================= */
    #plans { background-color: #f8fbfc; }
    .plan-tabs {
      display: flex; justify-content: center; gap: 10px;
      margin-bottom: 40px; flex-wrap: wrap;
    }
    .plan-tab-btn {
      padding: 12px 24px; background: #fff; border: 1px solid #ddd;
      border-radius: 30px; cursor: pointer; font-weight: bold; color: #666;
      transition: all 0.3s; min-width: 140px; text-align: center;
    }
    .plan-tab-btn:hover { border-color: var(--primary-color); color: var(--primary-color); }
    .plan-tab-btn.active {
      background: var(--primary-color); color: var(--white);
      border-color: var(--primary-color); box-shadow: 0 4px 10px rgba(0, 160, 189, 0.3);
    }

    .plan-group {
      display: none; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
      gap: 25px; max-width: 1200px; margin: 0 auto;
      align-items: stretch; animation: fadeIn 0.5s; padding-top: 10px;
    }
    .plan-group.active { display: grid; }
    .plan-group.col-3 { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }

    /* CSS Plan Card */
    .css-plan-card {
      background: #fff; border: 3px solid #00A0BD; border-radius: 12px;
      padding: 0; display: flex; flex-direction: column;
      transition: transform 0.3s, box-shadow 0.3s; position: relative;
      overflow: hidden; transform: translateZ(0); will-change: transform;
    }
    /* Recommended Style */
    .css-plan-card.recommended {
      border: 3px solid #E56E2C; z-index: 1;
      box-shadow: 0 15px 30px rgba(229, 110, 44, 0.15);
    }
    .css-plan-card:hover {
      transform: translateY(-5px); box-shadow: 0 10px 20px rgba(0,0,0,0.1);
    }
    .css-plan-card.recommended:hover {
      transform: scale(1.05) translateY(-5px);
      box-shadow: 0 20px 40px rgba(229, 110, 44, 0.2);
    }

    /* Badge */
    .recommend-badge {
      position: absolute; top: -1px; right: -1px; background: #E56E2C;
      color: white; font-size: 12px; font-weight: bold;
      padding: 7px 16px 6px 16px; border-bottom-left-radius: 8px;
      z-index: 10; box-shadow: -2px 2px 5px rgba(0,0,0,0.1);
    }

    /* Plan Header */
    .plan-name-area {
      background: #fcfcfc; padding: 25px 20px; text-align: center;
      border-bottom: 1px solid #eee;
    }
    .css-plan-card.recommended .plan-name-area { background-color: #fff8f0; }
    
    .plan-name {
      font-size: 16px; font-weight: bold; color: var(--primary-dark);
      margin-bottom: 10px; display: block;
    }
    .css-plan-card.recommended .plan-name {
      color: #E56E2C; font-size: 18px;
    }
    .plan-price {
      font-size: 32px; font-weight: bold; color: var(--text-color); line-height: 1;
    }
    .css-plan-card.recommended .plan-price {
      color: #E56E2C; font-size: 36px;
    }
    .plan-price span { font-size: 14px; font-weight: normal; color: #666; }

    /* Plan Body */
    .plan-body { padding: 20px; flex: 1; }
    .plan-item {
      margin-bottom: 20px; padding-bottom: 20px; border-bottom: 1px dashed #eee; text-align: center;
    }
    .plan-item:last-child { border-bottom: none; margin: 0; padding: 0; }
    .plan-label { font-size: 12px; color: #888; margin-bottom: 5px; display: block; }
    .plan-value { font-size: 15px; font-weight: bold; color: var(--text-color); }
    .plan-value.large { font-size: 18px; color: var(--primary-dark); }
    .plan-alert {
      color: #E56E2C; font-size: 12px; font-weight: bold; margin-top: 5px;
      background: #fff0e6; display: inline-block; padding: 2px 8px; border-radius: 4px;
    }

    /* =========================================
       12. Specs (Accordion)
       ========================================= */
    .accordion-container {
      max-width: 1000px; margin: 0 auto 20px; border: 1px solid #e0e0e0;
      border-radius: 8px; overflow: hidden; background: #fff;
      box-shadow: 0 2px 5px rgba(0,0,0,0.05);
    }
    .accordion-header {
      width: 100%; background: #f9fbfc; padding: 20px 25px; text-align: left;
      border: none; outline: none; cursor: pointer; display: flex;
      justify-content: space-between; align-items: center; transition: background 0.3s;
    }
    .accordion-header:hover { background: #f0f5f7; }
    .accordion-title {
      font-size: 18px; font-weight: bold; color: var(--primary-dark);
      margin: 0; display: flex; align-items: center;
    }
    .accordion-title i { margin-right: 10px; color: var(--primary-color); }
    .accordion-icon {
      font-size: 16px; color: #999; transition: transform 0.3s ease;
    }
    .accordion-header.active .accordion-icon { transform: rotate(180deg); }
    
    .accordion-body {
      max-height: 0; overflow: hidden; transition: max-height 0.3s ease-out; background: #fff;
    }
    .accordion-body .spec-table { box-shadow: none; margin: 0; width: 100%; }
    .accordion-body .spec-table th { background: #fff; border-right: 1px solid #eee; width: 25%; }

    /* Spec Table */
    .spec-table {
      width: 100%; border-collapse: collapse;
    }
    .spec-table th, .spec-table td {
      padding: 15px 20px; border-bottom: 1px solid #eee; font-size: 14px;
    }
    .spec-table th {
      background: #fafafa; text-align: left; width: 30%; color: var(--primary-dark); font-weight: bold;
    }
    .spec-list { margin: 10px 0 0 0; padding-left: 20px; list-style-type: disc; }
    .spec-list li { margin-bottom: 5px; line-height: 1.5; }
    .spec-sublist { margin: 5px 0 10px 0; padding-left: 20px; font-size: 0.9em; color: #555; list-style-type: circle; }
    
    .spec-list.note {
      list-style-type: none; padding-left: 0; margin-top: 10px;
      font-size: 0.9em; color: #666; background: #f9f9f9; padding: 10px; border-radius: 4px;
    }
    .spec-list.note li { margin-bottom: 3px; }
    .spec-list.note li::before { content: "■ "; color: var(--primary-color); font-size: 0.8em; }

    /* =========================================
       13. Footer & Forms
       ========================================= */
    footer { background: #333; color: #999; padding: 60px 20px; text-align: center; font-size: 12px; }
    footer a { color: #fff; }

    .agent-form-container {
      background: var(--bg-light); padding: 20px; text-align: center;
      max-width: 600px; margin: 40px auto; border-radius: 8px;
    }
    .agent-input {
      padding: 10px; border: 1px solid #ccc; border-radius: 4px;
      width: 150px; text-align: center;
    }

    /* =========================================
       14. Modals (Logic & Style)
       ========================================= */
    .modal {
      display: none; position: fixed; z-index: 2000; left: 0; top: 0;
      width: 100%; height: 100%; overflow: auto; background-color: rgba(0,0,0,0.6);
      align-items: center; justify-content: center;
    }
    .modal.open { display: flex; }
    .modal-content {
      background-color: #fefefe; margin: auto; padding: 30px;
      border-radius: 8px; width: 90%; max-width: 1000px; position: relative;
      max-height: 80%; overflow-y: auto;
    }
    .close-btn {
      position: absolute; top: 25px; right: 25px; background: #ccc;
      border: none; padding: 5px 15px; cursor: pointer; border-radius: 4px;
    }
    
    /* Modal Inner Content (Old LP style ported) */
    .modal-scroll-area { width: 100%; padding-top: 30px; }
    .wrap_09 {
      display: flex; flex-wrap: wrap; justify-content: center;
      gap: 20px; margin-bottom: 20px; text-align: left;
    }
    .case-image-column { flex: 0 0 30%; max-width: 40%; }
    .case-details-column { flex: 0 0 55%; max-width: 55%; }
    .txt_12 {
      font-size: 1.5rem; font-weight: bold; color: var(--primary-dark);
      margin-top: 15px; margin-bottom: 30px; border-bottom: 2px solid #eee; padding-bottom: 10px;
    }
    .txt_07 { font-size: 14px; line-height: 2.0; margin-bottom: 15px; color: #333; }
    
    .pc-img_05 { display: block; width: 80%; height: auto; border-radius: 8px; }
    .pc-img_06 { display: block; width: 100%; height: auto; border-radius: 8px; }
    .sp-img_06 { display: none; width: 100%; height: auto; }

    /* Tooltip */
    .tooltip {
      position: relative; cursor: pointer; display: inline-block;
      color: #666; font-size: 0.8rem; border-bottom: 1px dashed #999;
    }
    .balloon_top {
      display: none; position: absolute; bottom: 100%; left: 300%;
      transform: translateX(-50%); width: 250px; padding: 10px;
      background: #333; color: #fff; font-size: 11px; border-radius: 5px;
      z-index: 10; line-height: 1.4; margin-bottom: 10px;
    }
    @media screen and (min-width: 769px) { .balloon_top { left: 50%; } }
    .balloon_top::after {
      content: ""; position: absolute; top: 100%; left: 50%; margin-left: -5px;
      border-width: 5px; border-style: solid; border-color: #333 transparent transparent transparent;
    }
    .tooltip:hover .balloon_top { display: block; }

    /* =========================================
       15. Responsive (Mobile) Settings
       ========================================= */
    @media (max-width: 768px) {
      /* Header & Nav */
      header { padding: 0 20px; height: 60px; }
      .header-nav { display: none; }
      .header-cv { display: none; }
      .hamburger { display: flex; }
      .br-pc { display: none; } .br-sp { display: block; }

      /* Hero */
      .hero { flex-direction: column-reverse; padding-top: 100px; }
      .hero-content { padding-right: 0; text-align: center; width: 100%; }
      .hero h1 { font-size: clamp(22px, 5vw, 30px); white-space: nowrap; }
      
      /* Buttons */
      .btn { width: 90%; min-width: auto; padding: 12px; }
      .cv-area-mobile-stack { flex-direction: column; gap: 15px !important; width: 100%; max-width: 350px; margin: 0 auto; }

      /* Section & Data */
      .data-flex { flex-direction: column; gap: 30px; }
      .ranking-list { width: 100%; }
      .concern-item::after { display: none; }
      .insurance-flow { text-align: left; }

      /* Plans */
      .plan-tabs { flex-direction: column; align-items: center; }
      .plan-tab-btn { width: 80%; }
      .pricing-grid-top { grid-template-columns: 1fr; max-width: 400px; }
      .css-plan-card.recommended { transform: scale(1); margin: 15px 0; }
      .css-plan-card:hover, .css-plan-card.recommended:hover { transform: translateY(0); }

      /* Accordion */
      .accordion-header { padding: 15px; }
      .accordion-title { font-size: 15px; }
      .accordion-body .spec-table th, .accordion-body .spec-table td { display: block; width: 100%; border-right: none; }
      .accordion-body .spec-table th { background: #f9f9f9; padding: 10px; }

      /* Modals */
      .wrap_09 { flex-direction: column; }
      .case-image-column, .case-details-column { flex: 1 1 100%; max-width: 100%; }
      .pc-img_05, .pc-img_06 { display: none; }
      .sp-img_06 { display: block; }
    }

