/* 画面全体を最大幅にする設定 */
body.robot-rehab-page {
    margin: 0;
    padding: 0;
    overflow-x: hidden; /* 横揺れ防止 */
}

/* このページ内だけ box-sizing を border-box に統一 */
body.robot-rehab-page *,
body.robot-rehab-page *::before,
body.robot-rehab-page *::after {
    box-sizing: border-box;
}

.rehab-full-container {
    width: 100%;
    max-width: none; /* 幅の制限を解除 */
    margin: 0;
    padding: 0;
}

/* 内部のコンテンツに少し余白が欲しい場合は、ブロックエディタ側かここで調整 */
.rehab-content {
    width: 100%;
}

/* --- 上へ戻るボタン --- */
#topcontrol {
    position: fixed;
    bottom: 20px;
    right: 20px;
    z-index: 9999;
    opacity: 0;
    visibility: hidden;
    transition: opacity .3s, visibility .3s;
}

#topcontrol.is-show {
    opacity: 1;
    visibility: visible;
}

#topcontrol a {
    background: url(../cmn_js/scrolltop/scrollup.png) center center no-repeat;
    background: url(../cmn_js/scrolltop/scrollup.gif) center center no-repeat\9; /* IE用 */
    _background: url(../cmn_js/scrolltop/scrollup.gif) center center no-repeat; /* IE用 */
    background-size: 40px 40px;

    font-size: 0;
    text-decoration: none;
    display: block;
    height: 38px;
    width: 38px;
    opacity: 0.7;
    border-radius: 38px;
    -webkit-transition: all .15s ease-in-out;
    -o-transition: all .15s ease-in-out;
    transition: all .15s ease-in-out;
}

#topcontrol a:hover {
    opacity: 1.0;
    text-decoration: none;
}

/* --- ページ全体の基本リンクスタイル（元サイト準拠） --- */
.robot-rehab-page a:link,
.robot-rehab-page a:visited {
    color: inherit;
    text-decoration: none;
}

.robot-rehab-page a,
.robot-rehab-page a:hover,
.robot-rehab-page a:focus {
    cursor: pointer;
    outline: none;
}

/* ==========================
   共通：全体を1カラム全幅で使う
========================== */
.robot-rehab-page .rehab-full-container{
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}

.robot-rehab-page .rehab-content{
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}

/* ==========================
   ヒーロー上部（アンカー＋ロゴ）
   - PC：従来の横並びアンカー
   - SP：左から全画面スライドメニュー（JSなし）
========================== */

/* --- 共通（PC基準） --- */
.robot-rehab-hero-nav{
  background-color: #080132;
  width: 100%;
  padding: 22px 0;
}

