:root{
  --cream:oklch(0.96 0.015 85);
  --cream-card:oklch(0.93 0.02 80);
  --cream-white:oklch(0.99 0.005 85);
  --ink:oklch(0.26 0 0);
  --ink-soft:oklch(0.3 0.02 50);
  --ink-soft2:oklch(0.35 0.02 50);
  --navy:oklch(0.27 0.045 250);
  --navy-deep:oklch(0.2 0.04 250);
  --mustard:oklch(0.5 0.15 32);
  --mustard-dark:oklch(0.4 0.14 28);
  --mustard-soft:oklch(0.5 0.15 32 / 0.14);
  --mustard:oklch(0.66 0.09 85.5);
}
*{box-sizing:border-box;}
body{margin:0;background:var(--cream);color:var(--ink);font-family:'Zen Kaku Gothic New', 'Hiragino Sans', 'ヒラギノ角ゴシック';overflow-x:hidden;}
a{color:inherit;text-decoration:none;}
a:hover{opacity:0.85;}
h1,h2,h3{margin:0;}
p{margin:0;}

.page{padding-bottom:84px;}

/* reveal */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s ease;}
.reveal.is-visible{opacity:1;transform:translateY(0);}

/* HERO */
.hero{padding:clamp(20px,4vw,40px) clamp(20px,6vw,80px) clamp(40px,6vw,64px);position:relative;}
.hero-top{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:clamp(28px,5vw,56px);border-bottom:2px solid var(--mustard);padding-bottom:14px;}
.brand{font-family:'Oswald',sans-serif;font-weight:600;font-size:clamp(15px,1.6vw,19px);letter-spacing:0.04em;}
.hero-tel{font-family:'Oswald',sans-serif;font-weight:600;font-size:clamp(15px,1.6vw,19px);letter-spacing:0.03em;color:var(--mustard);}
.hero-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:clamp(28px,5vw,56px);align-items:center;}
.tag-recruit{display:inline-block;font-family:'Oswald',sans-serif;font-weight:700;font-size:clamp(13px,1.3vw,15px);letter-spacing:0.12em;color:var(--mustard);border:2px solid var(--mustard);padding:5px 14px;margin-bottom:18px;}
.hero-title{font-family:'Oswald',sans-serif;font-weight:700;font-size:clamp(34px,5.2vw,64px);line-height:1.15;letter-spacing:0.01em;margin:0 0 20px;}
.nowrap{white-space:nowrap;font-size: 2rem;}
.quote-box{border-left:4px solid var(--mustard);padding-left:16px;margin-bottom:20px;}
.quote{font-size:clamp(18px,2vw,24px);font-weight:600;line-height:1.5;}
.hero-lead{font-size:clamp(16px,1.6vw,19px);line-height:1.9;margin-bottom:28px;color:var(--ink-soft);display:block;}
.hero-badges{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin-bottom:32px;}
.salary-label{font-size:12px;letter-spacing:0.08em;opacity:0.75;font-family:'Oswald',sans-serif;}
.salary-value{font-family:'Oswald',sans-serif;font-weight:700;font-size:clamp(22px,2.6vw,30px);}
.stamp-badge{border:3px solid var(--mustard-dark);color:var(--mustard-dark);font-family:'Oswald',sans-serif;font-weight:700;font-size:clamp(15px,1.5vw,18px);padding:12px 20px;letter-spacing:0.03em;white-space:nowrap;
  transform:rotate(-7deg) scale(2.4);opacity:0;transition:transform .55s cubic-bezier(.34,1.56,.64,1),opacity .4s ease;}
.stamp-badge.is-stamped{transform:rotate(-7deg) scale(1);opacity:1;}
.btn-primary{display:inline-block;background:var(--mustard);color:oklch(0.98 0.01 85);font-family:'Oswald',sans-serif;font-weight:700;font-size:clamp(16px,1.7vw,20px);padding:18px 36px;letter-spacing:0.03em;border-radius:100vmax;}

