/* CSS Document */
/* ------------------------------------------------------------
reset css
------------------------------------------------------------ */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video
{ margin:0; padding:0; border:0; outline:0; font-size:100%; vertical-align:middle; }

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display:block; }
html { overflow-y: scroll; -webkit-text-size-adjust:100%; }
ul, ol { list-style:none; }
blockquote , q { quotes:none; }
blockquote:before, blockquote:after, q:before, q:after { content:''; content: none; }
a:focus { outline:none; }
ins { text-decoration:none; }
mark { font-style:italic; font-weight:bold; }
del { text-decoration:line-through; }
abbr[title], dfn[title] { border-bottom:1px dotted; cursor:help; }
table { border-collapse:collapse; border-spacing:0; width:100%; }
hr { display:block; height:1px; border:0; border-top:1px solid #ccc; margin:1em 0; padding:0; }
button, input, select, textarea { outline:0; -webkit-box-sizing:border-box; box-sizing:border-box; font-size:100%; }
input, textarea { background-image: -webkit-linear-gradient(hsla(0,0%,100%,0), hsla(0,0%,100%,0)); -webkit-appearance: none; border-radius:0; /* Removing the inner shadow, rounded corners on iOS inputs */ }
input[type="checkbox"]{ -webkit-appearance: checkbox; }
input[type="radio"]{ -webkit-appearance: radio; }
button::-moz-focus-inner, input::-moz-focus-inner { border:0; padding:0; }
iframe { max-width:100%; }
/* =========================
Base
========================= */
*{ 
box-sizing:border-box; 
}
html, body{ 
margin:0; 
padding:0; 
font-family: Noto Sans, Arial, Helvetica, sans-serif;
}
img{ 
width:100%; 
height:auto;
}
a{ 
color:inherit; 
text-decoration:none; 
}
a:hover{ 
opacity: 0.7; 
}
/*コンテンツ幅*/
.content-width{
position: relative;
max-width: 1200px;
margin: 0 auto;
padding: 0px 20px;
}
/* FONT SIZE  */
html {
font-size: 62.5%;
}
body {
font-size: 1.8rem;
line-height: 1.8;
}
h1 { font-size: 4.0rem; }
h2 { font-size: 6.0rem; }
h3 { font-size: 4.0rem; }
h4 { font-size: 2.4rem; }
p  { font-size: 1.8rem; }
.font-anton{
font-family: 'anton','sans-serif';
}
.font-meiryo{
font-family: 'メイリオ','Meiryo','ヒイラギノ角ゴ Pro W3','Hiragino Kaku Gothic Pro','Yu Gothic Medium','YuGothic','sans-serif';
}
.font-impact{
font-family: 'impact','impact-w01-2010','impact-w02-2010','impact-w10-2010','sans-serif';
}
/*色*/
:root{
--color-white: #ffffff;
--color-gray: #e5e7eb;
--color-navy: #1F3B76;
--color-yellow: #F8C73E;
--color-bg: #FFE8C8;
--color-text: #111827;
--color-grad-gray: linear-gradient(
to left,
#ffffff 0%,
#e5e7eb 100%
);
}
/*ブレイクポイント表示*/
.sp_none{
display: block;
}
.tb_none{
display: block;
}
.pc_none{
display: none;
}

@media (max-width: 1200px){
body {
font-size: 1.8rem;
line-height: 1.4;
}
.content-width{
max-width: 100%;
margin: 0 auto;
padding: 0 16px;
}
h1 { font-size: 3.6rem; }
h2 { font-size: 3.2rem; }
h3 { font-size: 2.8rem; }
h4 { font-size: 2.4rem; }
p  { font-size: 1.8rem; }
.sp_none{
display: none;
}
.tb_none{
display: none;
}
}

@media (max-width: 768px){
body {
font-size: 1.6rem;
line-height: 1.6;
}
.content-width{
padding: 0 10px;
}
h1 { font-size: 3.0rem; }
h2 { font-size: 2.4rem; }
h3 { font-size: 2.4rem; }
p  { font-size: 1.6rem; }
.tb_none{
display: block;
}
.pc_none{
display: block;
}
}

/* =========================
Header
========================= */
.header {
position: fixed;
top: 0;
left: 0;
width: 100%;
z-index: 1000;
background: #fff;
}
.header_inner {
display: flex;
align-items: center;
justify-content: space-between;
padding: 15px 30px;
}
.header_left {
display: flex;
align-items: center;
gap: 40px;
}
.header_logo a {
display: flex;
align-items: center;
gap: 10px;
text-decoration: none;
}
.header_logo_size {
width: 70px;
}
.header_logo_text {
  font-size: 30px;
  font-weight: 700;
  color: #333;
  font-family: 'Noto Serif JP', serif;
}

.pc_only { display: flex; }
.sp_only { display: none; }

.nav_list {
display: flex;
gap: 24px;
}
.nav_list li {
position: relative;
}
.nav_list a {
text-decoration: none;
color: #333;
font-size: 1.6rem;
font-weight: 600;
}
.header_nav .nav_list > li {
position: relative;
}
.header_nav .nav_list > li > a {
display: flex;
align-items: center;
height: 40px;
line-height: 1;
position: relative;
}
.header_nav .nav_list > li.menu-item-has-children {
position: static;
padding-bottom: 35px;
margin-bottom: -35px;
}
.header_nav .nav_list > li.menu-item-has-children > a {
padding-right: 16px;
}
.header_nav .nav_list > li.menu-item-has-children > a::after {
content: "";
position: absolute;
right: 0;
top: 50%;
width: 6px;
height: 6px;
border-right: 2px solid #333;
border-bottom: 2px solid #333;
transform: translateY(-50%) rotate(45deg);
transform-origin: center;
transition: transform 0.2s ease;
}
.header_nav .nav_list > li.menu-item-has-children:hover > a::after {
transform: translateY(-50%) rotate(-135deg);
}
.header_nav .sub-menu {
position: absolute;
top: 100%;
left: 50%;
transform: translateX(-50%);
width: min(1200px, calc(100% - 40px));
margin: 0;
padding: 0;
list-style: none;
display: grid;
grid-template-columns: repeat(4, 1fr);
background: #fff;
border: 1px solid #ddd;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
opacity: 0;
visibility: hidden;
transition: 0.3s;
z-index: 100;
}
.header_nav .nav_list > li.menu-item-has-children:hover .sub-menu {
opacity: 1;
visibility: visible;
}
.header_nav .sub-menu > li {
border-right: 1px solid #ddd;
list-style: none;
}
.header_nav .sub-menu > li:last-child {
border-right: none;
}
.header_nav .sub-menu > li > a {
display: flex;
flex-direction: column;
align-items: center;
justify-content: flex-start;
text-align: center;
text-decoration: none;
color: #222;
background: #fff;
padding: 18px 14px 14px;
min-height: 155px;
}
.header_nav .sub-menu > li > a:hover {
background: #fafafa;
}
.header_nav .sub-menu > li > a img {
display: block;
width: 100%;
max-width: 160px;
height: 110px;
object-fit: cover;
margin: 0 auto 14px;
}
.header_nav .sub-menu > li > a {
font-size: 15px;
font-weight: 500;
line-height: 1.5;
word-break: keep-all;
white-space: normal;
}

.header_nav .sub-menu > li > a .menu-image-title,
.header_nav .sub-menu > li > a span {
display: block;
}
.header_nav .sub-menu > li > a::before {
content: "";
display: block;
width: 150px;
height: 95px;
margin-bottom: 12px;
background-repeat: no-repeat;
background-position: center;
background-size: cover;
}
.header_nav .sub-menu > li:nth-child(1) > a::before {
background-image: var(--business-img-1);
}
.header_nav .sub-menu > li:nth-child(2) > a::before {
background-image: var(--business-img-2);
}
.header_nav .sub-menu > li:nth-child(3) > a::before {
background-image: var(--business-img-3);
}
.header_nav .sub-menu > li:nth-child(4) > a::before {
background-image: var(--business-img-4);
}
/* 1200px以下ではPCメガメニュー非表示 */
@media (max-width: 1200px) {
.header_nav .sub-menu {
display: none !important;
}
}
.header_tel {
display: flex;
flex-direction: column;
align-items: flex-end;
font-size: 20px;
}
.header_tel span {
display: flex;
flex-direction: column;
align-items: flex-end;
font-size: 16px;
}
.header_tel_top {
display: flex;
align-items: center;
gap: 6px;
font-size: 24px;
}
.header_call_icon {
width: 16px;
}
.hamburger {
width: 30px;
height: 20px;
position: relative;
background: none;
border: none;
cursor: pointer;
}
.hamburger span {
position: absolute;
width: 100%;
height: 2px;
background: #333;
left: 0;
transition: 0.3s;
}
.hamburger span:nth-child(1) { top: 0; }
.hamburger span:nth-child(2) { top: 50%; transform: translateY(-50%); }
.hamburger span:nth-child(3) { bottom: 0; }
.hamburger.active span:nth-child(1) {
transform: translateY(9px) rotate(45deg);
}
.hamburger.active span:nth-child(2) {
opacity: 0;
}
.hamburger.active span:nth-child(3) {
transform: translateY(-9px) rotate(-45deg);
}

.sp_menu {
position: fixed;
right: -100%;
top: 87px;
width: 80%;
height: 100%;
background: #fff;
transition: 0.3s;
}
.sp_menu.active {
right: 0;
}
.sp_menu_inner {
padding: 20px;
display: flex;
flex-direction: column;
}
.sp_nav {
flex: 1;
}
.sp_nav li {
border-top: 1px solid #ddd;
}
.sp_nav a {
display: block;
padding: 15px 0;
}
.overlay {
position: fixed;
top: 87px;
left: 0;
right: 0;
bottom: 0;
background: rgba(0,0,0,0.4);
opacity: 0;
visibility: hidden;
transition: 0.3s;
z-index: 100;
}
.overlay.active {
opacity: 1;
visibility: visible;
}
.sp_tel {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
text-align: center;
padding: 30px 0 0;
}
.sp_tel .header_tel_top {
display: flex;
align-items: center;
justify-content: center;
gap: 6px;
}
.sp_tel .header_tel_top div {
font-size: 20px;
font-weight: bold;
}
.sp_tel_time {
font-size: 12px;
margin-top: 4px;
}
.sp_nav .sub-menu li a::before {
content: " - ";
}

.sp_nav li.menu-item-has-children > a {
position: relative;
padding-right: 30px;
}
.sp_nav li.menu-item-has-children > a::before,
.sp_nav li.menu-item-has-children > a::after {
content: "";
position: absolute;
right: 6px;
top: 50%;
width: 16px;
height: 2px;
background: #333;
}
.sp_nav li.menu-item-has-children > a::after {
transform: translateY(-50%) rotate(90deg);
}
.sp_nav li.open > a::before {
transform: rotate(45deg);
}
.sp_nav li.open > a::after {
transform: rotate(-45deg);
}
.sp_nav .sub-menu {
position: static;
width: 100%;
display: block;
max-height: 0;
overflow: hidden;
transition: 0.3s;
}
.sp_nav li.open > .sub-menu {
max-height: 500px;
}

@media (max-width: 1200px) {
.pc_only { display: none; }
.sp_only { display: block; }
.header_logo_size { width: 60px; }
.header_logo_text { font-size: 24px; }
.overlay { top: 78px; }
.sp_menu { top: 78px; }
.header_nav .sub-menu {
display: none !important;
}
.header_tel {
pointer-events: none;
cursor: default;
}
}
@media (max-width: 768px) {
.header_inner {
padding: 15px;
}
.header_logo_size { width: 40px; }
.header_logo_text { font-size: 20px; }
.overlay { top: 62px; }
.sp_menu { top: 62px; }
}
body {
overflow-x: hidden;
}

/* =========================
HERO
========================= */
.hero {
position: relative;
overflow: hidden;
margin-top: 102px;
}
.hero_bg {
position: relative;
min-height: 760px;
}
.hero_bg picture,
.hero_bg img {
display: block;
width: 100%;
height: 100%;
}
.hero_bg img {
min-height: 760px;
object-fit: cover;
object-position: center center;
}
.hero_inner {
position: absolute;
inset: 0;
display: flex;
align-items: center;
justify-content: center;
padding: 40px 20px;
}
.hero_box {
width: min(100%, 960px);
background: rgba(18, 31, 53, 0.72);
padding: 92px 60px 72px;
text-align: center;
}
.hero_title {
margin: 0;
color: #fff;
font-size: 60px;
font-weight: 700;
line-height: 1.3;
letter-spacing: 0.06em;
}
.hero_text {
margin: 28px 0 0;
color: #fff;
font-size: 24px;
font-weight: 700;
line-height: 1.9;
letter-spacing: 0.04em;
}
.hero_btn_wrap {
margin-top: 42px;
}
.hero_btn {
max-width: 454px;
width: 100%;
margin: 0 auto;
padding: 20px 32px;
background: #fff;
color: #1a2f5a;
text-decoration: none;
display: flex;
align-items: center;
justify-content: center;
gap: 36px;
box-sizing: border-box;
transition: opacity 0.3s ease;
}
.hero_btn:hover {
opacity: 0.9;
}
.hero_btn_text {
font-size: 24px;
font-weight: 700;
line-height: 1.4;
letter-spacing: 0.04em;
}
.hero_btn_arrow {
font-size: 28px;
font-weight: 700;
line-height: 1;
}
.hero_note {
margin: 36px 0 0;
color: #E2E2E2;
font-size: 20px;
line-height: 1.7;
letter-spacing: 0.04em;
}

@media (max-width: 1200px) {
.hero {
margin-top: 79px;
}
.hero_bg,
.hero_bg img {
min-height: 560px;
}
.hero_inner {
padding: 32px 20px;
}
.hero_box {
width: min(100%, 710px);
padding: 56px 40px 48px;
}
.hero_title {
font-size: 40px;
line-height: 1.35;
}
.hero_text {
margin-top: 24px;
font-size: 16px;
line-height: 1.9;
}
.hero_btn_wrap {
margin-top: 30px;
}
.hero_btn {
max-width: 350px;
min-height: 74px;
padding: 16px 24px;
gap: 24px;
}
.hero_btn_text {
font-size: 18px;
}
.hero_btn_arrow {
font-size: 22px;
}
.hero_note {
margin-top: 28px;
font-size: 16px;
line-height: 1.7;
}
}

@media (max-width: 767px) {
.hero {
margin-top: 63px;
}
.hero_bg,
.hero_bg img {
min-height: 650px;
}
.hero_bg img {
object-position: 85% center;
}
.hero_inner {
padding: 24px 16px;
}
.hero_box {
width: 100%;
max-width: 380px;
padding: 64px 10px 52px;
}
.hero_title {
font-size: 24px;
line-height: 1.45;
letter-spacing: 0.04em;
}
.hero_text {
margin-top: 22px;
font-size: 16px;
line-height: 1.85;
}
.hero_btn_wrap {
margin-top: 28px;
}
.hero_btn {
max-width: 280px;
min-height: 58px;
padding: 14px 18px;
gap: 18px;
}
.hero_btn_text {
font-size: 14px;
}
.hero_btn_arrow {
font-size: 18px;
}
.hero_note {
margin-top: 24px;
font-size: 13px;
line-height: 1.8;
}
}

/* =========================
BUSINESS
========================= */
.business {
background: #efefef;
padding: 100px 20px 110px;
}
.business_inner {
max-width: 1200px;
margin: 0 auto;
}
.business_head {
margin-bottom: 40px;
}
.business_title {
margin: 0;
color: #1f2430;
font-size: 52px;
font-weight: 400;
line-height: 1.2;
}
.business_subtitle {
margin: 6px 0 0;
color: #1f2430;
font-size: 18px;
font-weight: 500;
line-height: 1.5;
}
.business_lead {
margin: 22px 0 0;
color: #1f2430;
font-size: 20px;
line-height: 1.8;
}
.business_grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 28px 36px;
}
.business_card {
position: relative;
display: block;
min-height: 260px;
overflow: hidden;
text-decoration: none;
background: #fff;
}
.business_card_bg {
position: absolute;
inset: 0;
}
.business_card_bg img {
width: 100%;
height: 100%;
display: block;
object-fit: cover;
}
.business_card_overlay {
position: absolute;
inset: 0;
background: linear-gradient(
90deg,
rgba(255, 255, 255, 1) 0%,
rgba(255, 255, 255, 1) 28%,
rgba(255, 255, 255, 0.88) 42%,
rgba(255, 255, 255, 0.45) 60%,
rgba(255, 255, 255, 0) 100%
);
z-index: 1;
}
.business_card_content {
position: relative;
z-index: 2;
width: 60%;
min-width: 360px;
padding: 26px 24px 24px 28px;
box-sizing: border-box;
}
.business_card_title {
position: relative;
margin: 0;
padding-left: 16px;
color: #1f2430;
font-size: 28px;
font-weight: 500;
line-height: 1.5;
}
.business_card_title::before {
content: "";
position: absolute;
left: 0;
top: 0.32em;
width: 3px;
height: 1.2em;
background: #d4b24c;
}
.business_card_text {
margin: 18px 0 0;
color: #1f2430;
font-size: 18px;
line-height: 1.9;
}
.business_card:nth-child(2) {
transform: translateY(-50px);
}
.business_card:nth-child(4) {
transform: translateY(-50px);
}

