  :root{
    --cream:#fffcf6;
    --cream-2:#fdf6ec;
    --ink:#2e2b26;
    --ink-soft:#6b665e;
    --orange:#ef8d3f;
    --orange-dark:#e07a2b;
    --orange-pale:#fdead9;
    --green:#7bb342;
    --green-dark:#5f9530;
    --green-pale:#e9f4de;
    --yellow:#f6c945;
    --yellow-pale:#fdf3d6;
    --teal:#4fa3ae;
    --teal-pale:#e1f2f2;
    --pink:#ef9fb2;
    --pink-pale:#fdedf1;
    --blue:#5b9bd5;
    --blue-pale:#e8f1fb;
    --radius-lg:24px;
    --radius-md:16px;
    --radius-pill:999px;
    --shadow:0 10px 30px rgba(46,43,38,.08);
    --maxw:1240px;
    font-family:"Noto Sans JP","Zen Maru Gothic",sans-serif;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--cream);
    color:var(--ink);
    line-height:1.8;
    -webkit-font-smoothing:antialiased;
  }
  img{max-width:100%;display:block;}
  a{text-decoration:none;color:inherit;}
  h1,h2,h3{font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;margin:0;}
  p{margin:0 0 .9em;}
  ul{margin:0;padding:0;list-style:none;}
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px;}

  /* ---------- placeholder photo blocks ---------- */
  .ph{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    background:repeating-linear-gradient(135deg,#f1ede3,#f1ede3 10px,#e9e3d4 10px,#e9e3d4 20px);
    border:2px dashed #cfc6b0;
    border-radius:var(--radius-md);
    color:#8b8368;
    font-size:.85rem;
    font-weight:700;
    overflow:hidden;
    min-height:80px;
  }
  .ph span{
    background:rgba(255,255,255,.75);
    padding:6px 12px;
    border-radius:var(--radius-pill);
    line-height:1.4;
  }
  .photo-frame{
    border-radius:var(--radius-md);
    overflow:hidden;
    box-shadow:var(--shadow);
  }
  .photo-frame img{
    width:100%;height:100%;object-fit:cover;display:block;
  }

  /* ---------- buttons ---------- */
  .btn{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:14px 28px;
    border-radius:var(--radius-pill);
    font-weight:700;
    font-size:.95rem;
    white-space:nowrap;
    border:2px solid transparent;
    transition:transform .15s ease, box-shadow .15s ease;
  }
  .btn:hover{transform:translateY(-2px);box-shadow:0 8px 16px rgba(0,0,0,.12);}
  .btn-orange{background:var(--orange);color:#fff;}
  .btn-green{background:var(--green);color:#fff;}
  .btn-white{background:#fff;color:var(--ink);border-color:#eee2cf;}
  .btn-outline-green{background:#fff;color:var(--green-dark);border-color:var(--green);}
  .btn-outline-orange{background:#fff;color:var(--orange-dark);border-color:var(--orange);}
  .btn-sm{padding:9px 16px;font-size:.8rem;}
  .btn-line{background:#06C755;color:#fff;}

  /* ---------- LINE floating contact bar ---------- */
  body.has-bar{padding-bottom:76px;}
  .sticky-contact-bar{
    position:fixed;left:0;right:0;bottom:0;z-index:70;
    display:flex;gap:8px;padding:10px 14px;
    background:#fff;box-shadow:0 -6px 20px rgba(0,0,0,.1);
    border-top:1px solid #f0e8d6;
  }
  .sticky-contact-bar .btn{flex:1;justify-content:center;padding:12px 8px;font-size:.8rem;}

  /* ---------- photo caption bubble ---------- */
  .photo-wrap{position:relative;}
  .photo-caption{
    position:absolute;background:#fff;padding:8px 14px;border-radius:var(--radius-md);
    box-shadow:var(--shadow);font-size:.7rem;font-weight:700;line-height:1.4;
    transform:rotate(-3deg);
  }
  .growth-step.no-arrow::after{content:none;}

  /* ---------- rep message (代表からのメッセージ) ---------- */
  .rep-message{display:grid;grid-template-columns:180px 1fr;gap:20px;align-items:start;}
  @media (max-width:680px){
    .rep-message{grid-template-columns:1fr;gap:16px;}
    .rep-message .ph{max-width:220px;width:100%;margin:0 auto;}
    .rep-message p{font-size:.92rem;line-height:1.9;}
  }

  /* ---------- header ---------- */
  .site-header{
    position:sticky;top:0;z-index:50;
    background:rgba(255,252,246,.92);
    backdrop-filter:blur(6px);
    border-bottom:1px solid #f0e8d6;
  }
  .header-inner{
    max-width:var(--maxw);margin:0 auto;padding:14px 32px;
    display:flex;align-items:center;gap:24px;
  }
  .logo{display:flex;align-items:center;gap:10px;flex-shrink:0;}
  .logo-img{height:46px;width:auto;border-radius:10px;display:block;}
  .logo-recruit-label{font-size:.62rem;letter-spacing:.12em;color:var(--orange-dark);font-weight:700;}
  .logo-icon{width:34px;height:34px;flex-shrink:0;}
  .logo-text{font-weight:900;font-size:1.05rem;line-height:1.1;color:var(--ink);}
  .logo-text small{display:block;font-size:.62rem;letter-spacing:.12em;color:var(--orange-dark);font-weight:700;}
  .main-nav{display:flex;gap:22px;flex:1;justify-content:center;flex-wrap:wrap;}
  .main-nav a{font-size:.85rem;font-weight:500;color:var(--ink-soft);}
  .main-nav a:hover{color:var(--orange-dark);}
  .header-cta{display:flex;gap:10px;flex-shrink:0;}
  .nav-toggle{display:none;background:none;border:none;font-size:1.4rem;cursor:pointer;color:var(--ink);}

  @media (max-width:980px){
    .main-nav{
      position:absolute;top:100%;left:0;right:0;
      background:#fff;flex-direction:column;align-items:flex-start;
      padding:16px 32px;gap:14px;border-bottom:1px solid #f0e8d6;
      display:none;
    }
    .main-nav.open{display:flex;}
    .header-cta .btn-outline-green{display:none;}
    .nav-toggle{display:block;}
    .header-inner{flex-wrap:wrap;}
    .header-cta{flex-basis:100%;order:3;justify-content:center;margin-top:10px;}
  }

  /* ---------- hero ---------- */
  .hero{position:relative;overflow:hidden;padding:56px 0 64px;}
  .hero .wrap{display:grid;grid-template-columns:1.05fr 1fr;gap:40px;align-items:center;}
  .hero-copy h1{font-size:2.5rem;font-weight:900;line-height:1.35;margin-bottom:20px;}
  .hero-copy h1 .accent{color:var(--orange);}
  .hero-copy p{color:var(--ink-soft);font-size:.98rem;max-width:32em;}
  .hero-buttons{display:flex;flex-wrap:wrap;gap:14px;margin-top:22px;}
  .hero-photo{aspect-ratio:16/11;}
  .hero-tagline{
    position:absolute;top:24px;right:5%;
    background:#fff;padding:10px 18px;border-radius:var(--radius-md);
    box-shadow:var(--shadow);font-size:.8rem;font-weight:700;line-height:1.5;
    transform:rotate(3deg);
  }
  @media (max-width:820px){
    .hero{padding:28px 0 40px;}
    .hero .wrap{grid-template-columns:1fr;}
    .hero-copy h1{font-size:2rem;}
    .hero-tagline{display:none;}
  }

  /* ---------- section shells ---------- */
  section{padding:60px 0;}
  .section-heading{
    display:flex;align-items:center;gap:8px;
    font-size:1.35rem;font-weight:900;margin-bottom:6px;
  }
  .section-sub{color:var(--ink-soft);font-size:.9rem;margin-bottom:18px;}
  .triple-row .wrap,
  .double-row .wrap{
    display:grid;gap:32px;
  }
  .triple-row .wrap{grid-template-columns:repeat(3,1fr);}
  .double-row .wrap{grid-template-columns:1.3fr 1fr .8fr;align-items:stretch;}
  #day-row .wrap{grid-template-columns:repeat(2,1fr);}
  #benefits-row .wrap{grid-template-columns:1fr 1fr;}
  @media (max-width:980px){
    .triple-row .wrap,
    .double-row .wrap,
    #day-row .wrap,
    #benefits-row .wrap{grid-template-columns:1fr;}
  }
  .card-col{
    background:#fff;border-radius:var(--radius-lg);
    padding:28px;box-shadow:var(--shadow);
  }
  .card-col.tinted-pink{background:var(--pink-pale);}
  .card-col.tinted-green{background:var(--green-pale);}
  .card-col.tinted-cream{background:var(--cream-2);}

  /* ---------- about / work / staff row ---------- */
  .highlight{color:var(--orange-dark);font-weight:800;font-size:1.05rem;}
  .collage{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px;}
  .collage .ph{aspect-ratio:1/1;}

  .job-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0;}
  .job-card{
    border-radius:var(--radius-md);padding:18px 14px;color:#fff;font-weight:800;font-size:.85rem;
    min-height:88px;display:flex;flex-direction:column;justify-content:center;gap:4px;
  }
  .job-card .ico{font-size:1.3rem;}
  .job-card.c-orange{background:var(--orange);}
  .job-card.c-yellow{background:var(--yellow);color:var(--ink);}
  .job-card.c-green{background:var(--green);}
  .job-card.c-teal{background:var(--teal);}

  .staff-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0;}
  .staff-grid .ph{aspect-ratio:1/1;font-size:.68rem;font-weight:700;}
  .staff-grid .ph span{padding:4px 6px;}

  /* ---------- day / growth / real row ---------- */
  .timeline li{display:flex;gap:14px;padding:8px 0;border-bottom:1px dashed #eee2cf;font-size:.9rem;}
  .timeline li:last-child{border-bottom:none;}
  .timeline .time{font-weight:800;color:var(--orange-dark);flex-shrink:0;width:52px;}
  .day-photos{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-top:16px;}
  .day-photos .ph{aspect-ratio:1/1;font-size:.65rem;}

  .growth-path{
    display:flex;flex-direction:column;gap:8px;margin:18px 0;
  }
  .growth-step{
    padding:10px 16px;border-radius:var(--radius-pill);color:#fff;font-weight:800;font-size:.82rem;
    text-align:center;position:relative;
  }
  .growth-step::after{
    content:"↓";position:absolute;left:50%;bottom:-16px;transform:translateX(-50%);
    color:#c9c2b0;font-weight:900;font-size:.8rem;
  }
  .growth-step:last-child::after{content:"";}
  .growth-step.s1{background:#f4a259;}
  .growth-step.s2{background:var(--orange);}
  .growth-step.s3{background:var(--green);}
  .growth-step.s4{background:var(--teal);}
  .growth-step.s5{background:var(--blue);}
  .growth-step.s6{background:#4a4a68;}
  .growth-photo{aspect-ratio:4/3;margin-top:22px;}
  .speech-bubble{
    margin-top:14px;background:#fff;border-radius:var(--radius-md);padding:12px 16px;
    font-size:.8rem;font-weight:700;box-shadow:var(--shadow);position:relative;
  }

  .real-photo{aspect-ratio:4/3;margin:16px 0;}

  /* ---------- benefits / jobs row ---------- */
  .benefit-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:18px;}
  .benefit-item{
    background:var(--cream-2);border-radius:var(--radius-md);padding:16px 8px;
    text-align:center;font-size:.78rem;font-weight:700;color:var(--ink-soft);
  }
  .benefit-item .ico{font-size:1.4rem;display:block;margin-bottom:6px;}
  @media (max-width:640px){.benefit-grid{grid-template-columns:repeat(2,1fr);}}

  .job-list{display:flex;flex-direction:column;gap:10px;margin:18px 0;}
  .job-row{
    display:flex;align-items:center;justify-content:space-between;gap:10px;
    padding:14px 18px;border-radius:var(--radius-md);color:#fff;font-weight:800;font-size:.88rem;
  }
  .job-row span{font-size:.72rem;font-weight:600;background:rgba(255,255,255,.28);padding:4px 10px;border-radius:var(--radius-pill);}
  .job-row.r-orange{background:var(--orange);}
  .job-row.r-teal{background:var(--teal);}
  .job-row.r-blue{background:var(--blue);}
  .job-row.r-pink{background:var(--pink);}
  .jobs-photo{aspect-ratio:3/4;}

  /* ---------- CTA banner ---------- */
  .cta-banner{
    background:linear-gradient(120deg,var(--orange-pale),var(--green-pale));
    border-radius:var(--radius-lg);
    padding:36px;
  }
  .cta-banner .inner{
    display:grid;grid-template-columns:.9fr 1.4fr auto;gap:28px;align-items:center;
  }
  .cta-photo{aspect-ratio:4/3;}
  .cta-text h2{font-size:1.4rem;font-weight:900;margin-bottom:10px;}
  .cta-text p{color:var(--ink-soft);font-size:.88rem;margin:0;}
  .cta-buttons{display:flex;flex-direction:column;gap:12px;}
  @media (max-width:900px){
    .cta-banner .inner{grid-template-columns:1fr;text-align:center;}
    .cta-buttons{flex-direction:row;justify-content:center;flex-wrap:wrap;}
  }

  /* ---------- footer ---------- */
  .site-footer{
    background:#fff;border-top:1px solid #f0e8d6;padding:32px 0;
  }
  .footer-inner{
    display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
  }
  .footer-left{display:flex;flex-direction:column;align-items:flex-start;gap:4px;}
  .footer-tagline a{text-decoration:underline;}
  .footer-logo{font-weight:900;display:flex;align-items:center;gap:8px;}
  .footer-tagline{color:var(--ink-soft);font-size:.85rem;}
  .footer-nav{display:flex;gap:16px;flex-wrap:wrap;font-size:.8rem;color:var(--ink-soft);}
  .back-to-top{
    width:38px;height:38px;border-radius:50%;border:1px solid #e5dcc7;background:#fff;
    cursor:pointer;font-size:1rem;color:var(--ink);
  }
  /* ==================================================
     POLISH LAYER — 装飾・モーション・質感の作り込み
     ================================================== */

  :root{
    --ease-out:cubic-bezier(.22,.8,.3,1);
    --ring:0 0 0 1px rgba(46,43,38,.05);
    --shadow-soft:0 4px 14px rgba(46,43,38,.05);
    --shadow-lift:0 18px 44px rgba(46,43,38,.13);
  }

  body{overflow-x:hidden;}

  /* --- 背景の有機的なブロブ装飾 --- */
  body::before,
  body::after{
    content:"";position:fixed;z-index:0;pointer-events:none;
    border-radius:50%;filter:blur(70px);opacity:.42;
  }
  body::before{
    width:520px;height:520px;top:-180px;left:-200px;
    background:radial-gradient(circle at 35% 35%,#fbe0c4,transparent 68%);
  }
  body::after{
    width:560px;height:560px;bottom:-220px;right:-220px;
    background:radial-gradient(circle at 60% 40%,#dff0cd,transparent 68%);
  }
  section,.site-footer{position:relative;z-index:1;}
  .site-header{z-index:50;}
  .sticky-contact-bar{z-index:70;}

  /* --- スクロール連動フェードイン --- */
  .reveal{
    opacity:0;transform:translateY(26px);
    transition:opacity .8s var(--ease-out), transform .8s var(--ease-out);
    will-change:opacity,transform;
  }
  .reveal.in{opacity:1;transform:none;}
  @media (prefers-reduced-motion:reduce){
    .reveal{opacity:1;transform:none;transition:none;}
    html{scroll-behavior:auto;}
  }

  /* --- ヘッダー:スクロールで引き締まる --- */
  .site-header{
    transition:padding .35s var(--ease-out), box-shadow .35s var(--ease-out),
               background .35s var(--ease-out);
    border-bottom:1px solid rgba(240,232,214,.9);
  }
  .site-header.scrolled{
    box-shadow:0 6px 24px rgba(46,43,38,.09);
    background:rgba(255,252,246,.97);
  }
  .header-inner{transition:padding .35s var(--ease-out);}
  .site-header.scrolled .header-inner{padding-top:8px;padding-bottom:8px;}

  /* --- ロゴの作り込み --- */
  .logo{position:relative;}
  .logo-img{
    height:52px;border-radius:14px;
    box-shadow:0 6px 18px rgba(46,43,38,.14), var(--ring);
    transition:transform .4s var(--ease-out), box-shadow .4s var(--ease-out), height .35s var(--ease-out);
  }
  .logo:hover .logo-img{
    transform:translateY(-2px) rotate(-1.5deg) scale(1.03);
    box-shadow:0 12px 26px rgba(46,43,38,.2), var(--ring);
  }
  .site-header.scrolled .logo-img{height:42px;}
  .footer-logo img{
    transition:transform .4s var(--ease-out);
    box-shadow:var(--shadow-soft), var(--ring);
  }
  .footer-logo img:hover{transform:rotate(-2deg) scale(1.04);}

  /* --- ナビ:下線がのびるホバー --- */
  .main-nav a{position:relative;padding-bottom:2px;transition:color .28s var(--ease-out);}
  .main-nav a::after{
    content:"";position:absolute;left:0;bottom:-2px;height:2px;width:100%;
    background:linear-gradient(90deg,var(--orange),var(--green));
    border-radius:2px;transform:scaleX(0);transform-origin:left;
    transition:transform .35s var(--ease-out);
  }
  .main-nav a:hover::after{transform:scaleX(1);}
  .nav-toggle{transition:transform .3s var(--ease-out);}
  .nav-toggle:hover{transform:rotate(90deg);}

  /* --- ボタン:艶と押し心地 --- */
  .btn{
    position:relative;overflow:hidden;isolation:isolate;
    transition:transform .3s var(--ease-out), box-shadow .3s var(--ease-out), filter .3s var(--ease-out);
    box-shadow:var(--shadow-soft);
  }
  .btn::before{
    content:"";position:absolute;inset:0;z-index:-1;
    background:linear-gradient(120deg,rgba(255,255,255,0) 30%,rgba(255,255,255,.42) 50%,rgba(255,255,255,0) 70%);
    transform:translateX(-120%);transition:transform .7s var(--ease-out);
  }
  .btn:hover::before{transform:translateX(120%);}
  .btn:hover{transform:translateY(-3px);box-shadow:0 12px 24px rgba(46,43,38,.17);}
  .btn:active{transform:translateY(-1px) scale(.985);}
  .btn-line:hover{filter:brightness(1.05);}

  /* --- 見出し:葉のアクセントとアンダーライン --- */
  .section-heading{
    position:relative;padding-bottom:12px;letter-spacing:.01em;
  }
  .section-heading::after{
    content:"";position:absolute;left:0;bottom:0;width:52px;height:4px;
    border-radius:4px;
    background:linear-gradient(90deg,var(--orange),var(--yellow));
  }
  .card-col.tinted-green .section-heading::after{background:linear-gradient(90deg,var(--green),var(--yellow));}
  .card-col.tinted-pink .section-heading::after{background:linear-gradient(90deg,var(--pink),var(--orange));}

  /* --- カード:浮き上がりと縁取り --- */
  .card-col{
    border:1px solid rgba(255,255,255,.7);
    transition:transform .45s var(--ease-out), box-shadow .45s var(--ease-out);
  }
  .card-col:hover{transform:translateY(-5px);box-shadow:var(--shadow-lift);}

  /* --- 写真:ズームと光沢 --- */
  .photo-frame{position:relative;overflow:hidden;}
  .photo-frame img{
    transition:transform .8s var(--ease-out), filter .6s var(--ease-out);
  }
  .photo-frame:hover img{transform:scale(1.06);filter:saturate(1.07);}
  .hero-photo,.cta-photo,.jobs-photo{box-shadow:var(--shadow-lift);}

  /* --- ヒーロー:立ち上がりアニメーションと装飾 --- */
  .hero-copy h1{letter-spacing:.01em;}
  .hero-copy h1 .accent{position:relative;display:inline-block;}
  .hero-copy h1 .accent::after{
    content:"";position:absolute;left:0;right:0;bottom:.12em;height:.32em;
    background:linear-gradient(90deg,rgba(246,201,69,.55),rgba(239,141,63,.3));
    border-radius:99px;z-index:-1;
    transform:scaleX(0);transform-origin:left;
    animation:underlineIn 1s var(--ease-out) .7s forwards;
  }
  @keyframes underlineIn{to{transform:scaleX(1);}}
  .hero-copy h1,.hero-copy p,.hero-buttons{
    animation:heroUp .9s var(--ease-out) both;
  }
  .hero-copy h1{animation-delay:.05s;}
  .hero-copy p{animation-delay:.2s;}
  .hero-buttons{animation-delay:.35s;}
  @keyframes heroUp{from{opacity:0;transform:translateY(24px);}to{opacity:1;transform:none;}}
  .hero-photo{animation:heroFade 1.1s var(--ease-out) .25s both;}
  @keyframes heroFade{from{opacity:0;transform:scale(1.04);}to{opacity:1;transform:none;}}
  .hero-tagline{
    animation:bobIn 1s var(--ease-out) .9s both;
    z-index:2;
  }
  @keyframes bobIn{from{opacity:0;transform:rotate(10deg) scale(.86);}to{opacity:1;transform:rotate(3deg) scale(1);}}

  /* --- 仕事カード:アイコンが跳ねる --- */
  .job-card{
    transition:transform .4s var(--ease-out), box-shadow .4s var(--ease-out);
    box-shadow:var(--shadow-soft);cursor:default;
  }
  .job-card:hover{transform:translateY(-4px) scale(1.02);box-shadow:0 14px 26px rgba(46,43,38,.18);}
  .job-card .ico{transition:transform .4s var(--ease-out);display:inline-block;}
  .job-card:hover .ico{transform:translateY(-3px) scale(1.12);}

  /* --- スタッフグリッド:ふわっと浮く --- */
  .staff-grid .photo-frame,
  .staff-grid .ph{
    transition:transform .4s var(--ease-out), box-shadow .4s var(--ease-out);
  }
  .staff-grid .photo-frame:hover,
  .staff-grid .ph:hover{transform:translateY(-4px);box-shadow:0 12px 24px rgba(46,43,38,.16);}

  /* --- 成長ステップ:順に色づく --- */
  .growth-step{
    transition:transform .35s var(--ease-out), box-shadow .35s var(--ease-out), filter .35s var(--ease-out);
    box-shadow:var(--shadow-soft);
  }
  .growth-step:hover{transform:translateX(4px) scale(1.02);filter:brightness(1.05);}
  .growth-step::after{transition:transform .35s var(--ease-out);}
  .growth-path:hover .growth-step::after{transform:translateX(-50%) translateY(2px);}

  /* --- 吹き出しに尻尾 --- */
  .speech-bubble::after{
    content:"";position:absolute;left:26px;bottom:-9px;
    width:16px;height:16px;background:#fff;transform:rotate(45deg);
    border-radius:3px;box-shadow:3px 3px 6px rgba(46,43,38,.06);
  }
  .photo-caption{
    z-index:2;
    animation:bobIn .9s var(--ease-out) both;
  }

  /* --- 待遇アイコン --- */
  .benefit-item{
    transition:transform .35s var(--ease-out), background .35s var(--ease-out), box-shadow .35s var(--ease-out);
    border:1px solid rgba(255,255,255,.8);
  }
  .benefit-item:hover{
    transform:translateY(-4px);background:#fff;
    box-shadow:0 12px 24px rgba(46,43,38,.12);
  }
  .benefit-item .ico{transition:transform .35s var(--ease-out);}
  .benefit-item:hover .ico{transform:scale(1.15) rotate(-6deg);}

  /* --- 求人行:矢印が滑る --- */
  .job-row{
    position:relative;overflow:hidden;box-shadow:var(--shadow-soft);
    transition:transform .35s var(--ease-out), box-shadow .35s var(--ease-out), filter .35s var(--ease-out);
  }
  .job-row::after{
    content:"→";margin-left:auto;padding-left:10px;
    transition:transform .35s var(--ease-out);
  }
  .job-row:hover{transform:translateX(5px);filter:brightness(1.05);box-shadow:0 12px 22px rgba(46,43,38,.16);}
  .job-row:hover::after{transform:translateX(5px);}

  /* --- タイムライン/表 --- */
  table tr{transition:background .3s var(--ease-out);}
  table tr:hover{background:var(--cream-2);}

  /* --- CTAバナー:光が流れる --- */
  .cta-banner{position:relative;overflow:hidden;box-shadow:var(--shadow);}
  .cta-banner::before{
    content:"";position:absolute;top:-60%;left:-30%;width:60%;height:220%;
    background:linear-gradient(100deg,rgba(255,255,255,0),rgba(255,255,255,.5),rgba(255,255,255,0));
    transform:rotate(12deg);
    animation:sheen 7s ease-in-out infinite;
  }
  @keyframes sheen{
    0%,72%{transform:translateX(-40%) rotate(12deg);opacity:0;}
    80%{opacity:.85;}
    100%{transform:translateX(320%) rotate(12deg);opacity:0;}
  }
  .cta-banner > *{position:relative;z-index:1;}
  .cta-text h2{letter-spacing:.01em;}

  /* --- 固定バー:スクロール方向で出し入れ --- */
  .sticky-contact-bar{
    transition:transform .4s var(--ease-out);
    backdrop-filter:blur(8px);background:rgba(255,255,255,.96);
  }
  .sticky-contact-bar.hidden{transform:translateY(120%);}
  .sticky-contact-bar .btn-line{
    animation:pulseLine 3.4s ease-in-out infinite;
  }
  @keyframes pulseLine{
    0%,100%{box-shadow:0 0 0 0 rgba(6,199,85,.42);}
    60%{box-shadow:0 0 0 12px rgba(6,199,85,0);}
  }

  /* --- トップへ戻る --- */
  .back-to-top{
    transition:transform .35s var(--ease-out), background .35s var(--ease-out), color .35s var(--ease-out);
  }
  .back-to-top:hover{transform:translateY(-4px);background:var(--orange);color:#fff;border-color:var(--orange);}

  /* --- セクションの区切りに柔らかい帯 --- */
  #nurse-recruit{
    border-top:1px solid rgba(240,232,214,.9);
    border-bottom:1px solid rgba(240,232,214,.9);
  }
  #nurse-recruit::before{
    content:"";position:absolute;top:0;left:0;right:0;height:4px;
    background:linear-gradient(90deg,var(--green),var(--teal),var(--orange),var(--yellow));
    opacity:.75;
  }

  /* --- フッター --- */
  .footer-nav a{position:relative;transition:color .3s var(--ease-out);}
  .footer-nav a:hover{color:var(--orange-dark);}
  .site-footer{border-top:2px solid var(--orange-pale);}

  /* --- フォーカスリング(アクセシビリティ) --- */
  a:focus-visible,button:focus-visible{
    outline:3px solid var(--orange);outline-offset:3px;border-radius:6px;
  }

  /* --- スマホ微調整 --- */
  @media (max-width:640px){
    section{padding:44px 0;}
    .wrap{padding:0 20px;}
    .hero-copy h1{font-size:1.75rem;}
    .cta-banner{padding:26px 20px;}
    body::before,body::after{opacity:.3;}
  }

/* ==================================================
   SITE LAYER — 全ページ共通の追加コンポーネント
   ================================================== */

/* ナビの現在ページ表示 */
.main-nav a.active{color:var(--orange-dark);font-weight:700;}
.main-nav a.active::after{transform:scaleX(1);}

/* 下層ページの見出し帯 */
.page-hero{padding:48px 0 20px;}
.page-hero .eyebrow{
  display:inline-block;font-size:.8rem;font-weight:700;letter-spacing:.08em;
  color:#fff;background:var(--green);padding:5px 14px;border-radius:var(--radius-pill);margin-bottom:12px;
}
.page-hero h1{font-size:2.2rem;font-weight:900;line-height:1.35;}
.page-hero .lead{color:var(--ink-soft);margin-top:12px;max-width:40em;}
.crumb{font-size:.78rem;color:var(--ink-soft);margin-bottom:14px;}
.crumb a{text-decoration:underline;}

/* 2カラム(写真+文章) */
.split{display:grid;grid-template-columns:1fr 1.2fr;gap:32px;align-items:center;}
.split.reverse{grid-template-columns:1.2fr 1fr;}
.split.reverse > :first-child{order:2;}
@media (max-width:820px){
  .split,.split.reverse{grid-template-columns:1fr;}
  .split.reverse > :first-child{order:0;}
}

/* 情報テーブル */
.info-table{width:100%;border-collapse:collapse;font-size:.92rem;}
.info-table th,.info-table td{padding:14px 16px;border-bottom:1px solid #eee2cf;text-align:left;vertical-align:top;}
.info-table th{width:32%;color:var(--ink-soft);font-weight:700;background:var(--cream-2);}
.info-table tr:last-child th,.info-table tr:last-child td{border-bottom:none;}
.info-table a{color:var(--orange-dark);text-decoration:underline;}
@media (max-width:560px){
  .info-table th,.info-table td{display:block;width:100%;}
  .info-table th{border-bottom:none;padding-bottom:4px;}
  .info-table td{padding-top:4px;}
}
.table-wrap{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden;}

/* ご利用の流れ */
.flow{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
.flow-step{
  background:#fff;border-radius:var(--radius-lg);padding:26px 20px;box-shadow:var(--shadow);position:relative;
  transition:transform .4s var(--ease-out), box-shadow .4s var(--ease-out);
}
.flow-step:hover{transform:translateY(-5px);box-shadow:var(--shadow-lift);}
.flow-num{
  width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-weight:900;color:#fff;background:linear-gradient(135deg,var(--orange),var(--yellow));margin-bottom:12px;
  font-size:1.1rem;
}
.flow-step:nth-child(2) .flow-num{background:linear-gradient(135deg,var(--green),var(--yellow));}
.flow-step:nth-child(3) .flow-num{background:linear-gradient(135deg,var(--teal),var(--green));}
.flow-step:nth-child(4) .flow-num{background:linear-gradient(135deg,var(--blue),var(--teal));}
.flow-step h3{font-size:1.05rem;margin-bottom:8px;}
.flow-step p{font-size:.86rem;color:var(--ink-soft);margin:0;}
@media (max-width:900px){.flow{grid-template-columns:1fr 1fr;}}
@media (max-width:520px){.flow{grid-template-columns:1fr;}}

/* 事業カード(トップ) */
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
@media (max-width:900px){.service-grid{grid-template-columns:1fr;}}
.service-card{
  background:#fff;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow);
  display:flex;flex-direction:column;
  transition:transform .45s var(--ease-out), box-shadow .45s var(--ease-out);
}
.service-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lift);}
.service-card .photo-frame{border-radius:0;box-shadow:none;aspect-ratio:4/3;}
.service-body{padding:24px;display:flex;flex-direction:column;flex:1;}
.service-tag{
  align-self:flex-start;font-size:.75rem;font-weight:700;color:#fff;
  padding:4px 12px;border-radius:var(--radius-pill);margin-bottom:10px;
}
.service-card.c-care .service-tag{background:var(--pink);}
.service-card.c-buddy .service-tag{background:var(--green);}
.service-card.c-pass .service-tag{background:var(--teal);}
.service-card.c-care{border-top:5px solid var(--pink);}
.service-card.c-buddy{border-top:5px solid var(--green);}
.service-card.c-pass{border-top:5px solid var(--teal);}
.service-body h3{font-size:1.35rem;font-weight:900;margin-bottom:10px;}
.service-body p{font-size:.9rem;color:var(--ink-soft);flex:1;}
.service-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px;}

/* 大きな見出し(トップ) */
.big-heading{font-size:1.8rem;font-weight:900;line-height:1.5;margin-bottom:16px;}
.big-heading .accent{color:var(--orange);}
@media (max-width:640px){.big-heading{font-size:1.4rem;}.page-hero h1{font-size:1.7rem;}}

/* 引用・メッセージ */
.quote-card{
  background:#fff;border-radius:var(--radius-lg);padding:28px;box-shadow:var(--shadow);
  border-left:5px solid var(--green);
}
.quote-card .who{font-weight:700;margin-top:14px;margin-bottom:0;color:var(--ink);}
.quote-card.pink{border-left-color:var(--pink);}
.quote-card.orange{border-left-color:var(--orange);}

/* 理念ブロック */
.philosophy{
  text-align:center;background:linear-gradient(135deg,var(--orange-pale),var(--green-pale));
  border-radius:var(--radius-lg);padding:44px 28px;box-shadow:var(--shadow);
}
.philosophy .lead{font-size:1.5rem;font-weight:900;margin-bottom:18px;font-family:"Zen Maru Gothic",sans-serif;}
.philosophy p{line-height:2.1;}
.slogan{
  display:inline-block;font-size:1.3rem;font-weight:900;font-family:"Zen Maru Gothic",sans-serif;
  background:#fff;padding:14px 28px;border-radius:var(--radius-pill);box-shadow:var(--shadow);
}

/* PDFリンク */
.doc-list{display:flex;flex-direction:column;gap:12px;margin:18px 0 10px;}
.doc-link{
  display:flex;align-items:center;gap:12px;background:#fff;border-radius:var(--radius-md);
  padding:16px 18px;box-shadow:var(--shadow-soft);font-weight:700;font-size:.92rem;
  transition:transform .3s var(--ease-out), box-shadow .3s var(--ease-out);
}
.doc-link:hover{transform:translateX(5px);box-shadow:var(--shadow-lift);}
.doc-link .pdf{background:#e05a4f;color:#fff;font-size:.7rem;padding:3px 8px;border-radius:6px;flex-shrink:0;}
.note{font-size:.8rem;color:var(--ink-soft);}

/* 地図 */
.map-embed{border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow);aspect-ratio:16/9;}
.map-embed iframe{width:100%;height:100%;border:0;display:block;}
@media (max-width:640px){.map-embed{aspect-ratio:4/3;}}

/* バッジ */
.open-badge{
  display:inline-flex;align-items:center;gap:8px;background:var(--yellow);color:var(--ink);
  font-weight:900;padding:10px 20px;border-radius:var(--radius-pill);box-shadow:var(--shadow);
  font-size:1rem;
}

/* プライバシーポリシー */
.policy-body h2{font-size:1.1rem;margin:30px 0 10px;padding-left:12px;border-left:4px solid var(--orange);}
.policy-body h2:first-child{margin-top:0;}
.policy-body p,.policy-body li{font-size:.92rem;color:var(--ink);line-height:1.95;}
.policy-body ul{padding-left:1.4em;list-style:disc;margin:6px 0 10px;}

/* セクション見出し(中央寄せ) */
.center-heading{text-align:center;margin-bottom:28px;}
.center-heading .section-heading{display:inline-block;}
.center-heading .section-heading::after{left:50%;transform:translateX(-50%);}
.center-heading .section-sub{margin-bottom:0;}

/* ページ下部の導線 */
.bottom-cta{
  display:grid;grid-template-columns:1fr 1fr;gap:22px;
}
@media (max-width:760px){.bottom-cta{grid-template-columns:1fr;}}
.bottom-cta a.card-col{display:block;}
.bottom-cta h3{font-size:1.2rem;font-weight:900;margin-bottom:6px;}
.bottom-cta p{font-size:.88rem;color:var(--ink-soft);margin:0 0 12px;}
.bottom-cta .more{font-weight:700;color:var(--orange-dark);}

.footer-sub{font-size:.8rem;color:var(--ink-soft);line-height:1.7;}
.copyright{text-align:center;font-size:.75rem;color:var(--ink-soft);margin-top:22px;padding-top:16px;border-top:1px solid #f0e8d6;}


/* PHOTO DECOR LAYER */
.photo-band{position:relative;padding:84px 0 72px;overflow:hidden;background:linear-gradient(180deg,var(--cream-2),#fff 75%)}.photo-band.alt{background:linear-gradient(180deg,#f1f8e9,#fff 75%)}.photo-band.pink{background:linear-gradient(180deg,#fdeef2,#fff 75%)}.photo-band::before{content:"";position:absolute;left:0;right:0;top:-1px;height:46px;z-index:2;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'%3E%3Cpath d='M0 0h1440v18c-240 44-480 44-720 12S240 8 0 38z' fill='%23fffcf6'/%3E%3C/svg%3E") center top/100% 100% no-repeat}.photo-band::after{content:"";position:absolute;right:-90px;bottom:-90px;width:320px;height:320px;border-radius:50%;background:radial-gradient(circle,rgba(246,201,69,.28),transparent 70%);pointer-events:none;animation:blobFloat 9s ease-in-out infinite}@keyframes blobFloat{50%{transform:translate(-18px,-14px) scale(1.06)}}.photo-band .wrap{position:relative;z-index:1}.photo-band .center-heading{margin-bottom:34px}.photo-band .center-heading .section-sub{margin-top:10px}.mosaic{display:grid;gap:22px}.mosaic.c2{grid-template-columns:repeat(2,minmax(0,1fr));max-width:820px;margin:0 auto}.mosaic.c3{grid-template-columns:repeat(3,minmax(0,1fr))}.mosaic.c4{grid-template-columns:repeat(4,minmax(0,1fr))}.tile{position:relative;margin:0;aspect-ratio:3/4;border-radius:24px;overflow:hidden;background:#eee;box-shadow:var(--shadow);transition:translate .5s var(--ease-out),rotate .5s var(--ease-out),box-shadow .5s var(--ease-out)}.mosaic.c2 .tile{aspect-ratio:4/5}.tile img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .9s var(--ease-out),filter .6s var(--ease-out)}.tile:nth-child(odd){rotate:-1deg}.tile:nth-child(even){rotate:1deg;translate:0 22px}.tile:hover{rotate:0deg;translate:0 -8px;box-shadow:var(--shadow-lift)}.tile:hover img{transform:scale(1.07);filter:saturate(1.08)}.tile::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,0) 60%,rgba(0,0,0,.22))}.tile figcaption{position:absolute;left:12px;bottom:12px;z-index:2;max-width:calc(100% - 24px);background:rgba(255,255,255,.94);padding:5px 14px;border-radius:999px;font-size:.74rem;font-weight:700;color:var(--ink);box-shadow:0 4px 12px rgba(0,0,0,.14)}.tile.land{aspect-ratio:4/3;grid-column:span 2}@media (max-width:820px){.mosaic.c3,.mosaic.c4,.mosaic.c2{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.tile:nth-child(even){translate:0 12px}.photo-band{padding:64px 0 52px}}.strip-wrap{overflow:hidden;margin:0 -32px;padding:14px 0 18px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}.strip{display:flex;gap:20px;width:max-content;animation:stripMove 52s linear infinite}.strip:hover{animation-play-state:paused}.strip figure{margin:0;position:relative;flex:none;width:240px;height:320px;border-radius:22px;overflow:hidden;box-shadow:var(--shadow-soft)}.strip figure:nth-child(odd){margin-top:14px}.strip figure img{width:100%;height:100%;object-fit:cover;display:block}.strip figcaption{position:absolute;left:10px;bottom:10px;background:rgba(255,255,255,.94);padding:4px 12px;border-radius:999px;font-size:.72rem;font-weight:700}@keyframes stripMove{to{transform:translateX(-50%)}}@media (max-width:640px){.strip-wrap{margin:0 -20px}.strip figure{width:190px;height:260px}}@media (prefers-reduced-motion:reduce){.strip{animation:none}.photo-band::after,.page-hero::after{animation:none}}.page-hero{position:relative;overflow:hidden}.page-hero .wrap{position:relative;z-index:1}.page-hero::after{content:"";position:absolute;right:6%;top:14px;width:170px;height:170px;opacity:.7;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M12 88C8 40 40 8 90 10 92 60 60 92 12 88Z' fill='%237bb342' fill-opacity='.38'/%3E%3Cpath d='M12 88C34 62 56 40 90 10' stroke='%23ffffff' stroke-width='2.4' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat;animation:floatLeaf 8s ease-in-out infinite;pointer-events:none}@keyframes floatLeaf{50%{transform:translateY(12px) rotate(7deg)}}@media (max-width:640px){.page-hero::after{width:100px;height:100px;right:2%}}