.hero-photo-wrap{position:relative;}
.hero-photo-frame{transform:rotate(2deg);background:var(--cream-white);padding:10px 10px 40px;box-shadow:0 8px 24px oklch(0.24 0.02 50 / 0.18);}
.hero-photo-placeholder{width:100%;aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;text-align:center;font-family:monospace;font-size:14px;color:oklch(0.5 0.02 50);
  background-image:repeating-linear-gradient(45deg,oklch(0.9 0.02 80) 0 10px,oklch(0.87 0.02 80) 10px 20px);}
.hero-photo-caption{text-align:center;font-family:'Oswald',sans-serif;font-size:13px;letter-spacing:0.05em;color:var(--ink-soft2);padding-top:10px;}

.stripe-divider{height:10px;background-image:repeating-linear-gradient(45deg,var(--oklch) 0 10px, var(--navy) 10px 20px);background-size:80px 10px;animation:stripeMove 6s linear infinite;}
@keyframes stripeMove{from{background-position:0 0;}to{background-position:80px 0;}}

/* generic section */
.section{padding:clamp(56px,8vw,96px) clamp(20px,6vw,80px);}
.eyebrow{font-family:'Oswald',sans-serif;font-weight:600;letter-spacing:0.12em;color:var(--mustard-dark);font-size:14px;margin-bottom:10px;}
.eyebrow.center{text-align:center;}
.eyebrow-mustard{color:var(--mustard);}
.h2{font-family:'Oswald',sans-serif;font-weight:700;font-size:clamp(26px,3.2vw,38px);margin:0 0 clamp(32px,5vw,48px);}
.h2.center{text-align:center;}
.h2-light{color:oklch(0.96 0.015 85);}
.body-text{font-size:clamp(16px,1.5vw,18px);line-height:2;color:var(--ink-soft);margin-bottom:18px;display:block;}
.body-text.center{text-align:center;}
.body-text.intro{max-width:600px;margin:0 auto clamp(36px,5vw,56px);font-size:clamp(16px,1.5vw,18px);}

/* ABOUT */
.section-about{position:relative;overflow:hidden;}
.about-inner{max-width:100%;position:relative;z-index:1; text-align:center;}

/* APPEAL */
.section-appeal{background:var(--cream-card);}
.appeal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;max-width:1160px;margin:0 auto;}
.appeal-card{background:var(--cream-white);padding:32px 28px;border-top:4px solid var(--mustard);transition:transform .25s ease;}
.appeal-card:hover{transform:translateY(-6px);}
.card-title{font-family:'Oswald',sans-serif;font-weight:700;font-size:clamp(19px,1.9vw,22px);margin:0 0 16px;}
.card-desc{font-size:15px;line-height:1.85;color:var(--ink-soft2);}
.chip-row{display:flex;flex-wrap:wrap;gap:8px;}
.chip{font-size:13px;font-weight:600;background:var(--cream-card);color:#333;padding:6px 12px;}

/* WORK */
.work-inner{max-width:900px;margin:0 auto;}
.work-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-bottom:32px;}
.work-item,.welcome-item{display:flex;align-items:center;gap:12px;background:var(--cream-card);padding:16px 20px;}
.check{font-weight:800;color:var(--mustard);font-size:20px;}
.work-item span:last-child,.welcome-item span:last-child{font-size:16px;font-weight:600;}

/* REQ */
.section-req{background:var(--ink);color:var(--cream);position:relative;}
.rivet{position:absolute;width:12px;height:12px;border-radius:50%;background:oklch(0.96 0.015 85 / 0.3);}
.rivet-tl{top:18px;left:18px;} .rivet-tr{top:18px;right:18px;}
.rivet-bl{bottom:18px;left:18px;} .rivet-br{bottom:18px;right:18px;}
.req-inner{max-width:800px;margin:0 auto;}
.req-row{display:grid;grid-template-columns:140px 1fr;gap:16px;padding:16px 0;border-bottom:1px solid oklch(0.96 0.015 85 / 0.2);}
.req-label{font-family:'Oswald',sans-serif;font-weight:600;letter-spacing:0.05em;color:var(--mustard);font-size:14px;}
.req-value{font-size:15px;line-height:1.7;}

