* {box-sizing: border-box;margin: 0;padding: 0;font-size: 16px;line-height:2;}
html {scroll-behavior: smooth;}
body {font-family: "Century Gothic", Futura, sans-serif;color: #333;background-color: #fff;padding-right: 0;overflow-x: hidden;}
a { text-decoration: none; color: inherit; }
ul { list-style: none; }
.rd{color:#ff0000;}
.img-w100{width:100%;}

/* --- Header --- */
header {position: fixed;top: 40px;right: 10%;z-index: 1000;display: flex;align-items: center;gap: 40px;font-weight:bold;}
.header-nav ul {display: flex;gap: 28px;font-size: 13px;letter-spacing: 0.5px;}
.hamburger {width: 26px;height: 18px;display: flex;flex-direction: column;justify-content: space-between;cursor: pointer;display: none;}
.hamburger span {display: block;width: 100%;height: 3px;background-color: #333;}
.mobile-nav {display: none;}

/* --- floating decorator (スクロール追従) --- */
.floating-decorator {position: fixed;left: 4%;top: 460px;width: 40px;height: 32px;z-index: 500;}

/* --- Layout --- */
.container-width {width: 1200px;max-width: 1200px;margin: 0 auto;position: relative;}
.hero-area {height:100vh;display: flex;justify-content: center;align-items: center;}
.hero-logo {max-width: 320px;width: 100%;height: auto;}
.scroll-wrap {position: relative;height: 120px;}

/* --- scroll.png バウンス表示 --- */
.scroll-inner {position: absolute;top: 10px;left: 50%;transform: translateX(-50%);display: flex;justify-content: center;align-items: center;pointer-events: none;}
.scroll-img {display: block;width: 12px;height: auto;animation: scrollBounce 1.2s infinite ease-in-out;}
@keyframes scrollBounce {
	0%, 100% {transform: translateY(0);}
	50% {transform: translateY(6px);}
}

.content-wrap {position: relative;padding-bottom: 120px;}

section {position: relative;margin-bottom: 200px;padding-right: 50px;padding-top: 10px;}
section:last-of-type {margin-bottom: 100px;}
section::after {content: "";position: absolute;top: 0%;right: 0px;width: 0;height: 100%;border-right: 1px solid #333;}

h2 {font-size: 46px;margin-bottom: 40px;line-height: 1;}

/* --- Side Titles (TOP aligned) --- */
.side-title {position: absolute;top: 0;left: 100%;margin-left: 22px;font-size: 14px;letter-spacing: 4px;white-space: nowrap;transform: rotate(90deg);transform-origin: top left;font-weight:bold;}

/* --- Talent --- */
.talent-grid {display: flex;justify-content: space-between;gap: 20px;}
.talent-item {width: 22%;}
.talent-img {width: 100%;aspect-ratio: 1 / 1;background-color: #888;margin-bottom: 10px;}

/* contact */
#contact a{background-color:#333;color:#fff;padding:10px 20px;border-radius:5px;}


/* --- Company --- */
.company-info .company-name {font-weight: bold;margin-bottom: 10px;}

/* privacy */
.privacy p{margin-bottom:20px;}

/* --- Footer --- */
footer {position: relative;text-align: center;padding-top: 40px;font-size: 11px;font-weight: bold;}
.footer-links {text-decoration: underline overline;}
.copyright {/*position: absolute;right: -135px;bottom: 0;*/font-size: 9px;font-weight: normal;/*transform: scale(0.9);transform-origin: bottom left;*/white-space: nowrap;}

/* subpage */
#subpage .hero-area{height:40vh;}
#subpage .news_article h2{font-size:32px;line-height:1.5;}

/* contact */
#subpage .formTable{width:100%;}
#subpage .formTable th{width:15%;text-align:left;}
#subpage .formTable td{width:95%;}
#subpage .formTable input,#subpage .formTable textarea{width:100%;padding:5px;}
input[type="submit"],input[type="button"] {-webkit-appearance: none;}

/* --- Responsive (SP) --- */
@media (max-width: 1024px) {
	body {padding-right: 0;}
	header {right: 0;left: 0;top: 16px;justify-content: flex-end;padding: 0 16px;}
	.hamburger {display: flex !important;width: 26px;height: 18px;flex-direction: column;justify-content: space-between;align-items: center;z-index: 1200;}
	.hamburger span {width: 100%;height: 3px;background-color: #333;display: block;flex-shrink: 0; /* ← 潰れ防止 */}
	.header-nav {display: none;}
	.mobile-nav {position: fixed;top: 56px;left: 0;right: 0;background: #fff;border-top: 1px solid #eee;box-shadow: 0 4px 10px rgba(0,0,0,0.08);padding: 16px 24px 24px;display: none;z-index: 900;}
	.mobile-nav.is-open {display: block;}
	.mobile-nav ul {display: flex;flex-direction: column;gap: 16px;font-size: 14px;}
	.container-width {width: 90%;max-width: 100%;}
	/*.hero-area {height: 50vh;padding-top: 100px;}*/
	.scroll-wrap {height: 80px;}
	.content-wrap {padding-right: 0;padding-bottom: 80px;}
	section {margin-bottom: 120px;padding-right:0px;}
	section::after {content: none;border-right: none;}
	.side-title {display: none;}
	.floating-decorator {display: none;}
	.talent-grid {flex-wrap: nowrap;overflow-x: auto;-webkit-overflow-scrolling: touch;gap: 16px;padding-bottom: 10px;scroll-snap-type: x mandatory;}
	.talent-grid::-webkit-scrollbar {display: none; /* スクロールバー非表示（iOS/Android/Chrome） */}
	.talent-item {width: 60vw;   /* カード幅（調整OK） */flex: 0 0 auto; /* 横スクロール時は必須 */scroll-snap-align: start;}
	.copyright {position: static;transform: none;margin-top: 16px;}
	#subpage .formTable th,#subpage .formTable td{width:100%;display:block;}
}

@media (min-width: 768px) and (max-width: 1024px) {
	.container-width {width: 90%;max-width: 100%;}
	.header-nav {display: none;}
	.hamburger {display: flex !important;}
	.floating-decorator {display: none;}
	section::after {content: none;border-right: none;}
	.side-title {display: none;}
	.talent-grid {flex-wrap: wrap;gap: 24px;}
	.talent-item {width: calc(50% - 12px);}
	.copyright {position: static;transform: none;margin-top: 24px;text-align: center;}
}
@media (max-width: 1024px) {
	.hamburger {display: flex !important;}
	.mobile-nav.is-open {display: block !important;}
}