@media (max-width: 1200px) {
.business {
padding: 90px 20px 100px;
}
.business_title {
font-size: 46px;
}
.business_subtitle {
font-size: 17px;
}
.business_lead {
font-size: 18px;
}
.business_grid {
gap: 24px 24px;
}
.business_card {
min-height: 220px;
}
.business_card_content {
width: 280px;
min-width: 280px;
padding: 22px 20px 22px 24px;
}
.business_card_title {
font-size: 22px;
}
.business_card_text {
font-size: 16px;
}
.business_card:nth-child(2) {
transform: translateY(-30px);
}
.business_card:nth-child(4) {
transform: translateY(-30px);
}
}

@media (max-width: 768px) {
.business {
padding: 72px 16px 82px;
}
.business_title {
font-size: 40px;
}
.business_subtitle {
font-size: 16px;
}
.business_lead {
margin-top: 18px;
font-size: 16px;
line-height: 1.8;
}
.business_grid {
grid-template-columns: 1fr;
gap: 20px;
}
.business_card {
min-height: 250px;
}
.business_card_content {
width: 50%;
min-width: 220px;
padding: 24px 18px 22px 22px;
}
.business_card_title {
font-size: 20px;
}
.business_card_text {
margin-top: 16px;
font-size: 15px;
line-height: 1.8;
}
}

