/*
 * Acrus Care Taxi Theme - メインスタイルシート
 * アクセントカラー(--accent)は wp_add_inline_style によりカスタマイザーの値で上書きされます。
 *
 * 見出しフォント：Zen Maru Gothic（丸ゴシック）
 * 差し替えるときは --font-heading の値だけ変えればよい。
 */
  :root{
    --font-heading:'Zen Maru Gothic','M PLUS Rounded 1c',sans-serif;
    --bg-cream:#fff8f1;
    --bg-paper:#fef2e6;
    --white:#ffffff;
    --ink:#2b2b2b;
    --ink-soft:#6b5b4d;
    --line:#f3dcc2;
    --accent:#ee7800;
    --accent-soft:#f7b873;
    --ease:cubic-bezier(0.25,1,0.5,1);
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{
    scroll-behavior:smooth;
    /* 見出し以外の本文・ラベル・価格表示など（rem基準のテキスト）が画面サイズに応じて
       滑らかに拡大・縮小するよう、ルートのフォントサイズを可変にしています。
       見出し（h1/h2/h3など）はpx基準のclamp()で別途固定しているため、この影響を受けません。 */
    font-size:clamp(15.5px, 0.95vw + 11.5px, 17.5px);
  }
  body{
    background:var(--bg-cream);
    color:var(--ink);
    font-family:'Zen Maru Gothic','M PLUS Rounded 1c',sans-serif;
    font-weight:500;
    line-height:1.9;
    overflow-x:hidden;
  }
  ::selection{background:var(--accent-soft);color:var(--ink);}
  a{text-decoration:none;color:inherit;}
  img{max-width:100%;display:block;}

  .eyebrow{
    font-family:'Jost',sans-serif;
    font-size:.72rem;
    letter-spacing:.32em;
    text-transform:uppercase;
    color:var(--accent);
    display:block;
    margin-bottom:18px;
  }
  /* font-weight:600 は Zen Maru Gothic に収録が無く、ブラウザが合成した偽の太字になっていた。
     実在する700を指定する。
     palt は日本語の約物（・、。）の前後にできる余分な空きを詰める指定。
     これが無いと「料金・機材」の中黒だけ間延びして見える。 */
  body{font-feature-settings:"palt" 1;}
  /* palt を効かせたうえで字間を足すと、詰めた分がまた開いて中黒が浮く。見出しは0にする */
  h1,h2,h3,h4{font-family:var(--font-heading);font-weight:700;letter-spacing:0;}

  .section-title{
    font-size:clamp(27px,3.2vw,40px);
    border-left:1px solid var(--accent-soft);
    padding-left:24px;
    line-height:1.6;
  }

  /* ===== HEADER ===== */
  /* 開いた瞬間から背景を出す。写真の上に透過で乗せるとロゴもメニューも読めないため。
     スクロールで余白だけ詰まる */
  header{
    position:fixed;top:0;left:0;width:100%;
    display:block;
    padding:18px 6%;
    z-index:1000;
    background-color:rgba(251,250,247,0.94);
    backdrop-filter:blur(12px);
    box-shadow:0 1px 0 var(--line);
    transition:padding .5s var(--ease), box-shadow .5s var(--ease);
  }
  header.scrolled{
    padding:12px 6%;
    box-shadow:0 4px 20px -12px rgba(43,39,33,.28);
  }
  /* table-cell だと幅が固定され、メニューが入りきらないと2行に折り返してしまう。
     flexにして項目間の余白を画面幅に応じて縮める */
  .header-row{display:flex;align-items:center;justify-content:space-between;gap:20px;}
  .logo-cell, .nav-cell{display:block;}
  .logo-cell{flex:0 1 auto;min-width:0;width:auto;}
  .logo{
    font-family:'Zen Maru Gothic','M PLUS Rounded 1c',sans-serif;
    font-size:1.3rem;
    letter-spacing:.18em;
    font-weight:600;
  }
  .logo i{color:var(--accent);margin-right:10px;font-size:1rem;}
  /* ヘッダーに背景が付いたので、白フチ・白影で読ませる小細工は不要になった */

  /* ロゴ画像：どんなサイズの画像をアップロードしても、縦横比を保ったままヘッダーの高さに収まるよう自動調整 */
  .logo-image{
    line-height:0;
    transition:transform .6s var(--ease);
  }
  .logo-image .custom-logo-link{display:block;line-height:0;}
  /* 横長ロゴ（2.5:1）で「介護タクシー」の細い文字まで読ませるには高さが要る。
     30pxだと幅74pxまで縮み、副題が潰れて別のロゴに見えてしまっていた */
  .logo-image img.custom-logo{
    display:block;
    height:auto;
    max-height:60px;
    width:auto;
    max-width:100%;
    object-fit:contain;
    transition:max-height .5s var(--ease);
  }
  header.scrolled .logo-image img.custom-logo{max-height:50px;}

  .nav-cell{text-align:right;flex:1 1 auto;min-width:0;}
  nav ul{list-style:none;display:inline-flex;align-items:center;gap:clamp(16px,2.4vw,42px);white-space:nowrap;}
  nav li{display:inline-block;margin-left:0;}
  nav a{
    font-family:'Jost',sans-serif;
    font-size:clamp(.72rem,.95vw,.82rem);
    letter-spacing:.06em;
    position:relative;
    padding-bottom:4px;
  }
  nav a::after{
    content:'';position:absolute;left:0;bottom:0;width:0;height:1px;
    background:var(--accent);transition:width .6s var(--ease);
  }
  nav a:hover::after{width:100%;}
  .nav-toggle{display:none;}

  /* ===== HERO ===== */
  .hero{
    position:relative;
    height:100vh;
    min-height:640px;
    display:table;
    width:100%;
    overflow:hidden;
  }
  .hero-bg{
    position:absolute;inset:0;
    overflow:hidden;
  }
  .hero-bg-slider .hero-slide{
    position:absolute;inset:0;
    background-size:cover;background-position:center;
    opacity:0;
    transform:scale(1.08);
    transition:opacity 1.8s ease, transform 9s linear;
  }
  .hero-bg-slider .hero-slide.active{
    opacity:1;
    transform:scale(1);
    z-index:1;
  }
  .hero-bg-video, .hero-bg-video video{
    position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  }
  .hero-overlay{
    position:absolute;inset:0;z-index:2;
    background-image:
      radial-gradient(rgba(255,255,255,.45) .6px, transparent .7px),
      linear-gradient(180deg, rgba(43,39,33,.36) 0%, rgba(43,39,33,.12) 38%, rgba(43,39,33,.5) 100%);
    background-size:6px 6px, 100% 100%;
    background-position:0 0, 0 0;
    background-repeat:repeat, no-repeat;
  }
  .hero-inner{
    position:relative;z-index:3;display:table-cell;vertical-align:bottom;
    padding:0 6% 100px;
  }
  .hero-eyebrow{
    position:relative;z-index:3;
    font-family:'Jost',sans-serif;
    color:#f3ede2;
    font-size:.78rem;
    letter-spacing:.4em;
    text-transform:uppercase;
    opacity:.9;
    margin-bottom:26px;
    display:inline-block;
    border-bottom:1px solid rgba(255,255,255,.4);
    padding-bottom:10px;
  }
  /* 縦書きなので「height」が1列に入る文字数を決める。64vh のままだと画面の高さ次第で
     入る文字数が変わり、「明るく暮らす、そ／の一歩を。」と読点の手前で切れてしまう。
     8.4em ＝ 7文字ぶんに固定して「明るく暮らす、」で改行させる。
     文字サイズは画面の高さも見て決め、短い画面でもはみ出さないようにする。
     ※本来はカスタマイザーの原稿に改行を入れるのが正しい直し方（acrus_br が <br> にする） */
  .hero h1{
    color:#fff;
    font-size:clamp(38px,min(6.4vw,7vh),74px);
    line-height:1.5;
    writing-mode:vertical-rl;
    text-orientation:mixed;
    font-weight:700;
    letter-spacing:.12em;
    text-shadow:0 4px 24px rgba(0,0,0,.25);
    height:8.4em;
    max-height:64vh;
  }
  .hero-sub{
    position:absolute;z-index:3;
    left:6%;bottom:46px;
    color:#f4efe6;
    font-family:'Jost',sans-serif;
    font-size:.84rem;
    letter-spacing:.06em;
    max-width:340px;
    line-height:2.1;
  }
  .scroll-cue{
    position:absolute;z-index:3;right:6%;bottom:46px;
    writing-mode:vertical-rl;
    color:#f4efe6;
    font-family:'Jost',sans-serif;
    font-size:.72rem;
    letter-spacing:.3em;
    display:flex;align-items:center;gap:14px;
  }
  .scroll-cue::after{
    content:'';width:1px;height:60px;background:rgba(255,255,255,.5);
    animation:scrollLine 2.2s infinite var(--ease);
  }
  @keyframes scrollLine{0%{transform:scaleY(0);transform-origin:top;}50%{transform:scaleY(1);transform-origin:top;}50.01%{transform-origin:bottom;}100%{transform:scaleY(0);transform-origin:bottom;}}

  /* ===== HEADING ANIMATION ===== */
  .reveal-heading{
    opacity:0;
    transform:translateY(28px);
    transition:opacity 1s var(--ease), transform 1s var(--ease);
  }
  .reveal-heading.in{
    opacity:1;
    transform:translateY(0);
  }
  .section-title.reveal-heading{
    border-left-color:transparent;
  }
  .section-title.reveal-heading::before{
    content:'';
    position:absolute;
    left:-1px;top:0;
    width:1px;height:0;
    background:var(--accent-soft);
    transition:height 1.1s var(--ease) .2s;
  }
  .section-title.reveal-heading.in::before{height:100%;}
  .section-title{position:relative;}
  .hero h1.reveal-heading{transform:translateY(0) translateX(18px);}
  .hero h1.reveal-heading.in{transform:translateY(0) translateX(0);}

  .sim-admin-note{
    font-family:'Jost',sans-serif;font-size:.8rem;color:var(--accent);
    background:#fff3e2;border:1px solid var(--accent-soft);
    padding:14px 20px;margin-top:24px;max-width:680px;
    display:flex;align-items:flex-start;gap:10px;line-height:1.8;
  }
  .sim-admin-note i{margin-top:3px;}

  /* ===== GENERIC SECTION ===== */
  section{padding:160px 6%;position:relative;}
  .reveal{opacity:0;transform:translateY(36px);transition:opacity 1s var(--ease), transform 1s var(--ease);}
  .reveal.in{opacity:1;transform:translateY(0);}

  /* ===== CONCEPT ===== */
  #concept{background:var(--bg-cream);}
  .concept-grid{
    display:table;width:100%;table-layout:fixed;border-spacing:0;
  }
  .concept-row{display:table-row;}
  .concept-cell{display:table-cell;vertical-align:top;width:50%;}
  .concept-cell.text{padding-right:6%;}
  .concept-cell.img{position:relative;padding-top:60px;}
  .concept-cell.img img{
    width:88%;
    box-shadow:0 30px 60px -30px rgba(43,39,33,.35);
  }
  .concept-cell.img .img-tag{
    position:absolute;right:0;bottom:-30px;
    background:var(--white);
    padding:26px 30px;
    width:60%;
    border:1px solid var(--line);
    font-family:'Jost',sans-serif;
    font-size:.78rem;
    letter-spacing:.05em;
    color:var(--ink-soft);
    line-height:1.8;
  }
  .concept-lead{
    font-size:clamp(24px,2.6vw,34px);
    line-height:2.1;
    margin:34px 0 30px;
    color:var(--ink);
  }
  .concept-body{
    color:var(--ink-soft);
    font-size:.96rem;
    max-width:520px;
  }

  /* ===== DIRECTOR (代表紹介) ===== */
  #director{background:var(--white);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
  .director-grid{display:table;width:100%;table-layout:fixed;border-spacing:0;}
  .director-row{display:table-row;}
  .director-cell{display:table-cell;vertical-align:top;width:50%;}
  .director-cell.img{padding-right:7%;}
  .director-cell.img img{
    width:100%;
    aspect-ratio:4/5;
    object-fit:cover;
    object-position:center top;
    box-shadow:0 30px 60px -30px rgba(43,39,33,.35);
  }
  .director-cell.text{padding-top:10px;}
  .director-position{
    font-family:'Jost',sans-serif;font-size:.78rem;letter-spacing:.24em;
    text-transform:uppercase;color:var(--accent);margin-bottom:14px;
  }
  .director-name{
    font-size:1.7rem;letter-spacing:.08em;color:var(--ink);margin-bottom:28px;
  }
  .qual-badges{
    list-style:none;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:34px;
  }
  .qual-badges li{
    display:flex;align-items:center;gap:8px;
    background:#fff3e2;border:1px solid var(--accent-soft);
    color:var(--accent);font-family:'Jost',sans-serif;font-size:.76rem;letter-spacing:.03em;
    padding:9px 16px;border-radius:2px;
    transition:transform .5s var(--ease), box-shadow .5s var(--ease);
  }
  .qual-badges li:hover{transform:translateY(-3px);box-shadow:0 12px 24px -14px rgba(238,120,0,.4);}
  .qual-badges li i{font-size:.8rem;}
  .director-bio{color:var(--ink-soft);font-size:.94rem;max-width:520px;}
  /* 4段落あるのに段落間がゼロで、一続きの壁になっていた。
     LPの中で一番読ませたい文章なので、隠さずに読みやすくする */
  .director-bio p + p{margin-top:1.5em;}

  /* たたんだ状態：先頭2段落だけ見せ、2段落目の末尾を白へフェードさせて続きがあると分かるようにする。
     --bio-visible は main.js が入れる（既定2）。JSが動かなければ全文が出るだけで害はない */
  .director-bio.is-folded > p:nth-child(n+3){display:none;}
  .director-bio.is-folded{position:relative;}
  .director-bio.is-folded::after{
    content:'';position:absolute;left:0;right:0;bottom:0;height:3.2em;
    background:linear-gradient(180deg, rgba(255,255,255,0) 0%, var(--white) 92%);
    pointer-events:none;
  }
  .bio-more{
    display:block;margin-top:14px;
    background:transparent;border:1px solid var(--line);
    color:var(--ink);cursor:pointer;
    font-family:var(--font-heading);font-size:.86rem;letter-spacing:.06em;
    padding:13px 24px;width:100%;max-width:520px; /* 本文の幅に揃える */
    transition:all .4s var(--ease);
  }
  .director-item .bio-more{max-width:none;}
  .bio-more:hover{border-color:var(--accent-soft);color:var(--accent);}
  .bio-more::after{content:'　＋';font-size:.9em;color:var(--accent);}
  .bio-more[aria-expanded="true"]::after{content:'　−';}
  .bio-more[hidden]{display:none;}
  .director-message{
    margin-top:30px;padding-left:22px;border-left:2px solid var(--accent-soft);
    font-size:1.05rem;line-height:2;color:var(--ink);max-width:480px;
  }

  /* ===== DIRECTOR：2名以上の場合の2カラム表示 ===== */
  .director-multi-grid{
    display:grid;
    grid-template-columns:repeat(2, 1fr);
    gap:70px 60px;
  }
  .director-item{}
  .director-item-photo{
    width:100%;
    aspect-ratio:4/5;
    overflow:hidden;
    margin-bottom:26px;
    box-shadow:0 30px 60px -30px rgba(43,39,33,.35);
  }
  .director-item-photo img{
    width:100%;height:100%;
    object-fit:cover;
    object-position:center top;
  }
  .director-item-photo-placeholder{
    width:100%;height:100%;
    display:flex;align-items:center;justify-content:center;
    background:var(--bg-paper);color:var(--accent-soft);font-size:2.4rem;
  }
  .director-item .director-bio{max-width:none;}
  .director-item .director-message{max-width:none;}

  /* ===== STAFF (スタッフ紹介) ===== */
  #staff{background:var(--bg-cream);}
  .staff-grid{display:table;width:100%;table-layout:fixed;border-spacing:26px 0;margin-left:-26px;width:calc(100% + 26px);}
  .staff-grid .row{display:table-row;}
  .staff-card{
    display:table-cell;vertical-align:top;width:25%;
    background:var(--white);border:1px solid var(--line);
    padding:0 0 30px;
    transition:transform .6s var(--ease), box-shadow .6s var(--ease), border-color .6s var(--ease);
  }
  .staff-card:hover{transform:translateY(-6px);box-shadow:0 24px 50px -30px rgba(43,39,33,.3);border-color:var(--accent-soft);}
  .staff-photo{aspect-ratio:3/4;height:auto;overflow:hidden;margin-bottom:22px;}
  .staff-photo-inner{width:100%;height:100%;background-size:cover;background-position:center top;transition:transform .8s var(--ease);}
  .staff-card:hover .staff-photo-inner{transform:scale(1.08);}
  .staff-photo-placeholder{
    display:flex;align-items:center;justify-content:center;
    background:var(--bg-paper);color:var(--accent-soft);font-size:2rem;
  }
  .staff-role{
    font-family:'Jost',sans-serif;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;
    color:var(--accent);margin:0 26px 6px;
  }
  .staff-name{font-size:1.08rem;letter-spacing:.04em;margin:0 26px 14px;color:var(--ink);}
  .staff-quals{
    list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0 26px 14px;
  }
  .staff-quals li{
    font-family:'Jost',sans-serif;font-size:.68rem;letter-spacing:.02em;
    background:#fff3e2;color:var(--accent);border:1px solid var(--accent-soft);
    padding:4px 10px;border-radius:2px;
  }
  .staff-comment{
    margin:0 26px;font-size:.84rem;color:var(--ink-soft);line-height:1.8;
  }

  /* ===== SERVICES ===== */
  #services{background:var(--bg-paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
  .services-intro{max-width:640px;margin:30px 0 80px;color:var(--ink-soft);font-size:.96rem;}
  .price-block{margin-bottom:90px;}
  .price-block-head{
    display:table;width:100%;margin-bottom:36px;
  }
  .price-block-head .l{display:table-cell;vertical-align:bottom;}
  .price-block-head .r{display:table-cell;vertical-align:bottom;text-align:right;}
  .price-block-head h3{font-size:21px;letter-spacing:.06em;}
  .price-block-head span{font-family:'Jost',sans-serif;font-size:.72rem;letter-spacing:.3em;color:var(--accent);}

  .fare-list{list-style:none;}
  .fare-list li{
    display:table;width:100%;
    padding:26px 0;
    border-bottom:1px solid var(--line);
    transition:background .6s var(--ease), padding-left .6s var(--ease);
  }
  .fare-list li:hover{background:rgba(140,107,79,.04);padding-left:14px;}
  .fare-list .ftitle, .fare-list .fdesc, .fare-list .fprice{display:table-cell;vertical-align:middle;}
  .fare-list .ftitle{width:26%;font-size:1.05rem;letter-spacing:.04em;}
  .fare-list .fdesc{width:54%;color:var(--ink-soft);font-size:.88rem;font-family:'Jost',sans-serif;letter-spacing:.02em;}
  .fare-list .fprice{width:20%;text-align:right;font-family:'Jost',sans-serif;font-size:1.5rem;color:var(--accent);}

  .option-cards{display:table;width:100%;table-layout:fixed;border-spacing:24px 0;margin-left:-24px;width:calc(100% + 24px);}
  .option-cards .row{display:table-row;}
  .option-cards .card{
    display:table-cell;
    background:var(--white);
    border:1px solid var(--line);
    padding:42px 30px;
    vertical-align:top;
    transition:transform .6s var(--ease), box-shadow .6s var(--ease), border-color .6s var(--ease);
  }
  .option-cards .card:hover{
    transform:translateY(-8px);
    box-shadow:0 24px 50px -28px rgba(43,39,33,.3);
    border-color:var(--accent-soft);
  }
  .option-cards .card i{font-size:1.4rem;color:var(--accent);margin-bottom:22px;display:block;}
  /* 機材の写真は白背景の商品写真。元素材は縦横比がバラバラ（405x435 / 1000x1000 / 750x600）で、
     切って揃えると欠け、そのまま入れると大きさが揃わない。
     素材側を900x900の正方形・商品の占有率86%に作り直したうえで、枠も正方形にして揃える */
  .option-cards .card .card-image{
    width:100%;aspect-ratio:1/1;overflow:hidden;margin-bottom:22px;
    background:#fff;
  }
  .option-cards .card .card-image img{
    width:100%;height:100%;object-fit:contain;display:block;transition:transform .7s var(--ease);
  }
  .option-cards .card:hover .card-image img{transform:scale(1.06);}
  .option-cards .card h4{font-size:1.05rem;margin-bottom:10px;letter-spacing:.04em;}
  .option-cards .card .desc{font-family:'Jost',sans-serif;font-size:.8rem;color:var(--ink-soft);margin-bottom:22px;line-height:1.7;}
  .option-cards .card .price{font-family:'Jost',sans-serif;font-size:1.3rem;color:var(--ink);}
  .option-cards .card .price small{font-family:'Jost',sans-serif;font-style:normal;font-size:.7rem;color:var(--ink-soft);}

  /* ===== SIMULATOR ===== */
  #simulator{background:var(--bg-cream);}
  .sim-steps{
    list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;
    max-width:780px;margin:30px 0 0;padding:0;
  }
  .sim-steps li{
    display:flex;align-items:center;gap:12px;padding:15px 18px;
    background:rgba(255,255,255,.72);border:1px solid var(--line);
    font-size:.86rem;color:var(--ink);letter-spacing:.03em;
  }
  .sim-steps li span{
    flex:0 0 28px;width:28px;height:28px;border-radius:50%;
    display:inline-flex;align-items:center;justify-content:center;
    background:var(--accent);color:#fff;font-family:'Jost',sans-serif;font-size:.8rem;
  }
  .sim-wrap{
    display:table;width:100%;table-layout:fixed;background:var(--white);
    border:1px solid var(--line);
    box-shadow:0 40px 80px -50px rgba(43,39,33,.25);
  }
  .sim-form, .sim-result{display:table-cell;vertical-align:top;padding:60px;}
  .sim-form{width:58%;border-right:1px solid var(--line);}
  .sim-result{width:42%;background:#fdf1e3;}

  .field{margin-bottom:38px;}
  /* 直下の見出しラベルだけに効かせる。「>」が無いと、機材オプションの選択ボタン
     （こちらも label 要素）にまで display:block や文字色が効いてしまい、
     丸印が潰れて選択状態が読めなくなる */
  .field > label{
    display:block;font-family:'Jost',sans-serif;font-size:.76rem;letter-spacing:.12em;
    text-transform:uppercase;color:var(--ink-soft);margin-bottom:14px;
  }
  .field input[type="text"]{
    width:100%;border:none;border-bottom:1px solid var(--line);
    background:transparent;padding:10px 2px;font-family:'Zen Maru Gothic','M PLUS Rounded 1c',sans-serif;
    font-size:1rem;color:var(--ink);transition:border-color .4s var(--ease);
  }
  .field input[type="text"]:focus{outline:none;border-color:var(--accent);}

  .addr-field{position:relative;}
  .addr-input-row{display:flex;align-items:center;gap:10px;}
  .addr-input-row input[type="text"]{flex:1;min-width:0;}
  .addr-geo-btn,.addr-search-btn{
    flex-shrink:0;height:36px;border:1px solid var(--line);
    background:var(--white);color:var(--accent);cursor:pointer;
    display:inline-flex;align-items:center;justify-content:center;gap:6px;
    padding:0 16px;font-size:.8rem;white-space:nowrap;
    font-family:'Jost',sans-serif;letter-spacing:.02em;
    transition:all .4s var(--ease);
  }
  .addr-geo-btn i,.addr-search-btn i{font-size:.85rem;}
  .addr-geo-btn:hover,.addr-search-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent);}
  .addr-geo-btn.loading,.addr-search-btn.loading{opacity:.5;pointer-events:none;}
  .addr-search-btn{border-color:var(--accent-soft);}

  .addr-suggest{
    list-style:none;position:absolute;left:0;right:0;top:100%;z-index:20;
    background:var(--white);border:1px solid var(--line);
    box-shadow:0 20px 40px -20px rgba(43,39,33,.3);
    max-height:220px;overflow-y:auto;display:none;
  }
  .addr-suggest.open{display:block;}
  .addr-suggest li{
    padding:12px 16px;font-family:'Zen Maru Gothic','M PLUS Rounded 1c',sans-serif;
    font-size:.86rem;color:var(--ink);cursor:pointer;
    border-bottom:1px solid var(--line);
    transition:background .3s var(--ease);
  }
  .addr-suggest li:last-child{border-bottom:none;}
  .addr-suggest li:hover, .addr-suggest li.active{background:#fff3e2;color:var(--accent);}
  .addr-suggest li[aria-selected="true"]{background:#fff3e2;color:var(--accent);}

  .addr-hint{
    margin-top:8px;font-family:'Jost',sans-serif;font-size:.72rem;
    color:var(--ink-soft);min-height:1.2em;
  }
  .addr-hint.confirmed{color:var(--accent);}
  .addr-hint.confirmed::before{content:"\2713  ";}
  .addr-hint.error{color:#9a3a2f;}

  .slider-row{display:table;width:100%;}
  .slider-row .num{display:table-cell;width:90px;vertical-align:middle;text-align:right;
    font-family:'Jost',sans-serif;font-size:1.8rem;color:var(--accent);}
  .slider-row .track{display:table-cell;vertical-align:middle;padding-left:24px;}
  input[type=range]{
    -webkit-appearance:none;width:100%;height:1px;background:var(--line);outline:none;
  }
  input[type=range]::-webkit-slider-thumb{
    -webkit-appearance:none;width:16px;height:16px;border-radius:50%;
    background:var(--accent);cursor:pointer;border:3px solid var(--white);box-shadow:0 0 0 1px var(--accent-soft);
    transition:transform .3s var(--ease);
  }
  input[type=range]:hover::-webkit-slider-thumb{transform:scale(1.15);}

  .auto-time{
    border:1px solid var(--line);background:#fdf1e3;
    padding:24px 26px;display:table;width:100%;
    transition:border-color .5s var(--ease), opacity .4s ease;
  }
  .auto-time-value{
    display:table-cell;vertical-align:middle;
    font-family:'Jost',sans-serif;font-size:1.7rem;color:var(--accent);
    white-space:nowrap;width:1%;
  }
  .auto-time-value span{font-size:1.9rem;}
  .auto-time-note{
    display:table-cell;vertical-align:middle;padding-left:24px;
    font-family:'Jost',sans-serif;font-size:.76rem;color:var(--ink-soft);letter-spacing:.02em;line-height:1.7;
  }
  .auto-time.calculating .auto-time-value,
  .auto-time.calculating .auto-time-note{opacity:.4;}

  .opt-group{display:flex;flex-wrap:wrap;gap:14px;}
  .opt-pill{
    border:1px solid var(--line);padding:12px 20px;
    font-family:'Jost',sans-serif;font-size:.82rem;letter-spacing:.02em;
    cursor:pointer;user-select:none;
    transition:all .5s var(--ease);
    display:flex;align-items:center;gap:10px;
  }
  .opt-pill input{display:none;}
  /* flex-shrink:0 が無いと、ラベルが長いときに丸印が細い線に潰れて選択状態が読めなくなる。
     選べることが伝わるよう、印は少し大きめにして未選択時も枠をはっきり出す */
  .opt-pill .dot{
    flex:0 0 auto;width:16px;height:16px;border-radius:50%;
    border:1.5px solid var(--accent-soft);background:#fff;
    transition:all .4s var(--ease);position:relative;
  }
  .opt-pill .dot::after{
    content:'';position:absolute;left:50%;top:50%;width:8px;height:8px;
    margin:-4px 0 0 -4px;border-radius:50%;background:var(--accent);
    transform:scale(0);transition:transform .3s var(--ease);
  }
  .opt-pill:hover{border-color:var(--accent-soft);}
  /* .active は JS が付けるが、出発地・目的地が未入力のうちは計算処理が動かず
     付かないため、押しても無反応に見える。チェック状態そのものを見て色を変える */
  .opt-pill.active,
  .opt-pill:has(input:checked){background:var(--ink);border-color:var(--ink);color:#fff;}
  .opt-pill.active .dot,
  .opt-pill:has(input:checked) .dot{background:#fff;border-color:#fff;}
  .opt-pill.active .dot::after,
  .opt-pill:has(input:checked) .dot::after{transform:scale(1);}
  /* :has() が効かない環境でも最低限「選んだ」ことが分かるよう、印だけは隣接セレクタで確実に塗る */
  .opt-pill input:checked + .dot{background:#fff;border-color:var(--accent);}
  .opt-pill input:checked + .dot::after{transform:scale(1);}

  .sim-actions{margin-top:34px;}
  .sim-calc-btn,.sim-reset-btn{
    min-height:54px;border:1px solid var(--ink);cursor:pointer;
    font-family:'Zen Maru Gothic','M PLUS Rounded 1c',sans-serif;
    font-size:.92rem;letter-spacing:.08em;transition:all .35s var(--ease);
  }
  .sim-calc-btn{
    width:100%;background:var(--ink);color:#fff;padding:15px 24px;
  }
  .sim-calc-btn:hover:not(:disabled){background:var(--accent);border-color:var(--accent);}
  .sim-calc-btn:disabled{background:#d9d3c9;border-color:#d9d3c9;color:#7d776f;cursor:not-allowed;}
  .sim-calc-btn.loading{opacity:.65;cursor:wait;}
  .sim-reset-btn{
    width:100%;margin-top:10px;background:transparent;color:var(--ink-soft);
    border-color:var(--line);padding:12px 24px;
  }
  .sim-reset-btn:hover{border-color:var(--accent-soft);color:var(--accent);}
  .sim-form-message{
    margin-top:12px;min-height:1.6em;text-align:center;
    font-size:.76rem;line-height:1.6;color:var(--ink-soft);
  }
  .sim-form-message.ready{color:var(--accent);font-weight:500;}
  .sim-form-message.error{color:#9a3a2f;}

  .sim-result .eyebrow{margin-bottom:10px;}
  .sim-result .total-label{font-family:'Jost',sans-serif;font-size:.78rem;color:var(--ink-soft);letter-spacing:.1em;margin-bottom:8px;}
  .sim-route{
    min-height:3.2em;margin:14px 0 18px;padding:12px 14px;
    border-left:3px solid var(--accent-soft);background:rgba(255,255,255,.55);
    font-size:.78rem;line-height:1.65;color:var(--ink-soft);overflow-wrap:anywhere;
  }
  .sim-total{
    font-family:'Jost',sans-serif;
    font-size:clamp(42px,4.5vw,54px);
    color:var(--ink);
    transition:opacity .3s ease;
  }
  .sim-total .yen{font-size:1.4rem;margin-left:8px;font-family:'Jost',sans-serif;font-style:normal;color:var(--accent);}
  .sim-breakdown{margin-top:36px;border-top:1px solid var(--line);padding-top:24px;}
  .sim-breakdown div{
    display:table;width:100%;font-family:'Jost',sans-serif;font-size:.8rem;color:var(--ink-soft);
    padding:8px 0;
  }
  .sim-breakdown span:first-child{display:table-cell;}
  .sim-breakdown span:last-child{display:table-cell;text-align:right;}
  .sim-cta-row{
    margin-top:40px;display:flex;gap:14px;flex-wrap:wrap;
  }
  .sim-cta{
    display:inline-flex;align-items:center;justify-content:center;gap:8px;
    flex:1 1 auto;min-width:180px;text-align:center;
    padding:18px 0;background:var(--ink);color:#fff;
    font-family:'Jost',sans-serif;font-size:.82rem;letter-spacing:.12em;
    transition:background .5s var(--ease);
  }
  .sim-cta:hover{background:var(--accent);}
  .sim-cta-line{background:#06c755;}
  .sim-cta-line:hover{background:#05a948;}
  .sim-disclaimer{
    margin-top:16px;font-family:'Jost',sans-serif;font-size:.7rem;
    color:var(--ink-soft);text-align:center;line-height:1.7;
  }
  .sim-data-source{
    margin-top:10px;font-size:.64rem;color:var(--ink-soft);text-align:center;line-height:1.6;
  }
  .sim-data-source a{text-decoration:underline;text-underline-offset:2px;}

  /* ===== NEWS ===== */
  #news{background:var(--bg-paper);border-top:1px solid var(--line);}
  .news-list{list-style:none;margin:40px 0 100px;max-width:760px;}
  .news-list li{
    display:table;width:100%;padding:20px 0;border-bottom:1px solid var(--line);
    font-family:'Jost',sans-serif;font-size:.88rem;
  }
  .news-list .date{display:table-cell;width:140px;color:var(--accent);letter-spacing:.05em;}
  .news-list .tag{display:table-cell;width:110px;color:var(--ink-soft);}
  .news-list .ttl{display:table-cell;color:var(--ink);}

  .blog-grid{display:table;width:100%;table-layout:fixed;border-spacing:30px 0;margin-left:-30px;width:calc(100% + 30px);}
  .blog-grid .row{display:table-row;}
  .blog-card{display:table-cell;vertical-align:top;width:33.33%;}
  .blog-card .thumb{
    height:230px;background-size:cover;background-position:center;
    margin-bottom:22px;transition:transform .7s var(--ease);
    overflow:hidden;
  }
  .blog-card .thumb-inner{width:100%;height:100%;background-size:cover;background-position:center;transition:transform .8s var(--ease);}
  .blog-card:hover .thumb-inner{transform:scale(1.08);}
  .blog-card .bdate{font-family:'Jost',sans-serif;font-size:.72rem;letter-spacing:.15em;color:var(--accent);margin-bottom:12px;display:block;}
  .blog-card h4{font-size:1.05rem;line-height:1.7;margin-bottom:10px;}
  .blog-card p{font-family:'Jost',sans-serif;font-size:.82rem;color:var(--ink-soft);}

  /* ===== CONTACT / FOOTER ===== */
  #contact{
    background:var(--ink);color:#f4efe6;text-align:center;
    padding:160px 6%;
  }
  #contact .eyebrow{color:var(--accent-soft);}
  #contact h2{
    font-size:clamp(29px,3.6vw,45px);
    line-height:1.8;margin:24px 0 50px;
  }
  .contact-btns{
    display:flex;gap:20px;justify-content:center;flex-wrap:wrap;
  }
  .contact-btn{
    display:inline-flex;align-items:center;justify-content:center;gap:10px;
    border:1px solid rgba(244,239,230,.5);
    padding:22px 46px;font-family:'Jost',sans-serif;
    font-size:.84rem;letter-spacing:.2em;
    transition:all .6s var(--ease);
  }
  .contact-btn:hover{background:#f4efe6;color:var(--ink);border-color:#f4efe6;}
  .contact-btn-line{background:#06c755;border-color:#06c755;color:#fff;}
  .contact-btn-line:hover{background:#05a948;border-color:#05a948;color:#fff;}
  .contact-tel{
    margin-top:40px;font-family:'Jost',sans-serif;font-size:.85rem;letter-spacing:.05em;color:#f7b873;
    display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px 18px;
  }
  .contact-tel-num{display:inline-flex;align-items:baseline;gap:2px;}
  .contact-tel strong{font-family:'Jost',sans-serif;font-size:1.4rem;color:#fff;margin-left:10px;}

  footer{
    background:var(--bg-cream);padding:60px 6% 40px;
    border-top:1px solid var(--line);
  }
  .footer-row{display:table;width:100%;}
  .footer-row .l,.footer-row .r{display:table-cell;vertical-align:middle;}
  .footer-row .r{text-align:right;}
  .footer-logo{font-family:'Zen Maru Gothic','M PLUS Rounded 1c',sans-serif;letter-spacing:.16em;font-size:1.1rem;margin-bottom:10px;}
  .footer-links{font-family:'Jost',sans-serif;font-size:.78rem;color:var(--ink-soft);}
  .footer-links a{margin-left:24px;}
  .copyright{
    margin-top:40px;font-family:'Jost',sans-serif;font-size:.72rem;color:var(--ink-soft);
    letter-spacing:.05em;text-align:center;
  }

  /* ===== RESPONSIVE ===== */
  @media (max-width:900px){
    .logo-image img.custom-logo{max-height:48px;}
    header.scrolled .logo-image img.custom-logo{max-height:42px;}
    .logo-cell{width:auto;flex:0 1 auto;}
    .nav-cell{width:auto;flex:0 0 auto;}
    .logo{
      font-size:1rem;letter-spacing:.06em;
      display:inline-block;max-width:100%;
      overflow:hidden;white-space:nowrap;text-overflow:ellipsis;
      vertical-align:middle;
    }
    nav{position:fixed;top:0;right:0;height:100vh;width:78%;max-width:340px;
      background:var(--bg-cream);transform:translateX(100%);transition:transform .6s var(--ease);
      box-shadow:-20px 0 60px rgba(0,0,0,.1);padding:120px 40px;z-index:1100;}
    nav.open{transform:translateX(0);}
    /* PC用に ul を横並び(inline-flex)にしたので、ドロワーでは縦積みに戻す */
    nav ul{display:block;white-space:normal;}
    nav li{display:block;margin:0 0 12px;}
    /* 文字の高さだけだと25pxしかなく、指では押しにくい。
       高齢のご家族が使う前提なので、上下に余白を足して48px確保する */
    nav a{display:block;padding:12px 0;font-size:.92rem;letter-spacing:.08em;}
    /* table-cell だとセル内に匿名テーブルができて左に寄ってしまうため inline-block にする。
       z-index はドロワーより上（開いている間も×として押せるように） */
    .nav-toggle{
      display:inline-block;vertical-align:middle;
      font-size:1.3rem;cursor:pointer;width:auto;
      position:relative;z-index:1200;
      padding:4px 2px;line-height:1;
    }
    /* メニューが開いている間はアイコンを × に差し替える */
    .nav-cell:has(nav.open) .nav-toggle i::before{content:"\f00d";}
    .nav-cell:has(nav.open) .nav-toggle i{filter:none;}
    /* max-width で1行に入る文字数を7文字ぶんに抑え、「明るく暮らす、」で改行させる。
       これが無いと「明るく暮らす、そ／の一歩を。」と読点の後ろで切れない */
    .hero h1{
      height:auto;writing-mode:horizontal-tb;text-align:left;
      font-size:clamp(2rem,8vw,2.8rem);
      max-width:8.2em;
    }
    .hero-sub{position:static;margin-top:24px;max-width:100%;}
    .scroll-cue{display:none;}
    .hero-inner{padding:0 7% 70px;}
    section{padding:100px 7%;}
    #contact{padding:100px 7%;}
    .concept-grid, .concept-row, .concept-cell{display:block;width:100%;}
    .concept-cell.text{padding-right:0;}
    .concept-cell.img{margin-top:50px;}
    .concept-cell.img img{width:100%;display:block;}
    /* PCでは写真の右下に重ねる意匠だが、スマホだと写真が全幅・文字が折り返す分だけ
       箱が伸びて写真を大きく覆ってしまう。写真の下に置き、端だけ少し重ねる */
    .concept-cell.img .img-tag{
      position:static;width:100%;
      margin-top:-24px;
      /* 上24pxは写真の下に隠れるので、その分を足して上下の余白を見た目で揃える */
      padding:44px 18px 20px;
      letter-spacing:.02em;
      text-wrap:pretty; /* 最終行に2文字だけ残るような泣き別れを避ける */
    }
    /* 原稿の改行はPCの細い箱に合わせて入っている。スマホでそのまま効かせると
       1行目が途中で切れて右側が大きく空くため、改行を無効にして自然に折り返させる */
    .concept-cell.img .img-tag br{display:none;}
    .director-grid, .director-row, .director-cell{display:block;width:100%;}
    .director-cell.img{padding-right:0;margin-bottom:40px;}
    /* 正方形フルバンドだと縦を取りすぎるので、横長に浅くトリミングして高さを約1/4カット。
       顔の位置が切れないよう object-position を少し下げている */
    .director-cell.img img{aspect-ratio:4/3;object-position:center 22%;}
    .director-multi-grid{grid-template-columns:1fr;gap:60px;}
    /* 1枚ずつ縦積みだと写真が画面の半分を占めてスクロールが長くなるため、2列に並べる */
    .staff-grid{display:block;width:100%;margin-left:0;}
    .staff-grid .row{display:grid;grid-template-columns:1fr 1fr;gap:16px;width:100%;margin-bottom:16px;}
    .staff-card{display:block;width:100%;margin-left:0;margin-bottom:0;padding-bottom:22px;}
    .staff-photo{aspect-ratio:1/1;margin-bottom:16px;}
    /* 2列にすると幅が狭いので、名前が途中で折り返さないよう文字を詰める */
    .staff-role, .staff-name, .staff-quals, .staff-comment{margin-left:18px;margin-right:18px;}
    .staff-name{font-size:.98rem;letter-spacing:0;}
    .staff-comment{font-size:.82rem;}
    /* 親をblockにしただけでは中の .l .r が table-cell のままで横並びになり、
       「基本料金Basic Fare」とくっついて出てしまう */
    .price-block-head{display:block;}
    .price-block-head .l, .price-block-head .r{display:block;}
    .price-block-head .r{text-align:left;margin-top:8px;}
    .fare-list li, .fare-list .ftitle, .fare-list .fdesc, .fare-list .fprice{display:block;width:100%;text-align:left;}
    .fare-list .fprice{margin-top:10px;}
    /* 縦積みのままだと3枚で1,000px以上使ってしまう。
       写真を左・文字を右に並べた横長カードにして高さを半分以下にする */
    .option-cards, .option-cards .row{display:block;width:100%;margin-left:0;}
    .option-cards .card{
      display:grid;
      grid-template-columns:36% 1fr;
      column-gap:16px;
      align-items:center;
      width:100%;margin-left:0;margin-bottom:14px;
      padding:16px;
    }
    .option-cards .card .card-image{grid-column:1;grid-row:1 / span 3;margin-bottom:0;}
    /* 「リクライニング車いす」が2行目に1文字だけ残るので少し詰める */
    .option-cards .card h4{grid-column:2;margin-bottom:6px;font-size:.95rem;text-wrap:pretty;}
    .option-cards .card .desc{grid-column:2;margin-bottom:10px;font-size:.76rem;line-height:1.65;}
    .option-cards .card .price{grid-column:2;font-size:1.15rem;}
    .sim-steps{grid-template-columns:1fr;margin-top:24px;}
    .sim-steps li{padding:13px 16px;}
    .sim-wrap, .sim-form, .sim-result{display:block;width:100%;}
    .sim-form{border-right:none;border-bottom:1px solid var(--line);padding:42px 30px;}
    .sim-result{padding:42px 30px;}
    /* 横並びだと幅がバラバラで選択肢に見えないため、縦1列に揃える */
    .opt-group{display:grid;grid-template-columns:1fr;}
    .opt-pill{padding:14px 18px;font-size:.86rem;}
    .field{margin-bottom:30px;}
    .field > label{margin-bottom:10px;}
    .sim-total{font-size:clamp(32px,10vw,42px);white-space:normal;word-break:break-word;line-height:1.25;}
    .sim-total .yen{display:inline-block;margin-left:6px;}
    .auto-time{padding:20px 18px;}
    .auto-time-note{padding-left:16px;}
    .blog-grid, .blog-grid .row, .blog-card{display:block;width:100%;margin-left:0;margin-bottom:40px;}
    .news-list li, .news-list .date, .news-list .tag, .news-list .ttl{display:block;width:100%;}
    .news-list .tag, .news-list .ttl{margin-top:6px;}
    .footer-row, .footer-row .l, .footer-row .r{display:block;width:100%;text-align:left;}
    .footer-row .r{margin-top:24px;text-align:left;}
    /* フッターのリンクも18pxしかなく押しにくい */
    .footer-links a{display:inline-block;margin-left:0;margin-right:22px;padding:11px 0;}
    .contact-btns{flex-direction:column;align-items:stretch;}
    .contact-btn{padding:20px 30px;}
    .contact-tel{flex-direction:column;gap:10px 0;}
    .sim-cta-row{flex-direction:column;}
    .sim-cta{min-width:0;}
    .addr-input-row{flex-wrap:wrap;}
    .addr-input-row input[type="text"]{flex:1 1 100%;}
    /* 押しやすさを保ち、ボタンが2つなら横並び、1つなら全幅にする */
    .addr-geo-btn,.addr-search-btn{flex:1 1 140px;height:48px;}
  }

  @media (max-width:480px){
    .logo-cell{width:58%;}
    .nav-cell{width:42%;}
    .logo{font-size:.92rem;}
    .qual-badges li, .staff-quals li{font-size:.7rem;padding:7px 12px;}
    .director-multi-grid{gap:44px;}
    .sim-total{font-size:clamp(28px,11vw,36px);}
    .opt-group{gap:10px;}
  }

  @media (prefers-reduced-motion: reduce){
    *{animation:none !important;transition:none !important;}
  }
