@charset "utf-8";
/*
Theme Name: Castrico-Recruit
Theme URI: https://www.castrico.co.jp/
Description: 専用テーマです。ご不明な点は作成者までご連絡ください。
Author: SaLRounD Co.,Ltd.
Author URI: https://www.salround.jp/
Version: 1.0
*/
.material-symbols-outlined {
    font-variation-settings:
        'FILL'0, 'wght'400, 'GRAD'0, 'opsz'48
}
/* 共通
*************************************************/
html {
    width: 100%;
    min-height: 100%;
    font-size: 62.5%;
    background-color: #fff;
}
body {
    font-family: 'Roboto', 'Hiragino Sans', 'Meiryo', 'Hiragino Kaku Gothic ProN', sans-serif;
    font-display: swap;
    font-size: 1.6rem;
    line-height: 2;
    min-height: 100vh;
    width: 100%;
    color: #33331A;
}
h1, h2, h3, h4, h5 {
    line-height: 1.5;
    font-weight: bold;
    padding: 16px 0;
    margin-bottom: 16px;
    color: #005FA3;
    position: relative;
}
h1 {
    font-size: clamp(3rem, 5.625vw, 4.5rem);
}
h2 {
    font-size: clamp(2.4rem, 4vw, 3rem);
}
h3 {
    font-size: clamp(2rem, 3vw, 2.4rem);
}
h4 {
    font-size: clamp(1.6rem, 2.5vw, 2rem);
}
h5 {
    font-size: 1.6rem;
}
p {
    margin: 0 0 1em 0;
}
strong {
    font-weight: bold;
    color: #A30300;
}
time {
    line-height: 1.5;
}
del {
    text-decoration: line-through 2px solid #E0465A;
}
img {
    vertical-align: bottom;
    max-width: 100%;
    height: auto;
    line-height: 0;
    object-fit: contain;
}
table {
    width: 100%;
    margin-bottom: 1em;
    text-align: left;
    border-collapse: collapse;
    & th, td {
        padding: .5em;
        border: 1px solid #ccc;
    }
    & th, td {
        width: auto !important;
    }
}
ul, ol {
    margin: 0 0 1em 1.5em;
}
table ul, table ol {}
a {
    &:link, &:visited {
        color: #0062a7;
        transition: .2s;
    }
    &:hover {
        text-decoration: none;
        color: #0062a7;
    }
}
img.alignleft, img.alignright {
    margin: 0.5em 0 1em 0;
}
img.aligncenter {
    margin: 0 auto;
}
@media (768px <= width) {
    img.alignleft {
        width: calc(50% - 32px);
        float: left;
        margin: .5em 32px 32px 0;
    }
    img.alignright {
        width: calc(50% - 32px);
        float: right;
        margin: .5em 0 32px 32px;
    }
}
.before-page {
    text-align: center;
    padding: 32px 0;
    width: 100%;
    & a {
        height: 44px;
        padding: 0 1em;
        display: inline-flex;
        justify-content: center;
        align-items: center;
        border: 1px solid #ccc;
        text-decoration: none;
        font-size: 1.4rem;
        &:hover {
            background-color: #ccc;
            color: #fff;
        }
    }
}
.grecaptcha-badge { visibility: hidden; }
.pagenation {
    margin-top: 64px;
    .page-numbers {
        border: 1px solid #231815;
        display: inline-flex;
        height: 48px;
        width: 48px;
        align-items: center;
        justify-content: center;
        text-decoration: none;
        &:hover {
            background-color: #e9b4cc;
            color: #fff;
        }
    }
    .current {
        background-color: #c7d4e9;
        color: #fff;
        &:hover {
            background-color: #c7d4e9;            
        }
    }
    .dots {
        border: none;
        &:hover {
            background: none;
        }
    }
}
/* YouTube
***************************************************/
.youtube {
    position: relative;
    width: 100%;
    padding-top: 56.25%;
    & iframe {
        position: absolute;
        top: 0;
        right: 0;
        width: 100% !important;
        height: 100% !important;
    }
}
.youtube-short {
    position: relative;
    padding-bottom: 177.77%;
    width: 100%;
    height: 0;
    overflow: hidden;
    & iframe {
        position: absolute;
        top: 0;
        right: 0;
        width: 100% !important;
        height: 100% !important;
    }
}
/* Googleマップ
***************************************************/
.google-map {
    box-sizing: border-box;
    position: relative;
    width: 100%;
    height: 0;
    padding-bottom: 100vw;
    overflow: hidden;
    border: 1px solid #585858;
    margin: 1em 0;
    & iframe {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
    }
    @media(min-width: 768px) {
        .google-map {
            padding-bottom: calc(100vmin * .78);
        }
    }
}
/* エラーページ
***************************************************/
#error404 {
    text-align: center;
    min-height: 80lvh;
    @media(min-width: 768px) {
        #eroor-404 {
            min-height: 80lvh;
        }
    }
}
/* 基本レイアウト設定
***************************************************/
* {
    box-sizing: border-box;
}
/* 背景ギミック */
#particles-js {
	width: 100vw;
	height: 100vh;
	position: fixed;
	z-index: -1;
}
/* ヘッダー
***************************************************/
#global-header {
	height: 48px;
	display: flex;
	justify-content: flex-end;
}
#global-header #logo {
	margin-right: auto;
	padding: 16px;
	height: 48px;
	img {
		height: 32px;
		width: auto;
	}
}
#global-header ul {
	list-style: none;
}
#global-header a,
#global-header span {
	text-decoration: none;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 48px;
}
#global-nav {
	display: none;
}
#btn-nav {
	display: flex;
	gap: 8px;
	padding: 8px;
	z-index: 9999;
	position: relative;
	top: 0;
	right: 8px;
	transition: none;
}
#btn-nav a {
	height: 56px;
	width: 56px;
}
#btn-nav span {
	display: flex;
	height: 56px;
	width: 56px;
	border: 1px #ccc;
	border-radius: 50%;
	background: #fff;
	color: #005FA3;
	transition: background-color 0.5s ease, box-shadow 0.5s ease, border-style 0.5s ease;
	background-color: #fff;
	box-shadow: none;
	border-style: dashed;
	cursor: pointer;
}
#btn-nav.fixed {
	position: fixed;
	top: -18px;
	span {
		background-color: #eee;
		box-shadow: 0 2px 10px rgba(0,0,0,.2);
		border-style: solid;
	}
}
/* コンテンツの基本設計
***************************************************/
#global-container {
	main {
		section:nth-of-type(1) {
			border: none;
		}
	}
}
@media (min-width: 768px) {
	#global-container {
		width: 768px;
		margin: 0 auto;
	}
}
main {
	width: 100%;
	overflow: hidden;
	section {
		padding: 0 16px;
		footer {
			font-size: 1.4rem;
		}
	}
}
.content-img {
    border: 
}
/* イントロ
***************************************************/
#intro {
    padding: 0 16px;
    position: relative;
    z-index: 99;
    overflow: hidden;
    h1 {
        color: #33331A;
        z-index: 2;
        margin: 32px 0 0 0;
    }
    ul {
        z-index: 2;
        list-style: none;
        margin: 0 -16px;
        padding: 0;
        height: 240px;
        overflow: hidden;
        li {
            height: 100%;
            img {
                height: 100%;
                width: 100%;
                display: block;
                object-fit: cover;
                border: 6px double #ddd;
                outline: 6px solid #eee;
            }
        }
    }
    ul + h1 {
        margin: 0;
    }
    .overview {
        position: relative;
        z-index: 3;
    }
    .bg-images {
        position: absolute;
        top: 0;
        left: 0;
        z-index: 1;
        
    }
}
@media ( min-width: 768px ) {
    #intro {
        ul {
            height: 400px;
        }
    }
}
/* 基本セクション
***************************************************/
.basic-section {
	padding: 32px 16px;
	border-top: 3px double #ccc;
	header {
		h2 {
			border-bottom: 2px dashed #ccc;
			background-color: #fff;
		}
	}
	footer {
		padding: 16px 0;
		border-top: 2px dashed #ccc;
	}
	img {
		border-radius: 20px;
		border: 6px double #ccc;
		outline: 6px solid #eee;
	}
}
/* 読込セクション
***************************************************/
.load-section {
	.load-content {
		padding: 32px 0;
		.content {
			border-left: 1px dashed #ccc;
			padding-left: 16px;
			display: none;
		}
		.content.show {
			display: block;
		}
		.group {
			display: inline-flex;
			align-items: center;
			justify-content: center;
			font-size: 1.2rem;
			height: 24px;
			padding: 0 8px;
			border: 1px solid #E9B4CC;
			color: #666;
			border-radius: 12px;
		}
		.content-preview {
			overflow: hidden;
			text-overflow: ellipsis;
			margin-bottom: 5px;
			border-left: 1px dashed #20B3D6;
			padding-left: 16px;
		}
		.content-preview.hidden {
			display: none;
		}
		.toggle-btn {
			display: flex;
			align-items: center;
			justify-content: center;
			font-size: 1.4rem;
			background-color: #20B3D6;
            border-radius: 3px;
			color: white;
			padding: 5px 10px;
			border: none;
			cursor: pointer;
            transform: skewY(5deg);
            transition: .2s;
            &:hover {
                background-color: #E9B4CC;
            }
		}
	}
}
@media (min-width: 1024px) {
	.load-section {
		.load-content {
			width: 640px;
			clear: both;
			&:nth-of-type(odd) {
				float: left;
			}
			&:nth-of-type(even) {
				float: right;
			}
		}
	}
}
/* リンクセクション
***************************************************/
.link-section {
	position: relative;
	height: 360px;
	padding: 32px 16px;
    margin: 32px 0;
}
.link-section header {
	position: absolute;
	top: 80px;
}
.link-section header div {
	height: 180px;
	width: 180px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	border: 6px double #ddd;
	outline: 6px solid #eee;
	border-radius: 50%;
	animation: move 5s ease-in-out infinite alternate;
	background: #fff;
	box-shadow: 0 3px 6px rgba(0,0,0,.2);
}
.link-section header div h2 {
	font-size: 1.2rem;
	font-weight: normal;
	margin: 24px 0 0 0;
	padding: 0;
	line-height: 0;
}
.link-section header div h2 + p {
	font-size: 2rem;
	font-weight: bold;
}
.link-section nav ul {
	list-style: none;
	margin: 0;
	position: absolute;
	top: 0;
}
.link-section nav ul li {
	position: relative;
	display: flex;
	align-items: center;
	gap: 16px;
	height: 80px;
	margin: 0;
}
.link-section nav ul li:nth-of-type(1) {}
.link-section nav ul li:nth-of-type(2) {
	margin-bottom: 20px;
}
.link-section nav ul li .link {
	text-decoration: none;
	content: "";
	display: flex;
	align-items: center;
	gap: 16px;
	height: 80px;
	background-color: #fff;
	transition: border-color .5s ease-in;
}
.link-section nav ul li .link .icon {
	height: 64px;
	width: 64px;
	background-color: #eee;
	border: 3px solid #20B3D6;
	border-radius: 50%;
	display: flex;
	justify-content: center;
	align-items: center;
	box-shadow: 0 3px 6px rgba(0,0,0,.2);
	outline: 2px dashed #ccc;
	outline-offset: 6px;
}
.link-section nav ul li .link:hover .icon {
    border-color: #E9B4CC;
}
.link-section nav ul li .icon img {
	width: 32px;
}
.link-section nav ul li.no-link > span {
	opacity: .25;
}
.link-section nav ul li.no-link .comming-soon {
	position: absolute;
	top: 0;
	left: 0;
	opacity: 1;
	display: flex;
	height: 80px;
	justify-content: center;
	align-items: flex-end;
	color: #20B3D6;
}
.link-section.odd {
	header {
		left: 0;
		div {
			margin-left: -60px;
			h2,
			h2 + p {
				margin-left: 60px;
			}
		}
	}
	ul {
		left: 0;
		li {
			&:nth-of-type(1),
			&:nth-of-type(4) {
				padding-left: 70px;
			}
			&:nth-of-type(2),
			&:nth-of-type(3) {
				padding-left: 140px;
			}
		}
	}
}
.link-section.even {
	header {
		right: 0;
		div {
			margin-right: -60px;
			h2,
			h2 + p {
				margin-right: 60px;
				text-align: right;
			}
		}
	}
	ul {
		right: 0;
		li {
			justify-content: flex-end;
			&:nth-of-type(1),
			&:nth-of-type(4) {
				padding-right: 70px;
			}
			&:nth-of-type(2),
			&:nth-of-type(3) {
				padding-right: 140px;
			}
			.icon {
				order: 2;
			}
			.title {
				order: 1;
			}
		}
	}
}
@keyframes move {
	from {
		transform: rotate(-20deg);
	}
	to {
		transform: rotate(20deg);
	}
}
@media (min-width: 768px) {
	.link-section.odd {
		header {
			left: 120px;
			div {
				h2,
				h2 + p {
					margin-left: 0;
					text-align: center;
				}
			}
		}
		ul {
			left: 120px;
		}
	}
	.link-section.even {
		header {
			right: 120px;
			div {
				h2,
				h2 + p {
					margin-right: 0;
					text-align: center;
				}
			}
		}
		ul {
			right: 120px;
		}
	}
}
/* フッター
***************************************************/
#global-footer {
	margin-top: 64px;
    padding: 32px 0 0 0;
    border-top: 3px double #20B3D6;
	.cell {
		padding: 0 16px;
		#copyright {
			text-align: center;
			font-size: 1.2rem;
            margin: 32px 0;
		}
	}
}
@media (min-width: 768px) {
	#global-footer {
        .cell {
    		width: 768px;
	    	margin: 0 auto;
        }
	}
}

