@media (hover:hover){
  .btn-back:hover{
    background: rgba(255,255,255,.96);
    transform: translateY(-1px);
    box-shadow: 0 14px 28px rgba(0,0,0,.07);
  }
}
@media (min-width: 800px){
  .cta-actions-desktop{ display:flex !important; }
  #contact-form .contact-submit:hover{
    transform: translateY(-1px);
    box-shadow: 0 20px 46px rgba(47,111,92,.26);
    filter: brightness(1.03);
  }
}
@media (max-width: 900px){
  .mobile-toggle{
    display: inline-flex;
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    font-size: 22px;
    padding: 0;
    line-height: 1;
  }

  .nav{
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    padding: 10px 0 14px;
    background: #fbf8f2;
    border-bottom: 1px solid rgba(17,24,39,.08);
    display: none;
  }
  .site-header.is-open .nav{ display: block; }

  .nav-cta{ display: none; }

  .nav-links{
    width: min(var(--container), calc(100% - 32px));
    margin: 0 auto;
    flex-wrap: wrap;
    justify-content: flex-start;
    transform: translateY(-6vh) ;
    border: 0;
  }

  /* レイアウト */
  .grid-3{ grid-template-columns: repeat(2, minmax(0, 1fr)); }

  /* フッター下に余白（bottom-cta分） */
  footer{ padding-bottom: 104px; }

  /* map */
  .map-wrap{ height: 220px; }
  .sub-menu{
    position: static;
    display: grid;
    min-width: 0;
    margin: 8px 0 0;
    padding: 8px 0 0;
    background: transparent;
    border: none;
    box-shadow: none;
    backdrop-filter: none;
  }

  .sub-menu a{
    padding: 10px 12px 10px 34px;
    border-radius: 12px;
    background: rgba(0,0,0,.02);
    border: 1px solid rgba(17,24,39,.08);
  }

  .sub-sep{ display:none; }
}