.robot-rehab-hero-nav-inner{
  width: 100%;
  padding: 0 clamp(18px, 3vw, 56px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(16px, 2vw, 40px);
  position: relative;
}

/* PC用アンカー（横並び） */
.robot-rehab-anchor{
  min-width: 0;
  flex: 1 1 auto;
}

.robot-rehab-anchor ul{
  display: flex;
  flex-wrap: wrap;
  gap: clamp(14px, 1.8vw, 28px);
  list-style: none;
  margin: 0;
  padding: 0;
}

/* 白文字 */
.robot-rehab-hero-nav .robot-rehab-anchor a,
.robot-rehab-hero-nav .robot-rehab-anchor a:visited{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #ffffff;
  text-decoration: none;
  font-size: clamp(16px, 1.05vw + 10px, 20px);
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 1.2;
  white-space: nowrap;
}

.robot-rehab-hero-nav .robot-rehab-anchor a:hover{
  opacity: 0.75;
}

/* 画像記号 */
.anchor-icon{
  width: clamp(22px, 1.4vw + 10px, 28px);
  height: auto;
  flex: 0 0 auto;
}

/* ロゴ */
.robot-rehab-hero-logo{
  flex: 0 0 auto;
  max-width: min(320px, 28vw);
}

.robot-rehab-hero-logo img{
  height: clamp(44px, 2.6vw + 20px, 68px);
  max-width: 100%;
  width: auto;
  display: block;
}

/* ==========================
   [新規] SPスライドメニュー：ベース（PCでは非表示）
========================== */

/* checkbox（見えない） */
.robot-rehab-nav-toggle{
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  clip: rect(0 0 0 0);
  overflow: hidden;
}

/* ハンバーガーボタン（PCは非表示） */
.robot-rehab-nav-btn{
  display: none;
}

/* SP用：スライドメニュー（PCは非表示） */
.robot-rehab-drawer,
.robot-rehab-drawer-overlay{
  display: none;
}

/* ==========================
   SP（スマホ）：左から全画面スライド
========================== */
@media (max-width: 960px){

  /* PC用アンカーは非表示（SPはスライド側だけ使う） */
  .robot-rehab-anchor--pc{
    display: none;
  }

  .robot-rehab-hero-nav{
    padding: 16px 0;
  }

  .robot-rehab-hero-nav-inner{
    align-items: center;
    justify-content: flex-end; /* ロゴを右に */
    gap: 12px;
  }

  /* ロゴ */
  .robot-rehab-hero-logo{
    max-width: none;
  }

  .robot-rehab-hero-logo img{
    height: 52px;
  }

/* ==========================
   [置き換え] SP：ハンバーガーボタン（閉じている時＝三本線）
========================== */
@media (max-width: 960px){

  /* ボタン（左上固定） */
  .robot-rehab-nav-btn{
    display: inline-flex;
    position: fixed;
    top: 14px;
    left: 14px;
    z-index: 20010;

    width: 52px;
    height: 52px;
    align-items: center;
    justify-content: center;

    background: rgba(255,255,255,0.92);
    border-radius: 16px;
    box-shadow: 0 10px 22px rgba(0,0,0,0.22);
    cursor: pointer;

    border: none;
    outline: none;
    -webkit-tap-highlight-color: transparent;
  }

  /* 三本線の枠（中央寄せ＋縦並び） */
  .robot-rehab-nav-btn__icon{
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 6px;
  }

  /* 三本線（閉じている時の見た目） */
  .robot-rehab-nav-btn__bar{
    display: block;
    width: 24px;
    height: 2px;
    background: #080132;
    border-radius: 999px;
    margin: 0;
    transition: transform .22s ease, opacity .22s ease;
  }

}

  /* スライドメニュー本体（全画面） */
  .robot-rehab-drawer{
    display: block;
    position: fixed;
    inset: 0;
    z-index: 20000;

    background: #080132;
    transform: translateX(-100%);
    transition: transform .28s ease;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
  }

  .robot-rehab-drawer__inner{
    padding: 86px 22px 28px;
    max-width: 720px;
  }

  .robot-rehab-drawer__title{
    margin: 0 0 18px;
    color: rgba(255,255,255,0.75);
    font-weight: 700;
    letter-spacing: 0.12em;
    font-size: 13px;
  }

  .robot-rehab-drawer__list{
    list-style: none;
    margin: 0;
    padding: 0;
    border-top: 1px solid rgba(255,255,255,0.16);
  }

  .robot-rehab-drawer__list li{
    border-bottom: 1px solid rgba(255,255,255,0.16);
  }

  .robot-rehab-drawer__list a,
  .robot-rehab-drawer__list a:visited{
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 18px 6px;
    color: #ffffff;
    text-decoration: none;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.5;
    font-size: 18px;
  }


  /* 暗幕 */
  .robot-rehab-drawer-overlay{
    display: block;
    position: fixed;
    inset: 0;
    z-index: 19990;
    background: rgba(0,0,0,0.45);
    opacity: 0;
    pointer-events: none;
    transition: opacity .28s ease;
  }


  /* 開いた状態（#robotNav が target になったら） */
  #robotNav:target{
    transform: translateX(0);
  }

  /* 暗幕も表示（drawerの直後に置くのがコツ） */
  #robotNav:target + .robot-rehab-drawer-overlay{
    opacity: 1;
    pointer-events: auto;
  }

  /* 開いている時：ボタンを×に */
  body.robot-rehab-page:has(#robotNav:target) .robot-rehab-nav-btn__bar:nth-child(1){
    transform: translateY(8px) rotate(45deg);
  }
  body.robot-rehab-page:has(#robotNav:target) .robot-rehab-nav-btn__bar:nth-child(2){
    opacity: 0;
    transform: scaleX(0);
  }
  body.robot-rehab-page:has(#robotNav:target) .robot-rehab-nav-btn__bar:nth-child(3){
    transform: translateY(-8px) rotate(-45deg);
  }

  /* 背景スクロール抑止（開いている間だけ） */
  body.robot-rehab-page:has(#robotNav:target){
    overflow: hidden;
  }
}

/* ==========================
   SPスライドナビ：文字色を白に強制
========================== */
@media (max-width: 960px){
  .robot-rehab-drawer a,
  .robot-rehab-drawer a:visited,
  .robot-rehab-drawer a:hover,
  .robot-rehab-drawer a:active{
    color: #ffffff !important;
  }
}



/* ==========================
   ヒーロー（動画＋コピー）
========================== */
.robot-rehab-hero{
    position: relative;
    width: 100%;
    background-color: #080132; /* 読み込み前の保険 */
    /* ヒーロー感を一段強化 */
    min-height: clamp(600px, 72vh, 900px);
    overflow: hidden;
}


/* 動画エリア */
.robot-rehab-hero-media{
    position: absolute;
    inset: 0;
    z-index: 1;
}

.robot-rehab-hero-video{
    width: 100%;
    height: 100%;
    object-fit: cover;     /* 画面にフィット */
    object-position: center;
    display: block;
}

/* 文字を読みやすくするオーバーレイ（濃紺＋グラデ） */
.robot-rehab-hero-overlay{
    position: absolute;
    inset: 0;
    z-index: 2;
    background:
        linear-gradient(90deg, rgba(8,1,50,0.78) 0%, rgba(8,1,50,0.55) 45%, rgba(8,1,50,0.20) 100%),
        linear-gradient(180deg, rgba(8,1,50,0.15) 0%, rgba(8,1,50,0.35) 100%);
}

