  :root{
    --green:#00953b; --bg:#ffffff; --ic:#dff4e8; --ink:#121212; --sub:#6e6e6e;
    --line:#d9d9d9; --chev:#b9b6b6; --white:#fff;
    --canvas:#f8f8f8;
    --edge:#909090;
    --cardshadow:0 .2rem .8rem rgba(0,0,0,.05), 0 .8rem 2.2rem rgba(0,0,0,.09);
    --pad:2rem;
    font-size: 5px;
  }
  *{ margin:0; padding:0; box-sizing:border-box; }
  html{ -webkit-text-size-adjust:100%; }
  body{ background:var(--canvas); overflow-x:hidden; color:var(--ink); line-height:1.5;
    font-family:'Noto Sans JP',-apple-system,'Hiragino Sans','Hiragino Kaku Gothic ProN',sans-serif; }
  img{ max-width:100%; height:auto; display:block; }
  a{ color:inherit; text-decoration:none; }
  ul{ list-style:none; }
  .frame{ width:100%; max-width:1040px; margin:0 auto; background:transparent; }
  #contact{ scroll-margin-top:3rem; }
  @media (min-width:480px) and (max-width:767px){ #contact{ scroll-margin-top:9rem; } }

  .ft{ position:relative; z-index:0; }
  .ft::before{ content:""; position:absolute; z-index:-1;
    top:0; bottom:0; left:50%; transform:translateX(-50%); width:100vw; background-color:inherit; }

  .ttl{ position:relative; color:var(--ink); font-size:4.2rem; font-weight:700; line-height:1.15; padding-bottom:2.2rem; border-bottom:1px solid #c2c5c7; box-shadow:0 1px 0 rgba(255,255,255,.95); }
  .ttl::before{ content:""; position:absolute; left:0; bottom:-1px; width:9rem; height:.6rem; background:var(--green); border-radius:.3rem; }

  /* ===== ヘッダー ===== */
  .op-header{ position:relative; z-index:30; background:#fff; }
  body.opapp .op-header{ display:none; }
  .header__menu-toggle{ display:none; }
  .header__bar{ position:relative; height:9.6rem; display:flex; align-items:center; padding:0 4.4rem; }
  .op-header::after{ content:""; position:absolute; bottom:0; left:50%; transform:translateX(-50%); width:100vw; height:1px; background:var(--chev); z-index:40; pointer-events:none; }
  .header__logo{ display:block; }
  .header__logo img{ height:6rem; width:auto; display:block; }

  .header__menu-icon{ position:absolute; right:3rem; top:50%; transform:translateY(-50%); width:8rem; height:8rem; cursor:pointer; }
  .header__menu-icon::after{ content:""; position:absolute; inset:-2px; }
  .header__menu-icon-bar{ position:absolute; left:2rem; right:2rem; height:3px; border-radius:2px; background:var(--ink); transition:transform .25s, opacity .2s; }
  .header__menu-icon-bar:nth-child(1){ top:2.6rem; }
  .header__menu-icon-bar:nth-child(2){ top:3.85rem; }
  .header__menu-icon-bar:nth-child(3){ top:5.1rem; }
  .header__menu-toggle:checked ~ .header__bar .header__menu-icon-bar:nth-child(1){ top:3.85rem; transform:rotate(45deg); }
  .header__menu-toggle:checked ~ .header__bar .header__menu-icon-bar:nth-child(2){ opacity:0; }
  .header__menu-toggle:checked ~ .header__bar .header__menu-icon-bar:nth-child(3){ top:3.85rem; transform:rotate(-45deg); }

  .header__nav{ position:absolute; top:9.6rem; left:0; right:0; z-index:25;
    opacity:0; visibility:hidden; transform:translateY(-8px); transition:opacity .25s ease, transform .25s ease, visibility .25s; }
  .header__menu-toggle:checked ~ .header__nav{ opacity:1; visibility:visible; transform:none; }
  body.is-resizing .header__nav{ transition:none !important; }
  .header__nav-list{ list-style:none; background:#fff; box-shadow:0 8px 18px rgba(0,0,0,.10); }
  .header__nav-item{ border-bottom:1px solid #ececec; }
  .header__nav-link{ display:block; padding:3.6rem 4.4rem; font-size:3rem; font-weight:500; color:var(--ink); }
.change-link-inline--pc{ display:none; }
html.ua-pc .change-link-inline--pc{ display:block; }
html.ua-pc .change-link-inline--sp{ display:none; }

.voice .banner.change-link-inline--pc{ display:none; }
html.ua-pc .voice .banner.change-link-inline--pc{ display:block; }
html.ua-pc .voice .banner.change-link-inline--sp{ display:none; }
html:not(.ua-pc) .nf-ch.change-card--pc{ display:none; }
  html.ua-pc .nf-ch.change-card--sp{ display:none; }
  .header__nav-item--join{ border-bottom:0; padding:3.2rem 4.4rem; }
  .header__nav-item--join .header__nav-link{ padding:0; height:9.2rem; display:flex; align-items:center; justify-content:center; gap:1.2rem;
    background:var(--green); color:#fff; font-weight:700; border-radius:.8rem; }
  .header__nav-item--join .header__nav-link::before{ content:""; border-style:solid; border-width:.7rem 0 .7rem 1.1rem; border-color:transparent transparent transparent #fff; }

  /* ===== ヒーロー ===== */
  .hero{ position:relative; height:42rem; overflow:hidden; }
  .hero .bg{ position:absolute; inset:0; z-index:0; }
  .hero .bg img{ width:100%; height:100%; object-fit:cover; object-position:right center; }
  .hero .grad{ position:absolute; left:0; top:0; width:100%; height:100%; z-index:1;
    background:linear-gradient(to right,#fff 0%,#fff 30%,rgba(255,255,255,.85) 48%,rgba(255,255,255,0) 74%); }
  .hero .sup{ position:absolute; left:4rem; top:7rem; z-index:2; font-size:2.5rem; font-weight:700; color:var(--green); letter-spacing:.08em; }
  .hero .h1{ position:absolute; left:4rem; top:11rem; z-index:2; font-size:5.6rem; font-weight:700; color:var(--ink); }
  .hero .lead{ position:absolute; left:4rem; top:20rem; z-index:2; width:40rem; font-size:2.8rem; font-weight:400; line-height:1.7; color:#4c4c4c; }

  /* ===== よくあるご質問 ===== */
  .faq{ background:transparent; padding:5.1rem 0 8.6rem; }
  .faq .ttl{ margin:0 0 2.5rem var(--pad); }

  .sec-card{ background:transparent; margin:0 var(--pad); padding:0; }
  .faq-list{ display:flex; flex-direction:column; gap:0; background:var(--white); border:1px solid #eceae5; border-radius:1.6rem; overflow:hidden; box-shadow:0 .2rem .8rem rgba(0,0,0,.04); }
  .faq-card{ position:relative; background:var(--white); border-radius:0;
    display:flex; align-items:center; gap:2.2rem; padding:2.6rem 3rem; }
  .faq-list li:not(:last-child) .faq-card{ border-bottom:1px solid #d6d4cf; }
  .faq-card .q-ic{ flex:none; width:7rem; height:7rem; border-radius:50%; background:var(--ic);
    display:flex; align-items:center; justify-content:center; color:var(--green); font-size:4.8rem; line-height:1; }
  .faq-card .txt{ flex:1; min-width:0; }
  .faq-card .tag{ display:block; font-size:2rem; color:var(--sub); margin-bottom:.6rem; }
  .faq-card .q{ font-size:3.2rem; font-weight:700; color:var(--ink); line-height:1.5; }
  .faq-card .chev{ flex:none; width:1.6rem; height:2.6rem; }
  .chev-arw{ display:block; width:1.4rem; height:1.4rem; border-top:.4rem solid var(--green);
    border-right:.4rem solid var(--green); transform:rotate(45deg); }

  /* ===== カテゴリから探す ===== */
  .cat{ padding:6rem 0 8rem; }
  .cat .ttl{ margin:0 0 3.9rem var(--pad); }
  .cat-list{ margin:0 var(--pad); }
  .cat-item{ border-bottom:1px solid var(--line); }

  .cat-head{ list-style:none; display:block; position:relative; height:15rem; background:var(--white); border-radius:1rem; cursor:pointer; }
  .cat-head::-webkit-details-marker{ display:none; }
  .cat-ic{ position:absolute; left:3.1rem; top:50%; transform:translateY(-50%); width:5.3rem; height:6.5rem; object-fit:contain; }
  .cat-head .name{ position:absolute; left:12.5rem; right:8.5rem; top:50%; transform:translateY(-50%); font-size:3.4rem; font-weight:700; color:#000; word-break:keep-all; line-height:1.3; }
  .toggle{ position:absolute; right:3rem; top:50%; transform:translateY(-50%); width:4rem; height:4rem; border-radius:50%; background:var(--green); }
  .toggle::before{ content:""; position:absolute; left:50%; top:50%; width:1.8rem; height:.4rem; background:#fff; transform:translate(-50%,-50%); }
  .toggle::after{ content:""; position:absolute; left:50%; top:50%; width:.4rem; height:1.8rem; background:#fff; transform:translate(-50%,-50%); transition:transform .28s ease, opacity .28s ease; }

  .cat-item[open] > .cat-head .toggle::after{ transform:translate(-50%,-50%) rotate(90deg); opacity:0; }

  .cat-sub{ background:#fbfcfd; border-radius:1.6rem; margin:0 0 2.8rem; overflow:hidden; transition:height .42s cubic-bezier(.16,1,.3,1), margin-bottom .42s cubic-bezier(.16,1,.3,1); }
  .cat-sub a{ position:relative; display:block; height:11rem; }
  .cat-sub a .st{ position:absolute; left:5rem; right:6.5rem; top:50%; transform:translateY(-50%); font-size:3.2rem; font-weight:500; color:var(--ink); }
  .cat-sub a:not(:last-child)::after{ content:""; position:absolute; left:5rem; right:3rem; bottom:0; height:1px; background:rgba(0,0,0,.08); }
  .cat-sub a .sarw{ position:absolute; right:4.5rem; top:50%; transform:translateY(-50%); color:var(--green); font-size:3.4rem; line-height:1; }

  @media (max-width:767px){
    .cat-item{ border:1px solid var(--edge); margin-bottom:1.8rem; background:var(--white); border-radius:1.6rem; box-shadow:var(--cardshadow); overflow:hidden; }
    .cat-head{ background:transparent; border-radius:0; }
    .cat-sub{ border-radius:0; margin:0; }

    .cat-item[open] > .cat-head::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:1px; background:#c2c5c7; box-shadow:0 1px 0 rgba(255,255,255,.95); }
  }

  /* ===== キーワードから探す ===== */
  .kw{ background:transparent; padding:3.4rem 0 5rem; }
  .kw .ttl{ margin:0 0 0 var(--pad); }
  .kw-card{ background:var(--white); border-radius:2.8rem; box-shadow:0 .3rem 1.4rem rgba(0,0,0,.05); margin:3rem var(--pad) 0; padding:5rem 3rem 4rem; }
  .search{ position:relative; }

  .search input{ width:100%; height:9rem; border:1px solid var(--edge); border-radius:999px; background:var(--white);
    box-shadow:var(--cardshadow);
    padding:0 10.5rem 0 3.6rem; font-size:3.5rem; text-align:left; color:var(--ink); }
  .search input::placeholder{ color:#9a9a9a; }
  .search input:focus{ border-color:var(--green); outline:none; }
  .search .mag{ position:absolute; right:1.2rem; top:50%; transform:translateY(-50%); width:7rem; height:7rem;
    border:none; border-radius:50%; background:var(--green); padding:0; cursor:pointer;
    display:flex; align-items:center; justify-content:center; }
  .search .mag::after{ content:""; position:absolute; inset:-4.5px; }
  .search .mag img{ width:3.6rem; height:3.6rem; filter:brightness(0) invert(1); }
  .kw-hot{ margin-top:3.5rem; padding-left:0; }
  .kw-hot .lbl{ display:block; font-size:3rem; font-weight:500; margin-bottom:2rem; }
  .kw-hot .pills{ display:flex; flex-wrap:wrap; gap:2.8rem 1.8rem; }
  .kw-hot .pills a{ position:relative; flex:none; height:6rem; border:1px solid var(--edge); border-radius:1rem; background:var(--white); display:flex; align-items:center; justify-content:center;
    box-shadow:0 .1rem .4rem rgba(0,0,0,.05), 0 .4rem 1.2rem rgba(0,0,0,.07);
    padding:0 2.6rem; color:var(--ink); font-size:3.2rem; font-weight:500; }
  .kw-hot .pills a::after{ content:""; position:absolute; left:0; right:0; top:50%; transform:translateY(-50%); height:44px; }

  /* ===== お困りごとが解決しない場合 ===== */
  .nf{ position:relative; isolation:isolate; padding:8.2rem 0 2rem; }
  .nf .op{ position:absolute; right:7.9rem; top:0; width:27.4rem; z-index:1; pointer-events:none; }
  .nf .ttl{ margin:0 var(--pad); position:relative; z-index:1; line-height:1.5; }
  .nf-tel{ position:relative; z-index:2; display:block; background:var(--white); border:1px solid var(--edge); border-radius:3rem; height:19rem;
    width:calc(100% - var(--pad) * 2); max-width:340px; margin:2.5rem auto 0; box-shadow:var(--cardshadow); }
  .nf-tel .ph-ic{ position:absolute; left:3rem; top:3.4rem; width:12.2rem; height:12.2rem; border-radius:50%; background:var(--ic);
    display:flex; align-items:center; justify-content:center; }
  .nf-tel .ph-ic img{ width:5.4rem; height:6rem; object-fit:contain; }
  .nf-tel .tel-ttl{ position:absolute; left:18.5rem; top:3.8rem; font-size:3.2rem; font-weight:700; color:var(--ink); }
  .tt-2line{ display:none; }
  .nf-tel .tel-time{ position:absolute; left:18.5rem; top:10.2rem; width:auto; height:5rem; padding:0 1.8rem; background:var(--green); color:var(--white);
    border-radius:2.5rem; display:inline-flex; align-items:center; justify-content:center; font-size:2.8rem; font-weight:700; white-space:nowrap; }
  .nf-tel .chev{ position:absolute; right:3.4rem; top:50%; transform:translateY(-50%); width:1.6rem; height:2.6rem; }
  .nf-tel .tel-info{ display:none; }
  @media (max-width:479px){
    .nf-tel{ height:22rem; }
    .nf-tel .ph-ic{ top:50%; transform:translateY(-50%); }
    .nf-tel .tel-ttl{ left:18.5rem; right:6rem; top:2.6rem; text-align:left; }
    .nf-tel .tel-info{ display:block; position:absolute; left:18.5rem; right:6rem; top:8.2rem; }
    .nf-tel .tel-num{ display:flex; align-items:center; gap:.8rem; font-size:4rem; font-weight:700; color:var(--ink); line-height:1.05; white-space:nowrap; }
    .nf-tel .tel-num .fd-ic{ display:inline-block; flex:none; width:auto; height:3.8rem; }
    .nf-tel .tel-info .tel-ip, .nf-tel .tel-info .tel-hours{ display:none; }
    .nf-tel .tel-time{ position:absolute; left:18.5rem; right:auto; transform:none; top:14rem; }
    .nf-tel .chev{ display:block; right:3.4rem; top:50%; transform:translateY(-50%); }
  }
  @media (max-width:329px){
    .nf-tel .tel-ttl{ font-size:3rem; white-space:nowrap; }
    .nf-tel .tel-num{ font-size:3.8rem; }
    .nf-tel .tel-num .fd-ic{ height:3.4rem; }
    .nf-tel .tel-time{ font-size:2.5rem; padding:0 1.4rem; }
    .nf-ch.is-line .ch-pill{ font-size:2.5rem; padding:0 1.4rem; }
  }
  .nf-ip{ margin:2.6rem var(--pad) 0; text-align:center; font-size:2.6rem; line-height:1.6; color:var(--ink); }
  .nf-ip .num{ display:inline-block; margin-top:.4rem; font-size:3.8rem; font-weight:700; color:#000; text-decoration:underline; text-underline-offset:.5rem; }
  .nf-tel .tel-ip{ display:block; font-size:2.4rem; color:var(--ink); margin-top:.5rem; text-align:center; }
  .nf-tel .tel-ip b{ font-weight:700; white-space:nowrap; font-size:2.9rem; }
  .nf-note{ margin:1.6rem var(--pad) 0; font-size:2.4rem; color:var(--sub); line-height:1.35; text-align:center; }

  .nf-ch{ position:relative; z-index:2; display:block; background:var(--white); border:1px solid var(--edge); border-radius:3rem; height:19rem;
    width:calc(100% - var(--pad) * 2); max-width:340px; margin:6rem auto 0; box-shadow:var(--cardshadow); }
  .nf-ch .ch-ic{ position:absolute; left:3rem; top:3.4rem; width:12.2rem; height:12.2rem; border-radius:50%; background:var(--ic);
    display:flex; align-items:center; justify-content:center; }
  .nf-ch .ch-ic img{ width:6.6rem; height:6.6rem; object-fit:contain; }
  .nf-ch.is-line .ch-ic{ background:none; }
  .nf-ch.is-line .ch-ic img{ width:10.8rem; height:10.8rem; }
  .nf-ch .ch-ttl{ position:absolute; left:18.5rem; top:50%; transform:translateY(-50%); font-size:3.2rem; font-weight:700; color:var(--ink); }
  .nf-ch.is-line .ch-ttl{ top:3.8rem; transform:none; }
  .nf-ch .ch-desc{ position:absolute; left:18.5rem; top:10.2rem; }
  .ch-pill .pl-tb{ display:none; }
  .nw{ white-space:nowrap; }
  .nf-ch .ch-pill{ height:5rem; padding:0 1.8rem; background:var(--green); color:var(--white);
    border-radius:2.5rem; display:inline-flex; align-items:center; justify-content:center; font-size:2.8rem; font-weight:700; white-space:nowrap; }

  @media (min-width:351px) and (max-width:479px){
    .nf-tel .tel-ttl, .nf-ch .ch-ttl{ font-size:3.6rem; }
  }

  .nf-ch-list .nf-ch:first-child{ margin-top:0; }
  .nf-ch .chev{ position:absolute; right:3.4rem; top:50%; transform:translateY(-50%); width:1.6rem; height:2.6rem; }

  /* ===== お客様の声 ===== */
  .voice{ padding:6rem 0 2rem; }
  .voice .ttl{ margin:0 0 2rem var(--pad); }
  .voice .list{ display:flex; flex-direction:column; gap:3rem; padding:0 var(--pad); }
  .voice .banner{ border:1px solid var(--edge); border-radius:1rem; overflow:hidden; display:block; box-shadow:var(--cardshadow); }
  .voice .banner img{ width:100%; height:auto; display:block; }

  /* ===== フッター ===== */
  .ft{ background:var(--bg); padding:4rem 4.4rem 3rem; }
  .ft-links{ display:flex; }
  .ft-col{ flex:1; display:flex; flex-direction:column; gap:0; }
  .ft-col a{ font-size:2.8rem; font-weight:500; color:var(--sub); padding:2.3rem 0; }
  .ft-copy{ border-top:1px solid var(--chev); margin-top:4.5rem; padding-top:3rem; text-align:center; }
  .ft-copy p{ font-size:2.8rem; font-weight:300; color:var(--sub); }

  .faq, .cat, .kw, .nf, .voice{ padding-top:3.6rem; padding-bottom:8rem; }
  .faq .ttl, .cat .ttl, .kw .ttl, .nf .ttl, .voice .ttl{ margin-top:0; margin-right:var(--pad); margin-bottom:3rem; }
  .kw-card{ margin-top:0; }
  .nf-tel{ margin-top:6rem; }

  /* ===== 小見出し ===== */
  .ttl.ttl-sub{ font-size:3.6rem; padding-bottom:0; border-bottom:none; box-shadow:none; padding-left:0; }
  .ttl.ttl-sub::before{ display:none; }

  .faq{ padding-bottom:2rem; }
  .cat{ padding-top:2.4rem; padding-bottom:2rem; }
  .kw{ padding-top:2.4rem; }
  .nf{ padding-top:6rem; }

  @media (max-width:767px){
    .nf .op{ right:calc(50% - 30rem); left:auto; }
    .ft-links{ gap:3rem; }
  }

  /* ===== レスポンシブ ===== */

  @media (min-width:480px){
    :root{ --pad:4.4rem; }
    .sp-br{ display:none; }
    .nf-tel{ cursor:default; pointer-events:none; }
    .ch-pill .pl-sp{ display:none; }
    .ch-pill .pl-tb{ display:inline; }
    .nf-ch .ch-pill{ display:block; background:none; color:var(--ink); padding:0; height:auto; border-radius:0; white-space:normal; line-height:1.45; text-align:center; }
    .hero{ height:48rem; }
    .hero .bg img{ object-position:right center; }
    .hero .grad{ width:100%;
      background:linear-gradient(to right,#fff 0%,#fff 26%,rgba(255,255,255,.82) 42%,rgba(255,255,255,0) 66%); }
    .hero .sup{ top:9rem; left:8rem; }
    .hero .h1{ top:14rem; left:8rem; }
    .hero .lead{ top:24rem; left:8rem; width:58rem; }
  }

  @media (min-width:480px) and (max-width:767px){
    .nf-tel{ position:relative; z-index:2; width:calc(100% - var(--pad)*2); max-width:620px; min-height:15rem; height:auto; margin:6rem auto 0; padding:3rem 3.6rem; border-radius:3rem;
      border:none; display:flex; align-items:stretch; gap:0; }
    .nf-tel .tel-left{ flex:0 0 40%; min-width:0; display:flex; align-items:center; justify-content:center; gap:1.8rem; padding-right:2.2rem; }
    .nf-tel .ph-ic{ position:static; left:auto; top:auto; flex:none; display:flex; align-items:center; justify-content:center; width:9rem; height:9rem; }
    .nf-tel .ph-ic img{ width:4.3rem; height:4.8rem; }
    .nf-tel .tel-ttl{ position:static; left:auto; top:auto; font-size:2.8rem; white-space:nowrap; line-height:1.32; text-align:left; }
    .nf-tel .tt-1line{ display:none; }
    .nf-tel .tt-2line{ display:inline; }
    .nf-tel .tel-time{ display:none; }
    .nf-tel .chev{ display:none; }
    .nf-tel .tel-info{ position:relative; flex:0 0 60%; min-width:0; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:0 6rem 0 3rem; }
    .nf-tel .tel-info::before{ content:""; position:absolute; left:0; top:50%; transform:translateY(-50%); width:1px; height:7rem; background:var(--line); }
    .nf-tel .tel-num{ display:flex; align-items:center; gap:1.2rem; font-size:4.4rem; font-weight:700; color:var(--ink); line-height:1.1; }
    .nf-tel .fd-ic{ width:auto; height:3.4rem; }
    .nf-tel .tel-hours{ font-size:2.4rem; color:#4c4c4c; margin-top:.4rem; }
    .nf-ch{ max-width:620px; height:auto; min-height:15rem; margin:6rem auto 0; padding:2.6rem 3.6rem; border-radius:3rem;
      display:flex; align-items:center; justify-content:center; gap:0; }
    .nf-ch .ch-left{ flex:0 0 auto; min-width:0; display:flex; align-items:center; justify-content:center; gap:1.8rem; }
    .nf-ch .ch-ic{ position:static; flex:none; width:9rem; height:9rem; }
    .nf-ch .ch-ic img{ width:5.2rem; height:5.2rem; }
    .nf-ch.is-line .ch-ic{ background:none; }
    .nf-ch.is-line .ch-ic img{ width:8rem; height:8rem; }
    .nf-ch .ch-ttl{ position:static; transform:none; font-size:2.8rem; white-space:nowrap; line-height:1.32; text-align:left; width:29rem; }
    .nf-ch.is-line{ justify-content:flex-start; }
    .nf-ch.is-line .ch-left{ flex:0 0 40%; justify-content:center; padding-right:2.2rem; }
    .nf-ch.is-line .ch-ttl{ width:auto; }
    .nf-ch.is-line .tt-1line{ display:none; }
    .nf-ch.is-line .tt-2line{ display:inline; }
    .nf-ch .tt-1line{ display:inline; }
    .nf-ch .tt-2line{ display:none; }
    .nf-ch .ch-desc{ position:relative; top:auto; left:auto; right:auto; flex:0 0 60%; min-width:0;
      display:flex; align-items:center; justify-content:center; padding:0 3rem; }
    .nf-ch .ch-desc::before{ content:""; position:absolute; left:0; top:50%; transform:translateY(-50%); width:1px; height:6rem; background:var(--line); }
    .nf-ch .chev{ right:3.4rem; }
    .nf-ip{ display:none; }
    .nf-note{ text-align:center; }
    .nf .op{ width:28rem; right:max(var(--pad), calc(50% - 62rem)); top:-6rem; left:auto; z-index:1; }
  }

  @media (min-width:768px){

    .header__menu-icon{ display:none; }
    .header__nav{ display:block; position:absolute; top:0; left:auto; right:4.4rem; height:9.6rem; opacity:1; visibility:visible; transform:none; }
    .header__nav-list{ display:flex; align-items:center; height:100%; background:none; box-shadow:none; }
    .header__nav-item{ border-bottom:0; }
    .header__nav-item + .header__nav-item{ border-left:1px solid var(--line); }
    .header__nav-link{ padding:0 2.2rem; font-size:2.8rem; }
    .header__nav-link:hover{ color:var(--green); }
    .header__nav-item--join .header__nav-link:hover{ color:#fff; }
    .header__nav-item--join{ padding:0; margin-left:2.6rem; border-left:0; display:flex; align-items:center; }
    .header__nav-item--join .header__nav-link{ height:6.4rem; padding:0 2.8rem; font-size:2.8rem; border-radius:.6rem; }
    .header__nav-item--join .header__nav-link::before{ border-width:.6rem 0 .6rem 1rem; }

    .faq .ttl, .cat .ttl, .kw .ttl, .nf .ttl, .voice .ttl{ text-align:center; margin-left:0; margin-right:0; padding-left:0; font-size:5.6rem; margin-bottom:4rem; }
    .ttl::before{ left:50%; transform:translateX(-50%); }
    .ttl.ttl-sub{ font-size:4.2rem; padding-left:0; }
    .faq, .cat, .kw, .nf, .voice{ padding-top:7rem; padding-bottom:6rem; }
    .sp-br{ display:none; }

    .hero{ height:74rem; }
    .hero .sup{ top:20rem; left:10rem; font-size:3rem; }
    .hero .h1{ top:25rem; left:10rem; font-size:8rem; }
    .hero .lead{ top:37rem; left:10rem; width:62rem; font-size:3.4rem; }

    .sec-card{ background:var(--white); border-radius:2.8rem; box-shadow:0 .3rem 1.4rem rgba(0,0,0,.05); padding:5.5rem 5.5rem 4.5rem; }
    .faq-list{ display:grid; grid-template-columns:1fr 1fr; gap:4rem; background:transparent; border:none; border-radius:0; overflow:visible; box-shadow:none; }
    .faq-list li{ display:grid; }
    .faq-list li:not(:last-child) .faq-card{ border-bottom:1px solid var(--edge); }
    .faq-card{ height:100%; border:1px solid var(--edge); border-radius:1.6rem; min-height:14.5rem; box-shadow:var(--cardshadow); padding:1.6rem 3rem; }
    .faq-card .q{ font-size:3.2rem; }
    .faq-card .tag{ font-size:2.2rem; }

    .cat-list{ display:grid; grid-template-columns:repeat(3,1fr); gap:5rem 6rem; align-items:start; margin:0 4.4rem;
      background:#fff; border-radius:2.8rem; box-shadow:0 .3rem 1.4rem rgba(0,0,0,.05); padding:5.5rem 5.5rem 4.5rem; }
    .cat-item,.cat-item[open]{ border-bottom:none; margin:0; }
    .cat-item[open] + .cat-item > .cat-head{ border-top:none; }
    .cat-head{ height:auto; background:none; border-radius:0; cursor:default; pointer-events:none;
      display:flex; align-items:center; gap:2rem; padding:0 0 1.4rem; border-bottom:none; }
    .cat-head::after{ content:""; position:absolute; left:0; right:0; top:100%; height:1rem; pointer-events:none;
      background:linear-gradient(to bottom, rgba(0,0,0,.13), rgba(0,0,0,0));
      -webkit-mask-image:linear-gradient(to right, transparent 0, #000 24%, #000 76%, transparent 100%);
      mask-image:linear-gradient(to right, transparent 0, #000 24%, #000 76%, transparent 100%); }
    .cat-ic{ position:static; transform:none; width:5.3rem; height:5.3rem; }
    .cat-item[open] > .cat-head > *{ position:static; z-index:auto; }
    .cat-head .name{ position:static; transform:none; color:var(--ink); line-height:1.3; white-space:normal; display:flex; align-items:center; }
    .toggle{ display:none; }
    .cat-item[open] > .cat-head::before{ display:none; }
    .cat-item[open] > .cat-head .name{ color:var(--ink); }
    .cat-sub{ background:none; border-radius:0; padding-top:.8rem; border-top:none; margin:0; }
    .cat-sub a{ background:none; border-radius:0; height:8.6rem; }
    .cat-sub a .st{ left:5rem; right:3.5rem; font-size:3.2rem; }
    .cat-sub a .sarw{ right:.6rem; color:var(--green); }

    .kw-card{ margin:4rem var(--pad) 0; padding:6rem 7rem 5.5rem; }
    .kw .search input{ height:11rem; border-radius:999px; font-size:3.4rem; padding:0 13rem 0 4.8rem; }
    .kw .search .mag{ right:1.4rem; width:8.4rem; height:8.4rem; border-radius:50%; }
    .kw .search .mag img{ width:4.2rem; height:4.2rem; }
    .kw-hot{ margin-top:4.8rem; }
    .kw-hot .lbl{ margin-bottom:2.4rem; }
    .kw-hot .pills{ gap:2rem; }
    .kw-hot .pills a{ height:6.6rem; padding:0 2.6rem; }

    .nf-tel{ position:relative; z-index:2; max-width:860px; height:auto; min-height:20rem; margin:6rem auto 0; padding:4rem 7rem; border-radius:4rem;
      border:none; display:flex; align-items:stretch; gap:0; }
    .nf-tel .tel-left{ flex:0 0 40%; min-width:0; display:flex; align-items:center; justify-content:center; gap:3rem; padding-right:3rem; }
    .nf-tel .tel-info{ position:relative; flex:0 0 60%; min-width:0; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:0 4rem; }
    .nf-tel .tel-info::before{ content:""; position:absolute; left:0; top:50%; transform:translateY(-50%); width:1px; height:9rem; background:var(--line); }
    .nf-tel .ph-ic{ position:static; left:auto; top:auto; flex:none; width:12.2rem; height:12.2rem; }
    .nf-tel .ph-ic img{ width:5.4rem; height:6rem; }
    .nf-tel .tel-ttl{ position:static; left:auto; top:auto; font-size:3.6rem; white-space:nowrap; min-width:36rem; }
    .nf-tel .tel-time{ display:none; }
    .nf-tel .chev{ display:none; }
    .nf-tel .tel-num{ display:flex; align-items:center; gap:1.6rem; font-size:6rem; font-weight:700; color:var(--ink); line-height:1.05; letter-spacing:.01em; }
    .nf-tel .fd-ic{ width:auto; height:4.6rem; }
    .nf-tel .tel-hours{ font-size:2.6rem; color:#4c4c4c; margin-top:.6rem; padding-left:.4rem; }
    .nf-ip{ display:none; }
    .nf-note{ text-align:center; }
    .nf .ttl{ margin-top:9rem; margin-bottom:4rem; }
    .nf .op{ width:38rem; right:max(5rem, calc(50% - 83rem)); top:-1rem; z-index:1; }

    .nf-ch-list{ margin-top:0; }
    .nf-ch{ max-width:860px; height:auto; min-height:20rem; margin:6rem auto 0; padding:4rem 7rem; border-radius:4rem;
      display:flex; align-items:center; justify-content:center; gap:0; }
    .nf-ch .ch-left{ flex:0 0 auto; min-width:0; display:flex; align-items:center; justify-content:center; gap:3rem; }
    .nf-ch .ch-ic{ position:static; flex:none; width:12.2rem; height:12.2rem; }
    .nf-ch .ch-ic img{ width:6.6rem; height:6.6rem; }
    .nf-ch.is-line .ch-ic{ background:none; }
    .nf-ch.is-line .ch-ic img{ width:10.8rem; height:10.8rem; }
    .nf-ch .ch-ttl{ position:static; transform:none; font-size:3.6rem; white-space:nowrap; text-align:left; width:37rem; }
    .nf-ch.is-line{ justify-content:flex-start; }
    .nf-ch.is-line .ch-left{ flex:0 0 40%; justify-content:center; padding-right:3rem; }
    .nf-ch.is-line .ch-ttl{ width:auto; }
    .nf-ch .ch-desc{ position:relative; top:auto; left:auto; right:auto; flex:0 0 60%; min-width:0;
      display:flex; align-items:center; justify-content:center; padding:0 4rem; }
    .nf-ch .ch-pill{ font-size:3.6rem; }
    .nf-ch .ch-desc::before{ content:""; position:absolute; left:0; top:50%; transform:translateY(-50%); width:1px; height:9rem; background:var(--line); }
    .nf-ch .chev{ right:4rem; }

    .voice .list{ flex-direction:row; align-items:stretch; }
    .voice .banner{ flex:1; min-width:0; }
  }

  /* ===== ホバー／タップ反応 ===== */

  @media (hover:hover) and (pointer:fine) and (max-width:479px){
    .nf-tel{ transition:box-shadow .2s ease, transform .2s ease; }
    .nf-tel:hover{ box-shadow:0 .8rem 2.4rem rgba(0,0,0,.14); transform:translateY(-.4rem); }
  }

  @media (hover:hover) and (pointer:fine){
    .faq-card, .nf-ch, .voice .banner{ transition:box-shadow .2s ease, transform .2s ease; }
    .faq-card:hover{ box-shadow:0 .8rem 2.4rem rgba(0,0,0,.14); transform:translateY(-.4rem); }
    .nf-ch:hover{ box-shadow:0 .8rem 2.4rem rgba(0,0,0,.14); transform:translateY(-.4rem); }
    .voice .banner:hover{ box-shadow:0 .8rem 2.4rem rgba(0,0,0,.14); transform:translateY(-.4rem); }
    .cat-sub a{ transition:background-color .2s ease; }
    .cat-sub a:hover{ background:rgba(0,0,0,.045); }
    .kw-hot .pills a{ transition:box-shadow .2s ease, transform .2s ease; }
    .kw-hot .pills a:hover{ box-shadow:0 .3rem 1rem rgba(0,0,0,.08), 0 .8rem 2rem rgba(0,0,0,.10); transform:translateY(-.2rem); }
    .search .mag{ transition:filter .2s ease; }
    .search .mag:hover{ filter:brightness(1.08); }
    .ft-col a, .header__nav-link{ transition:color .2s ease; }
    .ft-col a:hover, .header__nav-link:hover{ color:var(--green); }
    .header__nav-item--join .header__nav-link{ transition:transform .2s ease, box-shadow .2s ease; }
    .header__nav-item--join .header__nav-link:hover{ color:#fff; transform:translateY(-.2rem); box-shadow:0 .5rem 1.4rem rgba(0,0,0,.18); }
  }

  @media (min-width:768px) and (max-width:860px){
    .cat-head .name{ min-height:2.6em; }
  }

  @media (min-width:1041px){
    .hero{ width:100vw; margin-left:calc(50% - 50vw); }
    .hero .sup{ left:calc(50vw - 94rem); }
    .hero .h1{ left:calc(50vw - 94rem); }
    .hero .lead{ left:calc(50vw - 94rem); }
  }

  @media (min-width:1921px){
    .hero{ width:1920px; margin-left:calc(50% - 960px); }
    .hero .sup{ left:98rem; }
    .hero .h1{ left:98rem; }
    .hero .lead{ left:98rem; }
  }

  @media (min-width:1041px){
    .op-header::before{ content:""; position:absolute; top:0; bottom:0; left:50%; transform:translateX(-50%); width:100vw; background:#fff; z-index:-1; }
  }