/* フッターナビ
***************************************************/
#footer-nav ul > li:first-child a::before {
    content: "home";
}
#footer-nav ul > li > ul > li:first-child a::before {
    content: "keyboard_arrow_right";
}
#footer-nav {
    font-size: 1.2rem;
    ul {
        margin: 0;
        list-style: none;
        li {
            margin: 0;
            a, span {
                position: relative;
                box-sizing: border-box;
                text-decoration: none;
                color: #333;
                display: flex;
                align-items: center;
                min-height: 40px;
                padding: 0 8px 0 32px;
                border-bottom: 1px solid rgba(255, 255, 255, .25);
                line-height: 1.2;
                &::before {
                    position: absolute;
                    top: 0;
                    left: 0;
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    font-family: "Material Symbols Outlined";
                    content: "keyboard_arrow_right";
                    width: 32px;
                    height: 100%;
                    text-decoration: none;
                }
            }
            span {
                border: none;
                color: #666!important;
                &::before {
                    content: "keyboard_arrow_down";
                }
            }
        }
    }
    .sub-menu {
        display: flex;
        flex-wrap: wrap;
        li {
            width: 50%;
            flex-grow: 1;
            a {
                color: #333;
                background-color: rgba(0, 0, 0, 0);
            }
        }
    }
}
@media(min-width: 1024px) {
    #footer-nav {
        & ul {
            display: flex;
            justify-content: flex-start;
            flex-wrap: wrap;
            width: 100%;
            margin: 0;
            &:last-child {
                border: none;
            }
            & li {
                &:first-child {
                    width: 100%;
                }
                & a {
                    min-height: 32px;
                    border: none;
                    &:hover {
                        text-decoration: underline;
                    }
                }
                & span {
                    min-height: 32px;
                    border: none;
                    color: #333;
                }
                & ul {
                    flex-direction: column;
                    margin: 0;
                    & li {
                        float: none;
                    }
                }
            }
            .sub-menu {
                & li {
                    width: 100%;
                }
            }
        }
    }
}