/* テキストブロック */
.robot-rehab-hero-inner{
    position: relative;
    z-index: 3;
    width: 100%;
    /* ↓ 上下の余白を増やして“やや下寄せ” */
    padding: clamp(72px, 10vh, 140px) clamp(18px, 3vw, 56px) clamp(48px, 6vw, 96px);
    max-width: 1200px;
}

/* メインキャッチ */
.robot-rehab-hero-title{
    margin: 0 0 28px; /* ← リードとの隙間を広げる */
    color: #ffffff;
    font-weight: 700;
    letter-spacing: 0.03em;
    line-height: 1.25;
    font-size: clamp(30px, 2.4vw + 18px, 56px);
}

/* リード */
.robot-rehab-hero-lead{
    margin: 0 0 22px; /* 本文との間も少し余裕 */
    color: #FFD84D;   /* 医療サイトでも使いやすい落ち着いた黄色 */
    font-weight: 600;
    letter-spacing: 0.03em;
    line-height: 1.45;
    font-size: clamp(16px, 1.05vw + 10px, 22px);
}

/* 本文 */
.robot-rehab-hero-text{
    margin: 0;
    color: #ffffff;
    line-height: 1.9;
    letter-spacing: 0.02em;
    font-size: clamp(14px, 0.8vw + 10px, 18px);
    opacity: 0.95;
    max-width: 720px;
}

/* ==========================
   SP（スマホ）：縦に読みやすく・ヒーロー最適化
========================== */
@media (max-width: 960px){

    /* --- ヒーロー（動画） --- */
    .robot-rehab-hero{
        /* SPでは少し抑えめだが、窮屈にならない高さ */
        min-height: 480px;
    }

    /* --- ヒーロー内テキスト全体 --- */
    .robot-rehab-hero-inner{
        /* ↓ 全体を少し下へ */
        padding: 56px 18px 56px;
        max-width: 100%;
    }

    /* メインキャッチ */
    .robot-rehab-hero-title{
        margin-bottom: 22px; /* リードとの余白を確保 */
        font-size: clamp(26px, 6vw, 34px);
        line-height: 1.3;
    }

    /* リード文（黄色） */
    .robot-rehab-hero-lead{
        margin-bottom: 18px;
        color: #FFD84D;
        font-size: 16px;
        line-height: 1.5;
    }

    /* 本文 */
    .robot-rehab-hero-text{
        max-width: 100%;
        font-size: 14px;
        line-height: 1.9;
    }
}

/* ==========================
   浮き上がるメッセージセクション
   背景：濃紺／文字・下線：白
========================== */

.robot-rehab-float-message{
    width: 100%;
    padding: clamp(72px, 9vw, 140px) 0;
    background-color: #080132;
    overflow: hidden; /* 下線が画面外へ伸びるため */
}

.robot-rehab-float-message__title{
    position: relative;
    width: 100%;
    margin: 0 auto;
    padding: 0 clamp(18px, 3vw, 56px);
    text-align: center;

    color: #ffffff;
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1.35;
    font-size: clamp(22px, 2vw + 10px, 40px);

    /* スクロール前（浮き上がり初期状態） */
    opacity: 0;
    transform: translateY(28px);
    transition: opacity .7s ease, transform .7s ease;
}

/* 画面内に入ったら浮き上がる */
.robot-rehab-float-message__title.is-inview{
    opacity: 1;
    transform: translateY(0);
}

/* 下線（左→右へ、画面外まで流れる） */
.robot-rehab-float-message__underline{
    position: absolute;
    left: 0;
    bottom: -16px;

    height: 3px;
    width: 160vw;          /* 画面右へ大きく飛び出す */
    background-color: #ffffff;

    transform-origin: left center;
    transform: scaleX(0);
}

/* テキスト表示後に下線アニメ開始 */
.robot-rehab-float-message__title.is-underline
.robot-rehab-float-message__underline{
    animation: robotRehabUnderline 1.0s ease forwards;
}

@keyframes robotRehabUnderline{
    from{
        transform: scaleX(0);
    }
    to{
        transform: scaleX(1);
    }
}

/* ==========================
   SP（スマホ）調整
========================== */
@media (max-width: 960px){
    .robot-rehab-float-message{
        padding: 56px 0;
    }

    .robot-rehab-float-message__underline{
        bottom: -14px;
        height: 3px;
        width: 170vw;
    }
}

/* ==========================
   次セクション：左 動画(16:9そのまま表示) / 右 本文（濃紺背景）
   ＋ ふわっと表示
   ＋ ヒーロー風：薄いマスク
========================== */

.robot-rehab-split{
    width: 100%;
    background-color: #080132;
    padding: clamp(56px, 7vw, 130px) 0;
    overflow: hidden;
}

