/* =========================
   style.css  (CLUB SAMPLE SAPPORO template)
   ========================= */
:root{
  --bg:#0b0b0f;
  --bg-soft:#121219;
  --card:#16161f;
  --text:#f5f7fb;
  --muted:#a9afbf;
  --brand:#d7b16c; /* gold */
  --brand-2:#ffefe0;
  --accent:#ffffff1a;
  --border:#2a2a36;
  --radius:16px;
  --shadow:0 10px 30px rgba(0,0,0,.35);
  --max:1200px;
}

/* Base */
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--text);font-family:"Noto Sans JP",system-ui,-apple-system,Segoe UI,Roboto,"Hiragino Kaku Gothic ProN",Meiryo,sans-serif;line-height:1.75}
img,video{max-width:100%;height:auto;border-radius:12px;display:block}
a{color:var(--brand);text-decoration:none}
a:hover{opacity:.9}

.container{max-width:var(--max);margin-inline:auto;padding:0 20px}
.section{padding:64px 0}
.section-header{margin-bottom:28px}
.section-header h2{font-size:1.6rem;margin:.2rem 0;display:inline-block;padding:.35rem .7rem;border-radius:10px;background:linear-gradient(135deg,var(--brand),#b6914e);color:#fff;box-shadow:0 6px 18px rgba(0,0,0,.18)}
.section-header p{color:var(--muted);margin:0}

/* UI tokens */
.pill{display:inline-block;border:1px solid var(--brand);color:var(--brand);padding:.25rem .75rem;border-radius:999px;font-size:.8rem;letter-spacing:.06em}
.btn{display:inline-block;background:linear-gradient(180deg,var(--brand),#b6914e);color:#000;padding:.9rem 1.25rem;border-radius:12px;font-weight:700;box-shadow:var(--shadow)}
.btn.ghost{background:transparent;border:1px solid var(--brand);color:var(--brand)}
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}
.muted{color:var(--muted)}

/* Header / Nav */
header{position:sticky;top:0;background:rgba(10,10,14,.75);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);z-index:50}
.nav{display:flex;align-items:center;justify-content:space-between;height:64px}
.logo{display:flex;align-items:center;gap:.75rem;font-weight:800;letter-spacing:.12em}
.logo em{font-style:normal;color:var(--brand)}
.menu{display:flex;gap:20px;align-items:center}
.menu a{color:var(--text);opacity:.9}
.menu a:hover{color:var(--brand)}
#nav-toggle{display:none}
.burger{display:none;gap:8px;flex-direction:column;cursor:pointer}
.burger span{width:26px;height:2px;background:#ddd}

/* Hero */
.hero{
  position:relative;min-height:72svh;display:grid;place-items:end;overflow:hidden;
}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.0) 0%,rgba(0,0,0,.35) 55%,rgba(0,0,0,.75) 100%);z-index:1}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.hero-inner{position:relative;z-index:2;padding:28px}

/* Section background video utility */
.video-bg{position:relative;overflow:hidden}
.video-inner{position:relative;z-index:2}
.hero h1{font-size:clamp(1.6rem,3vw,2.4rem);margin:.2rem 0}
.hero p{max-width:760px;color:#e9edf7}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:14px}
.badges{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}

/* Grids */
.grid{display:grid;gap:16px}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}

.thumb{position:relative;overflow:hidden}
.thumb::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 1px var(--border);border-radius:12px;pointer-events:none}
.thumb .tag{position:absolute;left:10px;top:10px;background:rgba(0,0,0,.6);border:1px solid var(--brand);padding:.2rem .5rem;border-radius:999px;font-size:.75rem}
.tiles .thumb img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:var(--radius)}
.lightbox-trigger{transition:transform .2s ease,opacity .2s ease}
.lightbox-trigger:hover{transform:scale(1.02);opacity:.9}