@media (max-width: 768px) {
.business {
padding: 60px 12px 70px;
}
.business_inner {
max-width: 100%;
}
.business_head {
margin-bottom: 28px;
text-align: center;
}
.business_title {
font-size: 30px;
}
.business_subtitle {
margin-top: 4px;
font-size: 14px;
}
.business_lead {
margin-top: 18px;
font-size: 14px;
line-height: 1.8;
text-align: center;
}
.business_grid {
gap: 14px;
}
.business_card {
max-width: 400px;
width: 100%;
min-height: unset;
height: 180px;
margin: 0 auto; /* ← 中央寄せ */
}
.business_card_overlay {
background: linear-gradient(
90deg,
rgba(255, 255, 255, 1) 0%,
rgba(255, 255, 255, 0.98) 38%,
rgba(255, 255, 255, 0.82) 56%,
rgba(255, 255, 255, 0.22) 76%,
rgba(255, 255, 255, 0) 100%
);
}
.business_card_content {
width: 230px;
min-width: 0;
padding: 18px 14px 16px 18px;
}
.business_card_title {
padding-left: 12px;
font-size: 18px;
line-height: 1.5;
}
.business_card_title::before {
width: 2px;
height: 1.15em;
}
.business_card_text {
margin-top: 14px;
font-size: 13px;
line-height: 1.75;
}
.business_card:nth-child(2) {
transform: translateY(0px);
}
.business_card:nth-child(4) {
transform: translateY(0px);
}
}

/* =========================
NEWS
========================= */
.top_news {
background: #fff;
padding: 70px 20px 80px;
}
.top_news_inner {
max-width: 800px;
margin: 0 auto;
}
.top_news_head {
text-align: center;
margin-bottom: 24px;
}
.top_news_title {
margin: 0;
color: #111827;
font-size: 40px;
font-weight: 400;
line-height: 1.2;
}
.top_news_subtitle {
margin: 6px 0 0;
color: #111827;
font-size: 20px;
line-height: 1.5;
}
.top_news_list {
border-top: 1px solid #cfcfcf;
}
.top_news_item {
display: flex;
align-items: center;
justify-content: space-between;
gap: 20px;
padding: 12px 4px 12px 10px;
border-bottom: 1px solid #cfcfcf;
text-decoration: none;
color: #111827;
transition: opacity 0.3s ease;
}
.top_news_item:hover {
opacity: 0.75;
}
.top_news_item_meta {
display: flex;
align-items: center;
gap: 24px;
min-width: 0;
}
.top_news_date {
flex-shrink: 0;
font-size: 18px;
line-height: 1.6;
color: #111827;
}
.top_news_text {
font-size: 18px;
line-height: 1.6;
color: #111827;
word-break: break-word;
}
.top_news_arrow {
flex-shrink: 0;
width: 39px;
height: 39px;
border-radius: 50%;
background: #0f1e42;
color: #fff;
display: flex;
align-items: center;
justify-content: center;
font-size: 16px;
line-height: 1;
}
.top_news_btn_wrap {
margin-top: 44px;
text-align: center;
}
.top_news_btn {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 28px;
min-width: 284px;
min-height: 70px;
padding: 16px 28px;
background: #13295b;
color: #fff;
text-decoration: none;
transition: opacity 0.3s ease;
}
.top_news_btn:hover {
opacity: 0.85;
}
.top_news_btn span {
font-size: 18px;
line-height: 1.4;
}
.top_news_btn_arrow {
font-size: 20px;
line-height: 1;
}
.top_news_pagination {
margin-top: 60px;
text-align: center;
}
.top_news_pagination .nav-links {
display: flex;
justify-content: center;
align-items: center;
flex-wrap: wrap;
gap: 14px;
}
.top_news_pagination .page-numbers {
display: inline-flex;
align-items: center;
justify-content: center;
width: 48px;
height: 48px;
border: 2px solid #2d3443;
border-radius: 50%;
background: #fff;
color: #2d3443;
font-size: 16px;
font-weight: 400;
line-height: 1;
text-decoration: none;
transition: 0.3s;
box-sizing: border-box;
}
.top_news_pagination .page-numbers.current {
background: #1f4788;
border-color: #1f4788;
color: #fff;
}
.top_news_pagination .page-numbers.dots {
width: auto;
height: auto;
border: none;
background: transparent;
font-size: 20px;
padding: 0 6px;
}
.top_news_pagination .page-numbers:hover {
opacity: 0.7;
}
.top_news_pagination .page-numbers.prev,
.top_news_pagination .page-numbers.next {
font-size: 20px;
}
.top_news_pagination .page-numbers:hover {
opacity: 0.7;
}

@media (max-width: 1200px) {
.top_news {
padding: 90px 20px 100px;
}
.top_news_inner {
max-width: 820px;
}
.top_news_title {
font-size: 52px;
}
.top_news_subtitle {
font-size: 18px;
}
.top_news_item {
padding: 16px 4px 16px 10px;
}
.top_news_item_meta {
gap: 18px;
}
.top_news_date {
font-size: 18px;
}
.top_news_text {
font-size: 18px;
}
.top_news_arrow {
width: 30px;
height: 30px;
font-size: 13px;
}
.top_news_btn {
min-width: 196px;
min-height: 54px;
gap: 18px;
}
.top_news_btn span {
font-size: 18px;
}
}

/* =========================
スマホ
========================= */
@media (max-width: 767px) {
.top_news {
padding: 70px 20px 80px;
}
.top_news_inner {
max-width: 100%;
}
.top_news_head {
margin-bottom: 30px;
}
.top_news_title {
font-size: 44px;
}
.top_news_subtitle {
margin-top: 4px;
font-size: 16px;
}
.top_news_item {
align-items: center;
gap: 14px;
padding: 12px 0;
}
.top_news_item_meta {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 4px;
}
.top_news_date {
font-size: 16px;
line-height: 1.5;
}
.top_news_text {
font-size: 16px;
line-height: 1.6;
}
.top_news_arrow {
width: 27px;
height: 27px;
font-size: 12px;
}
.top_news_btn_wrap {
margin-top: 28px;
}
.top_news_btn {
min-width: 196px;
min-height: 44px;
gap: 16px;
padding: 10px 18px;
}
.top_news_btn span {
font-size: 16px;
}
.top_news_btn_arrow {
font-size: 14px;
}
.top_news_pagination {
margin-top: 40px;
}
.top_news_pagination .nav-links {
gap: 10px;
}
.top_news_pagination .page-numbers {
width: 40px;
height: 40px;
font-size: 18px;
}
.top_news_pagination .page-numbers.dots {
font-size: 22px;
}
}