.robot-rehab-split__inner{
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;

    display: grid;

    /* ★ここが調整ポイント */
    grid-template-columns:
        minmax(0, 0.85fr)   /* 左：動画を少し細く */
        minmax(0, 740px);   /* 右：本文を広く */

    gap: clamp(24px, 4vw, 72px); /* 少しゆったり */
    align-items: center;
}

/* --------------------------
   左：メディア枠（16:9固定）
-------------------------- */
.robot-rehab-split__image{
    width: 100%;
    border-radius: 0 18px 18px 0; /* 左端は角丸なし（お好み） */
    overflow: hidden;
    position: relative;

    /* ★16:9を維持（高さは自動で決まる） */
    aspect-ratio: 16 / 9;
}

/* 画像も置けるようにしつつ、動画は「切らずにそのまま」表示 */
.robot-rehab-split__image img,
.robot-rehab-split__image video{
    width: 100%;
    height: 100%;
    display: block;
    object-position: center;
}

/* 画像は従来通り cover（写真用） */
.robot-rehab-split__image img{
    object-fit: cover;
}

/* 動画は contain（16:9を切らずに表示） */
.robot-rehab-split__video{
    object-fit: contain; /* ★切らない */
    background: #000;    /* 余白が出たときに黒で締める */
}

/* --------------------------
   ヒーロー風：薄いマスク（オーバーレイ）
-------------------------- */
.robot-rehab-split__image::after{
    content: "";
    position: absolute;
    inset: 0;

    /* ★薄いマスク：濃紺背景になじむ */
    background: linear-gradient(
        90deg,
        rgba(8, 1, 50, 0.38) 0%,
        rgba(8, 1, 50, 0.22) 45%,
        rgba(0, 0, 0, 0.12) 100%
    );

    pointer-events: none;
}

/* --------------------------
   右：本文（余白を微調整）
-------------------------- */
.robot-rehab-split__text{
    color: #ffffff;

    padding:
        clamp(20px, 2.5vw, 36px)
        clamp(18px, 3vw, 56px)
        clamp(20px, 2.5vw, 36px)
        0;

    opacity: 0;
    transform: translateY(22px);
    transition: opacity .75s ease, transform .75s ease;
}

.robot-rehab-split__text p{
    margin: 0;
    line-height: 2.0;
    letter-spacing: 0.02em;
    font-size: clamp(14px, 0.8vw + 10px, 18px);
    opacity: 0.96;
}

/* ふわっと：表示 */
.robot-rehab-split .js-reveal.is-inview{
    opacity: 1;
    transform: translateY(0);
}

/* ==========================
   SP（スマホ）：上 動画 / 下 本文
   ※16:9を維持して「そのまま表示」
========================== */
@media (max-width: 960px){
    .robot-rehab-split{
        padding: 48px 0 64px;
    }

    .robot-rehab-split__inner{
        grid-template-columns: 1fr;
        gap: 18px;
        max-width: 100%;
    }

    /* ★SPも16:9を維持（高さ固定はしない） */
    .robot-rehab-split__image{
        aspect-ratio: 16 / 9;
    }

    .robot-rehab-split__text p{
        font-size: 14px;
        line-height: 1.95;
    }
}



/* ==========================
   ロボット紹介セクション（背景：白）
   左：sticky固定 / 右：スクロール
========================== */

.robot-intro{
  width: 100%;
  background: #ffffff;
  padding: clamp(56px, 7vw, 120px) 0;
}

.robot-intro__inner{
  width: 100%;
  max-width: none;              /* ★中央寄せをやめる */
  margin: 0;                    /* ★左端基準 */
  
  /* ★左は極小、右だけ余白 */
  padding-left: clamp(4px, 1vw, 12px);
  padding-right: clamp(18px, 3vw, 56px);

  display: grid;

  /* ★左カラムを細く */
  grid-template-columns: 0.65fr 1.35fr;

  gap: clamp(18px, 3vw, 56px);
  align-items: start;
}

/* ---------- 左（sticky） ---------- */
.robot-intro__left{
  position: relative;
}

.robot-intro__left-box{
  position: sticky;
  top: 110px;         /* 上部ナビ分。被るなら 120〜150px */
  max-height: calc(100vh - 110px); /* 画面内に収める */
  overflow: auto;     /* ロボット名が増えても左だけスクロール可能 */
  padding: 12px 8px 8px;
}

.robot-intro__left-title{
  position: relative;
  margin: 0 0 18px;
  color: #080132;
  font-weight: 700;
  letter-spacing: 0.04em;
  font-size: clamp(20px, 1.2vw + 12px, 28px);
  line-height: 1.2;
  padding-bottom: 10px;
}

/* 背景の英字 */
.robot-intro__left-bg{
  position: absolute;
  left: 0;
  top: -10px;
  font-size: clamp(40px, 3.6vw + 18px, 74px);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: lowercase;
  color: rgba(8, 1, 50, 0.10);
  pointer-events: none;
  user-select: none;
  white-space: nowrap;
}

/* 一覧 */
.robot-intro__list{
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 14px;
}

