
  :root{
    --color-base:      #0B1420;
    --color-main:      #1A2A3A;
    --color-main-soft: #23374A;
    --color-accent:    #E6A100;
    --color-accent-soft:#F2C879;
    --color-ivory:     #FAF7F0;
    --color-text-light:#22D3C5;
    --color-text-dark: #1A2A3A;
    --color-text-sub:  #9AA7B2;
    --color-cta:       #22D3C5;
    --color-cta-soft:  #6FE3D6;

    --radius-card: 12px;
    --radius-btn: 999px;
    --space-card: clamp(24px, 4vw, 40px);
    --space-page-inline: clamp(20px, 5vw, 40px);
  }

  *{ box-sizing:border-box; margin:0; padding:0; }
  body{
    font-family:"Noto Serif JP","Hiragino Mincho ProN",serif;
    background:var(--color-base);
    color:var(--color-text-light);
    line-height:1.85;
    word-break:keep-all;
    overflow-wrap:anywhere;
  }
  p{ text-wrap:pretty; }
  h1, h2, .section-title, .hero-title, .honesty-title, .belief-text,
  .cta-banner-title, .yoshi-text, .agent-combo-text{ text-wrap:balance; }

  img{ max-width:100%; display:block; }

  .section-wrap{ padding:clamp(64px, 9vw, 120px) 0; }
  .inner-container{ max-width:1100px; margin:0 auto; padding:0 var(--space-page-inline); }
  .section-title{
    text-align:center;
    margin-bottom:clamp(40px, 6vw, 64px);
    font-size:clamp(22px, 3vw, 32px);
    line-height:1.8;
    letter-spacing:0.08em;
    color:var(--color-cta);
  }
  .section-title span{ display:block; font-size:14px; letter-spacing:0.3em; color:var(--color-accent); margin-bottom:16px; }
  .section-lead{ text-align:center; font-size:15px; line-height:1.9; color:var(--color-text-sub); max-width:600px; margin:-16px auto 64px; }

  /* ---------- ヘッダー ---------- */
  .header-wrap{
    position:sticky; top:0; z-index:50;
    background:rgba(11,20,32,0.92);
    backdrop-filter:blur(6px);
    border-bottom:1px solid rgba(230,161,0,0.25);
  }
  .header-inner{
    max-width:1100px; margin:0 auto; padding:12px var(--space-page-inline);
    display:flex; align-items:center; justify-content:space-between;
    gap:16px; flex-wrap:wrap;
  }
  .header-logo-img{ height:clamp(64px, 20vw, 120px); width:auto; }
  .header-cta-btn{ padding:clamp(8px,2vw,10px) clamp(18px,4vw,28px); font-size:clamp(11px,3vw,13px); white-space:nowrap; }

  /* ---------- ボタン ---------- */
  .btn{
    display:inline-block;
    border-radius:var(--radius-btn);
    font-weight:600;
    letter-spacing:0.05em;
    text-decoration:none;
    transition:transform 0.25s ease, box-shadow 0.25s ease;
  }
  .btn-primary{
    background:linear-gradient(135deg, var(--color-cta-soft), var(--color-cta));
    color:var(--color-base);
    padding:18px 48px;
    font-size:17px;
    box-shadow:0 8px 24px rgba(34,211,197,0.35);
  }
  .btn-primary:hover{ transform:translateY(-2px); box-shadow:0 12px 30px rgba(230,161,0,0.45); }
  .btn-outline{
    border:1px solid var(--color-accent);
    color:var(--color-accent-soft);
    background:transparent;
    padding:16px 44px;
    font-size:15px;
  }
  .btn-outline:hover{ background:rgba(230,161,0,0.08); }

  /* ---------- ヒーロー ---------- */
  .hero-section{
    background:
      radial-gradient(circle at 80% 0%, rgba(230,161,0,0.10), transparent 45%),
      linear-gradient(180deg, var(--color-base), var(--color-main) 140%);
    padding:100px 0 120px;
    text-align:center;
  }
  .hero-eyebrow{
    font-size:13px; letter-spacing:0.35em; color:var(--color-text-sub); margin-bottom:24px;
  }
  .hero-authority{
    display:flex; justify-content:center; gap:clamp(20px, 4vw, 40px); flex-wrap:wrap;
    margin-bottom:32px;
  }
  .hero-authority-item{ text-align:center; }
  .hero-authority-num{
    display:block; font-size:clamp(20px, 3vw, 26px); color:var(--color-accent-soft); line-height:1.4;
  }
  .hero-authority-label{ font-size:12px; color:var(--color-text-sub); letter-spacing:0.05em; }
  .hero-cta-note{
    font-size:12px; color:var(--color-text-sub); margin-top:16px; letter-spacing:0.02em;
  }
  .hero-title{
    font-size:34px; line-height:1.8; color:var(--color-text-light); margin-bottom:clamp(20px, 3vw, 28px);
  }
  .hero-title strong{ color:var(--color-accent-soft); font-weight:600; }
  .hero-question{
    font-size:17px; color:var(--color-text-sub); margin-bottom:36px;
  }
  .hero-check-list{
    list-style:none;
    display:inline-flex;
    flex-direction:column;
    gap:14px;
    margin:0 auto 40px;
    text-align:left;
  }
  .hero-check-list li{
    font-size:15px; color:var(--color-text-light);
    padding-left:28px; position:relative;
    white-space:nowrap;
  }
  .hero-check-list li::before{
    content:"✔"; position:absolute; left:0; color:var(--color-accent-soft);
  }
  .hero-lead{
    font-size:14px; color:var(--color-text-sub); max-width:560px; margin:0 auto 40px;
  }
  @media (max-width:768px){
    .hero-title{ font-size:24px; }
  }

  /* ---------- チェックリスト共通（共感／診断／アフターフォロー） ---------- */
  .check-section{ background:var(--color-base); }
  .check-list{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(min(300px, 100%), 1fr));
    gap:var(--space-card);
    max-width:820px;
    margin:0 auto;
  }
  .check-item{
    background:var(--color-main);
    border:1px solid rgba(230,161,0,0.15);
    border-radius:var(--radius-card);
    padding:var(--space-card) clamp(16px, 3vw, 32px);
    font-size:14px;
    line-height:1.8;
    color:var(--color-text-light);
    display:flex; align-items:center; gap:12px;
    min-width:0;
  }
  .check-item span{ min-width:0; white-space:nowrap; }
  .check-item::before{
    content:"✓";
    flex:0 0 auto;
    width:24px; height:24px; border-radius:50%;
    border:1px solid var(--color-accent-soft);
    color:var(--color-accent-soft);
    display:flex; align-items:center; justify-content:center;
    font-size:12px;
  }
  .check-list-soft .check-item{ background:var(--color-main-soft); }
  .empathy-list .check-item::before{
    content:"";
    width:8px; height:8px; border-radius:50%;
    background:var(--color-text-sub);
    border:none;
  }
  .empathy-lead{
    text-align:center; font-size:14px; color:var(--color-text-sub);
    max-width:560px; margin:-16px auto 40px; line-height:1.9;
  }
  .empathy-bridge{
    text-align:center; font-size:15px; color:var(--color-accent-soft);
    margin-top:48px;
  }

  /* ---------- 正直な宣言／重要メッセージ ---------- */
  .honesty-section{
    background:var(--color-main);
    text-align:center;
  }
  .honesty-icon{
    width:48px; height:48px; margin:0 auto 24px;
    border-radius:50%;
    border:1px solid var(--color-accent);
    display:flex; align-items:center; justify-content:center;
  }
  .honesty-icon svg{ width:22px; height:22px; stroke:var(--color-accent-soft); }
  .honesty-bridge{
    font-size:14px; color:var(--color-text-sub); margin-bottom:24px; line-height:1.9;
  }
  .honesty-title{
    font-size:26px; color:var(--color-text-light); margin-bottom:28px; line-height:1.9;
  }
  .honesty-title strong{ color:var(--color-accent); }
  .honesty-text{
    font-size:14px; color:var(--color-text-sub); max-width:520px; margin:0 auto 20px; line-height:2;
  }
  .honesty-contrast{
    display:grid; grid-template-columns:repeat(auto-fit, minmax(min(280px,100%),1fr));
    gap:var(--space-card); max-width:760px; margin:0 auto; text-align:left;
  }
  .honesty-contrast-item{
    border-radius:var(--radius-card); padding:var(--space-card);
  }
  .honesty-contrast-item.is-no{
    background:transparent; border:1px solid var(--color-text-sub);
  }
  .honesty-contrast-item.is-yes{
    background:var(--color-base); border:1px solid var(--color-accent);
  }
  .honesty-contrast-label{
    font-size:12px; letter-spacing:0.1em; margin-bottom:12px;
  }
  .is-no .honesty-contrast-label{ color:var(--color-text-sub); }
  .is-yes .honesty-contrast-label{ color:var(--color-accent-soft); }
  .honesty-contrast-text{
    font-size:14px; line-height:1.9;
  }
  .is-no .honesty-contrast-text{ color:var(--color-text-sub); }
  .is-yes .honesty-contrast-text{ color:var(--color-text-light); }
  .honesty-highlight{
    font-size:16px; color:var(--color-accent-soft); margin-top:40px; white-space:nowrap;
  }
  .honesty-future{
    font-size:14px; color:var(--color-text-sub); margin-top:12px; line-height:1.9;
  }

  /* ---------- CTAインライン ---------- */
  .cta-inline{ text-align:center; margin-top:56px; }

  /* ---------- 理由リスト（2カラム説明） ---------- */
  .reason-detail-list{ display:grid; grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr)); gap:var(--space-card); max-width:820px; margin:0 auto; }
  .reason-detail-item{
    background:var(--color-base); border-radius:var(--radius-card);
    padding:var(--space-card); border:1px solid rgba(230,161,0,0.2); text-align:center;
  }
  .reason-detail-title{ font-size:17px; color:var(--color-accent-soft); margin-bottom:16px; line-height:1.8; white-space:nowrap; }
  .reason-detail-text{ font-size:13px; color:var(--color-text-sub); line-height:1.9; }

  /* ---------- 価値観ステートメント ---------- */
  .belief-section{ background:var(--color-base); text-align:center; }
  .belief-icon{
    width:48px; height:48px; margin:0 auto 24px;
    border-radius:50%;
    border:1px solid var(--color-accent);
    display:flex; align-items:center; justify-content:center;
  }
  .belief-icon svg{ width:22px; height:22px; stroke:var(--color-accent-soft); }
  .belief-text{ font-size:22px; color:var(--color-text-light); line-height:2; max-width:600px; margin:0 auto; }
  .belief-text strong{ white-space:nowrap; color:var(--color-accent-soft); }
  .yoshi-bridge-in{
    font-size:14px; color:var(--color-text-sub); margin-bottom:24px; line-height:1.9;
  }
  .yoshi-bridge-out{
    font-size:15px; color:var(--color-accent-soft); margin-top:32px; line-height:1.9;
  }

  /* ---------- サービスカード（レンタル等） ---------- */
  .service-detail-list{ display:grid; grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr)); gap:var(--space-card); }
  .service-detail-item{
    background:var(--color-main); border-radius:var(--radius-card);
    padding:var(--space-card); border-left:3px solid var(--color-accent);
  }
  .service-detail-tag{ font-size:12px; color:var(--color-text-sub); letter-spacing:0.1em; margin-bottom:12px; line-height:1.8; white-space:nowrap; }
  .service-detail-title{ font-size:19px; color:var(--color-accent-soft); margin-bottom:16px; line-height:1.8; }
  .service-detail-text{ font-size:13px; color:var(--color-text-light); line-height:1.9; }

  /* ---------- 四方よし ---------- */
  .yoshi-section{ background:var(--color-main); text-align:center; }
  .yoshi-list{
    display:grid; grid-template-columns:repeat(4, auto);
    justify-content:center; align-items:center;
    gap:clamp(16px, 3vw, 24px); margin-bottom:56px;
  }
  .yoshi-item{
    background:var(--color-base); border:1px solid rgba(230,161,0,0.3);
    border-radius:50%; width:clamp(80px, 22vw, 120px); height:clamp(80px, 22vw, 120px);
    display:flex; align-items:center; justify-content:center;
    font-size:clamp(12px, 3vw, 14px); color:var(--color-accent-soft); text-align:center;
  }
  .yoshi-item.is-new{ border-color:var(--color-accent); box-shadow:0 0 0 4px rgba(230,161,0,0.12); }
  .yoshi-lead{ font-size:14px; color:var(--color-text-sub); max-width:520px; margin:0 auto 8px; }
  .yoshi-text{ font-size:15px; color:var(--color-text-light); max-width:560px; margin:20px auto 0; line-height:2; }
  @media (max-width:640px){
    .yoshi-list{
      grid-template-columns:repeat(3, 1fr); justify-items:center;
    }
    .yoshi-item.is-new{ grid-column:1 / -1; }
  }

  /* ---------- 代理店募集 ---------- */
  .agent-section{ background:var(--color-base); }
  .agent-audience-bridge{
    text-align:center; font-size:14px; color:var(--color-text-sub);
    margin-bottom:40px; line-height:1.9;
  }
  .agent-intro{ text-align:center; font-size:16px; color:var(--color-text-light); margin-bottom:32px; }
  .agent-list{
    list-style:none; display:flex; justify-content:center; gap:clamp(24px, 4vw, 44px); flex-wrap:wrap;
    margin:0 auto 48px; line-height:1.8;
  }
  .agent-list li{ font-size:15px; color:var(--color-accent-soft); padding-left:26px; position:relative; white-space:nowrap; }
  .agent-list li::before{ content:"○"; position:absolute; left:0; }
  .agent-note{ text-align:center; font-size:13px; color:var(--color-text-sub); max-width:560px; margin:0 auto 56px; }
  .agent-combo{
    background:var(--color-main); border-radius:var(--radius-card);
    padding:var(--space-card); text-align:center; max-width:700px; margin:0 auto;
  }
  .agent-combo-title{ font-size:17px; color:var(--color-accent-soft); margin-bottom:16px; line-height:1.8; }
  .agent-combo-text{ font-size:13px; color:var(--color-text-sub); line-height:1.9; }
  .agent-cta{ text-align:center; margin-top:48px; }
  .agent-cta-note{
    font-size:12px; color:var(--color-text-sub); margin-top:16px; letter-spacing:0.02em;
  }

  /* ---------- よくある質問 ---------- */
  .faq-section{ background:var(--color-main); }
  .faq-list{
    display:flex; flex-direction:column; gap:var(--space-card);
    max-width:820px; margin:0 auto;
  }
  .faq-item{
    background:var(--color-base); border-radius:var(--radius-card);
    padding:var(--space-card); border:1px solid rgba(230,161,0,0.15);
  }
  .faq-q{
    font-size:15px; color:var(--color-accent-soft); line-height:1.8; margin-bottom:12px;
    display:flex; gap:10px;
  }
  .faq-q-mark, .faq-a-mark{ flex:0 0 auto; }
  .faq-a{
    font-size:14px; color:var(--color-text-sub); line-height:1.9;
    display:flex; gap:10px;
  }

  /* ---------- 最終CTA ---------- */
  .cta-banner-section{
    background:linear-gradient(135deg, var(--color-accent-soft), var(--color-accent));
    color:var(--color-base);
    text-align:center;
    padding:90px 0;
  }
  .cta-banner-title{ font-size:clamp(18px, 5vw, 28px); margin-bottom:14px; white-space:nowrap; }
  .cta-banner-sub{ font-size:14px; margin-bottom:8px; opacity:0.85; }
  .cta-banner-note{ font-size:14px; margin-bottom:40px; opacity:0.85; }
  .cta-banner-section .btn-primary{
    background:var(--color-base);
    color:var(--color-accent-soft);
    box-shadow:none;
  }
  .cta-banner-final-note{
    font-size:12px; color:var(--color-base); opacity:0.75; margin-top:16px; letter-spacing:0.02em;
  }

  /* ---------- マシン紹介（実機写真） ---------- */
  .machine-section{ background:var(--color-base); }
  .machine-list{ display:grid; grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr)); gap:var(--space-card); }
  .machine-card{
    background:var(--color-main); border-radius:var(--radius-card);
    padding:var(--space-card); border:1px solid rgba(230,161,0,0.15); text-align:center;
  }
  .machine-thumb{
    width:100%; aspect-ratio:4/3; border-radius:8px;
    background:radial-gradient(circle at 50% 40%, var(--color-main-soft), var(--color-base));
    display:flex; align-items:center; justify-content:center;
    margin-bottom:24px; overflow:hidden;
  }
  .machine-thumb img{ width:80%; height:80%; object-fit:contain; }
  .machine-name{ font-size:14px; color:var(--color-accent-soft); line-height:1.8; white-space:nowrap; }

  /* ---------- お客様の声 ---------- */
  .voice-section{ background:var(--color-main); }
  .voice-list{
    display:grid; grid-template-columns:repeat(auto-fit, minmax(min(260px,100%),1fr));
    gap:var(--space-card); max-width:1000px; margin:0 auto;
  }
  .voice-card{
    background:var(--color-base); border-radius:var(--radius-card);
    padding:var(--space-card); border:1px solid rgba(230,161,0,0.2);
  }
  .voice-role{
    font-size:13px; color:var(--color-accent-soft); margin-bottom:16px; line-height:1.8;
  }
  .voice-text{
    font-size:14px; color:var(--color-text-light); line-height:1.9;
  }

  /* ---------- アフターサポート 2カラム（テキスト＋写真） ---------- */
  .support-columns{
    display:grid; grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:clamp(24px, 3vw, 40px); align-items:stretch;
  }
  .support-photo{
    width:min(100%, 240px); height:100%; margin:0 auto;
    border-radius:var(--radius-card); overflow:hidden;
    border:1px solid rgba(230,161,0,0.2);
  }
  .support-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
  .support-check-list{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:clamp(12px, 1.2vw, 16px);
    padding:0; max-width:none;
  }
  .support-check-list .check-item{
    min-height:96px;
    padding:clamp(16px, 1.4vw, 22px) clamp(16px, 1.8vw, 24px);
  }
  @media (max-width:720px){
    .support-columns{ grid-template-columns:1fr; }
    .support-check-list{ grid-template-columns:1fr; }
    .support-photo{ width:min(100%, 393px); height:auto; }
    .support-photo img{ height:auto; object-fit:contain; }
  }

  /* ---------- 修理受け付けます ---------- */
  .repair-intro{
    max-width:760px; margin:clamp(56px,7vw,80px) auto 0; text-align:center;
  }
  .repair-title{
    font-size:clamp(20px,3vw,24px); color:var(--color-accent-soft);
    line-height:1.8; margin-bottom:12px;
  }
  .repair-subtitle{
    font-size:14px; color:var(--color-text-sub); line-height:1.8; margin-bottom:24px;
  }
  .repair-text{
    font-size:14px; color:var(--color-text-light); line-height:2; text-align:left;
  }
  .repair-plan-list{
    display:grid; grid-template-columns:repeat(auto-fit, minmax(min(280px,100%),1fr));
    gap:var(--space-card); max-width:760px; margin:clamp(32px,4vw,40px) auto 0;
  }
  .repair-plan-item{
    border-radius:var(--radius-card); padding:var(--space-card); text-align:left;
  }
  .repair-plan-item.is-own{
    background:var(--color-main); border:1px solid var(--color-accent);
  }
  .repair-plan-item.is-other{
    background:transparent; border:1px solid var(--color-text-sub);
  }
  .repair-plan-label{
    font-size:15px; margin-bottom:16px; line-height:1.8;
  }
  .is-own .repair-plan-label{ color:var(--color-accent-soft); }
  .is-other .repair-plan-label{ color:var(--color-text-sub); }
  .repair-plan-points{
    list-style:none; font-size:14px; line-height:2;
  }
  .is-own .repair-plan-points{ color:var(--color-text-light); }
  .is-other .repair-plan-points{ color:var(--color-text-sub); }
  .repair-plan-points li{
    padding-left:20px; position:relative;
  }
  .repair-plan-points li::before{
    content:"・"; position:absolute; left:0;
  }

  /* ---------- 施術訴求ビジュアル ---------- */
  .visual-banner{
    border-radius:var(--radius-card); overflow:hidden; position:relative;
    border:1px solid rgba(230,161,0,0.2); max-width:900px; margin:0 auto;
  }
  .visual-banner img{ width:100%; display:block; }
  .visual-banner-caption{
    text-align:center; font-size:13px; color:var(--color-text-sub); margin-top:16px;
  }

  /* ---------- フッター ---------- */
  .footer-wrap{ background:var(--color-base); padding:60px var(--space-page-inline) 40px; text-align:center; border-top:1px solid rgba(230,161,0,0.15); }
  .footer-logo-img{
    width:120px; height:120px; max-width:100%;
    object-fit:contain; margin:0 auto 20px;
  }
  .header-logo-link, .footer-logo-link{ display:inline-block; cursor:pointer; line-height:0; }

  /* ---------- トップへ戻るボタン ---------- */
  .back-to-top-btn{
    position:fixed;
    right:clamp(16px, 3vw, 32px);
    bottom:clamp(16px, 3vw, 32px);
    width:52px; height:52px;
    border-radius:50%;
    background:linear-gradient(135deg, var(--color-accent-soft), var(--color-accent));
    border:none;
    display:flex; align-items:center; justify-content:center;
    cursor:pointer;
    box-shadow:0 8px 20px rgba(0,0,0,0.35);
    opacity:0; visibility:hidden;
    transform:translateY(10px);
    transition:opacity 0.3s ease, transform 0.3s ease, visibility 0.3s ease;
    z-index:60;
  }
  .back-to-top-btn.is-visible{
    opacity:1; visibility:visible; transform:translateY(0);
  }
  .back-to-top-btn svg{ width:20px; height:20px; fill:none; stroke:var(--color-base); stroke-width:2.5; }
  .footer-copy{ font-size:12px; color:var(--color-text-sub); }


  /* LP content only: the existing header and footer keep their original styles. */
  main{
    --copy:#D9E0E5; --muted:#B1BEC9; --rule:rgba(217,224,229,.18);
    color:var(--copy); font-family:"Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
    font-size:16px; line-height:1.95; word-break:normal; overflow-wrap:break-word;
  }
  main *, main *::before, main *::after{ min-width:0; }
  main p{ text-wrap:pretty; }
  main h1, main h2, main h3, main .belief-text, main .cta-banner-title{
    font-family:"Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
    color:var(--color-ivory); font-weight:600; letter-spacing:.025em; text-wrap:pretty;
  }
  main .section-wrap{ padding:80px 0; }
  main .inner-container{ max-width:1100px; }
  main .section-title{ color:var(--color-ivory); text-align:left; font-size:clamp(25px,2.6vw,32px); line-height:1.65; margin:0 0 24px; }
  main .section-title span{ font:600 12px/1.5 Arial,sans-serif; letter-spacing:.16em; margin-bottom:12px; color:var(--color-cta); }
  main .diagnosis-section .section-title .keep-phrase{ display:inline-block; margin:0; color:inherit; font:inherit; letter-spacing:inherit; }
  main .section-lead{ text-align:left; max-width:42em; margin:0 0 36px; font-size:16px; color:var(--muted); }
  main .btn{ display:inline-flex; align-items:center; justify-content:center; min-height:52px; max-width:100%; padding:14px 30px; border-radius:4px; font-size:16px; line-height:1.6; letter-spacing:.02em; transition:background-color .15s ease; text-align:center; }
  main .btn-primary, main .cta-banner-section .btn-primary{ background:var(--color-cta); color:var(--color-base); box-shadow:none; border:1px solid var(--color-cta); }
  main .btn-primary:hover{ background:var(--color-cta-soft); transform:none; box-shadow:none; }
  main .btn-outline{ color:var(--color-ivory); border-color:var(--rule); background:transparent; }
  main .btn-outline:hover{ background:var(--color-main); }
  main a:focus-visible, main summary:focus-visible{ outline:3px solid var(--color-accent-soft); outline-offset:5px; }
  main .text-link{ display:inline-flex; align-items:center; min-height:48px; color:var(--color-cta); text-underline-offset:6px; }
  main .hero-section{ padding:64px 0 72px; background:var(--color-base); text-align:left; }
  main .hero-layout{ display:grid; grid-template-columns:1.3fr 1fr; gap:36px; align-items:center; }
  main .hero-eyebrow{ color:var(--color-cta); font-size:14px; letter-spacing:.08em; margin-bottom:20px; }
  main .hero-title{ font-size:clamp(28px,3.05vw,39px); line-height:1.65; margin-bottom:22px; }
  main .hero-title strong{ color:var(--color-ivory); font-weight:600; }
  main .keep-phrase{ display:inline-block; }
  main .hero-question{ color:var(--copy); font-size:17px; margin-bottom:16px; }
  main .hero-check-list{ display:block; margin:0 0 16px; }
  main .hero-check-list li{ padding:0; font-size:16px; color:var(--color-accent-soft); white-space:normal; }
  main .hero-check-list li::before{ content:none; }
  main .hero-lead{ color:var(--muted); font-size:16px; max-width:34em; margin:0 0 28px; }
  main .hero-cta-note{ font-size:13px; color:var(--muted); margin-top:12px; }
  main .hero-visual{ background:var(--color-main); padding:12px 20px 20px; align-self:stretch; display:flex; flex-direction:column; justify-content:center; }
  main .hero-visual img{ width:100%; height:auto; aspect-ratio:1; object-fit:contain; }
  main .hero-visual figcaption{ border-top:1px solid var(--rule); padding-top:16px; font-size:14px; color:var(--copy); }
  main .hero-visual figcaption span{ display:block; color:var(--muted); font-size:13px; margin-top:4px; }
  main .hero-subnav{ display:flex; flex-wrap:wrap; gap:8px 28px; padding-top:28px; margin-top:40px; border-top:1px solid var(--rule); }
  main .hero-subnav a{ color:var(--muted); font-size:14px; min-height:44px; display:inline-flex; align-items:center; text-underline-offset:6px; }
  main section[id], main h3[id]{ scroll-margin-top:170px; }
  main .empathy-section{ padding:44px 0 52px; border-block:1px solid var(--rule); }
  main .empathy-layout{ display:grid; grid-template-columns:.85fr 1.4fr; gap:56px; }
  main .empathy-section .section-title{ font-size:25px; }
  main .empathy-lead{ text-align:left; margin:0; color:var(--muted); font-size:15px; }
  main .check-list{ max-width:none; margin:0; gap:0 28px; grid-template-columns:repeat(2,minmax(0,1fr)); }
  main .check-item{ background:none; border:0; border-bottom:1px solid var(--rule); border-radius:0; padding:17px 0; font-size:16px; color:var(--copy); }
  main .check-item span{ white-space:normal; }
  main .check-item::before{ content:none; }
  main .empathy-list{ grid-template-columns:1fr; }
  main .empathy-list .check-item{ padding:8px 0; border:0; font-size:15px; }
  main .empathy-bridge{ text-align:left; color:var(--muted); font-size:14px; margin-top:20px; }
  main .honesty-section{ background:var(--color-base); text-align:left; padding-bottom:32px; }
  main .honesty-icon, main .belief-icon{ display:none; }
  main .honesty-bridge{ color:var(--muted); font-size:15px; margin-bottom:16px; }
  main .honesty-title{ color:var(--color-ivory); font-size:clamp(24px,2.5vw,30px); line-height:1.75; margin-bottom:28px; }
  main .honesty-title br{ display:none; }
  main .honesty-title strong{ color:var(--color-accent-soft); }
  main .honesty-contrast{ max-width:none; margin:0; gap:36px; grid-template-columns:1fr 1.4fr; }
  main .honesty-contrast-item.is-no, main .honesty-contrast-item.is-yes{ border:0; border-top:1px solid var(--rule); border-radius:0; background:none; padding:22px 0 0; }
  main .honesty-contrast-label{ font-size:14px; margin-bottom:10px; }
  main .honesty-contrast-text, main .is-no .honesty-contrast-text, main .is-yes .honesty-contrast-text{ font-size:16px; color:var(--copy); }
  main .honesty-highlight{ color:var(--color-ivory); font-size:18px; white-space:normal; margin-top:28px; }
  main .honesty-future{ color:var(--muted); font-size:15px; margin-top:8px; }
  main .reasons-section{ padding-top:20px; background:var(--color-base); }
  main .reasons-section .section-title{ font:600 20px/1.7 "Yu Gothic",Meiryo,sans-serif; margin:0 0 24px; }
  main .reason-detail-list{ max-width:none; margin:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
  main .reason-detail-item{ background:none; border:0; border-left:2px solid var(--color-main-soft); border-radius:0; padding:0 0 0 20px; text-align:left; }
  main .reason-detail-title{ font-size:17px; color:var(--color-ivory); white-space:normal; margin-bottom:10px; }
  main .reason-detail-text{ font-size:15px; color:var(--muted); }
  main .diagnosis-section{ background:var(--color-main); }
  main .diagnosis-layout{ display:grid; grid-template-columns:.85fr 1.4fr; gap:56px; }
  main .diagnosis-section .section-lead{ margin-bottom:20px; }
  main .check-list-soft .check-item{ background:none; }
  main .cta-inline{ text-align:left; margin-top:20px; }
  main .machine-section{ padding-bottom:64px; }
  main .machine-list{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px 24px; }
  main .machine-card{ background:none; padding:0; border:0; border-radius:0; text-align:left; }
  main .machine-thumb{ background:var(--color-main); border-radius:2px; aspect-ratio:1; margin-bottom:14px; }
  main .machine-thumb img{ width:100%; height:100%; object-fit:contain; }
  main .machine-name{ font-size:16px; color:var(--color-ivory); white-space:normal; }
  main .visual-banner-caption{ text-align:left; font-size:14px; color:var(--muted); margin-top:28px; }
  main .support-section{ background:var(--color-main); }
  main .support-columns{ grid-template-columns:1.35fr .65fr; gap:64px; align-items:center; }
  main .support-check-list{ grid-template-columns:1fr 1fr; }
  main .support-check-list .check-item{ min-height:76px; padding:18px 0; }
  main .support-photo{ width:min(100%,270px); height:auto; border:0; border-radius:2px; }
  main .support-photo img{ width:100%; height:auto; object-fit:contain; }
  main .repair-intro{ max-width:none; margin:64px 0 0; padding-top:40px; border-top:1px solid var(--rule); text-align:left; }
  main .repair-title{ font-size:26px; margin-bottom:8px; color:var(--color-ivory); }
  main .repair-subtitle{ color:var(--color-accent-soft); font-size:16px; margin-bottom:20px; }
  main .repair-text{ color:var(--copy); font-size:16px; max-width:48em; }
  main .repair-plan-list{ max-width:none; margin:28px 0 0; gap:24px; grid-template-columns:1fr 1fr; }
  main .repair-plan-item.is-own, main .repair-plan-item.is-other{ border:1px solid var(--rule); border-radius:3px; background:var(--color-base); padding:24px; }
  main .repair-plan-label, main .is-other .repair-plan-label{ font-size:17px; color:var(--color-ivory); margin-bottom:12px; }
  main .repair-plan-points, main .is-own .repair-plan-points, main .is-other .repair-plan-points{ font-size:16px; color:var(--copy); }
  main .repair-contact{ margin-top:20px; }
  main .services-section{ background:var(--color-base); }
  main .service-detail-list{ grid-template-columns:1fr 1fr; gap:0 40px; }
  main .service-detail-item{ border:0; border-top:1px solid var(--rule); border-radius:0; background:none; padding:26px 0; }
  main .service-detail-tag{ color:var(--muted); font-size:14px; letter-spacing:0; margin-bottom:6px; white-space:normal; }
  main .service-detail-title{ color:var(--color-ivory); font-size:22px; margin-bottom:12px; }
  main .service-detail-text{ color:var(--copy); font-size:16px; }
  main .belief-section{ padding:40px 0 0; background:var(--color-main); text-align:left; }
  main .belief-text{ font-size:clamp(21px,2.3vw,27px); max-width:34em; margin:0; line-height:1.9; }
  main .belief-text strong{ white-space:normal; color:var(--color-accent-soft); }
  main .yoshi-section{ background:var(--color-main); padding-top:40px; padding-bottom:40px; text-align:left; }
  main .yoshi-section .section-title{ font-size:23px; }
  main .yoshi-bridge-in, main .yoshi-lead{ color:var(--muted); font-size:15px; max-width:none; margin:0 0 12px; }
  main .yoshi-list{ grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; margin:28px 0; }
  main .yoshi-item, main .yoshi-item.is-new{ width:auto; height:auto; border:0; border-left:1px solid var(--rule); border-radius:0; background:none; box-shadow:none; padding:10px; color:var(--color-ivory); font-size:16px; grid-column:auto; }
  main .yoshi-text{ max-width:48em; margin:0; color:var(--copy); font-size:16px; text-wrap:pretty; }
  main .yoshi-bridge-out{ margin-top:20px; color:var(--muted); font-size:15px; }
  main .agent-section{ background:var(--color-main); padding-top:40px; }
  main .agent-section .inner-container{ border-top:1px solid var(--rule); padding-top:40px; }
  main .agent-audience-bridge{ text-align:left; margin-bottom:12px; color:var(--muted); font-size:14px; }
  main .agent-intro{ text-align:left; color:var(--copy); font-size:17px; margin-bottom:20px; }
  main .agent-list{ justify-content:flex-start; gap:12px 28px; margin:0 0 20px; }
  main .agent-list li{ padding:0; font-size:16px; }
  main .agent-list li::before{ content:none; }
  main .agent-note{ text-align:left; color:var(--muted); font-size:16px; max-width:46em; margin:0 0 24px; }
  main .agent-combo{ background:none; border:0; border-radius:0; padding:0; max-width:46em; margin:0; text-align:left; }
  main .agent-combo-title{ font-size:18px; color:var(--color-ivory); margin-bottom:8px; }
  main .agent-combo-text{ font-size:16px; color:var(--muted); }
  main .agent-cta{ text-align:left; margin-top:24px; }
  main .agent-cta-note{ color:var(--muted); font-size:14px; margin-top:10px; }
  main .voice-section{ background:var(--color-base); padding:40px 0; border-bottom:1px solid var(--rule); }
  main .voice-section .section-title{ font-size:21px; margin:0; }
  main .voice-section summary{ cursor:pointer; padding:12px 0; min-height:48px; color:var(--color-accent-soft); }
  main .draft-notice{ font-size:15px; color:var(--muted); max-width:48em; margin:16px 0 24px; }
  main .voice-list{ max-width:none; margin:0; grid-template-columns:1fr; gap:20px; }
  main .voice-card{ padding:0 0 20px; border:0; border-bottom:1px solid var(--rule); border-radius:0; background:none; }
  main .voice-role{ font-size:15px; margin-bottom:8px; }
  main .voice-text{ font-size:16px; color:var(--copy); }
  main .faq-section{ background:var(--color-base); }
  main .faq-list{ max-width:none; margin:0; gap:0; }
  main .faq-item{ padding:24px 0; background:none; border:0; border-top:1px solid var(--rule); border-radius:0; }
  main .faq-q{ font-size:17px; color:var(--color-ivory); margin-bottom:12px; gap:16px; }
  main .faq-q-mark{ color:var(--color-cta); }
  main .faq-a{ font-size:16px; color:var(--muted); gap:16px; max-width:52em; }
  main .cta-banner-section{ background:var(--color-main); padding:64px 0; color:var(--copy); text-align:left; }
  main .cta-banner-title{ font-size:clamp(24px,2.7vw,32px); line-height:1.7; margin-bottom:20px; white-space:normal; }
  main .cta-banner-sub{ color:var(--color-ivory); font-size:18px; opacity:1; margin-bottom:8px; }
  main .cta-banner-note{ color:var(--muted); opacity:1; font-size:16px; max-width:43em; margin-bottom:24px; }
  main .cta-banner-final-note{ color:var(--muted); font-size:13px; opacity:1; }
  main .consultation-reminder{ background:var(--color-base); padding:0 0 64px; }
  main .consultation-reminder .inner-container{ border-top:1px solid var(--rule); padding-top:32px; }
  main .consultation-reminder .cta-banner-title{ font-size:24px; }
  @media(max-width:900px){
    main .hero-layout{ grid-template-columns:1.25fr .8fr; gap:24px; }
    main .hero-title{ font-size:30px; }
    main .empathy-layout, main .diagnosis-layout{ grid-template-columns:1fr; gap:24px; }
    main .reason-detail-list{ grid-template-columns:1fr; gap:24px; }
    main .support-columns{ grid-template-columns:1.2fr .8fr; gap:32px; }
    main .support-check-list{ grid-template-columns:1fr; }
    main .support-check-list .check-item{ min-height:0; padding:12px 0; }
  }
  @media(max-width:640px){
    main .section-wrap{ padding:52px 0; }
    main .hero-section{ padding:36px 0 40px; }
    main .hero-layout{ grid-template-columns:1fr; gap:28px; }
    main .hero-title{ font-size:28px; line-height:1.65; }
    main .hero-eyebrow{ font-size:13px; margin-bottom:16px; }
    main .hero-question{ font-size:16px; }
    main .hero-visual{ padding:8px 16px 16px; }
    main .hero-visual img{ height:220px; aspect-ratio:auto; }
    main .hero-subnav{ gap:4px 24px; margin-top:24px; padding-top:16px; }
    main .hero-copy .btn, main .cta-banner-section .btn-primary{ width:100%; }
    main .section-title{ font-size:25px; margin-bottom:20px; }
    main .empathy-section{ padding:32px 0; }
    main .honesty-section{ padding-bottom:24px; }
    main .honesty-contrast{ grid-template-columns:1fr; gap:24px; }
    main .reasons-section{ padding-top:16px; }
    main .check-list{ grid-template-columns:1fr; }
    main .machine-list{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 16px; }
    main .machine-name{ font-size:15px; line-height:1.7; }
    main .machine-thumb{ margin-bottom:10px; }
    main .support-columns{ grid-template-columns:1fr; gap:28px; }
    main .support-photo{ width:min(100%,290px); }
    main .repair-intro{ margin-top:40px; padding-top:28px; }
    main .repair-plan-list, main .service-detail-list{ grid-template-columns:1fr; }
    main .repair-plan-item.is-own, main .repair-plan-item.is-other{ padding:20px; }
    main .belief-section{ padding:36px 0 0; }
    main .yoshi-section{ padding:28px 0 32px; }
    main .yoshi-list{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 0; }
    main .agent-section{ padding-top:0; }
    main .agent-section .inner-container{ padding-top:32px; }
    main .voice-section{ padding:28px 0; }
    main .cta-banner-section{ padding:48px 0; }
    main .consultation-reminder{ padding:0 0 40px; }
    main section[id], main h3[id]{ scroll-margin-top:200px; }
  }
  @media(prefers-reduced-motion:reduce){ main .btn{ transition:none; } }