/* Simple slider */
.slider{position:relative;overflow:hidden}
.slides{position:relative;aspect-ratio:16/9}
.slide{position:absolute;inset:0;opacity:0;transition:opacity 0.6s ease-in-out;pointer-events:none}
.slide.is-active{opacity:1;pointer-events:auto}
.slide img{width:100%;height:100%;object-fit:cover;border-radius:var(--radius)}
.slide-prev,.slide-next{position:absolute;top:50%;transform:translateY(-50%);background:rgba(0,0,0,.45);border:1px solid var(--border);color:#fff;border-radius:8px;padding:.4rem .7rem;cursor:pointer;z-index:10;transition:background 0.2s ease}
.slide-prev:hover,.slide-next:hover{background:rgba(0,0,0,.65)}
.slide-prev{left:10px}
.slide-next{right:10px}

/* Responsive visibility helpers */
.only-mobile{display:none}
.only-desktop{display:block}
@media (max-width:900px){
  .only-mobile{display:block}
  .only-desktop{display:none}
}

/* System (Price) */
.system{display:grid;gap:18px;grid-template-columns:1fr 1fr}
.price{padding:18px}
.card.price{background:rgba(22,22,31,.75);backdrop-filter:blur(6px)}
.price h3{margin-top:0}
.price dl{display:grid;grid-template-columns:1fr auto;gap:10px 14px;margin:0}
.note{color:var(--muted);font-size:.9rem}

/* Cast */
.cast{display:grid;gap:16px;grid-template-columns:repeat(3,1fr)}
.cast .card{position:relative;overflow:hidden;transition:transform .2s ease;background:#9a9ab0}
.cast .card:hover{transform:translateY(-2px)}
.cast .card img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:0}
.cast .name-overlay{position:absolute;left:0;right:0;bottom:0;padding:10px 12px;background:linear-gradient(180deg,rgba(0,0,0,0) 0%, rgba(0,0,0,.65) 65%, rgba(0,0,0,.85) 100%);color:#fff;font-weight:700;letter-spacing:.04em}
.cast .name-overlay small{display:block;color:#e0e3ec;font-weight:500;opacity:.9}
.cast .meta{padding:12px}
.cast .name{font-weight:700}
.cast .attrs{color:var(--muted);font-size:.9rem}

/* Access */
.access{display:grid;gap:18px;grid-template-columns:1.2fr .8fr}
.map-wrap{aspect-ratio:16/9;overflow:hidden}
.access-info{padding:18px}
.info-list{margin:0;padding:0;list-style:none}
.info-list li{display:flex;gap:10px;justify-content:space-between;align-items:flex-start;padding:10px 0;border-bottom:1px dashed var(--border)}
.info-list li strong{min-width:5.5em}

/* FAQ */
details{border:1px solid var(--border);border-radius:12px;padding:14px;background:var(--bg-soft)}
details+details{margin-top:10px}
summary{cursor:pointer;font-weight:700}

/* Recruit */
.recruit{padding:18px;display:grid;gap:14px}
.recruit-cta{display:flex;gap:12px;flex-wrap:wrap}

/* Footer */
footer{background:#0a0a0e;border-top:1px solid var(--border);margin-top:40px}
.footer-grid{display:grid;gap:16px;grid-template-columns:2fr 1fr 1fr}
.copyright{border-top:1px solid var(--border);margin-top:16px;padding:14px 0;color:var(--muted);font-size:.9rem}

/* Cast Slider */
.cast-desktop{display:block}
.cast-mobile{display:none}
.cast-slider{overflow:hidden;position:relative;width:100%}
.cast-slider-track{display:flex;gap:16px;transition:transform 0.8s ease-in-out;will-change:transform;flex-wrap:nowrap}
.cast-slide-item{flex:0 0 calc(50% - 8px);min-width:0}
.cast-desktop-item{flex:0 0 calc(25% - 12px);min-width:0}
.cast-slider .card{position:relative;overflow:hidden;transition:transform .2s ease;background:#9a9ab0}
.cast-slider .card img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:0}
.cast-slider .name-overlay{position:absolute;left:0;right:0;bottom:0;padding:10px 12px;background:linear-gradient(180deg,rgba(0,0,0,0) 0%, rgba(0,0,0,.65) 65%, rgba(0,0,0,.85) 100%);color:#fff;font-weight:700;letter-spacing:.04em}
.cast-slider .name-overlay small{display:block;color:#e0e3ec;font-weight:500;opacity:.9}

/* Responsive */
@media (max-width:1200px){
  .cast{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:900px){
  .menu{display:none;position:absolute;left:0;top:64px;right:0;background:var(--bg-soft);border-bottom:1px solid var(--border);flex-direction:column;padding:16px}
  #nav-toggle:checked + label + .menu{display:flex}
  .burger{display:flex}
  .grid-3,.grid-4{grid-template-columns:1fr 1fr}
  .tiles.grid-3{grid-template-columns:repeat(3,1fr)}
  .system{grid-template-columns:1fr}
  .access{grid-template-columns:1fr}
  .info-list li{gap:12px}
  .cast-desktop{display:none}
  .cast-mobile{display:block}
}
@media (max-width:600px){
  .grid-3,.grid-4{grid-template-columns:1fr}
  .tiles.grid-3{grid-template-columns:repeat(3,1fr)}
  .cast{grid-template-columns:repeat(2,1fr)}
}

/* Motion preference */
@media (prefers-reduced-motion: reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}

/* 採用情報ページ専用スタイル */
body.recruit {
  background: #f8f9fa;
  color: #333;
}

body.recruit .hero {
  background: linear-gradient(135deg, #d7b16c 0%, #b6914e 100%);
  color: #000;
}

body.recruit .hero h1,
body.recruit .hero p {
  color: #000;
}

body.recruit .section {
  background: #fff;
  margin: 0;
  padding: 60px 0;
}

body.recruit .section:nth-child(even) {
  background: #f8f9fa;
}

.recruit-appeal {
  margin: 48px 0;
}

.recruit-appeal h3 {
  font-size: 1.6rem;
  margin-bottom: 40px;
  text-align: center;
  color: #d7b16c;
  font-weight: 700;
}

.appeal-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 24px;
  margin-bottom: 48px;
}

@media (max-width: 768px) {
  .appeal-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 16px;
  }
  
  .appeal-item {
    min-width: 0;
    padding: 20px 16px;
  }
  
  .appeal-item h4 {
    font-size: 1rem;
  }
  
  .appeal-item p {
    font-size: 0.9rem;
  }
}

.appeal-item {
  background: #fff;
  border: 1px solid #e9ecef;
  border-radius: 16px;
  padding: 32px 24px;
  text-align: center;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  box-shadow: 0 4px 6px rgba(0,0,0,0.05);
}

.appeal-item:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 24px rgba(0,0,0,0.15);
  border-color: #d7b16c;
}

.appeal-icon {
  font-size: 3rem;
  margin-bottom: 20px;
  display: block;
}

.appeal-item h4 {
  font-size: 1.2rem;
  margin-bottom: 16px;
  color: #d7b16c;
  font-weight: 600;
}

.appeal-item p {
  color: #666;
  font-size: 1rem;
  line-height: 1.7;
  margin: 0;
}

.job-openings {
  margin: 48px 0;
}

.job-openings h3 {
  font-size: 1.6rem;
  margin-bottom: 40px;
  text-align: center;
  color: #d7b16c;
  font-weight: 700;
}

.job-card {
  background: #fff;
  border: 1px solid #e9ecef;
  border-radius: 16px;
  margin-bottom: 32px;
  overflow: hidden;
  box-shadow: 0 4px 6px rgba(0,0,0,0.05);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.job-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 25px rgba(0,0,0,0.1);
}

.job-header {
  background: linear-gradient(135deg, #d7b16c, #b6914e);
  color: #000;
  padding: 24px 32px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.job-header h4 {
  font-size: 1.4rem;
  margin: 0;
  font-weight: 700;
}

.job-type {
  background: rgba(0,0,0,0.1);
  color: #000;
  padding: 6px 16px;
  border-radius: 20px;
  font-size: 0.9rem;
  font-weight: 600;
}

.job-content {
  padding: 32px;
}

.job-details h5 {
  color: #d7b16c;
  font-size: 1.1rem;
  margin: 24px 0 16px;
  font-weight: 600;
  border-bottom: 2px solid #e9ecef;
  padding-bottom: 8px;
}

.job-details h5:first-child {
  margin-top: 0;
}

.job-details ul {
  margin: 0;
  padding-left: 20px;
  color: #555;
}

.job-details li {
  margin-bottom: 12px;
  line-height: 1.7;
  font-size: 1rem;
}

.benefits {
  margin: 48px 0;
}

.benefits h3 {
  font-size: 1.6rem;
  margin-bottom: 40px;
  text-align: center;
  color: #d7b16c;
  font-weight: 700;
}

.benefits-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 24px;
}

@media (max-width: 768px) {
  .benefits-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }
}

.benefit-category {
  background: #fff;
  border: 1px solid #e9ecef;
  border-radius: 16px;
  padding: 32px 24px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.05);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.benefit-category:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 25px rgba(0,0,0,0.1);
  border-color: #d7b16c;
}

.benefit-category h4 {
  color: #d7b16c;
  font-size: 1.2rem;
  margin-bottom: 20px;
  font-weight: 600;
  border-bottom: 2px solid #e9ecef;
  padding-bottom: 8px;
}

.benefit-category ul {
  margin: 0;
  padding-left: 20px;
  color: #555;
}

.benefit-category li {
  margin-bottom: 12px;
  line-height: 1.7;
  font-size: 1rem;
}

.application {
  margin: 48px 0;
}

.application h3 {
  font-size: 1.6rem;
  margin-bottom: 40px;
  text-align: center;
  color: #d7b16c;
  font-weight: 700;
}

.application-steps {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 24px;
  margin-bottom: 48px;
}

@media (max-width: 768px) {
  .application-steps {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }
}

.step {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  background: #fff;
  border: 1px solid #e9ecef;
  border-radius: 16px;
  padding: 32px 24px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.05);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.step:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 25px rgba(0,0,0,0.1);
  border-color: #d7b16c;
}

.step-number {
  width: 50px;
  height: 50px;
  background: linear-gradient(135deg, #d7b16c, #b6914e);
  color: #000;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  font-weight: 700;
  flex-shrink: 0;
}

.step-content h4 {
  color: #d7b16c;
  font-size: 1.1rem;
  margin-bottom: 12px;
  font-weight: 600;
}

.step-content p {
  color: #555;
  font-size: 1rem;
  line-height: 1.7;
  margin: 0;
}

.application-contact {
  background: #fff;
  border: 1px solid #e9ecef;
  border-radius: 16px;
  padding: 32px;
  text-align: center;
  box-shadow: 0 4px 6px rgba(0,0,0,0.05);
}

.application-contact h4 {
  color: #d7b16c;
  font-size: 1.3rem;
  margin-bottom: 24px;
  font-weight: 600;
}

.contact-info p {
  margin-bottom: 16px;
  color: #555;
  line-height: 1.7;
  font-size: 1rem;
}

.contact-info strong {
  color: #d7b16c;
  font-weight: 600;
}

.contact-info a {
  color: #d7b16c;
  text-decoration: none;
  font-weight: 600;
}

.contact-info a:hover {
  text-decoration: underline;
}

/* よくある質問セクション */
.faq-section {
  margin: 48px 0;
}

.faq-section h3 {
  font-size: 1.6rem;
  margin-bottom: 40px;
  text-align: center;
  color: #d7b16c;
  font-weight: 700;
}

.faq-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
  gap: 24px;
}

@media (max-width: 768px) {
  .faq-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }
}

.faq-item {
  background: #fff;
  border: 1px solid #e9ecef;
  border-radius: 16px;
  padding: 32px 24px;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  box-shadow: 0 4px 6px rgba(0,0,0,0.05);
}

.faq-item:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 25px rgba(0,0,0,0.1);
  border-color: #d7b16c;
}

.faq-item h4 {
  color: #d7b16c;
  font-size: 1.2rem;
  margin-bottom: 20px;
  font-weight: 600;
  line-height: 1.5;
  border-bottom: 2px solid #e9ecef;
  padding-bottom: 12px;
}

.faq-item p {
  color: #555;
  font-size: 1rem;
  line-height: 1.7;
  margin: 0;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
  .step {
    flex-direction: column;
    text-align: center;
  }
  
  .job-header {
    flex-direction: column;
    gap: 12px;
    text-align: center;
  }
}

@media (max-width: 600px) {
  .appeal-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 12px;
  }
  
  .appeal-item {
    padding: 16px 12px;
  }
  
  .appeal-item h4 {
    font-size: 0.9rem;
    margin-bottom: 8px;
  }
  
  .appeal-item p {
    font-size: 0.8rem;
    line-height: 1.5;
  }
  
  .appeal-icon {
    font-size: 2rem;
    margin-bottom: 12px;
  }
}