/* =========================
COMPANY
========================= */
.company {
background: #efefef;
padding: 80px 20px 90px;
}
.company_inner {
max-width: 1200px;
margin: 0 auto;
}
.company_head {
margin-bottom: 36px;
}
.company_title {
margin: 0;
color: #171e2f;
font-size: 56px;
font-weight: 400;
line-height: 1.2;
}
.company_subtitle {
margin: 6px 0 0;
color: #171e2f;
font-size: 22px;
line-height: 1.5;
}
.company_body {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 64px;
align-items: center;
}
.company_image img {
display: block;
width: 100%;
height: auto;
}
.company_content {
display: flex;
flex-direction: column;
justify-content: center;
}
.company_text {
position: relative;
margin: 0;
padding-left: 18px;
color: #171e2f;
font-size: 18px;
line-height: 2;
padding-left: 18px;
border-left: 3px solid #d1ad3f;
}
.company_btn_wrap {
margin-top: 54px;
text-align: center;
}
.company_btn {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 28px;
padding: 16px 32px;
background: #14275a;
color: #fff;
text-decoration: none;
transition: opacity 0.3s ease;
}
.company_btn:hover {
opacity: 0.85;
}
.company_btn span {
font-size: 18px;
line-height: 1.4;
}
.company_btn_arrow {
font-size: 20px;
line-height: 1;
}

@media (max-width: 1200px) {
.company {
padding: 72px 20px 82px;
}
.company_title {
font-size: 42px;
}
.company_subtitle {
font-size: 18px;
}
.company_body {
gap: 40px;
}
.company_text {
font-size: 18px;
line-height: 1.9;
padding-left: 16px;
}
.company_text::before {
height: 4.6em;
}
.company_btn_wrap {
margin-top: 38px;
}
.company_btn {
gap: 18px;
padding: 12px 24px;
}
.company_btn span {
font-size: 18px;
}
.company_btn_arrow {
font-size: 16px;
}
}

@media (max-width: 768px) {
.company {
padding: 60px 16px 70px;
}
.company_inner {
max-width: 500px;
}
.company_head {
margin-bottom: 28px;
text-align: center;
}
.company_title {
font-size: 30px;
}
.company_subtitle {
margin-top: 4px;
font-size: 14px;
}
.company_body {
grid-template-columns: 1fr;
gap: 28px;
}
.company_content {
align-items: center;
}
.company_text {
width: 100%;
font-size: 14px;
line-height: 1.85;
padding-left: 14px;
}
.company_text::before {
width: 2px;
height: 4.9em;
top: 0.22em;
}
.company_btn_wrap {
margin-top: 28px;
width: 100%;
text-align: center;
}
.company_btn {
padding: 10px 18px;
gap: 18px;
}
.company_btn span {
font-size: 16px;
}
.company_btn_arrow {
font-size: 14px;
}
.company_text br {
display: none;
}
}

/* =========================
CONTACT
========================= */
.contact {
background: #2d4373;
padding: 80px 20px 110px;
}
.contact_inner {
max-width: 1100px;
margin: 0 auto;
}
.contact_head {
text-align: center;
margin-bottom: 40px;
}
.contact_title {
margin: 0;
color: #fff;
font-size: 52px;
font-weight: 400;
}
.contact_subtitle {
margin-top: 6px;
color: #fff;
font-size: 18px;
}
.contact_grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 40px;
}
.contact_card {
background: #f4f4f4;
padding: 36px 20px;
text-align: center;
}
.contact_icon img {
width: 40px;
height: auto;
}
.contact_text {
margin: 14px 0 0;
font-size: 18px;
color: #222;
}
.contact_tel {
display: block;
margin-top: 10px;
font-size: 32px;
font-weight: bold;
color: #222;
text-decoration: none;
}
.contact_time {
margin-top: 6px;
font-size: 14px;
color: #555;
}
.contact_btn {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 20px;
margin-top: 20px;
padding: 14px 30px;
background: #1f2f5a;
color: #fff;
text-decoration: none;
transition: 0.3s;
}
.contact_btn:hover {
opacity: 0.85;
}
.contact_tel_link {
display: none;
}
.contact_tel_text {
display: block;
}

@media (max-width: 1200px) {
.contact_title {
font-size: 44px;
}
.contact_grid {
gap: 24px;
}
.contact_card {
padding: 30px 16px;
}
.contact_tel {
font-size: 26px;
}
.contact_tel_link {
display: block;
}
.contact_tel_text {
display: none;
}
}

@media (max-width: 768px) {
.contact {
padding: 70px 16px 80px;
}
.contact_title {
font-size: 30px;
}
.contact_subtitle {
font-size: 14px;
}
.contact_grid {
grid-template-columns: 1fr;
gap: 16px;
}
.contact_card {
padding: 28px 16px;
}
.contact_icon img {
width: 36px;
}
.contact_text {
font-size: 16px;
}
.contact_tel {
font-size: 26px;
}
.contact_btn {
width: 100%;
max-width: 300px;
}
}

/* =========================
FOOTER
========================= */
.footer {
background: #fff;
padding: 60px 20px 20px;
color: #333;
}
.footer_inner {
max-width: 1100px;
margin: 0 auto;
display: flex;
justify-content: space-between;
gap: 60px;
}
.footer_company {
width: calc(50% - 30px);
}
.footer_menu {
width: calc(50% - 30px);
}
.footer_logo {
display: flex;
align-items: center;
gap: 10px;
margin-bottom: 16px;
}
.footer_logo h2 {
font-size: 20px;
font-weight: 700;
color: #333;
font-family: 'Noto Serif JP', serif;
}
.footer_text {
font-size: 14px;
line-height: 1.8;
}
.footer_menu {
flex: 1;
}
.footer_menu_list {
list-style: none;
padding: 0;
margin: 0;
display: grid;
grid-template-columns: 180px 1fr;
column-gap: 80px;
row-gap: 10px;
align-items: start;
}
.footer_menu_list > li:not(.menu-item-has-children) {
grid-column: 1;
margin: 0;
font-size: 14px;
}
.footer_menu_list > li.menu-item-has-children {
grid-column: 2;
grid-row: 1 / span 5;
margin: 0;
font-size: 14px;
}
.footer_menu_list > li.menu-item-has-children > a {
display: block;
margin-bottom: 10px;
font-weight: 700;
}
.footer_menu_list .sub-menu {
position: static !important;
display: block !important;
width: auto !important;
opacity: 1 !important;
visibility: visible !important;
transform: none !important;
background: transparent !important;
box-shadow: none !important;
padding: 0 !important;
margin: 0 !important;
list-style: none !important;
}
.footer_menu_list > li.menu-item-has-children > .sub-menu > li {
margin-bottom: 10px;
}
.footer_menu_list > li.menu-item-has-children > .sub-menu > li > a::before {
content: "- ";
}
.footer_menu a {
text-decoration: none;
color: #333;
}
.footer_menu a:hover {
opacity: 0.7;
}
.footer_bottom {
text-align: center;
margin-top: 40px;
font-size: 12px;
color: #666;
}
.footer_bottom a {
display: block;
margin-bottom: 8px;
color: #666;
text-decoration: none;
}
.footer_bottom p {
font-size: 1.6rem;
}

@media (max-width: 768px) {
.footer_menu {
width: 100%;
}
.footer_inner {
flex-direction: column;
gap: 30px;
}
.footer_company {
width: 100%;
}
.footer_menu_list {
grid-template-columns: 1fr 1fr;
column-gap: 10px;
row-gap: 6px;
}
.footer_menu_list > li.menu-item-has-children {
grid-column: 2;
grid-row: 1 / span 5;
}
.footer_bottom p {
font-size: 1.2rem;
}
}