.robot-intro__list a{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #080132;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-decoration: none;
  line-height: 1.35;
  font-size: clamp(15px, 0.6vw + 12px, 18px);
}

.robot-intro__list a:hover{
  opacity: 0.75;
}

.robot-intro__bullet{
  width: 24px;
  height: auto;
  flex: 0 0 auto;
}

/* ---------- 右 ---------- */
.robot-intro__header{
  margin-bottom: clamp(22px, 2vw, 32px);
}

.robot-intro__title{
  position: relative;
  margin: 0 0 16px;
  padding-bottom: 14px;
  color: #080132;
  font-weight: 700;
  letter-spacing: 0.03em;
  font-size: clamp(18px, 1.1vw + 12px, 26px);
  line-height: 1.25;
}

.robot-intro__title-line{
  position: absolute;
  left: 0;
  bottom: 0;
  width: min(320px, 70%);
  height: 3px;
  background: #080132;
}

.robot-intro__lead{
  margin: 0;
  color: #111111;
  line-height: 1.95;
  letter-spacing: 0.02em;
  font-size: clamp(14px, 0.6vw + 11px, 17px);
}

/* ---------- ロボットカード ---------- */
.robot-card{
  display: grid;
  grid-template-columns: 1fr 240px; /* ★本文広く／画像は固定幅 */
  gap: clamp(14px, 2vw, 26px);
  align-items: start;

  padding: clamp(16px, 2vw, 22px);
  border-radius: 18px;
  background: #ffffff;
  box-shadow: 0 10px 30px rgba(0,0,0,0.08);
  margin-top: 18px;
}

.robot-card__head{
  margin: 0 0 8px;
  display: flex;
  align-items: baseline;
  gap: 10px;
  color: #080132;
  font-weight: 700;
  letter-spacing: 0.03em;
}

.robot-card__no{
  font-size: clamp(16px, 0.6vw + 12px, 20px);
}

.robot-card__name{
  font-size: clamp(16px, 0.9vw + 12px, 22px);
}

.robot-card__target{
  margin: 0 0 10px;
  color: #080132;
  font-weight: 700;
  letter-spacing: 0.02em;
  font-size: clamp(13px, 0.4vw + 11px, 15px);
  opacity: 0.92;
}

.robot-card__body{
  margin: 0;
  color: #111111;
  line-height: 1.95;
  letter-spacing: 0.02em;
  font-size: clamp(14px, 0.6vw + 11px, 16px);
}

.robot-card__image{
  border-radius: 14px;
  overflow: hidden;
  background: #f4f4f6; /* 余白が出た時の保険（不要なら消してOK） */
  display: flex;
  align-items: center;
  justify-content: center;
}

.robot-card__image img{
  width: 100%;
  height: auto;        /* ★比率を維持 */
  display: block;
  object-fit: contain; /* ★切り抜かない */
}

/* ---------- SP：縦積み（sticky解除） ---------- */
@media (max-width: 960px){
  .robot-intro{
    padding: 56px 0;
  }

  .robot-intro__inner{
    grid-template-columns: 1fr;
    gap: 22px;
    max-width: 100%;
  }

  .robot-intro__left-box{
    position: static; /* sticky解除 */
    padding: 0;
  }

  .robot-intro__left-bg{
    top: -6px;
    font-size: 44px;
  }

  .robot-intro__bullet{
    width: 22px;
  }

  .robot-card{
    grid-template-columns: 1fr;
  }

  .robot-card__image img{
    height: 220px;
  }
}


/* ==========================
   医師のご挨拶セクション
   グラデ全表示 + 下端揃え 完全版
========================== */

.robot-doctor{
  width: 100%;
  background: #080132;
  padding: clamp(56px, 7vw, 120px) 0;
  position: relative;
  overflow: hidden;
}

/* ==========================
   グラデーション（背景として全面表示）
========================== */
.robot-doctor::before{
  content: "";
  position: absolute;
  inset: 0;
  background-image: url("https://irie.or.jp/wp-content/uploads/2026/01/blue_gradation.png");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  z-index: 0;
}

/* ==========================
   見出し
========================== */
.robot-doctor__head{
  width: 100%;
  padding: 0 clamp(18px, 3vw, 56px);
  margin-bottom: 34px;
  position: relative;
  z-index: 2;
}

.robot-doctor__title{
  position: relative;
  margin: 0;
  color: #ffffff;
  font-weight: 700;
  letter-spacing: 0.04em;
  font-size: clamp(22px, 1.4vw + 14px, 32px);
  padding-bottom: 18px;
}

.robot-doctor__title-bg{
  position: absolute;
  left: 0;
  top: -26px;
  font-size: clamp(54px, 4.8vw + 18px, 108px);
  font-weight: 700;
  letter-spacing: 0.08em;
  color: rgba(255,255,255,0.14);
  white-space: nowrap;
  pointer-events: none;
}

.robot-doctor__title-line{
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100vw;
  height: 3px;
  background: rgba(255,255,255,0.9);
  transform: translateX(calc(-1 * clamp(18px, 3vw, 56px)));
}

