@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@300;400&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Caveat:wght@400..700&family=Rampart+One&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic&display=swap');

body {
margin: 0;
font-family: 'Noto Sans JP', sans-serif;
background-color: #f9fafa;
color: #333;
line-height: 1.6;
}
.hero-btn {
display: inline-block;
margin: 10px 10px;
padding: 12px 24px;
font-size: 1em;
font-weight: bold;
border-radius: 8px;
text-decoration: none;
background-color: #ff6600;
color: white;
transition: all 0.3s ease;
}
.hero-btn:hover {
background-color: #e55500;
transform: translateY(-2px);
}
.site-header {
position: sticky;
top: 0;
background-color: #ffffff;
border-bottom: 1px solid #dddddd;
color: black;
width: 100%;
z-index: 100;
}
.header-container {
display: flex;
justify-content: space-between;
align-items: center;
max-width: 1200px;
margin: auto;
padding: 20px;
min-height: 25px;
}
.header-inner {
position: relative;
max-width: 1000px;
margin: 0 auto;
}
.logo-area {
display: flex;
align-items: center;
position: fixed;
text-decoration: none;
top: 10px;
left: 30px;
height: 50px;
z-index: 100;
}
.site-logo {
position: static;
margin-right: 10px;
height: 50px;
}
.logo-text {
display: flex;
flex-direction: column;
line-height: 1.2;
align-items: center;
}
.company-name {
font-size: 1.5em;
font-family: 'Orbitron', sans-serif;
font-weight: bold;
color: gray;
}
.recruit-text {
font-size: 1em;
font-family: 'Orbitron', sans-serif;
font-weight: bold;
color: gray;
}
.has-hero .site-header {
position: sticky;
top: 0;
background-color: #ffffff;
border-bottom: 1px solid #dddddd;
}
.main-nav {
display: flex;
gap: 20px;
position: absolute;
top: 20px;
right: 30px;
}
.main-nav a {
margin-left: 20px;
text-decoration: none;
color: #333;
font-weight: bold;
transition: color 0.2s;
}
.main-nav a:hover {
color: #ff6600;
}
.dropdown {
position: relative;
display: inline-block;
}
.dropdown-menu {
display: none;
position: absolute;
top: 100%;
left: 0;
background-color: #ffffff;
box-shadow: 0 4px 8px rgba(0,0,0,0.1);
min-width: 160px;
z-index: 1000;
flex-direction: column;
padding: 8px 0;
border: 1px solid #eee;
}
.dropdown-menu a {
display: block;
padding: 10px 0 10px 0;
color: #333;
text-decoration: none;
white-space: nowrap;
}
.dropdown-menu a:hover {
background-color: #f5f5f5;
}
.dropdown:hover .dropdown-menu {
display: block;
}
.hamburger, .mobile-nav {
display: none;
}
.hero {
background: linear-gradient(rgba(0,0,0,0.4), rgba(0,0,0,0.4)), url(../images/toppage_img.png) center / cover no-repeat;
color: white;
min-height: 600px;
max-width: 1920px;
display: flex;
justify-content: center;
align-items: center;
text-align: center;
padding: 0 40px;
box-sizing: border-box;
}
.hero-content {
max-width: 800px;
margin: auto;
}
.hero-content h1 {
font-family: 'Rampart One', sans-serif;
font-size: 3em;
line-height: 1.3;
margin-top: 50px;
margin-bottom: 20px;
color: #ff9431;
text-shadow: 2px 2px 4px rgba(0,0,0,0.4);
}
.hero-content p {
font-size: 1.2em;
margin-bottom: 10px;
margin-bottom: 40px;
text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.3);
}
.cta-buttons {
text-align: center;
margin-top: 30px;
}
.cta-buttons a {
display: inline-block;
margin: 10px;
padding: 12px 24px;
background-color: #1a73e8;
color: white;
border-radius: 6px;
text-decoration: none;
font-weight: bold;
transition: background 0.3s;
}
.cta-buttons a:hover {
background-color: #0e51b6;
}
a:hover {
opacity: 0.8;
}
section {
padding: 50px 20px;
max-width: 900px;
margin: auto;
}
section h2 {
font-size: 1.5em;
color: #ff6600;
margin-bottom: 20px;
}
.recruit-news {
background: #f5f7fa;
padding: 50px 20px;
margin-top: 35px;
}
.news-container {
max-width: 1000px;
margin: 0 auto;
text-align: left;
}
.news-header {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 12px;
margin-bottom: 20px;
}
.news-header h2 {
font-size: 1.8em;
color: #ff6600;
margin: 0;
border-left: 6px solid #ff6600;
padding-left: 10px;
}
.news-header h3.news-sub {
font-size: 1em;
color: #666;
font-weight: normal;
margin: 0;
}
.recruit-news h2 {
font-size: 1.8em;
color: #ff6600;
margin-bottom: 20px;
border-left: 6px solid #ff6600;
padding-left: 10px;
}
.recruit-news h3 {
font-size: 1.1em;
margin-bottom: 20px;
}
.news-list {
list-style: none;
padding: 0;
margin: 0;
}
.news-list li {
margin-bottom: 12px;
font-size: 1em;
border-bottom: 1px dashed #ddd;
padding-bottom: 8px;
}
.news-date {
color: #999;
margin-right: 10px;
font-size: 0.9em;
}
.news-list a {
text-decoration: none;
color: #0e51b6;
}
.news-list a:hover {
text-decoration: underline;
}
.news-more {
margin-top: 20px;
text-align: right;
}
.news-more a {
color: #ff6600;
font-weight: bold;
text-decoration: none;
}
.news-more a:hover {
text-decoration: underline;
}
.job-section {
background: linear-gradient(to bottom, #f9fbff, #ffffff);
padding: 60px 20px;
text-align: center;
max-width: 1000px;
margin: 0 auto;
border-radius: 12px;
box-shadow: 0 6px 20px rgba(0, 0, 0, 0.03);
}
.job-section h2 {
font-size: 2em;
color: #ff6600;
margin-bottom: 30px;
display: flex;
justify-content: center;
align-items: center;
gap: 10px;
}
.card-grid {
display: flex;
flex-wrap: wrap;
gap: 20px;
justify-content: center;
}
.job-card {
background: white;
border-radius: 12px;
padding: 25px 20px;
box-shadow: 0 4px 12px rgba(0,0,0,0.05);
border: 1px solid #ccc;
border-radius: 8px;
flex: 1 1 min(280px, 45%);
transition: transform 0.2s ease, box-shadow 0.2s ease;
width: 240px;
min-height: 50px;
display: flex;
flex-direction: column;
justify-content: space-between;
}
.job-card:hover {
transform: translateY(-5px);
box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08);
}
.job-card h3 {
margin-top: 0;
font-size: 1.2em;
color: #0e51b6;
margin-bottom: 10px;
}
.job-card p {
font-size: 1.05em;
color: #333;
margin-bottom: 15px;
}
.job-card-link, .interview-card-link {
text-decoration: none;
color: inherit;
display: block;
transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.job-card-link:hover .job-card, .interview-card-link:hover .interview-card {
transform: translateY(-4px);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
cursor: pointer;
}
.job-card-link:active .job-card, .interview-card-link:active .interview-card {
transform: scale(0.98);
box-shadow: 0 2px 6px rgba(0,0,0,0.2);
}
.card-cta {
display: block;
margin-top: 10px;
font-size: 0.9em;
color: #ff6600;
font-weight: bold;
}
.icon-list {
display: flex;
flex-wrap: wrap;
gap: 10px;
margin-top: 10px;
}
.icon-item {
background: white;
border-radius: 8px;
padding: 10px 15px;
box-shadow: 0 2px 4px rgba(0,0,0,0.05);
flex: 1 1 calc(50% - 10px);
}
.hamburger {
display: none;
font-size: 24px;
cursor: pointer;
}
body.menu-open::before {
content: "";
position: fixed;
top: 0; left: 0; width: 100%; height: 100%;
background: rgba(0, 0, 0, 0.3);
z-index: 99;
}
.interview-section {
padding: 60px 20px;
background: linear-gradient(to bottom, #ffffff, #f9fbff);
text-align: center;
max-width: 1000px;
margin: 50px auto;
border-radius: 12px;
box-shadow: 0 6px 20px rgba(0, 0, 0, 0.03);
}
.interview-section h2 {
font-size: 2em;
color: #ff6600;
margin-bottom: 20px;
display: flex;
justify-content: center;
align-items: center;
gap: 10px;
}
.interview-cards {
display: flex;
gap: 20px;
flex-wrap: wrap;
justify-content: center;
}
.interview-card {
background: white;
border: 1px solid #ccc;
border-radius: 8px;
box-shadow: 0 4px 12px rgba(0,0,0,0.05);
padding: 20px;
max-width: 280px;
flex: 1 1 240px;
display: flex;
flex-direction: column;
align-items: center;
transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.interview-card:hover {
transform: translateY(-5px);
box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
}
.interview-card img {
width: 100%;
border-radius: 10px;
margin-bottom: 15px;
object-fit: cover;
}
.interview-card h3 {
font-size: 1.2em;
margin-bottom: 5px;
color: #0e51b6;
}
.interview-card p {
font-size: 1em;
margin-bottom: 15px;
color: #444;
}
.interview-card .btn {
background-color: #ff6600;
color: white;
padding: 8px 16px;
text-decoration: none;
border-radius: 8px;
font-weight: bold;
font-size: 0.95em;
transition: background-color 0.3s ease, transform 0.2s ease;
}
.interview-card .btn:hover {
background-color: #e55500;
transform: scale(1.05);
}
.vision-section {
background: linear-gradient(to bottom, #ffffff, #f0f8ff);
padding: 60px 20px;
text-align: center;
margin: 40px auto;
max-width: 900px;
border-radius: 16px;
box-shadow: 0 8px 25px rgba(0, 0, 0, 0.05);
font-family: 'Zen Maru Gothic', sans-serif;
}
.vision-section h2 {
font-size: 2.2em;
color: #ff956b;
margin-bottom: 20px;
display: flex;
justify-content: center;
align-items: center;
gap: 10px;
}
.vision-section .lead {
font-size: 1.4em;
font-weight: bold;
color: #1a73e8;
margin-bottom: 25px;
}
.vision-section p {
font-size: 1.15em;
line-height: 1.8;
color: #333;
}
.faq-section {
background: linear-gradient(to bottom, #f9fbff, #ffffff);
padding: 60px 20px;
text-align: center;
max-width: 960px;
margin: 0 auto;
border-radius: 12px;
box-shadow: 0 6px 20px rgba(0, 0, 0, 0.03);
}
.faq-section h2 {
font-size: 2em;
color: #ff6600;
margin-bottom: 30px;
}
.faq-section p {
font-size: 1.1em;
color: #444;
margin-bottom: 25px;
line-height: 1.6;
}
.faq {
background: #eef4fb;
border-left: 5px solid #1a73e8;
border-radius: 10px;
padding: 20px;
margin-bottom: 20px;
text-align: left;
font-size: 1.05em;
line-height: 1.6;
}
.faq strong {
color: #0e51b6;
display: block;
margin-bottom: 5px;
}
.faq span {
color: #333;
}
.faq-button {
display: inline-block;
background: #ff6600;
color: #ffffff;
padding: 12px 28px;
border-radius: 8px;
text-decoration: none;
font-weight: bold;
font-size: 1em;
transition: background 0.3s ease;
}
.faq-button:hover {
background: #e55500;
}
.cta-section {
background: #1a73e8;
color: white;
text-align: center;
padding: 60px 20px;
margin-top: 20px;
}
.cta-section h2 {
font-size: 1.8em;
margin-bottom: 15px;
}
.cta-section p {
font-size: 1.1em;
margin-bottom: 25px;
}
.cta-section .cta-btn {
background: white;
color: #1a73e8;
padding: 12px 24px;
margin: 10px 8px;
display: inline-block;
text-decoration: none;
border-radius: bold;
font-weight: bold;
transition: background-color 0.3s ease, transform 0.2s ease;
}
.cta-section .cta-btn:hover {
background-color: #f0f0f0;
transform: scale(1.05);
}
.cta-section .cta-btn.highlight {
background-color: #ff6600;
color: white;
}
.cta-section .cta-btn.highlight:hover {
background-color: #e55500;
}
footer {
background-color: #1a73e8;
color: #ffffff;
text-align: center;
padding: 40px 20px;
position: relative;
}
.footer-inner {
max-width: 1000px;
margin: 0 auto;
}
.footer-logo {
max-height: 40px;
margin-bottom: 15px;
}
footer p {
font-size: 0.95em;
line-height: 1.6;
}
.corporate-link {
margin-top: 20px;
}
.corporate-link a {
color: #ffffff;
font-weight: bold;
text-decoration: underline;
font-size: 1.2em;
position: relative;
padding-right: 20px;
background: url(../images/icons8-外部リンク-24.png) right center/12px auto no-repeat;
}
.corporate-link a:hover {
color: #ffccaa;
}
.corporate-link a[target=_blank][rel=nofollow] {
padding-right: 20px;
background: url(../images/icons8-外部リンク-24.png) right center/11px auto no-repeat;
text-decoration: underline;
}

@media screen and (max-width: 1280px) {
.site-header {
padding: 8px 0;
}
.header-container {
flex-direction: row;
align-items: center;
justify-content: space-between;
padding: 0 16px;
min-height: 60px;
}
.main-nav {
display: none;
}
.hamburger {
display: block;
font-size: 2em;
cursor: pointer;
color: #333;
position: absolute;
top: 20px;
right: 20px;
z-index: 200;
}
.mobile-nav {
display: none;
flex-direction: column;
background: #ffffff;
position: absolute;
top: 70px;
left: 0;
width: 100%;
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
z-index: 150;
}
.mobile-nav a {
padding: 15px;
text-decoration: none;
color: #333;
border-bottom: 1px solid #eee;
font-weight: bold;
}
.mobile-nav a:hover {
background-color: #f9f9f9;
}
.mobile-nav.active {
display: flex;
}
.main-nav.active {
display: flex;
}
.main-nav a {
margin: 10px 0;
}
.site-logo {
height: 35px;
}
.logo-text {
line-height: 1.1;
}
.company-name {
font-size: 1.3em;
}
.recruit-text {
font-size: 0.9em;
}
.hero-content h1 {
font-size: 1.6em;
}
.hero-content p {
font-size: 1em;
}
.hero {
min-height: 420px;
padding: 0 20px;
}
.cta-buttons {
display: flex;
flex-direction: column;
align-items: center;
}
.job-card {
width: 100%;
}
}