.page-investment {
background: #fff;
color: #222;
margin-top: 102px;
}
.investment_container {
width: min(100%, 1100px);
margin: 0 auto;
padding: 0 20px;
}
.investment_sec_title {
position: relative;
display: inline-block;
font-size: 42px;
font-weight: 500;
line-height: 1.4;
color: #222;
margin-bottom: 40px;
}
.investment_sec_title::after {
content: "";
position: absolute;
left: 0;
bottom: -10px;
width: 70px;
height: 2px;
background: #d4b15a;
}
.investment_sec_title--center {
display: table;
margin: 0 auto 50px;
text-align: center;
}
.investment_sec_title--center::after {
left: 50%;
transform: translateX(-50%);
}
.investment_fv {
position: relative;
height: 360px;
overflow: hidden;
}
.investment_fv_bg {
position: absolute;
inset: 0;
}
.investment_fv_bg img {
width: 100%;
height: 100%;
object-fit: cover;
}
.investment_fv_overlay {
position: absolute;
inset: 0;
background: rgba(0, 0, 0, 0.5);
}
.investment_fv_inner {
position: relative;
z-index: 2;
max-width: 1100px;
height: 100%;
margin: 0 auto;
padding: 0 20px;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
color: #fff;
text-align: center;
}
.investment_fv_title {
font-size: 52px;
font-weight: 700;
line-height: 1.2;
margin-bottom: 16px;
}
.investment_fv_text {
font-size: 16px;
line-height: 1.8;
}
.investment_breadcrumb_wrap {
background: #183b7a;
padding: 14px 0;
}
.investment_breadcrumb {
display: flex;
align-items: center;
gap: 10px;
color: #fff;
font-size: 13px;
line-height: 1.5;
}
.investment_breadcrumb a {
color: #fff;
text-decoration: none;
}
.investment_breadcrumb a:hover {
opacity: 0.8;
}
.investment_summary {
padding: 90px 0 80px;
}
.investment_summary_inner {
display: grid;
grid-template-columns: 1fr 1fr;
align-items: center;
gap: 40px;
max-width: 1000px;
margin: 0 auto;
}
.investment_summary_text {
font-size: 16px;
line-height: 2;
color: #333;
}
.investment_summary_image {
position: relative;
max-width: 350px;
margin: 0 auto;
}
.investment_summary_image_bg {
position: absolute;
right: -45px;
bottom: -35px;
width: 180px;
height: 180px;
background: #e9e9ed;
z-index: 0;
}
.investment_summary_image img {
position: relative;
z-index: 1;
display: block;
width: 100%;
height: auto;
object-fit: cover;
}
.real_estate_summary {
padding: 90px 0 80px;
}
.real_estate_summary_inner {
display: grid;
grid-template-columns: 1fr 1fr;
align-items: center;
gap: 80px;
max-width: 1000px;
margin: 0 auto;
}
.real_estate_summary_image {
position: relative;
max-width: 350px;
width: 100%;
}
.real_estate_summary_image_bg {
position: absolute;
top: -28px;
left: -28px;
width: 150px;
height: 130px;
background: #e9e9ed;
z-index: 0;
}
.real_estate_summary_image img {
position: relative;
z-index: 1;
display: block;
width: 100%;
height: auto;
object-fit: cover;
}
.real_estate_summary_content {
width: 100%;
}
.real_estate_summary_text {
font-size: 16px;
line-height: 2;
color: #333;
}

@media (max-width: 1200px) {
.real_estate_summary_inner {
gap: 56px;
max-width: 960px;
}
.real_estate_summary_image {
max-width: 350px;
}
.real_estate_summary_image_bg {
top: -24px;
left: -24px;
width: 130px;
height: 115px;
}
.real_estate_summary_text {
font-size: 15px;
line-height: 1.9;
}
}

@media (max-width: 768px) {
.real_estate_summary {
padding: 60px 0;
}
.real_estate_summary_inner {
grid-template-columns: 1fr;
gap: 32px;
}
.real_estate_summary_content {
order: 1;
}
.real_estate_summary_image {
order: 2;
max-width: 350px;
margin: 0 auto;
}
.real_estate_summary_image_bg {
top: -14px;
left: -14px;
width: 90px;
height: 90px;
}
.real_estate_summary_text {
font-size: 14px;
line-height: 1.9;
}
}

.investment_features {
background: var(--color-grad-gray);
padding: 80px 0 100px;
}
.investment_features_grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 24px;
}
.investment_feature_card {
position: relative;
background: #fff;
border: 1px solid #d9c27a;
box-shadow: 0 10px 18px rgba(0, 0, 0, 0.08);
padding: 44px 28px 30px;
min-height: 290px;
}
.investment_feature_label {
position: absolute;
top: 12px;
left: 12px;
display: inline-block;
min-width: 70px;
padding: 4px 10px;
border: 1px solid #999;
font-size: 12px;
line-height: 1.2;
color: #555;
background: #fff;
}
.investment_feature_icon {
display: flex;
justify-content: center;
align-items: center;
margin-bottom: 24px;
min-height: 80px;
}
.investment_feature_icon img {
width: 72px;
height: 72px;
object-fit: contain;
}
.investment_feature_title {
font-size: 20px;
font-weight: 500;
line-height: 1.5;
text-align: center;
color: #222;
margin-bottom: 14px;
}
.investment_feature_text {
font-size: 16px;
line-height: 1.9;
color: #333;
}

@media (max-width: 1200px) {
.page-investment {
margin-top: 79px;
}
.investment_fv {
height: 300px;
}
.investment_fv_title {
font-size: 42px;
}
.investment_summary_image {
max-width: 80%;
margin: 0 auto;
}
.investment_summary_inner {
display: grid;
align-items: center;
gap: 40px;
max-width: 1000px;
margin: 0 auto;
}
}

@media (max-width: 767px) {
.page-investment {
margin-top: 63px;
}
.investment_summary_inner {
grid-template-columns: 1fr;
gap: 40px;
}
.investment_summary_image {
max-width: 350px;
margin: 0 auto;
}
.investment_features_grid {
grid-template-columns: 1fr;
}
.investment_container {
padding: 0 16px;
}
.investment_fv {
height: 240px;
}
.investment_fv_title {
font-size: 32px;
margin-bottom: 10px;
}
.investment_fv_text {
font-size: 14px;
line-height: 1.7;
}
.investment_breadcrumb {
gap: 8px;
font-size: 12px;
flex-wrap: wrap;
}
.investment_summary {
padding: 60px 0;
}
.investment_sec_title {
font-size: 30px;
margin-bottom: 28px;
}
.investment_summary_text {
font-size: 14px;
line-height: 1.9;
}
.investment_summary_image_bg {
right: -15px;
bottom: -15px;
width: 100px;
height: 100px;
}
.investment_features {
padding: 60px 0 70px;
}
.investment_feature_card {
min-height: auto;
padding: 42px 20px 24px;
}
.investment_feature_title {
font-size: 22px;
}
.investment_feature_text {
font-size: 14px;
line-height: 1.8;
}
}

.investment_flow {
padding: 90px 0 110px;
background: #fff;
}
.investment_flow_list {
display: flex;
flex-direction: column;
gap: 6px;
max-width: 980px;
margin: 0 auto;
}
.investment_flow_item {
display: grid;
grid-template-columns: 250px 1fr;
align-items: stretch;
background: #E7E8EC;
overflow: hidden;
}
.investment_flow_image {
height: 100%;
}
.investment_flow_image img {
display: block;
width: 100%;
height: 100%;
min-height: 130px;
object-fit: cover;
}
.investment_flow_content {
display: flex;
flex-direction: column;
justify-content: center;
padding: 28px 34px;
}
.investment_flow_head {
display: flex;
align-items: center;
gap: 14px;
margin-bottom: 14px;
}
.investment_flow_num {
width: 44px;
height: 44px;
border-radius: 50%;
background: #fff;
display: inline-flex;
align-items: center;
justify-content: center;
font-size: 24px;
font-weight: 700;
line-height: 1;
color: #222;
flex-shrink: 0;
}
.investment_flow_title {
font-size: 24px;
font-weight: 500;
line-height: 1.4;
color: #222;
}
.investment_flow_text {
font-size: 16px;
line-height: 1.9;
color: #333;
}

@media (max-width: 1200px) {
.investment_flow {
padding: 80px 0 100px;
}
.investment_flow_list {
max-width: 100%;
}
.investment_flow_item {
grid-template-columns: 220px 1fr;
}
.investment_flow_content {
padding: 24px 24px;
}
.investment_flow_title {
font-size: 26px;
}
.investment_flow_text {
font-size: 15px;
line-height: 1.8;
}
}