@media (max-width: 750px){
  :root{ --space: .7; }

  html.nav-open,
  html.nav-open body{
    overflow: hidden;
    height: 100%;
  }

  /* ▼（caret）をスマホで消す */
  .site-header .caret{ display:none !important; }
  .site-header .nav-parent::after{ content:none !important; }
  .cta-actions-mobile{ display:flex !important; }

  /* ===== 全画面メニュー（白）===== */
  .site-header .nav{
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    max-width: none !important;

    background: #ffffff !important;
    z-index: 9999 !important;

    /* 上寄せ（展開してもズレない） */
    display: flex !important;
    align-items: flex-start !important;
    justify-content: center !important;

    /* “真ん中ちょい上”はここで調整 */
    padding: calc(14vh + env(safe-area-inset-top)) 16px 24px !important;

    overflow: hidden !important;

    opacity: 0;
    pointer-events: none;
    transform: translateY(-8px);
    transition: opacity .18s ease, transform .18s ease;
  }
  .site-header.is-open .nav{
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
  }
  .sp-only{ display:inline !important; }

  /* ×ボタン（右上固定） */
  .nav-close{
    position: fixed !important;
    top: calc(14px + env(safe-area-inset-top));
    right: 14px;
    left: auto !important;

    width: 44px;
    height: 44px;
    border-radius: 14px;
    border: 1px solid rgba(17,24,39,.14);
    background: #fff;

    font-size: 28px;
    line-height: 1;
    cursor: pointer;

    display: inline-flex !important;
    align-items: center;
    justify-content: center;

    z-index: 10001 !important;
  }

  /* ===== 中央の縦リスト ===== */
  .nav-links{
    margin: 0 auto !important;
    padding: 0 8px !important;
    list-style: none !important;

    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box !important;

    /* PC用の背景/枠が残るのを消す */
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;

    overflow: auto !important;
    -webkit-overflow-scrolling: touch;

    /* ★スクロールバーが出ても幅が変わらないようにする（ズレ対策） */
    scrollbar-gutter: stable both-edges;

    display: flex !important;
    flex-direction: column !important;
    gap: 22px !important;
  }

  .nav-links > li{
    margin: 0 !important;
    border: 0 !important;
  }
  .nav-links a{ font-size: 17px; }

  /* メイン項目（共通） */
  .nav-parent{
    display: block;
    text-align: center !important;
    padding: 10px 10px !important;
    border-radius: 18px !important;
    background: #fff !important;
    text-decoration: none;
    font-weight: 750;
    color: inherit;
  }

  /* ===== スマホ：利用案内以外のサブメニューは出さない ===== */
  .site-header .has-sub:not(.nav-service) > .sub-menu{ display:none !important; }
  .site-header .nav-cta > .sub-menu{ display:none !important; }

  .site-header .nav-service .nav-row{
    display: grid !important;
    grid-template-columns: 56px 1fr 56px !important;
    align-items: center !important;
    width: 100% !important;
  }
  .site-header .nav-service .nav-row::before{
    content: "" !important;
  }

  /* “利用案内”は真ん中列 */
  .site-header .nav-service .nav-parent{
    grid-column: 2 !important;
    justify-self: stretch !important;
    text-align: center !important;
    padding: 10px 10px !important;
  }

  /* ＋は右列（absolute禁止） */
  .site-header .nav-service .nav-plus{
    grid-column: 3 !important;
    justify-self: end !important;

    position: relative !important;
    transform: none !important;

    width: 56px !important;
    height: 44px !important;
    border-radius: 16px !important;
    border: 1px solid rgba(17,24,39,.12) !important;
    background: #fff !important;
    cursor: pointer !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    /* ボタン内の「＋文字」が入ってても見えないように */
    font-size: 0 !important;
    color: transparent !important;
    line-height: 0 !important;
  }

  /* 線の＋ */
  .site-header .nav-service .nav-plus::before,
  .site-header .nav-service .nav-plus::after{
    content:"";
    position:absolute;
    left:50%;
    top:50%;
    transform: translate(-50%,-50%);
    background:#111827;
    border-radius:2px;
  }
  .site-header .nav-service .nav-plus::before{ width: 16px; height: 2px; }
  .site-header .nav-service .nav-plus::after{ width: 2px; height: 16px; }

  /* 開いたら「−」（縦線だけ消す） */
  .site-header .nav-service.is-subopen .nav-plus::after{ opacity: 0; }

  /* ===== 利用案内サブ：真下に出して押し下げる ===== */
  .site-header .nav-service > .sub-menu{
    display: none !important;

    position: static !important;
    width: auto !important;
    inset: auto !important;
    transform: none !important;

    box-shadow: none !important;
    border: 0 !important;
    background: transparent !important;

    margin: 12px 0 0 !important;
    padding: 0 !important;
  }

  /* スマホ：ページ3つだけ（アンカー/区切りは消す） */
  .site-header .nav-service .sub-menu .is-anchor,
  .site-header .nav-service .sub-menu .sub-sep{
    display:none !important;
  }

  .site-header .nav-service .sub-link.is-page{
    display: block !important;
    text-align: center !important;
    padding: 12px 14px !important;
    border-radius: 18px !important;
    background: rgba(17,24,39,.04) !important;
    text-decoration: none !important;
    font-weight: 650 !important;
    color: inherit !important;
  }

  .site-header .nav-service .sub-arrow,
  .site-header .nav-service .sub-tag{
    display:none !important;
  }

  /* ===== お問い合わせ：スマホだけグラデ ===== */
  .site-header .nav-cta > a.btn-cta{
    width: 100%;
    text-align: center;

    background: linear-gradient(135deg, rgb(59,138,114), rgb(35,110,88)) !important;
    color: #fff !important;

    border: 0 !important;
    box-shadow: none !important;
    filter: none !important;

    border-radius: 999px !important;
    margin-bottom: 10px;
  }

  .only-mobile{ display:block; }
  .only-desktop{ display:none; }

  /* スマホ：カード型比較 */
  .compare-cards{
    display: grid;
    gap: 14px;
  }

  .compare-card h3{
    margin: 10px 0 8px;
    font-size: 18px;
    line-height: 1.35;
  }

  .compare-card h3 a{
    color: inherit;
    text-decoration: none;
    font-weight: 900;
  }

  .compare-dl{
    margin: 0;
  }

  .compare-dl .row{
    display: grid;
    grid-template-columns: 88px 1fr;
    gap: 10px;
    padding: 10px 0;
    border-top: 1px solid rgba(17,24,39,.08);
  }

  .compare-dl .row:first-child{
    border-top: 0;
    padding-top: 0;
  }

  .compare-dl dt{
    font-weight: 900;
    color: rgba(31,41,55,.85);
    font-size: 13px;
    line-height: 1.4;
  }

  .compare-dl dd{
    margin: 0;
    font-size: 14px;
    line-height: 1.65;
    color: rgba(17,24,39,.92);
  }


  /* grids */
  .grid-2{ grid-template-columns: 1fr; }
  .grid-3{ grid-template-columns: 1fr; }

  /* ボタン100% */
  .hero-ctas .btn{ width: 100%; justify-content: center; }
  .inline-ctas .btn{ width: 100%; justify-content: center; }

  /* timeline */
  .timeline li{ grid-template-columns: 1fr; }

  /* Disclosure: 詰める */
  .page-disclosure .section{
    padding-top: 22px;
    padding-bottom: 22px;
  }

  /* Doc list: 縦並び */
  .doc-item{
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .doc-actions{
    justify-content: flex-start;
  }
  .doc-actions .btn{
    width: 100%;
    justify-content: center;
  }

  /* Fee: 1列化 */
  .fee-dl{
    grid-template-columns: 1fr;
    padding: 16px 16px;
  }
  .fee-dl dd{
    text-align: left;
    white-space: normal;
  }
  .fee-dd-split{
    padding-left: 0;
  }
  .fee-dd-split::before{
    display: none;
  }
  .fee-pills{
    grid-template-columns: 1fr;
  }
  .fee-total{
    justify-items: start;
  }

  /* Care table: wrapさせず、横スクロールで対応 */
  .table-wrap--care .care-table{
    white-space: nowrap;
  }
  .table-wrap--care .care-table th,
  .table-wrap--care .care-table td{
    padding: 10px 8px;
  }

  /* GH lead */
  .gh-lead{
    flex-direction: column;
    align-items: flex-start;
  }
  .gh-lead-cta{
    width: 100%;
    justify-content: center;
  }

  /* Contact head */
  #contact-form .contact-head{
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
  }
  #contact-form .contact-lead{
    white-space: normal;
  }

  /* 520pxでやってた調整は“可変”で吸収（breakpoint増やさない） */
  #contact-form .contact-card{
    padding: clamp(16px, 4vw, 22px) clamp(14px, 3.5vw, 16px);
    border-radius: 18px;
  }
  #contact-form .contact-submit{
    height: clamp(50px, 10vw, 54px);
  }


  #offices .table-wrap{
    padding: 0;
    background: transparent;
    border: none;
    box-shadow: none;
  }

  #offices .compare-table{ min-width: 0; }
  #offices .compare-table thead{ display: none; }

  #offices .compare-table,
  #offices .compare-table tbody,
  #offices .compare-table tr{
    display: block;
    width: 100%;
  }

  #offices .compare-table tr{
    margin: 12px 0;
    border: 1px solid rgba(17,24,39,.10);
    border-radius: 16px;
    background: rgba(255,255,255,.90);
    box-shadow: var(--shadow-soft);
    overflow: hidden;
  }

  /* カードの見出し（事業所名） */
  #offices .compare-table tbody th{
    position: static;
    min-width: 0;
    border-right: none;
    border-bottom: 1px dashed rgba(17,24,39,.14);
    background: transparent;
    padding: 14px 14px 10px;
  }

  /* 各項目行（定員/所在地/TEL・FAX） */
  #offices .compare-table td{
    display: grid;
    grid-template-columns: 92px 1fr;
    gap: 10px;
    padding: 10px 14px;
    border-bottom: 1px solid rgba(17,24,39,.08);
    white-space: normal;
  }
  #offices .compare-table tr td:last-child{ border-bottom: none; }

  #offices .compare-table td::before{
    font-weight: 900;
    color: var(--muted);
    white-space: nowrap;
  }

  /* ★現行4列に合わせてラベルを更新 */
  #offices .compare-table td:nth-child(2)::before{ content: "定員"; }
  #offices .compare-table td:nth-child(3)::before{ content: "所在地"; }
  #offices .compare-table td:nth-child(4)::before{ content: "TEL/FAX"; }

  /* TEL/FAXの番号が途中で折り返さないように */
  #offices .compare-table td:nth-child(4) div{
    white-space: nowrap;
  }

  #offices .compare-table td > div{
    grid-column: 2;
  }

  .site-footer{
    padding: 18px 0 16px;
    border-top: 1px solid rgba(15,23,42,.10);
  }

  .site-footer .footer-copy{
    margin-top: 14px;
    text-align: right;
    font-size: 13px;
    opacity: .85;
  }

  .site-footer .footer-nav{ display: block; }

  /* 3列グリッド */
  .site-footer .footer-menu{
    list-style: none;
    margin: 0;
    padding: 0;

    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
  }

  /* 通常ボタン（白） */
  .site-footer .footer-menu-link{
    display: block;
    text-align: center;
    padding: 12px 10px;
    border-radius: 22px;
    text-decoration: none;
    font-weight: 800;

    background: #fff;
    border: 1px solid rgba(15,23,42,.12);
    color: #111827;
  }

  /* お問い合わせだけ：3列の真ん中 */
  .site-footer .footer-menu-contact{
    grid-column: 2;
  }

  /* お問い合わせだけ：緑 */
  .site-footer .footer-menu-link.is-contact{
    background: linear-gradient(135deg, rgb(59,138,114), rgb(35,110,88)) !important;
    color: #fff;
  }
  .contact-phone .phone-number{
    font-size: 20px;
  }
  .card-head{
    align-items:flex-start;
    flex-direction:column;
  }

  .m-float-cta{ display:flex; }

  .m-float-cta-close{
    width: 34px;
    height: 34px;
    border-radius: 999px;
    border: 1px solid rgba(17,24,39,.12);
    background: rgba(255,255,255,.92);
    box-shadow: 0 10px 22px rgba(0,0,0,.08);
    cursor: pointer;
  }

  /* ボタン共通 */
  .m-float-btn{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;

    padding: 12px 14px;
    border-radius: 999px;
    text-decoration: none;
    font-weight: 700;
    font-size: 13px;

    border: 1px solid rgba(17,24,39,.12);
    background: rgba(255,255,255,.92);
    box-shadow: 0 12px 26px rgba(0,0,0,.10);
    white-space: nowrap;
  }

  /* 電話：黒寄りで控えめ */
  .m-float-tel{
    color: var(--text);
  }

  /* LINE：文字だけLINEカラー（既存のline-word/line-restを流用） */
  .m-float-line{
    color: var(--text);
  }
  .m-float-line .line-word{
    color: #00B900;
    font-weight: 800;
  }
  .m-float-line .line-rest{
    color: var(--text);
  }

  .page-hero.page-hero--recruit::before{
    opacity: .55;
    filter: saturate(.82) contrast(.97) brightness(1.04);
  }

  .page-hero.page-hero--recruit::after{
    background:
      radial-gradient(700px 360px at 40% 10%, rgba(255,255,255,.45), transparent 60%),
      linear-gradient(180deg, rgba(251,248,242,.72), rgba(251,248,242,.90));
  }

  .room-grid{
    grid-template-columns: 1fr;
  }


  .room-card{
    text-align: left;
  }

  .room-title{
    margin: 10px 0 10px;
  }

  /* 縦写真でも綺麗に見せる枠 */
  .room-media{
    border-radius: 16px;
    overflow: hidden;
    border: 1px solid rgba(17,24,39,.10);
    background: rgba(255,255,255,.6);
    box-shadow: 0 10px 26px rgba(0,0,0,.05);
  }

  /* 画像を崩さずトリミング */
  .room-media img{
    display: block;
    width: 100%;
    height: 300px;
    object-fit: cover;
  }


  .room-note{
    margin: 10px 0 0;
    font-size: 12px;
  }
}
@media (min-width: 1600px){
  :root{ --container: 1300px !important; }
}

@media (min-width: 1900px){
  :root{ --container: 1500px !important; }
}
@media (max-width: 400px){
  .site-footer .footer-menu{
    gap: 8px;
  }

  .site-footer .footer-menu-link{
    padding: 10px 6px;
    font-size: 14px;
    white-space: nowrap;
  }
}
@media (max-width: 330px){
  .site-footer .footer-menu{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  /* お問い合わせを中央（2列ぶち抜き） */
  .site-footer .footer-menu-contact{
    grid-column: 1 / -1;
    justify-self: center;
  }
  .site-footer .footer-menu-contact .footer-menu-link{
    width: min(220px, 100%);
  }
}