@media (max-width: 480px) {
  .benefits-grid,
  .application-steps,
  .faq-grid {
    grid-template-columns: 1fr;
  }
}

/* ライトボックス */
.lightbox {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

.lightbox.is-active {
  opacity: 1;
  visibility: visible;
}

.lightbox-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.9);
  backdrop-filter: blur(4px);
}

.lightbox-content {
  position: relative;
  z-index: 1001;
  max-width: 90vw;
  max-height: 90vh;
  display: flex;
  align-items: center;
  justify-content: center;
}

.lightbox-image {
  max-width: 100%;
  max-height: 90vh;
  object-fit: contain;
  border-radius: var(--radius);
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
}

.lightbox-close {
  position: absolute;
  top: -50px;
  right: 0;
  background: rgba(255, 255, 255, 0.2);
  border: 1px solid var(--border);
  color: #fff;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s ease, transform 0.2s ease;
  z-index: 1002;
}

.lightbox-close:hover {
  background: rgba(255, 255, 255, 0.3);
  transform: scale(1.1);
}

.lightbox-prev,
.lightbox-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(0, 0, 0, 0.5);
  border: 1px solid var(--border);
  color: #fff;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s ease, transform 0.2s ease;
  z-index: 1002;
}

.lightbox-prev {
  left: -70px;
}

.lightbox-next {
  right: -70px;
}

.lightbox-prev:hover,
.lightbox-next:hover {
  background: rgba(0, 0, 0, 0.7);
  transform: translateY(-50%) scale(1.1);
}

@media (max-width: 900px) {
  .lightbox-prev {
    left: 10px;
  }
  .lightbox-next {
    right: 10px;
  }
  .lightbox-close {
    top: 10px;
    right: 10px;
  }
}