@media (max-width: 768px) {
.investment_flow {
padding: 60px 0 70px;
}
.investment_flow_list {
gap: 12px;
}
.investment_flow_item {
grid-template-columns: 1fr;
}
.investment_flow_image img {
min-height: auto;
height: auto;
aspect-ratio: 16 / 9;
}
.investment_flow_content {
padding: 18px 16px 20px;
}
.investment_flow_head {
gap: 10px;
margin-bottom: 10px;
align-items: center;
}
.investment_flow_num {
width: 38px;
height: 38px;
font-size: 18px;
}
.investment_flow_title {
font-size: 22px;
line-height: 1.4;
}
.investment_flow_text {
font-size: 14px;
line-height: 1.8;
}
}

.single_news_section {
background: #efefef;
padding: 100px 20px;
}
.single_news_inner {
max-width: 900px;
margin: 0 auto;
background: #fff;
padding: 50px 40px;
}
.single_news_date {
display: block;
font-size: 16px;
color: #666;
}
.single_news_title {
margin: 16px 0 0;
font-size: 32px;
line-height: 1.5;
color: #111827;
}
.single_news_content {
margin-top: 30px;
font-size: 16px;
line-height: 2;
color: #111827;
}
@media (max-width: 767px) {
.single_news_section {
padding: 70px 16px;
}
.single_news_inner {
padding: 32px 20px;
}
.single_news_title {
font-size: 24px;
}
.single_news_content {
font-size: 15px;
line-height: 1.9;
}
}

.single_news_btn_wrap {
margin-top: 50px;
text-align: center;
}
.single_news_btn {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 220px;
height: 52px;
padding: 0 24px;
border-radius: 999px;
background: #16285f;
color: #fff;
font-size: 16px;
font-weight: 500;
line-height: 1;
text-decoration: none;
transition: opacity 0.3s;
}
.single_news_btn:hover {
opacity: 0.85;
}

@media (max-width: 768px) {
.single_news_btn_wrap {
margin-top: 36px;
}
.single_news_btn {
min-width: 190px;
height: 46px;
font-size: 14px;
}
}

.company_info {
padding: 90px 0 100px;
}
.company_info_inner {
width: min(100%, 980px);
margin: 0 auto;
padding: 0 20px;
}
.company_info_title {
position: relative;
display: table;
margin: 0 auto 48px;
font-size: 42px;
font-weight: 500;
line-height: 1.4;
color: #222;
text-align: center;
}
.company_info_title::after {
content: "";
position: absolute;
left: 50%;
bottom: -12px;
transform: translateX(-50%);
width: 72px;
height: 2px;
background: #caa13a;
}
.company_info_table_wrap {
width: 100%;
}
.company_info_table {
width: 100%;
border-collapse: collapse;
table-layout: fixed;
border-top: 1px solid #cfcfcf;
}
.company_info_table tr {
border-bottom: 1px solid #cfcfcf;
}
.company_info_table th,
.company_info_table td {
padding: 14px 22px;
font-size: 18px;
line-height: 1.7;
color: #222;
vertical-align: top;
text-align: left;
}
.company_info_table th {
width: 190px;
font-weight: 500;
white-space: nowrap;
}
.company_info_table tr:nth-child(odd) {
background: #F2F2F2;
}
.company_info_table td {
width: calc(100% - 190px);
}

@media (max-width: 1200px) {
.company_info {
padding: 80px 0 90px;
}
.company_info_title {
font-size: 46px;
margin-bottom: 42px;
}
.company_info_table th,
.company_info_table td {
font-size: 16px;
padding: 13px 18px;
}
.company_info_table th {
width: 170px;
}
.company_info_table td {
width: calc(100% - 170px);
}
}

@media (max-width: 768px) {
.company_info {
padding: 60px 0 70px;
}
.company_info_inner {
padding: 0 16px;
}
.company_info_title {
font-size: 34px;
margin-bottom: 32px;
}
.company_info_title::after {
width: 56px;
bottom: -10px;
}
.company_info_table,
.company_info_table tbody,
.company_info_table tr,
.company_info_table th,
.company_info_table td {
display: block;
width: 100%;
}
.company_info_table {
border-top: 1px solid #cfcfcf;
}
.company_info_table tr {
padding: 0;
}
.company_info_table th,
.company_info_table td {
padding: 12px 10px;
font-size: 14px;
line-height: 1.8;
}
.company_info_table th {
padding-bottom: 4px;
font-weight: 600;
}
.company_info_table td {
padding-top: 0;
padding-bottom: 12px;
}
}

.access {
padding: 0px 0 100px;
}
.access_inner {
width: min(100%, 1000px);
margin: 0 auto;
padding: 0 20px;
}
.access_title {
position: relative;
display: table;
margin: 0 auto 50px;
font-size: 42px;
font-weight: 500;
text-align: center;
}
.access_title::after {
content: "";
position: absolute;
left: 50%;
bottom: -12px;
transform: translateX(-50%);
width: 70px;
height: 2px;
background: #caa13a;
}
.access_map {
width: 100%;
margin-bottom: 20px;
}
.access_map iframe {
width: 100%;
height: 420px;
border: 0;
}
.access_text {
font-size: 16px;
margin-bottom: 40px;
display: flex;
align-items: center;
gap: 10px;
}
.access_icon {
font-size: 18px;
}
.access_gallery {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 30px;
margin-top: 100px;
}
.access_img img {
width: 100%;
height: auto;
object-fit: cover;
display: block;
}

@media (max-width: 1200px) {
.access_title {
font-size: 44px;
}
.access_map iframe {
height: 380px;
}
}

@media (max-width: 768px) {
.access {
padding: 60px 0 70px;
}
.access_inner {
padding: 0 16px;
}
.access_title {
font-size: 32px;
margin-bottom: 30px;
}
.access_map iframe {
height: 300px;
}
.access_text {
font-size: 14px;
margin-bottom: 30px;
}
.access_gallery {
grid-template-columns: 1fr;
gap: 20px;
}
}

.recruit_message {
padding: 90px 0 100px;
}
.recruit_message_inner {
width: min(100%, 1200px);
margin: 0 auto;
padding: 0 20px;
}
.recruit_message_title {
position: relative;
display: table;
margin: 0 auto 48px;
font-size: 42px;
font-weight: 500;
line-height: 1.4;
color: #222;
text-align: center;
}
.recruit_message_title::after {
content: "";
position: absolute;
left: 50%;
bottom: -12px;
transform: translateX(-50%);
width: 72px;
height: 2px;
background: #caa13a;
}
.recruit_message_content {
display: grid;
grid-template-columns: 1fr 1fr;
align-items: start;
gap: 56px;
}
.recruit_message_image img {
display: block;
width: 100%;
height: auto;
object-fit: cover;
}
.recruit_message_text {
font-size: 16px;
line-height: 1.9;
color: #222;
}
.recruit_message_text p + p {
margin-top: 22px;
}

@media (max-width: 1200px) {
.recruit_message {
padding: 80px 0 90px;
}
.recruit_message_title {
font-size: 42px;
margin-bottom: 40px;
}
.recruit_message_content {
gap: 40px;
}
.recruit_message_text {
font-size: 15px;
line-height: 1.85;
}
.recruit_message_text p + p {
margin-top: 18px;
}
}

@media (max-width: 768px) {
.recruit_message {
padding: 60px 0 70px;
}
.recruit_message_inner {
padding: 0 16px;
}
.recruit_message_title {
font-size: 34px;
margin-bottom: 32px;
}
.recruit_message_title::after {
width: 56px;
bottom: -10px;
}
.recruit_message_content {
grid-template-columns: 1fr;
gap: 28px;
}
.recruit_message_text {
font-size: 14px;
line-height: 1.85;
}
.recruit_message_text p + p {
margin-top: 16px;
}
}