/* ==========================
   本体（高さ基準になるラッパー）
========================== */
.robot-doctor__inner{
  width: 100%;
  padding: 0 clamp(18px, 3vw, 56px);
  display: grid;
  grid-template-columns: minmax(300px, 0.95fr) minmax(520px, 1.05fr);
  gap: clamp(18px, 3vw, 56px);
  align-items: stretch;
  position: relative;
  z-index: 2;
}

/* ==========================
   左：医師（下端揃え）
========================== */
.robot-doctor__profile{
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 16px;
}

.robot-doctor__role{
  color: rgba(255,255,255,0.78);
  font-size: 16px;
  font-weight: 700;
}

.robot-doctor__jp{
  color: #ffffff;
  font-size: clamp(22px, 1.3vw + 12px, 30px);
  font-weight: 700;
}

.robot-doctor__en{
  color: rgba(255,255,255,0.82);
  font-size: clamp(14px, 0.6vw + 12px, 18px);
}

/* 医師写真（大きめ） */
.robot-doctor__photo{
  width: min(420px, 30vw);
  border-radius: 18px;
  overflow: hidden;
}

.robot-doctor__photo img{
  width: 100%;
  height: auto;
  display: block;
}

/* ==========================
   右：本文（下端揃え）
========================== */
.robot-doctor__message{
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  max-width: 840px;
}

.robot-doctor__message p{
  margin: 0 0 18px;
  color: #ffffff;
  line-height: 2.05;
  font-size: clamp(14px, 0.7vw + 11px, 17px);
}

.robot-doctor__message p:last-child{
  margin-bottom: 0;
}

