/* ========================================================================== Foundation ========================================================================== */ *, *::before, *::after { box-sizing: border-box; } /* デモ確認用にbodyの高さを出してスクロールできるようにしています */ /* 実際のプロジェクトではbodyへの指定は不要です。 */ body { margin: 0; padding: 0; height: 200vh; font-family: “Hiragino Kaku Gothic ProN”, “Noto Sans JP”, Meiryo, sans-serif; } /* ========================================================================== Layout & Project (FLOCSS + BEM) ========================================================================== */ .l-header { /* Positioning */ position: fixed; top: 0; left: 0; z-index: 100; /* Box Model */ width: 100%; /* Visual */ background: linear-gradient(to bottom, oklch(0% 0 0 / 0.7) 0%, oklch(0% 0 0 / 0) 100%); /* Misc */ container-type: inline-size; container-name: header; transition: background-color 0.4s ease, backdrop-filter 0.4s ease, box-shadow 0.4s ease; } /* スクロール時の状態クラス */ .l-header.is-scrolled { /* Visual */ background: oklch(15% 0 0 / 0.6); /* 相対色構文を使用した半透明ブラック */ box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1); /* Misc */ @supports (backdrop-filter: blur(10px)) { backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); } } .l-header__inner { /* Box Model */ display: flex; justify-content: space-between; align-items: center; width: 100%; max-width: 1280px; height: 100px; margin: 0 auto; padding: 0 4%; /* Misc */ transition: height 0.4s cubic-bezier(0.25, 1, 0.5, 1); } .l-header.is-scrolled .l-header__inner { height: 60px; } /* Logo */ .l-header__logo { /* Box Model */ display: flex; align-items: center; margin: 0; } .l-header__logo-img { /* Box Model */ width: auto; height: 50px; /* Misc */ transition: height 0.4s cubic-bezier(0.25, 1, 0.5, 1); } .l-header.is-scrolled .l-header__logo-img { height: 34px; } /* ========================================================================== Container Query (PC / Tablet & SP) ========================================================================== */ /* PC向け (992px以上) */ @container header (min-width: 992px) { .l-header__hamburger { display: none; } .l-header__nav { display: block; } .l-header__list { display: flex; align-items: center; /* remをpxベースのclampに変換 */ gap: clamp(16px, 1.25vw + 8px, 40px); margin: 0; padding: 0; list-style: none; } .l-header__link { /* Positioning */ position: relative; /* Box Model */ /* remをpxに変換 */ display: block; padding: 8px 0; /* Typography */ /* remをpxベースのclampに変換 */ font-size: clamp(13px, 0.31vw + 12px, 15px); font-weight: 700; color: #fff; text-decoration: none; text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.8); /* Misc */ transition: color 0.3s ease, transform 0.3s ease; } /* Micro Interactions: ホバーアニメーション */ .l-header__link::after { position: absolute; bottom: 0; left: 0; width: 100%; height: 2px; background-color: #fff; transform: scaleX(0); transform-origin: right; transition: transform 0.3s ease; content: ”; } .l-header__link:hover { transform: translateY(-2px); } .l-header__link:hover::after { transform: scaleX(1); transform-origin: left; box-shadow: 0 0 5px rgba(255, 255, 255, 0.5); } .l-header__link–icon { display: flex; align-items: center; justify-content: center; } .l-header__link–icon svg { width: 24px; height: 24px; fill: #fff; filter: drop-shadow(1px 1px 2px rgba(0, 0, 0, 0.8)); transition: transform 0.3s ease; } .l-header__link–icon:hover::after { display: none; /* アイコンには下線を出さない */ } .l-header__link–icon:hover svg { transform: scale(1.15) rotate(-5deg); } } /* タブレット・スマホ向け (991px以下) */ @container header (max-width: 991px) { .l-header__hamburger { /* Positioning */ position: relative; z-index: 110; /* Box Model */ display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 6px; width: 44px; height: 44px; padding: 0; /* Visual */ background: transparent; border: none; /* Misc */ cursor: pointer; } .l-header__hamburger-line { display: block; width: 24px; height: 2px; background-color: #fff; transition: transform 0.3s ease, opacity 0.3s ease; } /* ハンバーガーメニューがアクティブな時(バツ印に変形) */ .l-header__hamburger.is-active .l-header__hamburger-line:nth-child(1) { transform: translateY(8px) rotate(45deg); } .l-header__hamburger.is-active .l-header__hamburger-line:nth-child(2) { opacity: 0; } .l-header__hamburger.is-active .l-header__hamburger-line:nth-child(3) { transform: translateY(-8px) rotate(-45deg); } .l-header__nav { /* Positioning */ position: fixed; top: 0; left: 0; z-index: 105; /* Box Model */ width: 100%; height: 100dvh; /* Visual */ background: oklch(0% 0 0 / 0.85); /* ダークな背景 */ opacity: 0; visibility: hidden; /* Misc */ @supports (backdrop-filter: blur(15px)) { backdrop-filter: blur(15px); -webkit-backdrop-filter: blur(15px); } transition: opacity 0.4s ease, visibility 0.4s ease; } .l-header__nav.is-active { opacity: 1; visibility: visible; } .l-header__list { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100%; margin: 0; padding: 0; list-style: none; /* remをpxに変換 */ gap: 32px; transform: translateY(20px); transition: transform 0.4s ease; } .l-header__nav.is-active .l-header__list { transform: translateY(0); } .l-header__link { /* remをpxベースのclampに変換 */ font-size: clamp(16px, 5vw, 18px); font-weight: 700; color: #fff; text-decoration: none; letter-spacing: 0.05em; } .l-header__link–icon svg { width: 32px; height: 32px; fill: #fff; } } /** * DOM構築完了後に実行します。 */ document.addEventListener(‘DOMContentLoaded’, () => { const header = document.getElementById(‘js-header’); const hamburger = document.getElementById(‘js-hamburger’); const nav = document.getElementById(‘js-nav’); // スクロール検知によるヘッダーのクラス切り替え window.addEventListener(‘scroll’, () => { // 50px以上スクロールされたらクラスを付与します。 if (window.scrollY > 50) { header.classList.add(‘is-scrolled’); } else { header.classList.remove(‘is-scrolled’); } }, { passive: true }); // スクロールパフォーマンス向上のためpassiveオプションを指定 // ハンバーガーメニューの開閉処理 if (hamburger && nav) { hamburger.addEventListener(‘click’, () => { const isExpanded = hamburger.getAttribute(‘aria-expanded’) === ‘true’; hamburger.classList.toggle(‘is-active’); nav.classList.toggle(‘is-active’); // アクセシビリティのための属性更新を行います。 hamburger.setAttribute(‘aria-expanded’, !isExpanded); nav.setAttribute(‘aria-hidden’, isExpanded); // メニューが開いているときは背景のスクロールを固定します。 if (!isExpanded) { document.body.style.overflow = ‘hidden’; } else { document.body.style.overflow = ”; } }); } });

FAQ よくある質問

FAQ よくある質問

採用に関して多くお寄せいただくご質問をまとめております。
ご応募をご検討の際に、ぜひご確認ください。

.p-career__lead { margin-bottom: clamp(56px, 8vw, 104px); color: #000000; font-size: clamp(18px, 2vw, 20px); line-height: 2.2; text-align: center; } /* ========================================================================== Project: FAQ Navigation Buttons ========================================================================== */ .p-faq-nav { /* Box Model */ width: 100%; margin-bottom: clamp(64px, 8vw, 160px); /* 下のコンテンツとの余白 */ } .p-faq-nav__inner { /* Box Model */ display: flex; justify-content: center; gap: clamp(20px, 4vw, 40px); max-width: 1100px; margin: 0 auto; padding: 0 20px; } .p-faq-nav__btn { /* Positioning */ position: relative; /* Box Model */ display: flex; align-items: center; justify-content: center; width: 100%; max-width: clamp(280px, 30vw, 360px); min-height: clamp(60px, 7vw, 80px); /* 2行になっても高さを揃えるためmin-heightを使用 */ padding: 16px 40px; /* 右の矢印に被らないように余白確保 */ border-radius: 8px; /* Visual */ background-color: #ffffff; border: 1px solid #b3b3b3; text-decoration: none; transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease; } .p-faq-nav__btn:hover { /* Visual */ transform: translateY(-3px); box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08); border-color: #999999; } .p-faq-nav__text { /* Typography */ text-align: center; font-family: “Noto Sans JP”, sans-serif; font-size: clamp(14px, 1.2vw + 6px, 16px); font-weight: 500; line-height: 1.5; letter-spacing: 0.1em; color: #666666; } /* 括弧書きの文字を少し小さくする */ .p-faq-nav__text small { font-size: 0.85em; } .p-faq-nav__icon { /* Positioning */ position: absolute; right: 24px; top: 50%; transform: translateY(-50%); /* Box Model */ width: 12px; height: 8px; } /* 矢印(くの字)をCSSで描画 */ .p-faq-nav__icon::before, .p-faq-nav__icon::after { content: “”; /* Positioning */ position: absolute; top: 0; /* Box Model */ width: 8px; height: 1.5px; /* Visual */ background-color: #666666; } .p-faq-nav__icon::before { left: 1.5px; transform: rotate(45deg); transform-origin: top left; } .p-faq-nav__icon::after { right: 1.5px; transform: rotate(-45deg); transform-origin: top right; } #career { margin-top: 0; margin-bottom: -70px; } @media (max-width: 767px) { #career { margin-bottom: -30px; } } /* ————————————————————————– Media Queries (スマホ用上書き) ————————————————————————– */ @media (max-width: 767px) { .p-faq-nav__inner { /* Box Model */ flex-direction: column; align-items: center; gap: 16px; } .p-faq-nav__btn { /* Box Model */ max-width: 100%; } }