.recruit_requirements {
padding: 90px 0 100px;
}
.recruit_requirements_inner {
width: min(100%, 1000px);
margin: 0 auto;
padding: 0 20px;
}
.recruit_requirements_title {
position: relative;
display: table;
margin: 0 auto 48px;
font-size: 42px;
font-weight: 500;
line-height: 1.4;
color: #222;
text-align: center;
}
.recruit_requirements_title::after {
content: "";
position: absolute;
left: 50%;
bottom: -12px;
transform: translateX(-50%);
width: 72px;
height: 2px;
background: #caa13a;
}
.recruit_requirements_box {
max-width: 900px;
margin: 0 auto;
}
.recruit_requirements_job {
font-size: 24px;
font-weight: 500;
line-height: 1.4;
color: #1d2437;
margin-bottom: 18px;
}
.recruit_requirements_table {
width: 100%;
border-collapse: collapse;
table-layout: fixed;
border-top: 1px solid #a9a9a9;
}
.recruit_requirements_table tr {
border-bottom: 1px solid #a9a9a9;
}
.recruit_requirements_table th,
.recruit_requirements_table td {
padding: 22px 16px;
font-size: 16px;
line-height: 1.8;
color: #222;
text-align: left;
vertical-align: middle;
}
.recruit_requirements_table th {
width: 155px;
font-weight: 400;
white-space: nowrap;
color: #333;
padding-left: 40px;
}
.recruit_requirements_table td {
width: calc(100% - 155px);
}
.recruit_requirements_btn_wrap {
margin-top: 42px;
text-align: center;
}
.recruit_requirements_btn {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 18px;
min-width: 220px;
height: 62px;
padding: 0 34px;
border-radius: 999px;
background: #16285f;
color: #fff;
font-size: 20px;
font-weight: 500;
line-height: 1;
text-decoration: none;
transition: opacity 0.3s;
}
.recruit_requirements_btn:hover {
opacity: 0.85;
}
.recruit_requirements_btn_arrow {
display: inline-block;
font-size: 20px;
line-height: 1;
}

@media (max-width: 1200px) {
.recruit_requirements {
padding: 80px 0 90px;
}
.recruit_requirements_title {
font-size: 42px;
margin-bottom: 40px;
}
.recruit_requirements_job {
font-size: 26px;
}
.recruit_requirements_table th,
.recruit_requirements_table td {
font-size: 15px;
padding: 18px 14px;
}
.recruit_requirements_table th {
width: 140px;
padding-left: 28px;
}
.recruit_requirements_table td {
width: calc(100% - 140px);
}
.recruit_requirements_btn {
min-width: 210px;
height: 58px;
font-size: 20px;
}
}

@media (max-width: 768px) {
.recruit_requirements {
padding: 60px 0 70px;
}
.recruit_requirements_inner {
padding: 0 16px;
}
.recruit_requirements_title {
font-size: 34px;
margin-bottom: 32px;
}
.recruit_requirements_title::after {
width: 56px;
bottom: -10px;
}
.recruit_requirements_job {
font-size: 24px;
margin-bottom: 14px;
}
.recruit_requirements_table,
.recruit_requirements_table tbody,
.recruit_requirements_table tr,
.recruit_requirements_table th,
.recruit_requirements_table td {
display: block;
width: 100%;
}
.recruit_requirements_table th,
.recruit_requirements_table td {
padding: 10px 8px;
font-size: 14px;
line-height: 1.8;
}
.recruit_requirements_table th {
padding-top: 14px;
padding-left: 8px;
padding-bottom: 2px;
}
.recruit_requirements_table td {
padding-top: 0;
padding-bottom: 14px;
}
.recruit_requirements_btn_wrap {
margin-top: 30px;
}
.recruit_requirements_btn {
min-width: 190px;
height: 52px;
padding: 0 24px;
gap: 12px;
font-size: 18px;
}
.recruit_requirements_btn_arrow {
font-size: 18px;
}
}

.contact_main{
background: #ffffff;
padding: 80px 20px 110px;
}
.contact_page {
background: var(--color-gray);
padding: 90px 0 100px;
}
.contact_page_inner {
width: min(100%, 1000px);
margin: 0 auto;
padding: 0 20px;
}
.contact_page_tel {
max-width: 700px;
margin: 0 auto 90px;
padding: 28px 20px 24px;
background: #183b7a;
text-align: center;
color: #fff;
}
.contact_page_tel_icon {
margin-bottom: 8px;
}
.contact_page_tel_icon img {
width: 26px;
height: auto;
display: inline-block;
}
.contact_page_tel_lead {
font-size: 16px;
line-height: 1.6;
margin-bottom: 6px;
}
.contact_page_tel_number {
display: inline-block;
color: #fff;
font-size: 44px;
font-weight: 500;
line-height: 1.2;
text-decoration: none;
}
.contact_page_tel_time {
font-size: 14px;
line-height: 1.6;
margin-top: 4px;
}
.contact_page_head {
text-align: center;
margin-bottom: 34px;
}
.contact_page_title {
display: inline-block;
padding: 8px 26px;
border: 1px solid #777;
font-size: 28px;
font-weight: 700;
line-height: 1.2;
color: #111;
margin-bottom: 16px;
}
.contact_page_text {
font-size: 14px;
line-height: 1.9;
color: #222;
}
.contact_page_form {
max-width: 920px;
margin: 0 auto;
}

/* =========================
CF7
========================= */
.cf7_custom {
width: 100%;
}
.cf7_row {
display: grid;
grid-template-columns: 250px 1fr;
column-gap: 24px;
padding: 16px 0;
border-top: 1px solid #a9a9a9;
align-items: center;
}
.cf7_row:last-of-type {
border-bottom: 1px solid #a9a9a9;
}
.cf7_label_col {
min-height: 44px;
padding-left: 8px;
display: flex;
align-items: center;
}
.cf7_label_col > p {
margin: 0 !important;
width: 100%;
display: grid;
grid-template-columns: 150px 44px;
column-gap: 12px;
align-items: center;
}
.cf7_label_col > p br {
display: none;
}
.cf7_label_text {
display: block;
font-size: 16px;
line-height: 1.6;
color: #222;
white-space: nowrap;
}
.cf7_badge {
display: inline-flex;
align-items: center;
justify-content: center;
width: 38px;
height: 20px;
padding: 0;
font-size: 11px;
font-weight: 700;
line-height: 1;
color: #fff;
white-space: nowrap;
flex-shrink: 0;
}
.cf7_badge_required {
background: #caa13a;
}
.cf7_badge_optional {
background: #777;
}
.cf7_input_col {
display: flex;
align-items: center;
width: 100%;
min-width: 0;
}
.cf7_input_col > p {
margin: 0 !important;
width: 100%;
}
.cf7_input_col .wpcf7-form-control-wrap {
display: block;
width: 100%;
}
.cf7_text,
.cf7_textarea,
.cf7_input_col input[type="text"],
.cf7_input_col input[type="email"],
.cf7_input_col input[type="tel"],
.cf7_input_col textarea {
display: block;
width: 100% !important;
max-width: 100% !important;
border: none;
background: #fff;
padding: 12px 14px;
font-size: 16px;
color: #222;
box-sizing: border-box;
}
.cf7_text,
.cf7_input_col input[type="text"],
.cf7_input_col input[type="email"],
.cf7_input_col input[type="tel"] {
height: 44px;
}
.cf7_textarea,
.cf7_input_col textarea {
height: 120px;
resize: vertical;
}
.cf7_row_subject {
align-items: center;
}
.cf7_row_subject .cf7_label_col {
min-height: 44px;
}
.cf7_row_subject .cf7_input_col {
min-height: 44px;
}
.cf7_row_subject .cf7_input_col > p {
margin: 0 !important;
width: 100%;
min-height: 44px;
display: flex;
align-items: center;
}
.cf7_radio_group {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 28px;
}
.cf7_radio_group br {
display: none;
}
.cf7_radio_group .wpcf7-list-item {
margin: 0 30px 0 0;
}
.cf7_radio_group .wpcf7-list-item label {
display: inline-flex;
align-items: center;
gap: 8px;
cursor: pointer;
}
.cf7_radio_group input[type="radio"] {
margin: 0;
}
.cf7_privacy_text p {
margin: 30px 0 14px;
text-align: center;
font-size: 14px;
line-height: 1.9;
color: #222;
}
.wpcf7-list-item-label{
font-size: 16px;
}
.cf7_privacy_text a {
color: #222;
text-decoration: underline;
}
.cf7_privacy_check {
text-align: center;
font-size: 14px;
line-height: 1.8;
}
.cf7_privacy_check .wpcf7-list-item {
margin: 0;
}
.cf7_submit_wrap p {
margin-top: 28px;
text-align: center;
}
.cf7_submit {
display: inline-block;
min-width: 176px;
height: 52px;
border: none;
border-radius: 999px;
background: #16285f;
color: #fff;
font-size: 18px;
font-weight: 500;
line-height: 1;
cursor: pointer;
padding: 0 28px;
transition: opacity 0.3s;
}
.cf7_submit_wrap .wpcf7-submit,
.cf7_submit {
display: inline-block;
margin: 0 auto;
}
.cf7_submit:hover {
opacity: 0.85;
}
.wpcf7-not-valid-tip {
margin-top: 6px;
font-size: 12px;
}
.wpcf7 form .wpcf7-response-output {
margin: 24px 0 0;
padding: 12px 16px;
font-size: 14px;
}