/* ==========================
   SP：縦積み
========================== */
@media (max-width: 960px){
  .robot-doctor__inner{
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .robot-doctor__profile,
  .robot-doctor__message{
    justify-content: flex-start;
  }

  .robot-doctor__photo{
    width: 280px;
  }
}


/* ==========================
   画像スライダー（右→左 / 全幅 / 4枚表示 / 隙間0）
   ・医師セクション直下：余白ゼロ
   ・画像は3:2で表示（object-fit: cover）
========================== */

.robot-gallery{
  width: 100%;
  margin: 0;          /* 隙間ゼロ */
  padding: 0;         /* 隙間ゼロ */
  background: #080132; /* 医師セクションとの“つながり”が欲しければ濃紺のまま */
  line-height: 0;     /* imgの隙間対策 */
}

.robot-gallery__viewport{
  width: 100%;
  overflow: hidden;
}

/* 4枚分が常に見える */
.robot-gallery__track{
  display: flex;
  gap: 0;                 /* 画像間0 */
  width: max-content;
  will-change: transform;
  animation: robotGalleryMarquee 22s linear infinite;
}

/* 1枚の幅：画面幅の1/4 */
.robot-gallery__item{
  flex: 0 0 25vw;         /* 4枚 = 100vw */
}

/* 3:2（横長）固定 */
.robot-gallery__item img{
  width: 100%;
  aspect-ratio: 3 / 2;
  height: auto;
  display: block;
  object-fit: cover;
  object-position: center;
}

/* 5枚分だけ左へ送って、複製に繋げる（無限ループ） */
@keyframes robotGalleryMarquee{
  from{ transform: translateX(0); }
  to  { transform: translateX(-125vw); } /* 25vw × 5枚 */
}

/* SP調整：スマホは2枚表示（必要なら） */
@media (max-width: 960px){
  .robot-gallery__item{
    flex: 0 0 50vw;        /* 2枚 = 100vw */
  }
  @keyframes robotGalleryMarquee{
    from{ transform: translateX(0); }
    to  { transform: translateX(-250vw); } /* 50vw × 5枚 */
  }
}

/* ユーザーがOS設定でアニメーション軽減している場合は停止 */
@media (prefers-reduced-motion: reduce){
  .robot-gallery__track{
    animation: none;
    transform: none;
  }
}


/* ==========================
   Consultation Process（白背景 / 1カラム）
   - 英字：画面左端から
   - 日本語見出し＆本文：中央寄りで揃える
   - 下線：日本語見出しの幅だけ
========================== */

.robot-process{
  width: 100%;
  background: #ffffff;
  padding: clamp(64px, 7vw, 120px) 0;
  position: relative;
  overflow: hidden;
}

.robot-process__inner{
  width: 100%;
  position: relative;
}

/* 英字：画面左端から出す（paddingの影響を受けない） */
.robot-process__en{
  position: absolute;
  left: 0;
  top: 0;

  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: none;
  color: rgba(8, 1, 50, 0.10);

  font-size: clamp(42px, 4.2vw + 10px, 98px);
  line-height: 1;

  pointer-events: none;
  user-select: none;
  white-space: nowrap;
}

/* 日本語側：中央寄りに寄せる（左端揃えの基準） */
.robot-process__content{
  width: 100%;
  max-width: 980px;
  margin: 0 auto;
  padding: 0 clamp(18px, 3vw, 56px);

  /* 英字と被らない余白（上方向） */
  padding-top: clamp(30px, 3.2vw, 64px);
}

/* 見出し */
.robot-process__title{
  position: relative;
  margin: 0 0 26px;
  padding-bottom: 14px;

  color: #080132;
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.25;
  font-size: clamp(22px, 1.4vw + 12px, 34px);
}

/* 下線：日本語見出しの幅だけ */
.robot-process__underline{
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 3px;
  background: #080132;
}

/* ブロック */
.robot-process__block{
  margin-top: clamp(22px, 3vw, 40px);
}

/* 小見出し（段落記号アイコン） */
.robot-process__subhead{
  display: flex;
  align-items: center;
  gap: 12px;

  margin: 0 0 14px;
  color: #080132;
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.3;
  font-size: clamp(16px, 0.8vw + 12px, 20px);
}

.robot-process__icon{
  width: 26px;
  height: auto;
  flex: 0 0 auto;
}

/* 本文 */
.robot-process__text{
  margin: 0;
  color: #111111;
  line-height: 2.0;
  letter-spacing: 0.02em;
  font-size: clamp(14px, 0.6vw + 11px, 17px);
}

/* 箇条書き */
.robot-process__list{
  margin: 0;
  padding: 0;
  list-style: none;

  display: grid;
  gap: 12px;

  color: #111111;
  line-height: 1.9;
  letter-spacing: 0.02em;
  font-size: clamp(14px, 0.6vw + 11px, 17px);
}

.robot-process__list li{
  position: relative;
  padding-left: 18px;
}

.robot-process__list li::before{
  content: "・";
  position: absolute;
  left: 0;
  top: 0;
}

/* ==========================
   SP（スマホ）調整
========================== */
@media (max-width: 960px){
  .robot-process{
    padding: 56px 0 72px;
  }

  .robot-process__en{
    top: -6px;
    font-size: 52px;
    letter-spacing: 0.06em;
  }

  .robot-process__content{
    max-width: 100%;
    padding-top: 46px;
  }

  .robot-process__icon{
    width: 24px;
  }
}

/* ==========================
   よくある質問（FAQ）
   ※ robot-process セクション内で
      「対象となる方」「主な対象疾患」と同じ幅・左端に揃える
   - Qバー：濃紺 #080132 塗りつぶし
   - Q文字：白
========================== */

.robot-process__faq{
  width: 100%;
  max-width: 980px;
  margin: clamp(44px, 6vw, 72px) auto 0;
  padding: 0 clamp(18px, 3vw, 56px);
  box-sizing: border-box;
}


/* 見出し：同セクションの小見出し系に合わせる */
.robot-process__faq-title{
  margin: 0 0 18px;
  color: #080132;
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.3;
  font-size: clamp(16px, 0.8vw + 12px, 20px);
}

/* グループ間 */
.robot-process__faq-group{
  margin-top: clamp(18px, 3vw, 30px);
}

/* 小見出し（一般向け／医療機関向け） */
.robot-process__faq-subtitle{
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 14px;

  color: #080132;
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.3;
  font-size: clamp(15px, 0.6vw + 12px, 18px);
}

/* 黄色の● */
.robot-process__faq-dot{
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #FFD84D;
  flex: 0 0 auto;
}

/* ===== アコーディオン：details/summary ===== */
.robot-faq{
  border: none;
  margin: 0 0 10px;
}

/* 質問バー（濃紺＋白） */
.robot-faq__q{
  list-style: none;
  cursor: pointer;

  display: block;
  width: 100%;
  background: #080132;
  color: #ffffff;

  padding: 16px 54px 16px 18px;
  border-radius: 8px;

  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1.4;
  font-size: clamp(14px, 0.6vw + 12px, 17px);

  position: relative;
}

/* 標準マーカー非表示 */
.robot-faq__q::-webkit-details-marker{
  display: none;
}

/* ＋／−（白） */
.robot-faq__q::after{
  content: "+";
  position: absolute;
  right: 18px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 22px;
  font-weight: 700;
  color: #ffffff;
  line-height: 1;
}

.robot-faq[open] .robot-faq__q::after{
  content: "−";
}

/* 回答エリア */
.robot-faq__a{
  margin-top: 10px;
  padding: 14px 18px 18px;

  background: #f7f7f7;
  border-radius: 8px;

  border: 1px solid rgba(8,1,50,0.12);
}

.robot-faq__a p{
  margin: 0;
  color: #111111;
  line-height: 1.9;
  letter-spacing: 0.02em;
  font-size: clamp(14px, 0.6vw + 11px, 16px);
}

/* ホバー（任意：少しだけ明るく） */
.robot-faq__q:hover{
  opacity: 0.92;
}

/* ==========================
   SP（スマホ）
========================== */
@media (max-width: 960px){
  .robot-faq__q{
    padding: 14px 48px 14px 16px;
    border-radius: 8px;
  }

  .robot-faq__q::after{
    right: 16px;
    font-size: 22px;
  }

  .robot-faq__a{
    padding: 14px 16px 16px;
  }
}


/* ==========================
   Contact（濃紺背景 / 白文字）
   - 英字：左端から
   - 本文：中央寄せ（max-width: 980px）
   - 見出し下：アンダーライン
   - 2カラム：患者さん / 医療機関
   - BOX（枠線・枠内色）なし
   - HOME：白ボタン＋濃紺文字
========================== */

.robot-contact{
  width: 100%;
  background: #080132;
  color: #ffffff;
  padding: clamp(70px, 7vw, 120px) 0;
  position: relative;
  overflow: hidden;
}

.robot-contact__inner{
  width: 100%;
  position: relative;
}

/* 英字：左端から（装飾） */
.robot-contact__en{
  position: absolute;
  left: 0;
  top: 0;

  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: none;
  color: rgba(255, 255, 255, 0.10);

  font-size: clamp(42px, 4.2vw + 10px, 98px);
  line-height: 1;

  pointer-events: none;
  user-select: none;
  white-space: nowrap;
}

/* コンテンツ幅（中央寄せ） */
.robot-contact__content{
  width: 100%;
  max-width: 980px;
  margin: 0 auto;

  padding: 0 clamp(18px, 3vw, 56px);
  padding-top: clamp(30px, 3.2vw, 64px); /* 英字と干渉しない */
  box-sizing: border-box;
}

/* 見出し */
.robot-contact__title{
  position: relative;
  margin: 0 0 28px;
  padding-bottom: 14px;

  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.25;
  font-size: clamp(22px, 1.4vw + 12px, 34px);
}

/* 下線 */
.robot-contact__underline{
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 3px;
  background: #ffffff;
}

/* 2カラム */
.robot-contact__grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(16px, 2.2vw, 28px);
  margin-top: 18px;
}