/* WELCOME */
.welcome-inner{max-width:700px;margin:0 auto;}
.welcome-list{display:flex;flex-direction:column;gap:12px;}

/* FAQ */
.section-faq{background:var(--cream-card);}
.faq-inner{max-width:760px;margin:0 auto;}
.faq-list{display:flex;flex-direction:column;gap:10px;}
.faq-item{background:var(--cream-white);}
.faq-question{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 24px;cursor:pointer;}
.faq-q{font-weight:700;font-size:16px;display:flex;gap:12px;}
.q-mark{color:var(--mustard);}
.a-mark{color:var(--mustard-dark);font-weight:700;}
.faq-icon{font-size:22px;font-weight:300;color:var(--mustard-dark);flex-shrink:0;transform:rotate(0deg);transition:transform .3s ease;}
.faq-item.open .faq-icon{transform:rotate(45deg);}
.faq-answer{padding:0 24px 22px;display:none;gap:12px;}
.faq-answer p{font-size:15px;line-height:1.8;color:var(--ink-soft2);}
.faq-item.open .faq-answer{display:flex;}

/* FLOW */
.flow-list{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;max-width:1100px;margin:0 auto;}
.flow-step{display:flex;flex-direction:column;align-items:center;gap:10px;width:130px;}
.flow-circle{width:56px;height:56px;border-radius:50%;background:var(--mustard);color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Oswald',sans-serif;font-weight:700;font-size:20px;}
.flow-label{font-size:14px;font-weight:600;text-align:center;line-height:1.5;}
.flow-arrow{color:var(--mustard);font-size:20px;font-weight:700;}

/* CTA */
.section-cta{background:var(--ink);color:var(--cream);text-align:center;}
.cta-title{font-family:'Oswald',sans-serif;font-weight:700;font-size:clamp(28px,3.8vw,44px);margin:0 0 20px;line-height:1.4;display:block;}
.cta-lead{font-size:clamp(16px,1.6vw,19px);line-height:1.9;margin:0 0 36px;opacity:0.9;display:block;}
.btn-cta{display:inline-block;background:var(--mustard);color:#fff;font-family:'Oswald',sans-serif;font-weight:700;font-size:clamp(20px,2.2vw,28px);padding:22px 44px;letter-spacing:0.08em;border-radius:100vmax;}
.cta-hours{margin-top:16px;font-size:14px;opacity:0.75;}

/* FOOTER */
.site-footer{
  padding:10px clamp(20px,6vw,80px);
  background:#000;
  color:#fff;
  font-size:10px;
  line-height:1.9;
}
.footer-inner{
  max-width:1100px;
  margin:0 auto;
  /* display:flex; */
  justify-content:space-between;
  flex-wrap:wrap;gap:16px;
}
.footer-brand{
  font-family:'Oswald',sans-serif;
  font-weight:600;
  font-size:15px;
  color:var(--cream);
  margin-bottom:6px;
}
.footer-copy{
  align-self:flex-end;
  opacity:0.7;
  text-align: center;
}

/* STICKY CTA */
.sticky-cta{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  display:flex;
  justify-content:center;
  padding:12px 16px;
  z-index:50;
}
.sticky-cta-btn{
  animation:glowPulse 2.4s ease-in-out infinite;
  width:min(100%,640px);
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  background:var(--mustard);
  color:oklch(0.98 0.01 85);
  font-family:'Oswald',sans-serif;
  font-weight:700;
  font-size:clamp(16px,2vw,20px);
  padding:16px 24px;
  letter-spacing:0.02em;
  border-radius:100vmax;
}
@keyframes glowPulse{
  0%,100%{
    box-shadow:0 0 0 0 rgba(20,15,10,0);
  }
  50%{
    box-shadow:0 0 22px 5px rgba(20,15,10,0.35);
  }
}