@media (max-width: 1200px) {
.contact_page {
padding: 80px 0 90px;
}
.contact_page_tel {
max-width: 640px;
}
.contact_page_tel_number {
font-size: 38px;
}
.contact_page_title {
font-size: 24px;
}
.cf7_row {
grid-template-columns: 250px 1fr;
}
.cf7_label_text,
.cf7_text,
.cf7_textarea,
.cf7_input_col input[type="text"],
.cf7_input_col input[type="email"],
.cf7_input_col input[type="tel"],
.cf7_input_col textarea {
font-size: 15px;
}
}

@media (max-width: 768px) {
.contact_page {
padding: 60px 0 70px;
}
.contact_page_inner {
padding: 0 16px;
}
.contact_page_tel {
margin-bottom: 60px;
padding: 22px 16px 20px;
}
.contact_page_tel_number {
font-size: 30px;
}
.contact_page_tel_lead {
font-size: 14px;
}
.contact_page_tel_time {
font-size: 12px;
}
.contact_page_head {
margin-bottom: 24px;
}
.contact_page_title {
font-size: 20px;
padding: 8px 18px;
margin-bottom: 12px;
}
.contact_page_text {
font-size: 13px;
line-height: 1.8;
}
.cf7_row {
grid-template-columns: 1fr;
row-gap: 10px;
padding: 14px 0;
align-items: start;
}
.cf7_label_col {
min-height: auto;
padding-left: 0;
}
.cf7_label_col > p {
display: inline-grid;
grid-template-columns: 80% 44px;
column-gap: 8px;
align-items: center;
}
.cf7_label_text {
font-size: 14px;
}
.cf7_input_col {
width: 100%;
}
.cf7_input_col > p {
width: 100%;
}
.cf7_text,
.cf7_textarea,
.cf7_input_col input[type="text"],
.cf7_input_col input[type="email"],
.cf7_input_col input[type="tel"],
.cf7_input_col textarea {
font-size: 14px;
}
.cf7_row_subject .cf7_input_col > p {
min-height: auto;
display: block;
}
.cf7_radio_group {
display: block;
}
.cf7_radio_group .wpcf7-list-item {
display: block;
margin: 0 0 10px;
}
.cf7_privacy_text {
font-size: 13px;
text-align: left;
}
.cf7_privacy_check {
text-align: left;
font-size: 13px;
}
.cf7_submit {
min-width: 170px;
height: 48px;
font-size: 16px;
}
}

.wpcf7-spinner {
display: none !important;
}

.error-page {
padding: 60px 20px;
background: #f8f8f8;
}
.error-page_inner {
max-width: 760px;
margin: 0 auto;
padding: 80px 40px;
background: #fff;
text-align: center;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.06);
border: 1px solid #e5e5e5;
}
.error-page_subtitle {
font-size: 14px;
font-weight: 600;
letter-spacing: 0.12em;
color: #c5a03a;
margin-bottom: 18px;
}
.error-page_title {
font-size: 96px;
font-weight: 700;
line-height: 1;
color: #1f2d5a;
margin-bottom: 24px;
}
.error-page_text {
font-size: 18px;
line-height: 1.9;
color: #333;
margin-bottom: 40px;
}
.error-page_btn_wrap {
margin-top: 20px;
}
.error-page_btn {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 240px;
height: 58px;
padding: 0 28px;
border-radius: 999px;
background: #1f2d5a;
color: #fff;
font-size: 16px;
font-weight: 500;
text-decoration: none;
transition: opacity 0.3s ease;
}
.error-page_btn:hover {
opacity: 0.85;
}

@media (max-width: 1200px) {
.error-page {
padding: 100px 20px;
}
.error-page_inner {
padding: 70px 32px;
}
.error-page_title {
font-size: 80px;
}
.error-page_text {
font-size: 16px;
}
}

@media (max-width: 768px) {
.error-page {
padding: 70px 16px;
}
.error-page_inner {
padding: 50px 20px;
}
.error-page_subtitle {
font-size: 12px;
margin-bottom: 14px;
}
.error-page_title {
font-size: 64px;
margin-bottom: 18px;
}
.error-page_text {
font-size: 14px;
line-height: 1.8;
margin-bottom: 30px;
}
.error-page_btn {
min-width: 200px;
height: 50px;
font-size: 14px;
}
}

.hero_wrap .content-width{
position: relative;
max-width: 1200px;
margin: 0 auto;
padding: 60px 20px;
}
.hero_wrap h2 {
font-size: 24px !important;
padding: 20px 0;
}
.hero_wrap p {
padding: 0 0 20px 0;
}

.contact_fixed_sp{
display: none;
}

@media (max-width: 768px) {
.contact_fixed_sp {
position: fixed;
bottom: 0;
left: 0;
width: 100%;
display: flex;
z-index: 9999;
box-shadow: 0 -2px 10px rgba(0,0,0,0.1);
}
.contact_fixed_sp_item {
width: 50%;
height: 70px;
display: flex;
align-items: center;
justify-content: center;
gap: 5px;
color: #fff;
text-decoration: none;
padding: 0 5px;
box-sizing: border-box;
}
.contact_fixed_sp_item img {
width: 24px;
height: auto;
}
.contact_fixed_sp_item span {
font-size: 13px;
line-height: 1.4;
text-align: left;
}
.contact_fixed_sp_tel {
background: #2f3f78;
}
.contact_fixed_sp_mail {
background: #2f3f78;
border-left: 1px solid #fff;
}
body {
padding-bottom: 80px;
}
}

.thanks_page {
padding: 90px 0 100px;
background: #f8f8f8;
}
.thanks_page_inner {
width: min(100%, 1000px);
margin: 0 auto;
padding: 0 20px;
}
.thanks_page_box {
max-width: 760px;
margin: 0 auto;
padding: 70px 40px;
background: #fff;
text-align: center;
border: 1px solid #e5e5e5;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
}
.thanks_page_icon {
margin-bottom: 20px;
}
.thanks_page_icon img {
width: 56px;
height: auto;
display: inline-block;
}
.thanks_page_title {
font-size: 38px;
font-weight: 700;
line-height: 1.5;
color: #16285f;
margin-bottom: 24px;
}
.thanks_page_text {
font-size: 16px;
line-height: 2;
color: #222;
margin-bottom: 20px;
}
.thanks_page_note {
font-size: 14px;
line-height: 1.9;
color: #666;
margin-bottom: 36px;
}
.thanks_page_btn_wrap {
margin-top: 10px;
}
.thanks_page_btn {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 220px;
height: 54px;
padding: 0 28px;
border-radius: 999px;
background: #16285f;
color: #fff;
font-size: 16px;
font-weight: 500;
line-height: 1;
text-decoration: none;
transition: opacity 0.3s;
}
.thanks_page_btn:hover {
opacity: 0.85;
}

@media (max-width: 1200px) {
.thanks_page {
padding: 80px 0 90px;
}
.thanks_page_box {
padding: 60px 32px;
}
.thanks_page_title {
font-size: 32px;
}
.thanks_page_text {
font-size: 15px;
}
}

@media (max-width: 768px) {
.thanks_page {
padding: 60px 0 70px;
}
.thanks_page_inner {
padding: 0 16px;
}
.thanks_page_box {
padding: 44px 20px;
}
.thanks_page_icon img {
width: 44px;
}
.thanks_page_title {
font-size: 26px;
margin-bottom: 18px;
}
.thanks_page_text {
font-size: 14px;
line-height: 1.9;
margin-bottom: 16px;
}
.thanks_page_note {
font-size: 13px;
line-height: 1.8;
margin-bottom: 28px;
}
.thanks_page_btn {
min-width: 190px;
height: 48px;
font-size: 14px;
}
}