  /* 文字サイズ全体を一般的な採用サイト水準へ底上げ（rem基準を16px→17px化。Tailwindのtext-sm等が連動して拡大） */
  html { font-size:17px; }
/* ===== Enjin Recruit v8 — shared design system ===== */
:root { --red:#BF0F0F; --ink:#444; --paper:#F7F4F2; }
html { scroll-behavior:smooth; }
html, body { font-family:'Noto Sans JP', sans-serif; background:#fff; color:var(--ink); }
html, body { overflow-x:clip; max-width:100%; }
a { color:inherit; }
.font-alumni { font-family:'Alumni Sans', sans-serif; }
.font-anton { font-family:'Anton','Alumni Sans', sans-serif; font-weight:400; letter-spacing:.01em; }
.font-mincho { font-family:'Noto Serif JP', serif; }
.text-red { color:var(--red); } .bg-red { background:var(--red); } .bg-paper { background:var(--paper); }

.eyebrow { font-family:'Alumni Sans',sans-serif; font-weight:700; letter-spacing:0.22em; font-size:0.78rem; color:#9a9a9a; text-transform:uppercase; display:flex; align-items:center; gap:.6rem; }
.eyebrow::before { content:""; width:22px; height:2px; background:var(--red); flex-shrink:0; }
.eyebrow.center { justify-content:center; }
.eyebrow .en-num{ font-family:'Alumni Sans',sans-serif; font-weight:900; color:var(--red); font-size:1rem; letter-spacing:.04em; line-height:1; }
.sec-title { font-weight:900; letter-spacing:0.02em; line-height:1.25; }
.sec-en-ghost { position:absolute; pointer-events:none; user-select:none; z-index:0; font-family:'Alumni Sans',sans-serif; font-weight:900; color:rgba(20,20,20,0.045); font-size:12vw; line-height:0.8; white-space:nowrap; }

.reveal { opacity:0; transform:translateY(34px); transition:opacity 1.1s cubic-bezier(.22,1,.36,1), transform 1.1s cubic-bezier(.22,1,.36,1); }
.reveal.in { opacity:1; transform:translateY(0); }
@keyframes kb { 0%{transform:scale(1.02);} 100%{transform:scale(1.1);} }
.ken-burns{overflow:hidden;position:relative;} .ken-burns>.kb-img{position:absolute;inset:0;animation:kb 26s ease-in-out infinite alternate;background-size:cover;background-position:center;}
.kari{display:inline-block;border:1px solid #d1d5db;color:#9ca3af;font-size:10px;padding:1px 7px;letter-spacing:.08em;vertical-align:middle;white-space:nowrap;}

.noise{position:relative;}
.noise::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:.055;mix-blend-mode:screen;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}
.noise > *{position:relative;z-index:2;}

/* header / footer */
.head-badge{position:relative;padding-left:.85rem;font-size:.72rem;font-weight:700;letter-spacing:.1em;white-space:nowrap;color:#444;}
.head-badge::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);height:15px;width:1px;background:currentColor;opacity:.45;}
.site-head{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.95);backdrop-filter:blur(8px);border-bottom:1px solid #f0f0f0;}
.site-head nav a:hover{color:var(--red);}
/* ヘッダーナビ：ホバードロップダウン */
.nav-item{position:relative;}
.nav-caret{font-size:8px;margin-left:3px;opacity:.45;position:relative;top:-1px;}
.nav-dropdown{position:absolute;top:100%;left:50%;transform:translateX(-50%);padding-top:12px;opacity:0;visibility:hidden;transition:opacity .15s ease,visibility .15s ease;z-index:60;}
.nav-item:hover .nav-dropdown,.nav-item:focus-within .nav-dropdown{opacity:1;visibility:visible;}
.nav-dropdown-box{min-width:190px;background:#fff;box-shadow:0 16px 40px -12px rgba(31,23,20,.28),0 2px 8px rgba(31,23,20,.08);padding:8px 0;}
.nav-item .nav-dropdown a{display:block;padding:9px 20px;font-size:12px;color:#555;white-space:nowrap;font-weight:500;transition:color .15s,background .15s;}
.nav-item .nav-dropdown a:hover{color:var(--red);background:#faf8f5;}
/* ヘッダーのSNSアイコン（TOPと共通・下層ページ用） */
.head-sns{display:flex;align-items:center;gap:.65rem;padding-left:.9rem;margin-left:.1rem;position:relative;}
.head-sns::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);height:16px;width:1px;background:currentColor;opacity:.35;}
.head-sns a{display:flex;color:inherit;transition:color .2s,transform .2s;}
.head-sns a:hover{color:var(--red);transform:translateY(-1px);}
.head-sns svg{width:18px;height:18px;}
@media(max-width:1023px){.head-sns{display:none;}}
.btn-line{display:inline-block;white-space:nowrap;border:1px solid #444;padding:.9rem 2.4rem;font-size:.875rem;transition:.25s,transform .15s cubic-bezier(.34,1.56,.64,1);}
.btn-line:hover{background:var(--red);border-color:var(--red);color:#fff;}
.btn-line:active{transform:scale(.96);}
.btn-red{position:relative;display:inline-block;white-space:nowrap;background:var(--red);color:#fff;padding:.9rem 2.4rem;font-size:.875rem;font-weight:700;letter-spacing:.05em;transition:opacity .25s,transform .15s cubic-bezier(.34,1.56,.64,1);clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,0 100%);}
.btn-red:hover{opacity:.9;}
.btn-red:active{transform:scale(.96);}
/* 説明会CTA：常に赤背景・白字を固定（nav a:hoverで文字が赤くなり消えるのを防ぐ） */
.btn-apply,.btn-apply:hover,.site-head nav a.btn-apply:hover{background:var(--red);color:#fff;opacity:1;}
.btn-apply:hover{background:#a30d0d;}
.btn-apply{position:relative;overflow:hidden;transition:background .25s,transform .15s cubic-bezier(.34,1.56,.64,1);clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,0 100%);}
.btn-apply:active{transform:scale(.95);}
.btn-apply::after{content:"";position:absolute;top:0;left:-60%;width:35%;height:100%;background:linear-gradient(115deg,transparent,rgba(255,255,255,.4),transparent);transform:skewX(-18deg);transition:left .55s ease;pointer-events:none;}
.btn-apply:hover::after{left:120%;}


/* page hero */
.page-hero{position:relative;overflow:hidden;background:#444;}
.page-hero .bg{position:absolute;inset:0;}
.page-hero .bg .kb-img{position:absolute;inset:0;background-size:cover;background-position:center;animation:kb 30s ease-in-out infinite alternate;}
.page-hero .ghost{position:absolute;bottom:-1.5vw;left:0;font-family:'Alumni Sans',sans-serif;font-weight:900;white-space:nowrap;pointer-events:none;font-size:15vw;line-height:.78;color:rgba(255,255,255,.06);}

/* hub link (underline row) */
.hub-link{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ddd;padding:1.15rem .2rem;transition:.25s;}
.hub-link:hover{border-color:var(--ink);padding-left:.6rem;}
.hub-link .en{font-family:'Alumni Sans',sans-serif;font-weight:700;font-size:.72rem;color:#b5b5b5;letter-spacing:.14em;}
.hub-link:hover .en{color:var(--red);}

/* footer util links */
.util-link{display:inline-flex;align-items:center;gap:.4rem;color:#555;transition:color .2s;}
.util-link:hover{color:var(--red);}
.util-link svg{opacity:.55;}
.util-link.is-disabled{color:#bbb;cursor:default;pointer-events:none;}
.util-link.is-disabled svg{opacity:.3;}

/* info table */
.info-row{display:grid;grid-template-columns:170px 1fr;gap:1rem;padding:1.2rem 0;border-bottom:1px solid #eee;font-size:.9rem;line-height:1.9;}
.info-row dt{color:#9a9a9a;font-weight:600;font-size:.8rem;letter-spacing:.05em;padding-top:.15rem;}
@media (max-width:640px){ .info-row{grid-template-columns:1fr;gap:.3rem;} }

/* flow */
.flowline{position:relative;}
.flowline::before{content:"";position:absolute;top:26px;left:10%;right:10%;height:1px;background:#d9d0ca;z-index:0;}
.flow-node{position:relative;z-index:1;text-align:center;}
.flow-node .dot{width:52px;height:52px;border-radius:50%;background:#fff;border:1px solid #d9d0ca;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;font-family:'Alumni Sans',sans-serif;font-weight:900;font-size:1.15rem;color:#9a9a9a;transition:.3s;}
.flow-node.first .dot{background:var(--red);border-color:var(--red);color:#fff;box-shadow:0 8px 20px -8px rgba(191,15,15,.5);}
@media (max-width:1023px){
  .flowline::before{top:8%;bottom:8%;left:25px;right:auto;width:1px;height:auto;}
  .flow-node{display:grid;grid-template-columns:52px 1fr;gap:1.2rem;text-align:left;align-items:center;padding:.8rem 0;}
  .flow-node .dot{margin:0;}
}

/* step cards connected by arrows (grid, row-wrap aware) */
.flow-step{position:relative;}
.flow-step:not(:nth-child(3n))::after{content:"";position:absolute;top:50%;right:-1.5rem;transform:translate(-50%,-50%);width:0;height:0;border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:10px solid var(--red);z-index:2;}
@media(max-width:639px){
  .flow-step:not(:nth-child(3n))::after{display:none;}
  .flow-step:not(:last-child)::before{content:"";position:absolute;bottom:-1.5rem;left:50%;transform:translate(-50%,0);width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-top:10px solid var(--red);z-index:2;}
}

/* faq */
.faq{border-bottom:1px solid #e2e2e2;}
.faq summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:1.1rem;padding:1.4rem .2rem;font-weight:600;font-size:.95rem;transition:color .2s;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary:hover{color:var(--red);}
.faq summary .q{font-family:'Alumni Sans',sans-serif;font-weight:900;color:var(--ink);font-size:1.3rem;flex-shrink:0;width:1.4rem;}
.faq summary .plus{margin-left:auto;color:#b5b5b5;font-size:1.4rem;font-weight:300;transition:transform .25s,color .25s;flex-shrink:0;}
.faq[open] summary .plus{transform:rotate(45deg);color:var(--red);}
.faq .a{display:grid;grid-template-columns:1.4rem 1fr;gap:1.1rem;padding:0 .2rem 1.5rem;font-size:.87rem;color:#4b5563;line-height:2;}
.faq .a .am{font-family:'Alumni Sans',sans-serif;font-weight:900;color:var(--red);font-size:1.3rem;line-height:1.2;}

/* photo cards with grayscale->color */
.gc{overflow:hidden;}
.gc>div{width:100%;height:100%;background-size:cover;background-position:center;filter:grayscale(.35);transition:transform .6s cubic-bezier(.22,1,.36,1),filter .5s;}
.gc:hover>div{transform:scale(1.05);filter:grayscale(0);}
.gc.color>div{filter:none;} .gc.color:hover>div{filter:none;transform:scale(1.05);}

@media (prefers-reduced-motion: reduce){
  .reveal,.ken-burns>.kb-img,.page-hero .bg .kb-img{animation:none!important;opacity:1!important;transform:none!important;transition:none!important;}
}

/* mobile drawer (下層ページ共通) */
.hamburger { width:26px; height:20px; position:relative; }
.hamburger span { position:absolute; left:0; width:100%; height:2px; background:#444; transition:.3s; }
.hamburger span:nth-child(1){ top:0; } .hamburger span:nth-child(2){ top:9px; } .hamburger span:nth-child(3){ top:18px; }
.drawer { position:fixed; inset:0; z-index:60; visibility:hidden; }
.drawer.open { visibility:visible; }
.drawer-bg { position:absolute; inset:0; background:rgba(0,0,0,.45); opacity:0; transition:opacity .3s; }
.drawer.open .drawer-bg { opacity:1; }
.drawer-panel { position:absolute; top:0; right:0; height:100%; width:78%; max-width:320px; background:#fff; transform:translateX(100%); transition:transform .3s cubic-bezier(.22,1,.36,1); display:flex; flex-direction:column; padding:1.5rem; overflow-y:auto; }
.drawer.open .drawer-panel { transform:translateX(0); }
.drawer-panel a { display:block; padding:.9rem .2rem; border-bottom:1px solid #f0f0f0; font-size:.95rem; }
.drawer-panel a:active { color:var(--red); }

/* benefit categories */
.ben-cat{font-family:'Alumni Sans',sans-serif;font-weight:800;font-size:.72rem;letter-spacing:.12em;color:var(--red);margin-bottom:1.1rem;display:flex;align-items:center;gap:.55rem;}
.ben-cat .no{display:inline-flex;width:22px;height:22px;border-radius:50%;background:var(--red);color:#fff;align-items:center;justify-content:center;font-size:.78rem;}
.ben-list{list-style:none;padding:0;margin:0;}
.ben-list li{padding:.85rem 0;border-bottom:1px solid #efe9e4;}
.ben-list li:last-child{border-bottom:none;}
.ben-list .t{font-weight:700;font-size:.95rem;display:block;margin-bottom:.15rem;}
.ben-list .d{font-size:.78rem;color:#8a8279;line-height:1.6;display:block;}
/* daily schedule */
.day{position:relative;}
.day::before{content:"";position:absolute;left:74px;top:10px;bottom:10px;width:2px;background:#e5ddd8;}
.day-item{position:relative;display:grid;grid-template-columns:60px 1fr;gap:2rem;padding:1.1rem 0;align-items:baseline;}
.day-item::before{content:"";position:absolute;left:70px;top:1.75rem;width:10px;height:10px;border-radius:50%;background:#fff;border:2px solid #cfc6c0;z-index:1;}
.day-item.hot::before{background:var(--red);border-color:var(--red);}
.day-item .t{font-family:'Alumni Sans',sans-serif;font-weight:900;font-size:1.7rem;line-height:1;text-align:right;color:#444;}
.day-item.hot .t{color:var(--red);}
.day-badge{display:inline-block;background:var(--red);color:#fff;font-size:10px;font-weight:700;letter-spacing:.08em;padding:2px 8px;margin-left:.5rem;vertical-align:middle;}
@media (max-width:640px){ .day::before{left:58px;} .day-item{grid-template-columns:46px 1fr;gap:1.4rem;} .day-item::before{left:54px;} .day-item .t{font-size:1.3rem;} }

/* 選考フロー：段階が絵で分かるようにアイコンを入れる */
.flow-node .dot .fico{width:23px;height:23px;}
.flow-node .step-no{font-family:'Alumni Sans',sans-serif;font-weight:700;font-size:.6rem;letter-spacing:.18em;color:#b9afa8;margin-bottom:.15rem;}
.flow-node.first .step-no{color:var(--red);}

/* 選考フロー：説明会（任意・選考外）は点線の輪郭で本フローと区別する */
.flow-node.optional .dot{background:#fff;border:1.5px dashed #c9c0b8;color:#9a9a9a;box-shadow:none;}
.flow-node.optional .step-no{color:#b9afa8;}

.info-row dt{display:flex;align-items:center;gap:.45rem;}
.info-row dt .dico{width:15px;height:15px;flex-shrink:0;color:#c9bdb6;}
