:root{
    --ink:#2B3A2E; --ink-soft:#5A685C; --ink-faint:#94A092;
    --green:#7AB22E; --green-deep:#5E9018; --leaf:#8BC53F;
    --orange:#F26522; --orange-deep:#DD551A;
    --panel:#F2F6EA; --pill:#E9F3D6; --pill-ink:#557F26;
    --line:#E2E8DA; --line-soft:#EDF1E7; --white:#fff;
    --img1:#A6D06A; --img2:#8BC34A;
    --shadow:0 1px 3px rgba(43,58,46,.06); --shadow-h:0 12px 30px rgba(43,58,46,.13);
    --r:16px; --max:1200px; --gut:40px;
    --ease:cubic-bezier(.34,1.56,.64,1);
  }
  *{box-sizing:border-box}
  html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
  body{margin:0;background:#fff;color:var(--ink);font-family:"Noto Sans JP",system-ui,sans-serif;
    line-height:1.85;font-feature-settings:"palt" 1;letter-spacing:.01em}
  a{color:inherit;text-decoration:none;cursor:pointer}
  [onclick]{cursor:pointer}
  [hidden]{display:none!important}
  .wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gut)}
  @media(max-width:767px){:root{--gut:18px}}
  .eng{font-family:"Outfit",sans-serif;letter-spacing:.1em}
  svg.ic{display:inline-block;vertical-align:middle;flex:0 0 auto}
  .imgph{background:linear-gradient(135deg,var(--img1),var(--img2));position:relative;display:grid;place-items:center;overflow:hidden}
  .imgph svg{width:34%;max-width:60px;color:#fff;opacity:.6}
  .ph-note{color:#fff;font-size:13px;font-weight:800;letter-spacing:.04em;opacity:.9;text-shadow:0 1px 2px rgba(0,0,0,.12)}

  .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:800;font-size:14px;
    border:none;border-radius:999px;padding:13px 24px;cursor:pointer;font-family:inherit;line-height:1;white-space:nowrap;transition:transform .15s var(--ease),background .15s,box-shadow .15s}
  .btn svg{width:17px;height:17px;transition:transform .15s var(--ease)}
  /* チェックボックス/ラジオのラベルは選択不可（クリック時の文字選択を防ぐ）※全案件共通ルール */
  label:has(> input[type="checkbox"]),label:has(> input[type="radio"]){-webkit-user-select:none;user-select:none}
  .btn-orange{background:var(--orange);color:#fff}
  .btn-green{background:var(--green);color:#fff}
  .btn-out{background:#fff;color:var(--ink-soft);border:1.5px solid var(--line)}
  .btn-search{width:100%;background:#fff;border:1.5px solid var(--green);color:var(--green-deep);
    border-radius:999px;padding:14px;font-weight:800;cursor:pointer;font-family:inherit;font-size:15.5px;
    display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 3px 0 rgba(122,178,46,.25);transition:transform .15s var(--ease),background .15s}
  .btn-search svg{width:18px;height:18px;flex:0 0 auto}

  header.site{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.95);backdrop-filter:blur(6px);border-bottom:1px solid var(--line)}
  header.site .bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 13px;height:66px}  /* ロゴ左余白を無料登録の右paddingに合わせ狭く＋ロゴと操作群に余白 */
  .logo{display:flex;align-items:center;gap:8px;cursor:pointer}
  .logo .mark{width:38px;height:38px;border-radius:8px;display:grid;place-items:center;flex:0 0 auto;overflow:hidden}
  .logo .mark img{width:100%;height:100%;object-fit:contain}
  .logo .mark svg{width:21px;height:21px}
  .logo .name{font-weight:900;font-size:18px;line-height:1.1}
  .logo .name small{display:block;font-weight:500;font-size:10px;color:var(--ink-faint);margin-top:4px;white-space:nowrap}
  .hactions{display:flex;gap:8px;align-items:center}
  .hactions .btn{height:40px;padding:0 13px;box-sizing:border-box;font-size:13px}  /* 高さを固定して揃える(中身がアイコン有無で変わらないように) */
  .hactions .btn-orange{border:1.5px solid transparent}  /* btn-out(枠1.5px)と枠分を揃える */
  .fav-h-ic{display:none;vertical-align:middle}
  .hactions .fav-h{gap:5px;color:var(--green-deep);border-color:#bfe06a}
  @media(max-width:767px){
    .hactions .fav-h{display:inline-flex;align-items:center;justify-content:center;padding:9px 11px}
    .hactions .fav-h .fav-h-t{display:none}
    .hactions .fav-h .fav-h-ic{display:inline-block;width:18px;height:18px}
  }

  .hero{background:linear-gradient(180deg,#F4F9EC,#fff);border-bottom:1px solid var(--line)}
  .hero .wrap{padding:46px var(--gut) 56px;display:grid;grid-template-columns:minmax(320px,430px) 1fr;gap:30px;align-items:stretch}
  @media(max-width:767px){.hero .wrap{grid-template-columns:1fr;padding:0 0 56px}}  /* SPは上0＋左右0(MVフルブリード) */
  .scard{background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-h);padding:26px}
  .scard .top{display:flex;align-items:center;justify-content:space-between;margin:0 0 20px}
  .scard .top h1{font-size:19px;font-weight:900;margin:0;display:flex;align-items:center;gap:8px}
  .scard .top h1 svg{width:19px;height:19px;color:var(--green)}
  .scard .top a{font-size:12.5px;font-weight:800;color:var(--green-deep);display:inline-flex;gap:4px;align-items:center}
  .scard .top a svg{width:14px;height:14px;transition:transform .15s var(--ease)}
  .scard .top a:hover svg{transform:translateX(3px)}
  .fld{margin:0 0 18px}
  .fld label{display:block;font-weight:800;font-size:13.5px;color:var(--ink-soft);margin:0 0 8px}
  .txt{width:100%;border:1.5px solid var(--line);border-radius:12px;padding:13px 15px;font-size:15px;font-family:inherit;background:#fff;color:var(--ink)}
  .txt:focus{outline:none;border-color:var(--leaf)}
  /* SP: フォーカス時のiOSオートズーム防止のため、入力系は16px以上にする */
  @media(max-width:767px){.txt,input,select,textarea{font-size:16px}}
  .cnt{text-align:center;font-size:14.5px;color:var(--ink-soft);margin:24px 0 16px}
  .cnt b{font-size:28px;color:var(--green-deep);font-weight:900;margin:0 6px;font-variant-numeric:tabular-nums;display:inline-block;min-width:2.4em;text-align:center}
  .hero-visual{border-radius:20px;aspect-ratio:1980/1629;background:#c6db02;overflow:hidden;align-self:start}
  /* MVスライド(PC/SP共通)：画像を重ねてopacityでクロスフェード。1枚なら:only-childで常時表示＝アニメ無し */
  .hero-visual .mv-pc,.hero-visual .mv-sp{position:relative;width:100%;height:100%}
  .hero-visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;opacity:0;transition:opacity 1s ease}
  .hero-visual img.on,.hero-visual img:only-child{opacity:1}
  .hero-visual .mv-sp{display:none}      /* PCはPC用MVのみ表示 */
  /* SP: MVは縦長＋フルブリード(左右の余白なし・角丸なし) */
  @media(max-width:767px){
    .hero-visual{order:-1;margin-bottom:18px;border-radius:0;aspect-ratio:375/683}
    .hero-visual .mv-pc{display:none}
    .hero-visual .mv-sp{display:block}
  }  /* heroのside paddingを0にしたので自然にフルブリード(マイナスマージン不要=はみ出さない) */
  @media(max-width:767px){.scard{margin:0 var(--gut)}}  /* 検索カードは左右余白を持たせる */
  @media(max-width:767px){.hero .wrap{padding-bottom:30px;gap:10px}}

  .dd{position:relative}
  .dd-btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;
    border:1.5px solid var(--line);border-radius:12px;padding:13px 15px;background:#fff;cursor:pointer;
    font-family:inherit;font-size:15px;font-weight:700;color:var(--ink);transition:border-color .15s}
  .dd-btn:hover{border-color:var(--leaf)}
  .dd.open .dd-btn{border-color:var(--green)}
  .dd-btn .chev{color:var(--green);transition:transform .25s var(--ease);display:inline-flex}
  .dd.open .dd-btn .chev{transform:rotate(180deg)}
  .dd-btn .chev svg{width:18px;height:18px}
  .dd-btn .dd-val{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}
  .dd-panel{position:absolute;top:100%;left:0;right:0;z-index:20;background:#fff;border:1px solid var(--line);
    border-top:10px solid transparent;background-clip:padding-box;
    border-radius:14px;box-shadow:var(--shadow-h);padding:7px;max-height:340px;overflow-y:auto;
    opacity:0;visibility:hidden;transform:scale(.96) translateY(-6px);transform-origin:top center;
    transition:opacity .2s,transform .26s var(--ease),visibility .2s}
  .dd.open .dd-panel{opacity:1;visibility:visible;transform:scale(1) translateY(0)}
  .dd-acc-head{display:flex;align-items:center;width:100%;background:none;border:none;font-family:inherit;font-size:14.5px;font-weight:800;color:var(--ink);padding:10px 11px;cursor:pointer;border-radius:9px;text-align:left}
  .dd-acc-head:hover{background:var(--panel)}
  .dd-acc-exp{margin-left:auto;color:var(--green-deep);font-size:18px;line-height:1}
  .dd-acc-badge{display:none;font-size:10.5px;font-weight:800;color:#8a6d00;background:#ffe680;border-radius:20px;padding:2px 9px;margin-left:8px}
  .dd-acc.has-sel .dd-acc-badge{display:inline-block}
  .dd-acc .dd-acc-kids{display:none;padding-left:10px}
  .dd-acc.open .dd-acc-kids{display:block}
  .dd-opt{width:100%;text-align:left;border:none;background:none;border-radius:9px;padding:11px 13px;font-family:inherit;
    font-size:14.5px;font-weight:700;color:var(--ink-soft);cursor:pointer;display:flex;align-items:center;gap:9px;transition:background .12s,color .12s}
  .dd-opt:hover{color:var(--green-deep);background:var(--panel)}
  .sortsel{appearance:none;-webkit-appearance:none;border:1.5px solid var(--line);border-radius:10px;
    padding:9px 36px 9px 14px;font-family:inherit;font-size:14px;font-weight:700;color:var(--ink);
    background-color:#fff;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2354a01e'><path d='M12 15 6 9h12z'/></svg>");
    background-repeat:no-repeat;background-position:right 12px center;background-size:16px;cursor:pointer;transition:border-color .15s,box-shadow .15s}
  .sortsel:hover{border-color:var(--leaf)}
  .sortsel:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px rgba(106,168,42,.15)}
  .dd-opt .dot{width:18px;height:18px;flex:0 0 auto;color:var(--green);opacity:0}
  .dd-opt.sel{color:var(--green-deep)} .dd-opt.sel .dot{opacity:1}

  .sec{padding:64px 0 0}
  @media(max-width:767px){.sec{padding:44px 0 0}}
  .sec-head{display:flex;align-items:center;justify-content:space-between;margin:0 0 30px;gap:16px}
  .sec-head h2{font-weight:900;font-size:clamp(22px,3.2vw,28px);margin:0}
  .sec-head h2 .e{display:block;margin-top:5px;font-family:"Outfit",sans-serif;font-size:13px;color:var(--green);letter-spacing:.12em;font-weight:800}
  .more{font-weight:800;font-size:13.5px;color:var(--green-deep);display:inline-flex;gap:6px;align-items:center;white-space:nowrap}
  .more svg{width:15px;height:15px;transition:transform .15s var(--ease)}

  .carousel{position:relative}
  .grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
  @media(max-width:767px){.grid3{grid-template-columns:repeat(2,1fr)}}
  @media(max-width:767px){.grid3{grid-template-columns:1fr}}
  /* 新着求人カルーセル（PC=3枚 / SP=1枚） */
  /* 新着求人カルーセル（Swiper）。矢印はnjc-nav流用、ドットはswiper-pagination */
  .njc{position:relative}
  .njc-row{position:relative;display:flex;align-items:center}
  .home-swiper{overflow:hidden;width:100%}
  .home-swiper .swiper-slide{height:auto}             /* カードを等高に（wrapperのalign-items:stretch） */
  .home-swiper .swiper-slide>.jcard{height:100%;width:100%}
  .njc-nav{position:absolute;top:30%;transform:translateY(-50%);z-index:3;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--green-deep);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,.10);transition:background .15s,opacity .15s}
  .njc-nav svg{width:21px;height:21px}
  .njc-nav.prev{left:-10px}
  .njc-nav.next{right:-10px}
  .njc-nav:hover{background:var(--panel)}
  .njc-nav.swiper-button-disabled{opacity:.3;cursor:default;pointer-events:none}
  .njc-nav.swiper-button-lock{display:none}           /* スライドが足りない時は矢印を隠す */
  #home-carousel .swiper-pagination{position:static;display:flex;justify-content:center;gap:8px;margin-top:20px}
  #home-carousel .swiper-pagination-bullet{width:9px;height:9px;background:var(--line);opacity:1;margin:0!important;transition:background .15s}
  #home-carousel .swiper-pagination-bullet-active{background:var(--green)}
  #home-carousel .swiper-pagination.swiper-pagination-lock{display:none}
  .arr{position:absolute;top:96px;width:40px;height:40px;border-radius:50%;background:#fff;border:1px solid var(--line);
    box-shadow:var(--shadow-h);display:grid;place-items:center;cursor:pointer;color:var(--ink-soft);z-index:2;transition:transform .15s var(--ease)}
  .arr.l{left:-20px} .arr.r{right:-20px} .arr svg{width:18px;height:18px}
  @media(max-width:767px){.arr{display:none}}
  .jcard{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);cursor:pointer;display:flex;flex-direction:column;transition:transform .2s var(--ease),box-shadow .2s}
  .jcard .ph{aspect-ratio:4/3}.jcard .ph svg{transition:transform .35s var(--ease)}
  .jcard .body{padding:17px 17px 18px;display:flex;flex-direction:column;flex:1}
  .tags{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 11px}
  .tg{background:var(--pill);color:var(--pill-ink);font-size:12px;font-weight:700;border-radius:6px;padding:3px 9px}
  .tg.new{background:var(--orange);color:#fff}
  .jcard .co{font-size:12.5px;color:var(--ink-faint);font-weight:700;margin:0 0 3px}
  .jcard .tl{font-size:16px;font-weight:800;line-height:1.5;margin:0 0 12px;min-height:3em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .mrow{font-size:13.5px;color:var(--ink-soft);margin:0 0 5px;display:flex;gap:7px;align-items:center}
  .mrow.mrow-last{margin-bottom:12px}
  .mrow svg{width:17px;height:17px;color:var(--leaf)}
  .jcard .sal{font-weight:900;color:var(--green-deep);font-size:16.5px;margin:9px 0 14px}
  .cfoot{margin-top:auto;padding-top:18px;border-top:1px solid var(--line);display:flex;align-items:center;gap:10px}
  .cfoot .btn-green{flex:1;height:50px;padding:0 24px;font-size:14.5px}
  /* iOSはaspect-ratio+伸縮高さから横幅を出せず縦長になるため、横幅・高さを明示した固定正方形にする */
  .cfoot .fav--icon{flex:0 0 auto;width:50px;height:50px}

  .fav{display:inline-flex;align-items:center;justify-content:center;gap:7px;cursor:pointer;font-family:inherit;font-weight:800;border:none;background:none;transition:transform .18s var(--ease)}
  .fav svg{width:21px;height:21px;color:#c5cebd;transition:color .15s,transform .2s var(--ease)}
  .fav.is-saved svg{color:var(--orange)}
  .fav--icon{width:44px;height:44px;border-radius:12px;background:var(--panel);flex:0 0 auto}
  .fav--icon.is-saved{background:#fdeee4}
  .fav--label{border:1.5px solid var(--line);border-radius:999px;padding:13px 18px;font-size:14.5px;color:var(--ink-soft);background:#fff;min-width:176px}
  .fav--label.is-saved{color:var(--orange);border-color:#f3c3ac;background:#fdf1ea}
  /* 応募済み：お気に入りボタンを「応募済み」表示（緑・押下不可のステータス表示）。is-saved より後に置いて優先。 */
  .fav.is-applied{cursor:default;-webkit-user-select:none;user-select:none}
  .fav.is-applied svg{color:var(--green)}
  .fav--label.is-applied{color:var(--green-deep);border-color:#bfe06a;background:#f1f8e3}
  /* アイコン型（トップ新着求人カード等）：通常はテキスト非表示、応募済み時のみテキスト付きピルに広げる。 */
  .fav--icon .t{display:none}
  .fav--icon.is-applied{width:auto;border-radius:12px;padding:0 20px;gap:7px;font-size:13.5px;font-weight:800;background:#f1f8e3;color:var(--green-deep)}
  .fav--icon.is-applied .t{display:inline}

  .why{background:var(--panel);border-radius:26px;padding:40px 40px 60px;margin-top:18px}
  @media(max-width:767px){.why{padding:30px 18px 45px;border-radius:18px}}
  .why h2{text-align:center;font-weight:900;font-size:clamp(22px,3.2vw,28px);margin:0 0 28px}
  .why h2 .e{display:block;margin-top:5px;font-family:"Outfit",sans-serif;font-size:13px;color:var(--green);letter-spacing:.12em;font-weight:800}
  .why .items{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
  @media(max-width:767px){.why .items{grid-template-columns:1fr}}
  .why .it .no{font-family:"Outfit",sans-serif;font-weight:800;font-size:30px;color:var(--green);line-height:1;margin:0 0 12px}
  .why .it .ph{aspect-ratio:4/3;border-radius:14px;margin:0 0 14px}
  .why .it h3{font-size:16.5px;font-weight:800;margin:0;line-height:1.6}

  .explore{display:flex;flex-direction:column;gap:30px;margin-top:50px;padding-bottom:6px}
  .as-link{cursor:pointer}
  /* ===== 利用規約など法務ページ ===== */
  .legal h1{font-size:21px;font-weight:900;margin:6px 0 4px;line-height:1.5}
  .legal .crumb .sep{margin:0 8px;color:var(--ink-faint)}
  .legal-sec{margin:26px 0 0}
  .legal-sec h2{font-size:15.5px;font-weight:800;color:var(--ink);margin:0 0 10px;padding-left:11px;border-left:4px solid var(--leaf)}
  .legal-sec p{font-size:14.5px;line-height:1.95;color:var(--ink-soft);margin:0 0 10px}
  .legal-sec ol{margin:0;padding-left:1.5em}
  .legal-sec ol li{font-size:14.5px;line-height:1.95;color:var(--ink-soft);margin:0 0 9px}
  .legal-sec ol.paren{list-style:none;padding-left:0;counter-reset:paren}
  .legal-sec ol.paren li{counter-increment:paren;padding-left:2.5em;text-indent:-2.5em}
  .legal-sec ol.paren li::before{content:"(" counter(paren) ") ";font-weight:700;color:var(--ink-soft)}
  .legal-supplement{margin-top:28px;padding-top:18px;border-top:1px solid var(--line);font-size:14.5px;color:var(--ink-soft)}
  .exsec h3{font-weight:900;font-size:16.5px;margin:0 0 16px;padding-bottom:10px;border-bottom:2px solid var(--leaf);display:inline-flex;align-items:center;gap:8px}
  .exrow{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px 28px}
  .exrow li{margin:0}
  .exrow li a{font-size:14.5px;font-weight:700;color:var(--ink-soft);transition:color .12s}
  .exrow li a:hover{color:var(--green-deep)}
  .exregions{display:grid;grid-template-columns:max-content 1fr;column-gap:100px;row-gap:24px;align-items:start}
  .exregion-name{display:block;font-weight:800;font-size:14px;color:var(--ink);margin:0 0 9px}
  .exregion .exrow{gap:10px 22px}
  @media(max-width:767px){.exregions{grid-template-columns:1fr;column-gap:0}}

  footer.site{background:#fff;border-top:1px solid var(--line);margin-top:80px;padding:40px 0 5px}
  footer.site .row{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;align-items:center}
  footer.site nav{display:flex;gap:24px;flex-wrap:wrap;font-size:13.5px;color:var(--ink-soft);font-weight:700}
  footer.site .cr{text-align:center;font-size:12px;color:var(--ink-faint);margin-top:20px}

  .crumb{font-size:12.5px;color:var(--ink-faint);padding:25px 0 0;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
  .crumb .sep{opacity:.5} .crumb .cur{color:var(--ink-soft);font-weight:700}
  @media(max-width:767px){.crumb{padding:15px 0 0}}

  .sr-head h1{font-weight:900;font-size:clamp(23px,3.6vw,30px);margin:14px 0 10px}
  .sr-head p{color:var(--ink-soft);font-size:14.5px;margin:0 0 26px}
  .sr-layout{display:grid;grid-template-columns:280px 1fr;gap:30px;align-items:start}
  @media(max-width:767px){.sr-layout{grid-template-columns:1fr}}
  /* モバイル絞り込み（06–09） */
  .flt-open{display:none}
  @media(max-width:767px){
    .sidebar{display:none}
    .flt-open{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-bottom:16px;
      padding:14px;border:1.5px solid var(--green);border-radius:12px;background:#fff;color:var(--green-deep);
      font-weight:800;font-size:15px;cursor:pointer}
    .flt-open .ic{width:18px;height:18px}
  }
  .modal .mh .mback{border:none;background:none;font-size:34px;line-height:1;color:var(--green-deep);cursor:pointer;padding:0 6px;width:38px}
  .flt-menu .flt-row{display:flex;align-items:center;width:100%;gap:12px;padding:16px 4px;border-bottom:1px solid var(--line);background:none;border-left:none;border-right:none;border-top:none;cursor:pointer;text-align:left;font-family:inherit}
  .cbx,.dd-opt,.flt-menu .flt-row,.acc-exp,.acc-badge,.acc-head,.pager button,.pager .pg{user-select:none;-webkit-user-select:none}
  #ov .modal,#sidebar{user-select:none;-webkit-user-select:none}
  .flt-menu .flt-row:last-child{border-bottom:none}
  .flt-menu .rl{font-weight:800;color:var(--ink);min-width:84px}
  .flt-menu .rv{flex:1;color:var(--ink-soft);font-size:13.5px}
  .flt-menu .rc{color:var(--ink-faint);font-size:18px}
  .flt-list .cbx,.acc-kids .cbx,.acc-head .cbx{font-size:15px;padding:11px 0;color:var(--ink)}
  .flt-acc .acc-grp{border-bottom:1px solid var(--line)}
  .flt-acc .acc-head{display:flex;align-items:center;gap:10px}
  .flt-acc .acc-head .cbx{flex:1}
  .flt-acc .acc-badge{font-size:11px;font-weight:800;color:#8a6d00;background:#ffe680;border-radius:20px;padding:3px 10px}
  .flt-acc .acc-exp{border:none;background:none;font-size:20px;color:var(--green-deep);cursor:pointer;width:34px;line-height:1;margin-left:auto;text-align:right}
  .flt-acc .acc-kids{padding:2px 0 8px 18px}
  .btn-outline{border:1.5px solid var(--green);background:#fff;color:var(--green-deep);font-weight:800;border-radius:12px;padding:14px 16px;cursor:pointer;font-family:inherit;font-size:14px}
  .sidebar{background:var(--panel);border-radius:18px;padding:22px}
  .sb-sec{margin:0 0 22px}
  .sb-sec .sh{display:flex;align-items:center;justify-content:space-between;margin:0 0 12px}
  .sb-sec .sh .t{font-weight:900;font-size:15px}
  .sb-sec .sh .ch{font-size:12.5px;font-weight:800;color:var(--green-deep);cursor:pointer}
  .cbx{display:flex;align-items:center;gap:10px;font-size:14.5px;padding:6px 0;cursor:pointer;color:var(--ink-soft)}
  .cbx .box{width:20px;height:20px;border-radius:6px;border:1.5px solid #c2cdb6;background:#fff;flex:0 0 auto;display:grid;place-items:center;transition:background .12s,border-color .12s}
  .cbx .box svg{width:13px;height:13px;color:#fff;opacity:0;transition:opacity .12s}
  .cbx.on .box{background:var(--green);border-color:var(--green)} .cbx.on .box svg{opacity:1}
  .cbx.on{color:var(--ink);font-weight:700}
  .sb-cnt{text-align:center;font-size:12.5px;color:var(--ink-soft);margin:8px 0 14px;padding-top:16px;border-top:1px dashed #cdd8c2;line-height:1.5}
  .sb-cnt b{display:block;font-size:30px;color:var(--green-deep);font-weight:900;margin:4px 0 0;font-variant-numeric:tabular-nums}
  .sb-reset{display:block;text-align:center;margin-top:13px;font-size:12.5px;font-weight:700;color:var(--ink-soft);text-decoration:underline;cursor:pointer}

  .sr-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 20px;flex-wrap:wrap}
  .sr-bar .ct{font-size:14px;color:var(--ink-soft)} .sr-bar .ct b{color:var(--green-deep);font-weight:900;font-variant-numeric:tabular-nums;font-size:16px;margin-left:3px}
  .sr-bar .left{display:flex;align-items:center;gap:12px}
  .sortsel{border:1.5px solid var(--line);border-radius:9px;padding:8px 30px 8px 13px;font-size:13.5px;font-weight:700;font-family:inherit;
    appearance:none;background:#fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='%237AB22E'><path d='M12 15 6 9h12z'/></svg>") no-repeat right 9px center;cursor:pointer}
  .pager{display:flex;gap:6px;flex-wrap:wrap}.pager button,.pager .pg{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;border:1.5px solid var(--line);background:#fff;border-radius:9px;font-weight:700;cursor:pointer;color:var(--ink-soft);font-family:inherit;font-size:13.5px;text-decoration:none}
  @media(max-width:767px){.pager{width:100%;justify-content:center;gap:5px}.pager button,.pager .pg{min-width:32px;height:32px;font-size:12.5px}}
  .pager button.on,.pager .pg.on{background:var(--green);border-color:var(--green);color:#fff}
  .pager .pg.is-disabled{opacity:.4;cursor:default;pointer-events:none}
  .pager-bottom{display:flex;justify-content:center;margin-top:26px}
  @media(max-width:767px){.sr-bar .pager{display:none}}
  @media(max-width:767px){.sr-bar{margin:0 0 15px}.sr-bar .left{width:100%;justify-content:space-between}}

  .list{display:flex;flex-direction:column;gap:20px}
  .lcard{display:block;margin-bottom:18px;background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:22px 24px;cursor:pointer;transition:transform .2s var(--ease),box-shadow .2s,border-color .2s}
  .lcard .lt{font-size:17.5px;font-weight:800;line-height:1.5;margin:0 0 16px}
  .linner{display:grid;grid-template-columns:210px 1fr;gap:20px}
  @media(max-width:767px){.linner{grid-template-columns:1fr}}
  @media(max-width:767px){.lcard{padding:18px}}
  /* 長い住所・数字などが右にはみ出さないよう折り返す */
  html,body{overflow-x:hidden}
  .spec dd,.lcard,.summary{overflow-wrap:anywhere;word-break:break-word}
  .linner .ph{border-radius:12px;aspect-ratio:4/3}
  .lspec .sp{display:flex;gap:12px;font-size:14.5px;padding:3px 0;align-items:flex-start}
  .lspec .sp .k{color:var(--ink-faint);font-weight:700;width:80px;flex:0 0 auto;white-space:nowrap;display:flex;align-items:center;gap:7px}
  .lspec .sp .k svg{width:16px;height:16px;color:var(--leaf)}
  .lspec .sp .v.sal{color:var(--green-deep);font-weight:800}
  /* SP: 検索結果カードのスペックも縦積み＋区切り罫線 */
  @media(max-width:767px){
    .lspec .sp{flex-direction:column;gap:4px;padding:11px 0;border-bottom:1px solid var(--line-soft)}
    .lspec .sp:first-child{padding-top:0}
    .lspec .sp:last-child{border-bottom:none;padding-bottom:0}
    .lspec .sp .k{width:auto}
  }
  .lfoot{display:flex;align-items:stretch;gap:14px;margin-top:22px;padding-top:22px;border-top:1px solid var(--line)}
  .lfoot .btn-green{flex:1;padding:16px 24px;font-size:15px}
  @media(max-width:767px){.lfoot{margin-top:18px;padding-top:18px}}
  @media(max-width:767px){
    @keyframes cardUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
    #sr-list .lcard{animation:cardUp .42s var(--ease) both}
    #sr-list .lcard:nth-child(1){animation-delay:.03s}
    #sr-list .lcard:nth-child(2){animation-delay:.09s}
    #sr-list .lcard:nth-child(3){animation-delay:.15s}
    #sr-list .lcard:nth-child(4){animation-delay:.21s}
    #sr-list .lcard:nth-child(5){animation-delay:.27s}
    #sr-list .lcard:nth-child(6){animation-delay:.33s}
    #sr-list .lcard:nth-child(7){animation-delay:.39s}
    #sr-list .lcard:nth-child(n+8){animation-delay:.45s}
  }
  @media(prefers-reduced-motion:reduce){#sr-list .lcard{animation:none}}

  .dwrap{max-width:960px;margin:0 auto}
  .dcard{background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);padding:32px;margin:45px 0 0}
  @media(max-width:767px){.dcard{padding:18px;margin:14px 0 0}}
  .dt-tags{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 14px}
  .dcard h1{font-weight:900;font-size:clamp(22px,3.6vw,28px);line-height:1.45;margin:20px 0 22px}
  .dhero{display:grid;grid-template-columns:1.1fr .9fr;gap:24px;margin:0 0 22px;align-items:start}
  @media(max-width:767px){.dhero{grid-template-columns:1fr}}
  .gallery{min-width:0}
  .gallery .g-main{aspect-ratio:4/3;border-radius:16px}
  .gallery .g-thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:10px}
  .gallery .g-thumbs .ph{aspect-ratio:4/3;border-radius:10px;cursor:pointer;transition:transform .15s var(--ease),outline-color .15s;outline:2px solid transparent}
  .hero-right{display:flex;flex-direction:column;gap:14px;min-width:0}
  .summary{background:var(--panel);border-radius:14px;padding:22px 24px;display:flex;flex-direction:column;gap:14px}
  @media(max-width:767px){.summary{grid-template-columns:1fr}}
  .summary .sl{display:flex;gap:11px;font-size:14.5px;align-items:flex-start}
  .summary .sl .k{color:var(--ink-faint);font-weight:700;flex:0 0 auto;display:flex;align-items:center;gap:7px;white-space:nowrap;min-width:78px}
  .summary .sl .k svg{width:18px;height:18px;color:var(--leaf)}
  .summary .sl .v{flex:1;min-width:0}
  .summary .sl .v.sal{color:var(--green-deep);font-weight:900}
  .summary .sl .v.kw-tags{display:flex;flex-wrap:wrap;gap:7px}
  .summary .sl .v.kw-tags .tg{flex:0 0 auto}
  /* SP: ラベルと値を縦積み＋行間に区切り罫線（横並びだと折返しで読みにくいため） */
  @media(max-width:767px){
    .summary{gap:0}
    .summary .sl{flex-direction:column;gap:5px;padding:14px 0;border-bottom:1px solid var(--line)}
    .summary .sl:first-child{padding-top:0}
    .summary .sl:last-child{padding-bottom:0;border-bottom:none}
  }
  .applyrow{display:flex;gap:14px;align-items:stretch;margin:0 0 8px}
  .applyrow .btn-orange{flex:1;padding:18px;font-size:16.5px}
  .applyrow-bottom{margin:50px 0 0}
  .dblock{margin:50px 0 0}
  .dblock h2{font-weight:900;font-size:19.5px;margin:0 0 16px;padding-left:13px;border-left:5px solid var(--leaf);line-height:1.3;display:flex;align-items:center;gap:9px}
  .dblock h2 svg{width:20px;height:20px;color:var(--green)}
  .dblock p{font-size:15px;color:var(--ink-soft);margin:0 0 14px;line-height:2}
  .dblock p:last-child{margin:0}
  .spec{display:grid;grid-template-columns:140px 1fr;border-top:1px solid var(--line)}
  @media(max-width:767px){.spec{grid-template-columns:104px 1fr}}
  .spec dt{font-weight:800;font-size:14px;line-height:1.7;color:var(--ink-soft);padding:20px 5px;border-bottom:1px solid var(--line)}
  .spec dd{margin:0;padding:20px 6px;border-bottom:1px solid var(--line);font-size:14.5px;line-height:1.7}
  /* SP: ラベルと値を縦積み。罫線はdd(値)だけに付け、ラベルと値の間に線が入らないようにする */
  @media(max-width:767px){
    .spec{grid-template-columns:1fr}
    .spec dt{padding:16px 2px 7px;border-bottom:none}
    .spec dd{padding:0 2px 16px}
  }
  .fb{color:var(--ink-faint)}
  .ddates{font-size:12.5px;color:var(--ink-faint);display:flex;gap:20px;margin-top:18px;flex-wrap:wrap}

  .ff{margin:0 0 16px}
  .modal.reg-mode .ff-apply-only{display:none}
  .ff-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin:0 0 7px}
  .ff-top label{display:block;font-weight:800;font-size:13.5px;color:var(--ink-soft);margin:0}
  .req{color:#D6452B;font-size:11px;margin-left:6px;font-weight:800}
  .ff textarea.txt{resize:vertical;min-height:96px;line-height:1.7}
  .filepick{display:flex;align-items:center;gap:12px}
  .file-btn{display:inline-flex;align-items:center;gap:7px;border:1.5px solid var(--line);border-radius:999px;padding:11px 18px;font-size:13.5px;font-weight:800;color:var(--ink-soft);cursor:pointer;background:#fff;white-space:nowrap;transition:border-color .15s,color .15s}
  .file-btn:hover{border-color:var(--leaf);color:var(--green-deep)}
  .file-btn svg{width:16px;height:16px;color:var(--green)}
  .file-name{font-size:13px;color:var(--ink-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
  .file-note{font-size:11.5px;color:var(--ink-faint);margin:7px 0 0}
  .file-hint{font-weight:500;font-size:11px;color:var(--ink-faint);margin-left:6px}
  .ff-agree{margin:6px 0 4px}
  .agree{display:flex;align-items:flex-start;gap:10px;font-size:13.5px;color:var(--ink-soft);cursor:pointer;margin:0}
  .agree-in{position:absolute;opacity:0;width:0;height:0}
  .agree-box{transform:translateY(3px);width:22px;height:22px;border:2px solid var(--line);border-radius:6px;display:grid;place-items:center;flex:0 0 auto;background:#fff;transition:background .15s,border-color .15s}
  /* zoom非対応ブラウザ向けvwフォールバック（.sr-banner と同じ方式） */
  @media(max-width:767px){.agree-box{transform:translateY(calc(3 / 375 * 100vw))}}
  .agree-box svg{width:14px;height:14px;color:#fff;opacity:0;transition:opacity .12s}
  .agree-in:checked + .agree-box{background:var(--green);border-color:var(--green)}
  .agree-in:checked + .agree-box svg{opacity:1}
  .agree-tx{padding-top:1px}
  /* 「応募する求人」は見出し（サイト共通の緑アクセント）、その下に緑パネルで求人名 */
  .apply-job-h{font-weight:900;font-size:15px;color:var(--ink);margin:0 0 12px;padding-left:11px;border-left:4px solid var(--leaf);line-height:1.4}
  .apply-job{font-size:14px;color:var(--ink);background:var(--panel);border-radius:10px;padding:12px 14px;margin:0 0 18px}
  .apply-job b{color:var(--ink);font-weight:800}
  .ferr{color:#D6452B;font-size:11.5px;font-weight:700;line-height:1.3;text-align:right;margin:0}
  .ferr:empty{display:none}
  .ff-agree .ferr{display:block;text-align:left;min-height:1.2em;margin-top:6px}
  .ff-agree .ferr:empty{display:block}
  .txt.invalid{border-color:#E5896F;background:#fdf6f3}
  #apply-done{text-align:center;padding:18px 6px 8px}
  .br-sp{display:none}
  @media(max-width:767px){.br-pc{display:none}.br-sp{display:inline}}
  .done-ic{width:66px;height:66px;border-radius:50%;background:#eef6e0;color:var(--green);display:grid;place-items:center;margin:6px auto 18px;font-size:32px;font-weight:900}
  .done-h{font-size:20px;font-weight:900;margin:0 0 12px;color:var(--ink)}
  .done-t{font-size:14px;color:var(--ink-soft);line-height:1.9;margin:0 0 16px}
  .done-t b{color:var(--ink)}
  .done-note{font-size:11.5px;color:var(--ink-faint);background:var(--panel);border-radius:10px;padding:10px 12px;margin:0;line-height:1.7}
  .ov{position:fixed;inset:0;background:rgba(43,58,46,.45);z-index:60;display:flex;align-items:flex-end;justify-content:center;
    opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s ease,visibility .3s}
  .ov.open{opacity:1;visibility:visible;pointer-events:auto}
  @media(min-width:720px){.ov{align-items:center}}
  .modal{background:#fff;width:100%;max-width:860px;border-radius:20px 20px 0 0;max-height:88vh;overflow:auto;box-shadow:var(--shadow-h);
    transform:translateY(24px) scale(.98);opacity:0;transition:transform .42s cubic-bezier(.16,1,.3,1),opacity .32s ease}
  .ov.open .modal{transform:translateY(0) scale(1);opacity:1}
  @media(min-width:720px){.modal{border-radius:20px}}
  @media(max-width:767px){.ov{padding:0 12px 12px}.modal{border-radius:18px}}
  .modal .mh{display:flex;align-items:center;justify-content:space-between;padding:20px 22px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff}
  .modal .mh h3{font-size:17px;font-weight:900;margin:0}
  .modal .x{border:none;background:var(--panel);width:36px;height:36px;border-radius:50%;cursor:pointer;font-size:16px;color:var(--ink-soft)}
  .modal .mb{padding:15px 18px 5px}
  #applyov .mb:has(#apply-form[hidden]){padding:15px 20px 35px}  /* 応募完了画面はフッター無しなので余白を確保 */
  .mg{margin:0 0 24px}.mg .gl{font-weight:800;font-size:13.5px;color:var(--ink-soft);margin:0 0 11px}
  .mchips{display:flex;flex-wrap:wrap;gap:9px}
  .mchip{border:1.5px solid var(--line);background:#fff;border-radius:999px;padding:9px 16px;font-size:13.5px;font-weight:700;cursor:pointer;color:var(--ink-soft);transition:background .12s,color .12s,border-color .12s}
  .mchip.on{background:var(--green);border-color:var(--green);color:#fff}
  .modal .mf{padding:16px 22px 20px;position:sticky;bottom:0;background:#fff;display:flex;gap:10px;border-top:1px solid var(--line)}
  .modal .mf .btn{flex:1;padding:16px 24px}

  @media(hover:hover){
    .btn:hover svg{transform:translateX(4px)}
    .hactions .fav-h:hover svg{transform:none}  /* お気に入りのハートは動かさず中央維持 */
    .hactions .fav-h:hover{border-color:#bfe06a;color:var(--green-deep)}  /* ただのリンクなのでhover演出なし */
    .btn-orange:hover{background:var(--orange-deep)} .btn-green:hover{background:var(--green-deep)}
    .btn-out:hover{border-color:var(--leaf);color:var(--green-deep)} .btn-search:hover{background:var(--panel)}
    .more:hover svg{transform:translateX(3px)}
    .lcard:hover{border-color:#d3e2bf}
    .arr:hover{border-color:var(--leaf);color:var(--green-deep)}
    .explore li a:hover{color:var(--green-deep);transform:translateX(3px)}
    .gallery .g-thumbs .ph:hover{outline-color:var(--leaf)}
  }
  .fav.pop svg{animation:pop .4s var(--ease)}
  @keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.35)}100%{transform:scale(1)}}

  @media(max-width:767px){
    .lfoot{flex-direction:column;align-items:stretch}
    .lfoot .fav--label{min-width:0;width:100%}
    .lfoot .btn-green{max-width:none;margin-left:0;width:100%}
    .applyrow{flex-direction:column;align-items:stretch}
    .applyrow .fav--label{min-width:0;width:100%}
    .applyrow .btn-orange{width:100%}
    .summary{padding:18px}
  }
  @media(max-width:767px),(prefers-reduced-motion:reduce){
    *:not(.swiper-wrapper),*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  }
  /* Swiperのスライド遷移はSPでも有効に（上の一括transition:none除外）。スムーズに動かす */
  .home-swiper .swiper-wrapper{transition-timing-function:cubic-bezier(.4,0,.2,1)}

  /* ===== 一覧下バナー（非公開求人／無料相談） =====
     レスポンシブは nexcha_hubspot/master.css に倣い、PC基準1440px・SP基準375px・切替767pxで等倍比例(vw)縮小 */
  .sr-banner{display:block;width:570px;margin:30px auto 6px;border-radius:14px;overflow:hidden;transition:opacity .2s}
  .sr-banner img{width:100%;height:auto;display:block}
  .sr-banner:hover{opacity:.85}
  /* PC(768-1280)は#page-scaleのズームで縮小されるため固定570px。SP(≤767)のみvw */
  @media(max-width:767px){.sr-banner{width:calc(300 / 375 * 100vw)}}

  /* ===== 無料登録ページ ===== */
  .regcard{max-width:760px;margin:45px auto 0}
  .regform .ff-top{justify-content:flex-start}
  .regform .ferr{display:block;text-align:left;margin-top:6px}
  .agree-link{color:var(--green-deep);text-decoration:underline;text-underline-offset:2px;font-weight:800;cursor:pointer}
  .agree-link:hover{color:var(--green)}
  @media(max-width:767px){.regcard{margin:14px auto 0}}
  .regcard h1{font-weight:900;font-size:clamp(22px,3.6vw,28px);margin:14px 0 10px}
  .reg-lead{color:var(--ink-soft);font-size:14px;line-height:1.8;margin:0 0 24px}
  .reg-alert{background:#FDECEA;border:1px solid #F3C0B8;color:#B23A22;border-radius:12px;padding:13px 15px;font-size:13.5px;font-weight:700;margin:0 0 18px}
  /* select.txt はネイティブ装飾を消して矢印自作。input.txt と高さ・見た目を揃える（応募モーダルの履歴書selectにも適用） */
  select.txt{height:51px;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2389919b'%3E%3Cpath d='M12 15 6 9h12z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:20px;padding-right:40px}
  .ff-row{display:flex;gap:14px}
  .ff-row .ff{flex:1;min-width:0}
  @media(max-width:767px){.ff-row{gap:10px}}  /* SPでも姓名・フリガナは横並び維持(短い項目) */
  .chk-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
  @media(max-width:767px){.chk-grid{grid-template-columns:repeat(2,1fr)}}
  .chk{display:flex;align-items:center;gap:8px;min-height:51px;font-size:13.5px;color:var(--ink-soft);cursor:pointer;padding:9px 11px;border:1.5px solid var(--line);border-radius:10px;background:#fff;transition:border-color .15s,background .15s}  /* 高さをinput/select(51px)に揃える */
  .chk:has(input:checked){border-color:var(--green);background:#F4F9EC}
  .chk input{position:absolute;opacity:0;width:0;height:0}
  .chk-box{width:20px;height:20px;border:2px solid var(--line);border-radius:5px;display:grid;place-items:center;flex:0 0 auto;background:#fff}
  .chk-box svg{width:13px;height:13px;color:#fff;opacity:0;transition:opacity .12s}
  .chk input:checked + .chk-box{background:var(--green);border-color:var(--green)}
  .chk input:checked + .chk-box svg{opacity:1}
  .reg-submit{width:100%;padding:17px;font-size:16px;margin-top:10px}
  .reg-done{text-align:center;padding:30px 10px 20px}
  .reg-done .done-ic{width:64px;height:64px;border-radius:50%;background:var(--green);color:#fff;font-size:34px;display:grid;place-items:center;margin:0 auto 18px}
  .reg-done h1{margin:0 0 14px}
  .reg-done .reg-lead{text-align:center}
  .reg-done .btn{margin-top:8px}
  .reg-msg{text-align:center}
  .reg-msg p{margin:0 0 14px}
  .reg-msg p:last-child{margin-bottom:0}

  /* ページ先頭へ戻るボタン（全ページ・右下固定） */
  .to-top{position:fixed;right:24px;bottom:24px;z-index:50;width:52px;height:52px;border:none;border-radius:50%;
    background:var(--green);color:#fff;cursor:pointer;display:grid;place-items:center;
    box-shadow:0 6px 18px rgba(0,0,0,.22);opacity:0;visibility:hidden;transform:translateY(10px);
    transition:opacity .25s,transform .25s var(--ease),background .15s}
  .to-top.show{opacity:1;visibility:visible;transform:translateY(0)}
  .to-top:hover{background:var(--green-deep)}
  .to-top svg{width:26px;height:26px}
  @media(max-width:767px){.to-top{right:14px;bottom:14px;width:46px;height:46px}.to-top svg{width:23px;height:23px}}