/* カード（BOXなし：枠線・背景なし） */
.robot-contact__card{
  border: none;
  background: transparent;
  border-radius: 0;
  padding: 0;
  box-sizing: border-box;
}

/* お問い合わせラベル（アイコン付き） */
.robot-contact__label{
  margin: 0 0 14px;
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.3;
  font-size: clamp(16px, 0.8vw + 12px, 20px);

  display: flex;
  align-items: center;
  gap: 8px;
}

/* 既存アンカーアイコンと統一 */
.robot-contact__label .anchor-icon{
  width: 26px;
  height: auto;
  flex-shrink: 0;
}

/* 行 */
.robot-contact__row{
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin-top: 10px;
}

/* 種別（TEL/FAX） */
.robot-contact__tag{
  display: inline-block;
  min-width: 44px;
  font-weight: 700;
  letter-spacing: 0.06em;
  opacity: 0.95;
}

/* 先方名 */
.robot-contact__item{
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1.5;
  font-size: clamp(14px, 0.6vw + 11px, 16px);
}

/* テキスト（FAXなど） */
.robot-contact__text{
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1.5;
  font-size: clamp(16px, 0.8vw + 12px, 22px);
}

/* TEL（目立たせる） */
.robot-contact__tel{
  color: #ffffff;
  text-decoration: none;

  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1.2;
  font-size: clamp(18px, 1.2vw + 12px, 28px);
}

.robot-contact__tel:hover{
  opacity: 0.86;
  text-decoration: underline;
}

/* HOMEボタン */
.robot-contact__home{
  margin-top: clamp(30px, 4vw, 54px);
  display: flex;
  justify-content: center;
}

.robot-contact__homebtn{
  display: inline-flex;
  align-items: center;
  justify-content: center;

  width: min(320px, 86%);
  height: 48px;

  background: #ffffff;
  color: #080132; /* ← HOME文字は濃紺 */

  border-radius: 999px;
  text-decoration: none;

  font-weight: 700;
  letter-spacing: 0.08em;
}

/* HOMEボタン：リンク状態でも濃紺に固定 */
.robot-contact__homebtn:link,
.robot-contact__homebtn:visited{
  color: #080132;
}

/* ついでに hover/focus も（任意） */
.robot-contact__homebtn:hover,
.robot-contact__homebtn:focus{
  color: #080132;
}


.robot-contact__homebtn:hover{
  opacity: 0.9;
}

/* ==========================
   SP
========================== */
@media (max-width: 960px){
  .robot-contact{
    padding: 64px 0 84px;
  }

  .robot-contact__en{
    top: -6px;
    font-size: 52px;
    letter-spacing: 0.06em;
  }

  .robot-contact__content{
    max-width: 100%;
    padding-top: 46px;
  }

  .robot-contact__grid{
    grid-template-columns: 1fr;
  }

  .robot-contact__homebtn{
    height: 46px;
  }
}

/* HOME文字が消える対策（強制復帰） */
.robot-contact__homebtn{
  font-size: 16px !important;
  line-height: 1.2 !important;

  text-indent: 0 !important;
  white-space: nowrap !important;
  overflow: visible !important;

  color: #080132 !important;
}
