/******************************************************************
Site Name:xxxx
Author:Daiichi Printing Co.,ltd.
Stylesheet: Main Stylesheet
******************************************************************/
/*********************
IMPORTING PARTIALS
These files are needed at the beginning so that we establish all
our mixins, functions, and variables that we'll be using across
the whole project.
*********************/
/* normalize.css 2012-07-07T09:50 UTC - http://github.com/necolas/normalize.css */
/* ==========================================================================
   HTML5 display definitions
   ========================================================================== */
/**
 * Correct `block` display not defined in IE 8/9.
 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
summary {
  display: block; }

audio,
canvas,
video {
    display: inline-block; }

audio:not([controls]) {
    display: none;
    height: 0; }

[hidden],
template {
    display: none; }

/* ==========================================================================
   Base
   ========================================================================== */
@font-face { font-family: "Yu Gothic M"; src: local("Yu Gothic Medium"); }
@font-face { font-family: "Yu Gothic M"; src: local("Yu Gothic Bold"); font-weight: 700; }

html {
    font-family: -apple-system, BlinkMacSystemFont, "游ゴシック体", YuGothic, "Yu Gothic M", "游ゴシック Medium", "Yu Gothic Medium", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN W3", HiraKakuProN-W3, "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", "Helvetica Neue", HelveticaNeue, Helvetica, Arial, "Segoe UI", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
}

/**
 * Remove default margin.
 */
body {
    margin: 0;
    -webkit-text-size-adjust: 100%;
}

/* ==========================================================================
   Links
   ========================================================================== */
a {
    background: transparent; }

a:focus {
    outline: thin dotted; }

a:active,
a:hover {
    outline: 0; }

/* ==========================================================================
   Typography
   ========================================================================== */
h1 {
    margin: 0;
    padding: 0;
}

abbr[title] {
    border-bottom: 1px dotted; }

b,
strong,
.strong {
    font-weight: bold;
}

dfn,
em,
.em {
    font-style: italic;
}

hr {
    -moz-box-sizing: content-box;
    box-sizing: content-box;
    height: 0;
}

/*
 * proper formatting (http://blog.fontdeck.com/post/9037028497/hyphens)
*/
p {
    -webkit-hyphens: auto;
    -epub-hyphens: auto;
    -moz-hyphens: auto;
    hyphens: auto;
}

/*
 * Addresses margins set differently in IE6/7.
 */
pre {
    margin: 0;
}

/**
 * Correct font family set oddly in Safari 5 and Chrome.
 */
code,
kbd,
pre,
samp {
    font-family: monospace, serif;
    font-size: 1em;
}

/**
 * Improve readability of pre-formatted text in all browsers.
 */
pre {
    white-space: pre-wrap;
}

/**
 * Set consistent quote types.
 */
q {
    quotes: "\201C" "\201D" "\2018" "\2019";
}

/**
 * Address inconsistent and variable font size in all browsers.
 */
q:before,
q:after {
    content: '';
    content: none;
}

small, .small {
  font-size: 75%;
}

/**
 * Prevent `sub` and `sup` affecting `line-height` in all browsers.
 */
sub,
sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
}

sup {
    top: -0.5em;
}

sub {
    bottom: -0.25em;
}

/* ==========================================================================
  Lists
========================================================================== */
/*
 * Addresses margins set differently in IE6/7.
 */
dl,
menu,
ol,
ul {
    margin: 1em 0;
}

dd {
    margin: 0;
}

/*
 * Addresses paddings set differently in IE6/7.
 */
menu {
    padding: 0 0 0 40px;
}

ol,
ul {
    padding: 0;
    list-style-type: none;
}

/*
 * Corrects list images handled incorrectly in IE7.
 */
nav ul,
nav ol {
    list-style: none;
    list-style-image: none;
}

/* ==========================================================================
  Embedded content
========================================================================== */
/**
 * Remove border when inside `a` element in IE 8/9.
 */
img {
    border: 0;
}

  /* Responsive images */
img {
    max-width: 100%;
    height: auto;
}

/**
 * Correct overflow displayed oddly in IE 9.
 */
svg:not(:root) {
    overflow: hidden;
}


/* ==========================================================================
   Figures
   ========================================================================== */
/**
 * Address margin not present in IE 8/9 and Safari 5.
 */
figure {
    margin: 0;
}

/* ==========================================================================
   Forms
   ========================================================================== */
/**
 * Define consistent border, margin, and padding.
 */
fieldset {
    border: 1px solid #c0c0c0;
    margin: 0 2px;
    padding: 0.35em 0.625em 0.75em;
}

legend {
    border: 0;
    /* 1 */
    padding: 0;
    /* 2 */
}

button,
input,
select,
textarea {
    font-family: inherit;
    /* 1 */
    font-size: 100%;
    /* 2 */
    margin: 0;
    /* 3 */
}

/**
 * Address Firefox 4+ setting `line-height` on `input` using `!important` in
 * the UA stylesheet.
 */
button,
input {
    line-height: normal;
}

button,
select {
    text-transform: none;
}

button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
    -webkit-appearance: button;
    /* 2 */
    cursor: pointer;
    /* 3 */
}

button[disabled],
html input[disabled] {
    cursor: default;
}

input[type="checkbox"],
input[type="radio"] {
    box-sizing: border-box;
    /* 1 */
    padding: 0;
    /* 2 */
}

input[type="search"] {
    -webkit-appearance: textfield;
    /* 1 */
    -moz-box-sizing: content-box;
    -webkit-box-sizing: content-box;
    /* 2 */
    box-sizing: content-box;
}

input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
    -webkit-appearance: none;
}

button::-moz-focus-inner,
input::-moz-focus-inner {
    border: 0;
    padding: 0;
}

textarea {
    overflow: auto;
    /* 1 */
    vertical-align: top;
    /* 2 */
}

/* ==========================================================================
   Tables
   ========================================================================== */
/**
 * Remove most spacing between table cells.
 */
table {
    border-collapse: collapse;
    border-spacing: 0;
}

* {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}

.image-replacement,
.ir {
    text-indent: 100%;
    white-space: nowrap;
    overflow: hidden;
}

.clearfix, .cf, .comment-respond {
    zoom: 1;
}
.clearfix:before, .clearfix:after, .cf:before, .comment-respond:before, .cf:after, .comment-respond:after {
    content: "";
    display: table;
}
.clearfix:after, .cf:after, .comment-respond:after {
    clear: both;
}
.clear {
    clear: both;
}
.clear hr {
    display: none;
}
/*
use the best ampersand
http://simplebits.com/notebook/2008/08/14/ampersands-2/
*/
span.amp {
    font-family: Baskerville,'Goudy Old Style',Palatino,'Book Antiqua',serif !important;
    font-style: italic;
}

p {
    -ms-word-break: break-all;
    -ms-word-wrap: break-all;
    word-break: break-word;
    word-break: break-word;
    -webkit-hyphens: auto;
    -moz-hyphens: auto;
    hyphens: auto;
    -webkit-hyphenate-before: 2;
    -webkit-hyphenate-after: 3;
    hyphenate-lines: 3;
}

.last-col {
    float: right;
    padding-right: 0 !important;
}

/*

/*********************
IMPORTING MODULES
Modules are reusable blocks or elements we use throughout the project.
We can break them up as much as we want or just keep them all in one.
I mean, you can do whatever you want. The world is your oyster. Unless
you hate oysters, then the world is your peanut butter & jelly sandwich.
*********************/
.alert-help, .alert-info, .alert-error, .alert-success {
    margin: 10px;
    padding: 5px 18px;
    border: 1px solid;
}

.alert-help {
    border-color: #e8dc59;
    background: #ebe16f;
}

.alert-info {
    border-color: #bfe4f4;
    background: #d5edf8;
}

.alert-error {
    border-color: #f8cdce;
    background: #fbe3e4;
}

.alert-success {
    border-color: #deeaae;
    background: #e6efc2;
}

/*********************
BUTTON DEFAULTS
We're gonna use a placeholder selector here
so we can use common styles. We then use this
to load up the defaults in all our buttons.

Here's a quick video to show how it works:
http://www.youtube.com/watch?v=hwdVpKiJzac

*********************/
.blue-btn, .comment-reply-link, #submit {
    display: inline-block;
    position: relative;
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    text-decoration: none;
    color: white;
    font-size: 0.9em;
    font-size: 34px;
    line-height: 34px;
    font-weight: normal;
    padding: 0 24px;
    border-radius: 4px;
    border: 0;
    cursor: pointer;
    -webkit-transition: background-color 0.14s ease-in-out;
    transition: background-color 0.14s ease-in-out;
}
.blue-btn:hover, .comment-reply-link:hover, #submit:hover, .blue-btn:focus, .comment-reply-link:focus, #submit:focus {
    color: white;
    text-decoration: none;
}
.blue-btn:active, .comment-reply-link:active, #submit:active {
    top: 1px;
}

.blue-btn, .comment-reply-link, #submit {
    background-color: #2980b9;
}
.blue-btn:hover, .comment-reply-link:hover, #submit:hover, .blue-btn:focus, .comment-reply-link:focus, #submit:focus {
    background-color: #2574a8;
}
.blue-btn:active, .comment-reply-link:active, #submit:active {
    background-color: #2472a4;
}

/*********************
INPUTS
*********************/
input[type="text"],
input[type="password"],
input[type="datetime"],
input[type="datetime-local"],
input[type="date"],
input[type="month"],
input[type="time"],
input[type="week"],
input[type="number"],
input[type="email"],
input[type="url"],
input[type="search"],
input[type="tel"],
input[type="color"],
select,
textarea,
.field {
    display: block;
    height: 40px;
    line-height: 40px;
    padding: 0 12px;
    margin-bottom: 14px;
    font-size: 1em;
    color: #5c6b80;
    border-radius: 3px;
    vertical-align: middle;
    box-shadow: none;
    border: 0;
    width: 100%;
    max-width: 400px;
    font-family: "Lato", "Helvetica Neue", Helvetica, Arial, sans-serif;
    background-color: #eaedf2;
    -webkit-transition: background-color 0.24s ease-in-out;
    transition: background-color 0.24s ease-in-out;
}

input[type="text"]:focus, input[type="text"]:active,
input[type="password"]:focus,
input[type="password"]:active,
input[type="datetime"]:focus,
input[type="datetime"]:active,
input[type="datetime-local"]:focus,
input[type="datetime-local"]:active,
input[type="date"]:focus,
input[type="date"]:active,
input[type="month"]:focus,
input[type="month"]:active,
input[type="time"]:focus,
input[type="time"]:active,
input[type="week"]:focus,
input[type="week"]:active,
input[type="number"]:focus,
input[type="number"]:active,
input[type="email"]:focus,
input[type="email"]:active,
input[type="url"]:focus,
input[type="url"]:active,
input[type="search"]:focus,
input[type="search"]:active,
input[type="tel"]:focus,
input[type="tel"]:active,
input[type="color"]:focus,
input[type="color"]:active,
select:focus,
select:active,
textarea:focus,
textarea:active,
.field:focus,
.field:active {
    background-color: #f7f8fa;
}

input[type="text"].error, input[type="text"].is-invalid,
input[type="password"].error,
input[type="password"].is-invalid,
input[type="datetime"].error,
input[type="datetime"].is-invalid,
input[type="datetime-local"].error,
input[type="datetime-local"].is-invalid,
input[type="date"].error,
input[type="date"].is-invalid,
input[type="month"].error,
input[type="month"].is-invalid,
input[type="time"].error,
input[type="time"].is-invalid,
input[type="week"].error,
input[type="week"].is-invalid,
input[type="number"].error,
input[type="number"].is-invalid,
input[type="email"].error,
input[type="email"].is-invalid,
input[type="url"].error,
input[type="url"].is-invalid,
input[type="search"].error,
input[type="search"].is-invalid,
input[type="tel"].error,
input[type="tel"].is-invalid,
input[type="color"].error,
input[type="color"].is-invalid,
select.error,
select.is-invalid,
textarea.error,
textarea.is-invalid,
.field.error,
.field.is-invalid {
    color: #fbe3e4;
    border-color: #fbe3e4;
    background-color: white;
    background-position: 99% center;
    background-repeat: no-repeat;
    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2NDM0NDREQkYwNEIxMUUyOTI4REZGQTEzMzA2MDcyNiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2NDM0NDREQ0YwNEIxMUUyOTI4REZGQTEzMzA2MDcyNiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjQ3ODRGRkE2RjA0QTExRTI5MjhERkZBMTMzMDYwNzI2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjY0MzQ0NERBRjA0QjExRTI5MjhERkZBMTMzMDYwNzI2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+U8iT5wAAAedJREFUeNqk1U9I02Ecx/HtV3aIFAc1hcRDUoGXRAq0oNLA2CrsEFmHbikZu0iQYIFGYAiegkCpLipBxPpDEBMUzB0EhSG2LhG7hMR2GviPgUTvB57Bw8P3+U23B16HPX8+e/b8nt93wezZSMCnhXETF3AcB5BDCnH8Dq98ExcGHcFn8Ah3cdDni+fxnPDv9oAnTB7CKu6VCFXtChZy56LxUjt+jfuB8toSOth9wd7xWAWhqrUjYR/FRTwWJm+iIPT/w7bQf5ljiZnBg45dtKFX6H+LU8gIY8OEV6vgTkStwXWE8BPTGDHGPqNPz2mCfSOOYkA99TvCt1bhGPL68zMcwmncMuape10jrI+q4BbHi/FLn31S9z2x5tRhTc+1W506ipM+T3oRD4X+8+qtc4SqFvL0z/Fr14S+Szjis8bz9Lvvaq8cwS/wwGfdlqfPSWqTiFlX77o13u9Ym1PBs8JAytpRoy44X9Ft9E/gvbA+rYKn8NcaaMVc8UHgBw4b9/iqUQZ6hOAJFbyDcUflmsEX4a6+wTtHGfhAIUqa1U29Zc2BytouThD8x6xuN5CtMPi2CrXLZkZf/HyZoRFCP7n+QVR4PV7uI/AjGghN7OU/r1ilnqILtfpNC+o6vIFljBKYlhb/F2AAgaBsWR5wRiIAAAAASUVORK5CYII=);
    outline-color: #fbe3e4;
}

input[type="text"].success, input[type="text"].is-valid,
input[type="password"].success,
input[type="password"].is-valid,
input[type="datetime"].success,
input[type="datetime"].is-valid,
input[type="datetime-local"].success,
input[type="datetime-local"].is-valid,
input[type="date"].success,
input[type="date"].is-valid,
input[type="month"].success,
input[type="month"].is-valid,
input[type="time"].success,
input[type="time"].is-valid,
input[type="week"].success,
input[type="week"].is-valid,
input[type="number"].success,
input[type="number"].is-valid,
input[type="email"].success,
input[type="email"].is-valid,
input[type="url"].success,
input[type="url"].is-valid,
input[type="search"].success,
input[type="search"].is-valid,
input[type="tel"].success,
input[type="tel"].is-valid,
input[type="color"].success,
input[type="color"].is-valid,
select.success,
select.is-valid,
textarea.success,
textarea.is-valid,
.field.success,
.field.is-valid {
    color: #e6efc2;
    border-color: #e6efc2;
    background-color: white;
    background-position: 99% center;
    background-repeat: no-repeat;
    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2NDM0NDRERkYwNEIxMUUyOTI4REZGQTEzMzA2MDcyNiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2NDM0NDRFMEYwNEIxMUUyOTI4REZGQTEzMzA2MDcyNiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjY0MzQ0NERERjA0QjExRTI5MjhERkZBMTMzMDYwNzI2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjY0MzQ0NERFRjA0QjExRTI5MjhERkZBMTMzMDYwNzI2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+7olkTQAAAfhJREFUeNqklU9oE0EUhzdroWjw0tBeWlDxkEaIp55TsCU9VKIgCrHBelA8CQ1Kr1WPbZrQ3gqtQqvGqxpQc2jBk6BIIaAGD4qNCKURpDSKiPi98gLDsJt//uBjsztvfnk7895sIPAw6/joGMThFJyAXn2+A+9gA57/TaY/eU0OeBgfhGm4DiGnsb7DAszxBz/NAdcKjMJLuNWCqagHbsscN5+L+hmH4QkMOe1L5jzFfNA2PgT34ajTuY7AGuZB0/hmh5m+gS0r8xv1zRvg+gGCHZiOwnF4DP3iB3sQkYxPd2C6CWfhB9Xwlus5+K1j4jXuaq3a+gM1H9OPcAa+7q9lPidZJqHbiIm7Wg22rsEI7FrPSzAMX/T+ADyAKSsu7Fr1KplehLvwCs5DvfBf65p+MypqRbO1FXK9utH4/QKuaqYTsG3E3INJv00Q46px3+XxanJ/Ute2/vqP4FKDza2KcdljIKdnhS0xXYULTaqmLMZFn8FFSFtvt6x70ExFCS5oUXspq2ssa7oEl1swFa+CGFdgtkHgPDyDKy02zyxNU6lXRUZb1EuHYayNNs+Yh5B0WQo+/8fpJnNTZFuzz2OpjoQ2QruSOQlMy35fEGmEGMxY9e1brxobw7TkWA1h6xfckUPb+JhGoE/Hpfvew7qUld/H9J8AAwDpw3WYrxcZ3QAAAABJRU5ErkJggg==);
    outline-color: #e6efc2;
}

input[type="text"][disabled], input[type="text"].is-disabled,
input[type="password"][disabled],
input[type="password"].is-disabled,
input[type="datetime"][disabled],
input[type="datetime"].is-disabled,
input[type="datetime-local"][disabled],
input[type="datetime-local"].is-disabled,
input[type="date"][disabled],
input[type="date"].is-disabled,
input[type="month"][disabled],
input[type="month"].is-disabled,
input[type="time"][disabled],
input[type="time"].is-disabled,
input[type="week"][disabled],
input[type="week"].is-disabled,
input[type="number"][disabled],
input[type="number"].is-disabled,
input[type="email"][disabled],
input[type="email"].is-disabled,
input[type="url"][disabled],
input[type="url"].is-disabled,
input[type="search"][disabled],
input[type="search"].is-disabled,
input[type="tel"][disabled],
input[type="tel"].is-disabled,
input[type="color"][disabled],
input[type="color"].is-disabled,
select[disabled],
select.is-disabled,
textarea[disabled],
textarea.is-disabled,
.field[disabled],
.field.is-disabled {
    cursor: not-allowed;
    border-color: #cfcfcf;
    opacity: 0.6;
}

input[type="text"][disabled]:focus, input[type="text"][disabled]:active, input[type="text"].is-disabled:focus, input[type="text"].is-disabled:active,
input[type="password"][disabled]:focus,
input[type="password"][disabled]:active,
input[type="password"].is-disabled:focus,
input[type="password"].is-disabled:active,
input[type="datetime"][disabled]:focus,
input[type="datetime"][disabled]:active,
input[type="datetime"].is-disabled:focus,
input[type="datetime"].is-disabled:active,
input[type="datetime-local"][disabled]:focus,
input[type="datetime-local"][disabled]:active,
input[type="datetime-local"].is-disabled:focus,
input[type="datetime-local"].is-disabled:active,
input[type="date"][disabled]:focus,
input[type="date"][disabled]:active,
input[type="date"].is-disabled:focus,
input[type="date"].is-disabled:active,
input[type="month"][disabled]:focus,
input[type="month"][disabled]:active,
input[type="month"].is-disabled:focus,
input[type="month"].is-disabled:active,
input[type="time"][disabled]:focus,
input[type="time"][disabled]:active,
input[type="time"].is-disabled:focus,
input[type="time"].is-disabled:active,
input[type="week"][disabled]:focus,
input[type="week"][disabled]:active,
input[type="week"].is-disabled:focus,
input[type="week"].is-disabled:active,
input[type="number"][disabled]:focus,
input[type="number"][disabled]:active,
input[type="number"].is-disabled:focus,
input[type="number"].is-disabled:active,
input[type="email"][disabled]:focus,
input[type="email"][disabled]:active,
input[type="email"].is-disabled:focus,
input[type="email"].is-disabled:active,
input[type="url"][disabled]:focus,
input[type="url"][disabled]:active,
input[type="url"].is-disabled:focus,
input[type="url"].is-disabled:active,
input[type="search"][disabled]:focus,
input[type="search"][disabled]:active,
input[type="search"].is-disabled:focus,
input[type="search"].is-disabled:active,
input[type="tel"][disabled]:focus,
input[type="tel"][disabled]:active,
input[type="tel"].is-disabled:focus,
input[type="tel"].is-disabled:active,
input[type="color"][disabled]:focus,
input[type="color"][disabled]:active,
input[type="color"].is-disabled:focus,
input[type="color"].is-disabled:active,
select[disabled]:focus,
select[disabled]:active,
select.is-disabled:focus,
select.is-disabled:active,
textarea[disabled]:focus,
textarea[disabled]:active,
textarea.is-disabled:focus,
textarea.is-disabled:active,
.field[disabled]:focus,
.field[disabled]:active,
.field.is-disabled:focus,
.field.is-disabled:active {
    background-color: #d5edf8;
}

input[type="password"] {
    letter-spacing: 0.3em;
}

textarea {
    max-width: 100%;
    min-height: 120px;
    line-height: 1.5em;
}

select {
    -webkit-appearance: none;
    /* 1 */
    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAHCAYAAADXhRcnAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpEOEZCMjYxMEYwNUUxMUUyOTI4REZGQTEzMzA2MDcyNiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpEOEZCMjYxMUYwNUUxMUUyOTI4REZGQTEzMzA2MDcyNiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkQ4RkIyNjBFRjA1RTExRTI5MjhERkZBMTMzMDYwNzI2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkQ4RkIyNjBGRjA1RTExRTI5MjhERkZBMTMzMDYwNzI2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Vxkp9gAAAI9JREFUeNpidHFxucHAwKAOxE+AmJmBMPgLxDJAfJMFSKwD4kqoAClgA+P///8ZXF1dPaCGcBKh6QcQB+3evXs7WDMIAA2QB1I7gFgDj0aQFz2BGh+AOEwwUaDAQyBlCMR7cGjcC5KHaQQBuM3IAOiKTiBVhiTUDdRUhq4Oq2aoAelAahIQ5wM1zsCmBiDAADhYMJXVZ9u9AAAAAElFTkSuQmCC);
    background-repeat: no-repeat;
    background-position: 97.5% center;
}

/*********************
GENERAL STYLES
*********************/
body {
    font-family: -apple-system, BlinkMacSystemFont, "游ゴシック体", YuGothic, "Yu Gothic M", "游ゴシック Medium", "Yu Gothic Medium", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN W3", HiraKakuProN-W3, "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", "Helvetica Neue", HelveticaNeue, Helvetica, Arial, "Segoe UI", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    font-size: 100%;
    line-height: 1.5;
    color: #000;
    background-color: #fff;
    word-wrap: break-word;
    -webkit-font-smoothing: antialiased;
}

.center {
    margin: 0 auto;
    text-align: center;
}

p {
    margin: 0;
    padding: 0;
}
/* Font Styles
----------------------------------------------- */
.bold {
    font-weight: bold;
}

.f110percent {
    font-size: 110%;
}

.f120percent {
    font-size: 120%;
}

.f130percent {
    font-size: 130%;
}

.f140percent {
    font-size: 140%;
}

/*********************
HIDDEN STYLES
*********************/
.hidden {
    display: none;
}

@media all and (max-width: 599px) {
  .sp-hidden {
    display: none;
  }
}

@media all and (min-width: 600px) {
  .sp-only {
    display: none;
  }
}

@media all and (min-width: 960px) {
  .pc-hidden {
    display: none;
  }
}

@media all and (max-width: 960px) {
  .pc-only {
    display: none;
  }
}

/*********************
IMAGE EFFECT
*********************/
.fade {
    -webkit-transition: 0.3s ease-in-out;
    -moz-transition: 0.3s ease-in-out;
    -o-transition: 0.3s ease-in-out;
    transition: 0.3s ease-in-out;
}
.fade:hover {
    opacity: 0.4;
    filter: alpha(opacity=60);
}

/*********************
Block Reveal Effects
*********************/
.block-revealer__element {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #000;
    pointer-events: none;
    opacity: 0;
}

/*********************
WORD STYLES
*********************/
.wordBreakAll { word-break: break-all; }

/*********************
LAYOUT & GRID STYLES
*********************/
#container {
    width: 100%;
    margin: 0 auto;
    padding: 0;
    overflow: hidden;
}

.wrap {
    width: auto;
    margin: 0 auto;
    padding: 0;
}

#main {
    width: auto;
    margin: 0 auto;
    padding: 0;
}

/*********************
LINK STYLES
*********************/
a, a:visited {
    color: #333;
    /* on hover */
    /* on click */
    /* mobile tap color */ }
a:hover, a:focus, a:visited:hover, a:visited:focus {
    color: #333; }
a:link, a:visited:link {
    /*
    this highlights links on iPhones/iPads.
    so it basically works like the :hover selector
    for mobile devices.
    */
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0.3);
}

/******************************************************************
H1, H2, H3, H4, H5 STYLES
******************************************************************/
h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5 {
    text-rendering: optimizelegibility;
    font-weight: 500;
    /*
    if you're going to use webfonts, be sure to check your weights
    http://css-tricks.com/watch-your-font-weight/
    */
    /* removing text decoration from all headline links */ }
h1 a, .h1 a, h2 a, .h2 a, h3 a, .h3 a, h4 a, .h4 a, h5 a, .h5 a {
    text-decoration: none; }

h1, .h1 {
    font-size: 2.5em;
    line-height: 1.333em;
}

h2, .h2 {
    font-size: 1.75em;
    line-height: 1.4em;
    margin-bottom: 0.375em;
}

h3, .h3 {
    font-size: 1.125em;
}

h4, .h4 {
    font-size: 1.1em;
    font-weight: 700;
}

h5, .h5 {
    font-size: 0.846em;
    line-height: 2.09em;
    text-transform: uppercase;
    letter-spacing: 2px;
}

/*********************
HEADER STYLES
*********************/
.header {

}

#logo {
    margin: 0;
    padding: 0;
}

/*********************
MAINNAVI STYLES
*********************/

/*********************
COMMON STYLE
*********************/
/* wrap
----------------------------------------------- */
.common_wrap1 {
    width: 100%;
    margin: 0;
    padding: 0;
}

/* inner
----------------------------------------------- */
.inner1210 {
    width: 100%;
    max-width: 1210px;
    margin: 0 auto;
}

.inner1024 {
    width: 100%;
    max-width: 1024px;
    margin: 0 auto;
}

/* padding
----------------------------------------------- */
.pt0 {
    padding-top: 0 !important;
}

.pt10 {
    padding-top: 10px !important;
}

.pt20 {
    padding-top: 20px !important;
}

.pt30 {
    padding-top: 30px !important;
}

.pt40 {
    padding-top: 40px !important;
}

.pt50 {
    padding-top: 50px !important;
}

.pt60 {
    padding-top: 60px !important;
}

.pb0 {
    padding-bottom: 0 !important;
}

.pb10 {
    padding-bottom: 10px !important;
}

.pb20 {
    padding-bottom: 20px !important;
}

.pb30 {
    padding-bottom: 30px !important;
}

.pb40 {
    padding-bottom: 40px !important;
}

.pb50 {
    padding-bottom: 50px !important;
}

.pb60 {
    padding-bottom: 60px !important;
}

.ptb0 {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.ptb10 {
    padding-top: 10px !important;
    padding-bottom: 10px !important;
}

.ptb15 {
    padding-top: 15px !important;
    padding-bottom: 15px !important;
}

.ptb20 {
    padding-top: 20px !important;
    padding-bottom: 20px !important;
}

.ptb30 {
    padding-top: 30px !important;
    padding-bottom: 30px !important;
}

.ptb40 {
    padding-top: 40px !important;
    padding-bottom: 40px !important;
}

.ptb50 {
    padding-top: 50px !important;
    padding-bottom: 50px !important;
}

.ptb60 {
    padding-top: 60px !important;
    padding-bottom: 60px !important;
}

.ptb70 {
    padding-top: 70px !important;
    padding-bottom: 70px !important;
}

.ptb80 {
    padding-top: 80px !important;
    padding-bottom: 80px !important;
}

.ptb90 {
    padding-top: 90px !important;
    padding-bottom: 90px !important;
}

.ptb100 {
    padding-top: 100px !important;
    padding-bottom: 100px !important;
}

.plr10 {
    padding-left: 10px !important;
    padding-right: 10px !important;
}

.plr15 {
    padding-left: 15px !important;
    padding-right: 15px !important;
}

.plr20 {
    padding-left: 20px !important;
    padding-right: 20px !important;
}


/* margin
----------------------------------------------- */
.mtb10 {
    margin-top: 10px !important;
    margin-bottom: 10px !important;
}

.mtb20 {
    margin-top: 20px !important;
    margin-bottom: 20px !important;
}

.mtb30 {
    margin-top: 30px !important;
    margin-bottom: 30px !important;
}

.mtb40 {
    margin-top: 40px !important;
    margin-bottom: 40px !important;
}

.mtb50 {
    margin-top: 50px !important;
    margin-bottom: 50px !important;
}

.mtb60 {
    margin-top: 60px !important;
    margin-bottom: 60px !important;
}

.mtb70 {
    margin-top: 70px !important;
    margin-bottom: 70px !important;
}

.mtb80 {
    margin-top: 80px !important;
    margin-bottom: 80px !important;
}

.mtb90 {
    margin-top: 90px !important;
    margin-bottom: 90px !important;
}

.mtb100 {
    margin-top: 100px !important;
    margin-bottom: 100px !important;
}

.mt10 {
    margin-top: 10px !important;
}

.mt20 {
    margin-top: 20px !important;
}

.mt30 {
    margin-top: 30px !important;
}

.mt40 {
    margin-top: 40px !important;
}

.mt50 {
    margin-top: 50px !important;
}

.mt60 {
    margin-top: 60px !important;
}

.mt70 {
    margin-top: 70px !important;
}

.mt80 {
    margin-top: 80px !important;
}

.mt90 {
    margin-top: 90px !important;
}

.mt100 {
    margin-top: 100px !important;
}

.mb10 {
    margin-bottom: 10px !important;
}

.mb20 {
    margin-bottom: 20px !important;
}

.mb30 {
    margin-bottom: 30px !important;
}
.mb40 {
    margin-bottom: 40px !important;
}

.mb50 {
    margin-bottom: 50px !important;
}

.mb60 {
    margin-bottom: 60px !important;
}
.mb70 {
    margin-bottom: 70px !important;
}

.mb80 {
    margin-bottom: 80px !important;
}

.mb90 {
    margin-bottom: 90px !important;
}

.mb100 {
    margin-bottom: 100px !important;
}

/* flexbox
----------------------------------------------- */
.flex_reverse {
    flex-direction: row-reverse;
}

/* position
----------------------------------------------- */
.position_absolute {
    position: absolute;
}

.position_relative {
    position: relative;
}

.position_fixed {
    position: fixed;
}

/*********************
TOP PAGE
*********************/


/*********************
NAVIGATION STYLES
*********************/
/*
all navs have a .nav class applied via
the wp_menu function; this is so we can
easily write one group of styles for
the navs on the site so our css is cleaner
and more scalable.
*/
.nav {
    border-bottom: 0;
    margin: 0;
    /* end .menu li */
    /* highlight current page */
    /* end current highlighters */ }
.nav li {
    /*
    so you really have to rethink your dropdowns for mobile.
    you don't want to have it expand too much because the
    screen is so small. How you manage your menu should
    depend on the project. Here's some great info on it:
    http://www.alistapart.com/articles/organizing-mobile/
    */ }
.nav li a {
    display: block;
    color: white;
    text-decoration: none;
    padding: 0.75em;
    /*
    remember this is for mobile ONLY, so there's no need
    to even declare hover styles here, you can do it in
    the style.scss file where it's relevant. We want to
    keep this file as small as possible!
    */
}
.nav li ul.sub-menu li a,
.nav li ul.children li a {
    padding-left: 30px;
}

/* end .nav */
/*********************
POSTS & CONTENT STYLES
*********************/
#content {
    margin: 0;
    padding: 0;
}

.hentry {}
.hentry header {
    padding: 0; }

.hentry footer {}

.hentry footer p {
    margin: 0;
}

/* end .hentry */
.single-title,
.page-title,
.entry-title {
    margin: 0; }

/* want to style individual post classes? Booya! */
/* post by id (i.e. post-3) */
/* general post style */
/* general article on a page style */
/* general style on an attatchment */
/* sticky post style */
/* hentry class */
/* style by category (i.e. category-videos) */
/* style by tag (i.e. tag-news) */
/* post meta */
.byline {
    color: #9fa6b4;
    margin: 0;
}

/* entry content */
.entry-content {
    padding: 0;
    /*
    image alignment on a screen this size may be
    a bit difficult. It's set to start aligning
    and floating images at the next breakpoint,
    but it's up to you. Feel free to change it up.
    */
}

.entry-content p {
    margin: 0;
}

.entry-content table {
    width: 100%;
}
.entry-content table caption {
    margin: 0;
    font-size: 0.75em;
    color: #9fa6b4;
    text-transform: uppercase;
    letter-spacing: 1px;
}
.entry-content tr {
    border-bottom: 1px solid #eaedf2;
}
.entry-content tr:nth-child(even) {
    background-color: #f8f9fa;
}
.entry-content td {
    padding: 7px;
    border-right: 1px solid #eaedf2;
}
.entry-content td:last-child {
    border-right: 0;
}
.entry-content th {
    background-color: #f8f9fa;
    border-bottom: 1px solid #eaedf2;
    border-right: 1px solid #eaedf2;
}
.entry-content th:last-child {
    border-right: 0;
}
.entry-content blockquote {
    margin: 0 0 1.5em 0.75em;
    padding: 0 0 0 0.75em;
    border-left: 3px solid #2980b9;
    font-style: italic;
    color: #9fa6b4;
}
.entry-content dd {
    margin-left: 0;
    font-size: 0.9em;
    color: #787878;
    margin-bottom: 1.5em;
}
.entry-content img {
    margin: 0;
    max-width: 100%;
    height: auto;
}
.entry-content .size-auto,
.entry-content .size-full,
.entry-content .size-large,
.entry-content .size-medium,
.entry-content .size-thumbnail {
    max-width: 100%;
    height: auto;
}
.entry-content pre {
    background: #323944;
    color: #f8f9fa;
    font-size: 0.9em;
    padding: 1.5em;
    margin: 0 0 1.5em;
    border-radius: 3px;
}

/* end .entry-content */
.wp-caption {
    max-width: 100%;
    background: #eee;
    padding: 5px;
    /* images inside wp-caption */
}
.wp-caption img {
    max-width: 100%;
    margin-bottom: 0;
    width: 100%;
}
.wp-caption p.wp-caption-text {
    font-size: 0.85em;
    margin: 4px 0 7px;
    text-align: center;
}

/* end .wp-caption */
/* image gallery styles */
/* end .gallery */
/* gallery caption styles */
.tags {
    margin: 0;
}



/******************************************************************
PAGE NAVI STYLES
******************************************************************/
.pagination,
.wp-prev-next {
    margin: 1.5em 0;
}

.pagination {
    text-align: center;
}
.pagination ul {
    display: inline-block;
    background-color: white;
    white-space: nowrap;
    padding: 0;
    clear: both;
    border-radius: 3px;
}
.pagination li {
    padding: 0;
    margin: 0;
    float: left;
    display: inline;
    overflow: hidden;
    border-right: 1px solid #eaedf2;
}
.pagination a, .pagination span {
    margin: 0;
    text-decoration: none;
    padding: 0;
    line-height: 1em;
    font-size: 1em;
    font-weight: normal;
    padding: 0.75em;
    min-width: 1em;
    display: block;
    color: #2980b9;
}
.pagination a:hover, .pagination a:focus, .pagination span:hover, .pagination span:focus {
    background-color: #2980b9;
    color: white;
}
.pagination .current {
    cursor: default;
    color: #5c6b80;
}
.pagination .current:hover, .pagination .current:focus {
    background-color: white;
    color: #5c6b80;
}

/* end .bones_page_navi */
/* fallback previous & next links */
.wp-prev-next .prev-link {
    float: left;
}
.wp-prev-next .next-link {
    float: right;
}

/* end .wp-prev-next */
/******************************************************************
COMMENT STYLES
******************************************************************/
/* h3 comment title */
#comments-title {
    padding: 0.75em;
    margin: 0;
    border-top: 1px solid #f8f9fa;
    /* number of comments span */
}

.commentlist {
    margin: 0;
    ist-style-type: none;
}

.comment {
    position: relative;
    clear: both;
    overflow: hidden;
    padding: 1.5em;
    border-bottom: 1px solid #f8f9fa;
    /* vcard */
    /* end .commentlist .vcard */
    /* end children */
    /* general comment classes */
}
.comment .comment-author {
    padding: 7px;
    border: 0;
}
.comment .vcard {
    margin-left: 50px;
}
.comment .vcard cite.fn {
    font-weight: 700;
    font-style: normal;
}
.comment .vcard time {
    display: block;
    font-size: 0.9em;
    font-style: italic;
}
.comment .vcard time a {
    color: #9fa6b4;
    text-decoration: none;
}
.comment .vcard time a:hover {
    text-decoration: underline;
}
.comment .vcard .avatar {
    position: absolute;
    left: 16px;
    border-radius: 50%;
}
.comment:last-child {
    margin-bottom: 0;
}
.comment .children {
    margin: 0;
    /* variations */
    /* change number for different depth */
}
.comment[class*=depth-] {
    margin-top: 1.1em;
}
.comment.depth-1 {
    margin-left: 0;
    margin-top: 0;
}
.comment:not(.depth-1) {
    margin-top: 0;
    margin-left: 7px;
    padding: 7px;
}
.comment.odd {
    background-color: white;
}
.comment.even {
    background: #f8f9fa;
}

/* comment meta */
/* comment content */
.comment_content p {
    margin: 0.7335em 0 1.5em;
    font-size: 1em;
    line-height: 1.5em;
}

/* end .commentlist .comment_content */
/* comment reply link */
.comment-reply-link {
    font-size: 0.9em;
    float: right;
}

/* end .commentlist .comment-reply-link */
/* edit comment link */
.comment-edit-link {
    font-style: italic;
    margin: 0 7px;
    text-decoration: none;
    font-size: 0.9em;
}

/******************************************************************
COMMENT FORM STYLES
******************************************************************/
.comment-respond {
    padding: 1.5em;
    border-top: 1px solid #f8f9fa;
}

#reply-title {
    margin: 0;
}

.logged-in-as {
    color: #9fa6b4;
    font-style: italic;
    margin: 0;
}
.logged-in-as a {
    color: #5c6b80;
}

.comment-form-comment {
  margin: 1.5em 0 0.75em; }

.form-allowed-tags {
    padding: 1.5em;
    background-color: #f8f9fa;
    font-size: 0.9em;
}

/* comment submit button */
#submit {
  float: right;
  font-size: 1em;
}

/* comment form title */
#comment-form-title {
    margin: 0 0 1.1em;
}

/* cancel comment reply link */
/* logged in comments */
/* allowed tags */
#allowed_tags {
    margin: 1.5em 10px 0.7335em 0;
}

/* no comments */
.nocomments {
    margin: 0 20px 1.1em;
}

/*********************
SIDEBARS & ASIDES
*********************/
.widget {
    margin: 0;
    padding: 0;
}

.widget ul li {
  /* deep nesting */ }

.no-widgets {
    background-color: white;
    padding: 1.5em;
    text-align: center;
    border: 1px solid #cccccc;
    border-radius: 2px;
    margin-bottom: 1.5em;
}

/*********************
FOOTER STYLES
*********************/

/*********************

/*********************
PARTS
*********************/

/* Buttons


/*********************
select custom
*********************/
select {
    -moz-appearance: none;
    text-indent: 0.01px;
    text-overflow: '';
}

select::-ms-expand {
    display: none;
}

/*********************
PRINT STYLESHEET
Feel free to customize this. Remember to add things that won't make
sense to print at the bottom. Things like nav, ads, and forms should
be set to display none.
*********************/
@media print {
  /******************************************************************
  Site Name:
  Author:

  Stylesheet: Print Stylesheet

  This is the print stylesheet. There's probably not a lot
  of reasons to edit this stylesheet. If you want to
  though, go for it.

  ******************************************************************/
  * {
    background: transparent !important;
    color: black !important;
    text-shadow: none !important;
    filter: none !important;
    -ms-filter: none !important; }

  a, a:visited {
    color: #444 !important;
    text-decoration: underline; }
    a:after, a:visited:after {
      content: " (" attr(href) ")"; }
    a abbr[title]:after, a:visited abbr[title]:after {
      content: " (" attr(title) ")"; }

  .ir a:after,
  a[href^="javascript:"]:after,
  a[href^="#"]:after {
    content: ""; }

  pre, blockquote {
    border: 1px solid #999;
    page-break-inside: avoid; }

  thead {
    display: table-header-group; }

  tr, img {
    page-break-inside: avoid; }

  img {
    max-width: 100% !important; }

  @page {
    margin: 0.5cm; }
  p, h2, h3 {
    orphans: 3;
    widows: 3; }

  h2,
  h3 {
    page-break-after: avoid; }

  .sidebar,
  .page-navigation,
  .wp-prev-next,
  .respond-form,
  nav {
    display: none; } }

/*********************
HEADER / MAIN VISUAL
*********************/

/* Header
----------------------------------------------- */
.header {
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    z-index: 1000;
    width: 100%;
    background-color: transparent;
    transition: background-color .5s ease, box-shadow .5s ease;
}

.admin-bar .header {
    top: 32px;
}

.header.is-scrolled,
body:not(.home) .header {
    background-color: #fff;
    box-shadow: 0 4px 16px rgba(0, 0, 0, .12);
}

.header_inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
    padding: 32px 24px;
}

.header_logo {
    position: relative;
    z-index: 2;
    flex-shrink: 0;
    margin: 0;
    padding: 0;
    font-size: inherit;
    line-height: inherit;
}

.header_logo a {
    position: relative;
    display: block;
}

.header_logo_image {
    display: block;
    width: 320px;
    max-width: 100%;
    height: auto;
    transition: opacity .5s ease;
}

.header_logo_image_dark {
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0;
}

.header.is-scrolled .header_logo_image_white,
body:not(.home) .header_logo_image_white {
    opacity: 0;
}

.header.is-scrolled .header_logo_image_dark,
body:not(.home) .header_logo_image_dark {
    opacity: 1;
}

.header_nav {
    margin-left: 40px;
}

.header_nav_list {
    display: flex;
    align-items: center;
    gap: 32px;
    margin: 0;
}

.header_nav_list li {
    margin: 0;
}

.header_nav_list a {
    display: block;
    color: #fff;
    font-family: "Yu Gothic", YuGothic, sans-serif;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 1.5px;
    text-decoration: none;
    white-space: nowrap;
    transition: color .5s ease;
}

.header_nav_list a:hover,
.header_nav_list a:focus {
    color: #bfdbfe;
}

.header.is-scrolled .header_nav_list a,
body:not(.home) .header_nav_list a {
    color: #1a1a2e;
}

.header.is-scrolled .header_nav_list a:hover,
.header.is-scrolled .header_nav_list a:focus,
body:not(.home) .header_nav_list a:hover,
body:not(.home) .header_nav_list a:focus {
    color: #1d4ed8;
}

body:not(.home) #content {
    padding-top: 113px;
}

/* Main Visual
----------------------------------------------- */
.mainVisual {
    position: relative;
    width: 100%;
    height: 100vh;
    min-height: 680px;
    overflow: hidden;
    background-color: #002462;
}

.mainVisual_slider,
.mainVisual_slider .swiper-wrapper,
.mainVisual_slider .swiper-slide {
    width: 100%;
    height: 100%;
}

.mainVisual_slider.swiper-fade .swiper-slide {
    pointer-events: none;
    transition-property: opacity !important;
}

.mainVisual_slider.swiper-fade .swiper-slide-active {
    pointer-events: auto;
}

.mainVisual_slide {
    position: relative;
    overflow: hidden;
}

.mainVisual_image {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.mainVisual_image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.04);
    transition: transform 8s ease-out;
}

.mainVisual_slide.swiper-slide-active .mainVisual_image img {
    transform: scale(1);
}

.mainVisual_overlay {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1;
    background-color: rgba(0, 36, 98, .4);
}

.mainVisual_content {
    position: relative;
    z-index: 3;
    display: flex;
    align-items: flex-end;
    width: 100%;
    max-width: 1400px;
    height: 100%;
    margin: 0 auto;
    padding: 0 24px 128px;
}

.mainVisual_copy {
    color: #fff;
}

.mainVisual_title {
    margin: 0 0 32px;
    padding: 0;
    color: #fff;
    font-family: "Roboto", sans-serif;
    font-size: clamp(80px, 8vw, 120px);
    font-weight: 400;
    line-height: .95;
    letter-spacing: .05em;
    text-shadow: 0 2px 16px rgba(0, 1, 38, .85);
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 1s ease .2s, transform 1s ease .2s;
}

.mainVisual_subtitle {
    display: flex;
    align-items: center;
    gap: 24px;
    margin: 0;
    color: #fff;
    font-family: "Yu Gothic", YuGothic, sans-serif;
    font-size: clamp(28px, 3vw, 40px);
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: .1em;
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 1s ease .45s, transform 1s ease .45s;
}

.mainVisual_subtitle span {
    display: block;
    flex-shrink: 0;
    width: 64px;
    height: 2px;
    background-color: #fff;
}

.mainVisual_slide.swiper-slide-active .mainVisual_title,
.mainVisual_slide.swiper-slide-active .mainVisual_subtitle {
    opacity: 1;
    transform: translateY(0);
}

/* Pagination
----------------------------------------------- */
.mainVisual_pagination {
    position: absolute;
    right: 0;
    bottom: 40px !important;
    left: 0;
    z-index: 5;
    width: 100%;
    text-align: center;
}

.mainVisual_pagination .swiper-pagination-bullet {
    width: 12px;
    height: 12px;
    margin: 0 5px !important;
    background-color: #fff;
    opacity: .5;
}

.mainVisual_pagination .swiper-pagination-bullet-active {
    opacity: 1;
}

/* Animated Lines
----------------------------------------------- */
.mainVisual_lines {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 2;
    overflow: hidden;
    pointer-events: none;
}

.mainVisual_line {
    --line-move-a: 80px;
    --line-move-b: -40px;
    --line-duration: 6s;
    --line-delay: 0s;

    position: absolute;
    top: 0;
    bottom: 0;
    left: calc(var(--line-number) * 12.5%);
    width: 1px;
    background-color: rgba(255, 255, 255, .2);
    animation: mainVisualLineMove var(--line-duration) ease-in-out infinite var(--line-delay);
}

.mainVisual_line_1,
.mainVisual_line_9 {
    --line-move-a: 80px;
    --line-move-b: -40px;
}

.mainVisual_line_2,
.mainVisual_line_10 {
    --line-move-a: -70px;
    --line-move-b: 50px;
}

.mainVisual_line_3,
.mainVisual_line_11 {
    --line-move-a: 60px;
    --line-move-b: -80px;
}

.mainVisual_line_4,
.mainVisual_line_12 {
    --line-move-a: -90px;
    --line-move-b: 30px;
}

.mainVisual_line_5,
.mainVisual_line_13 {
    --line-move-a: 100px;
    --line-move-b: -60px;
}

.mainVisual_line_6,
.mainVisual_line_14 {
    --line-move-a: -50px;
    --line-move-b: 70px;
}

.mainVisual_line_7,
.mainVisual_line_15 {
    --line-move-a: 85px;
    --line-move-b: -45px;
}

.mainVisual_line_8,
.mainVisual_line_16 {
    --line-move-a: -95px;
    --line-move-b: 55px;
}

.mainVisual_line_1  { --line-duration: 5s;   --line-delay: 0s; }
.mainVisual_line_2  { --line-duration: 7s;   --line-delay: .8s; }
.mainVisual_line_3  { --line-duration: 4.5s; --line-delay: 1.3s; }
.mainVisual_line_4  { --line-duration: 6.5s; --line-delay: .3s; }
.mainVisual_line_5  { --line-duration: 5.5s; --line-delay: 1.8s; }
.mainVisual_line_6  { --line-duration: 6s;   --line-delay: 2.2s; }
.mainVisual_line_7  { --line-duration: 4.8s; --line-delay: 1.1s; }
.mainVisual_line_8  { --line-duration: 5.8s; --line-delay: .6s; }
.mainVisual_line_9  { --line-duration: 6.2s; --line-delay: 1.5s; }
.mainVisual_line_10 { --line-duration: 5.3s; --line-delay: 2.1s; }
.mainVisual_line_11 { --line-duration: 6.8s; --line-delay: .4s; }
.mainVisual_line_12 { --line-duration: 4.7s; --line-delay: 1.9s; }
.mainVisual_line_13 { --line-duration: 6.3s; --line-delay: .9s; }
.mainVisual_line_14 { --line-duration: 5.1s; --line-delay: 1.4s; }
.mainVisual_line_15 { --line-duration: 6.6s; --line-delay: 2.3s; }
.mainVisual_line_16 { --line-duration: 4.9s; --line-delay: .7s; }

@keyframes mainVisualLineMove {
    0%,
    100% {
        transform: translateX(0);
    }

    35% {
        transform: translateX(var(--line-move-a));
    }

    75% {
        transform: translateX(var(--line-move-b));
    }
}

/* Tablet
----------------------------------------------- */
@media all and (max-width: 1200px) {
    .header_inner {
        padding: 26px 24px;
    }

    .header_logo_image {
        width: 280px;
    }

    .header_nav_list {
        gap: 22px;
    }

    .header_nav_list a {
        font-size: 14px;
        letter-spacing: 1px;
    }

    .mainVisual_content {
        padding-bottom: 110px;
    }
}

/* Plugin Hamburger Breakpoint
----------------------------------------------- */
@media all and (max-width: 960px) {
    .header_inner {
        min-height: 84px;
        padding: 18px 20px;
    }

    .header_logo_image {
        width: min(280px, 68vw);
    }

    .header_nav {
        display: none;
    }

    body:not(.home) #content {
        padding-top: 84px;
    }

    .mainVisual {
        min-height: 620px;
    }

    .mainVisual_content {
        padding: 0 32px 100px;
    }

    .mainVisual_title {
        font-size: clamp(58px, 11vw, 92px);
    }

    .mainVisual_subtitle {
        font-size: clamp(22px, 4vw, 32px);
    }

    .mainVisual_line {
        left: calc(var(--line-number) * 18%);
    }
}

/* Smartphone
----------------------------------------------- */
@media all and (max-width: 599px) {
    .admin-bar .header {
        top: 46px;
    }

    .header_inner {
        min-height: 72px;
        padding: 14px 16px;
    }

    .header_logo_image {
        width: min(230px, 66vw);
    }

    body:not(.home) #content {
        padding-top: 72px;
    }

    .mainVisual {
        height: 100svh;
        min-height: 560px;
    }

    .mainVisual_content {
        padding: 0 22px 88px;
    }

    .mainVisual_title {
        margin-bottom: 24px;
        font-size: clamp(46px, 15vw, 70px);
        line-height: 1;
        letter-spacing: .025em;
    }

    .mainVisual_subtitle {
        gap: 16px;
        font-size: clamp(19px, 6vw, 26px);
        letter-spacing: .05em;
    }

    .mainVisual_subtitle span {
        width: 40px;
    }

    .mainVisual_pagination {
        bottom: 28px !important;
    }

    .mainVisual_pagination .swiper-pagination-bullet {
        width: 10px;
        height: 10px;
    }

    .mainVisual_line {
        left: calc(var(--line-number) * 25%);
        opacity: .75;
    }
}


@media (hover: hover) and (pointer: fine) and (max-width: 960px) {
    .mobileMenuClose {
        transition: opacity .3s ease;
    }

    .mobileMenuClose:hover {
        opacity: .68;
    }
}

@media (prefers-reduced-motion: reduce) {
    .header,
    .header_logo_image,
    .header_nav_list a,
    .mainVisual_image img,
    .mainVisual_title,
    .mainVisual_subtitle {
        transition: none;
    }

    .mainVisual_line {
        animation: none;
    }
}

/*********************
TOP PAGE - STRENGTH
*********************/

/* top page layout
----------------------------------------------- */
.topPage_content {
    margin: 0;
    padding: 0;
}

.topPage_content #inner-content {
    width: 100%;
    margin: 0;
    padding: 0;
}

.topPage_main {
    width: 100%;
    margin: 0;
    padding: 0;
}

/* strength
----------------------------------------------- */
.topStrength {
    width: 100%;
    padding: 80px 24px;
    background-color: #f9fafb;
}

.topStrength_inner {
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
}

.topStrength_header {
    margin-bottom: 64px;
    text-align: center;
}

.topStrength_title {
    margin: 0 0 16px;
    color: #1e3a8a;
    font-family: "Yu Gothic", YuGothic, sans-serif;
    font-size: 36px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: .05em;
}

.topStrength_lead {
    margin: 0;
    color: #4b5563;
    font-size: 18px;
    font-weight: 500;
    line-height: 1.8;
}

.topStrength_list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 32px;
}

.topStrength_item {
    min-width: 0;
    padding: 32px;
    background-color: #fff;
    border-radius: 8px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .08);
    transition:
        transform .3s ease,
        box-shadow .3s ease;
}

.topStrength_icon {
    width: 64px;
    height: 64px;
    margin-bottom: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #1e3a8a;
    background-color: #dbeafe;
    border-radius: 50%;
}

.topStrength_icon svg {
    display: block;
    width: 32px;
    height: 32px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.topStrength_itemTitle {
    margin: 0 0 16px;
    color: #1e3a8a;
    font-family: "Yu Gothic", YuGothic, sans-serif;
    font-size: 24px;
    font-weight: 700;
    line-height: 1.5;
}

.topStrength_text {
    margin: 0;
    color: #4b5563;
    font-size: 16px;
    line-height: 1.8;
}

@media all and (min-width: 961px) {
    .topStrength_item:hover {
        transform: translateY(-4px);
        box-shadow: 0 10px 24px rgba(0, 0, 0, .12);
    }
}

@media all and (max-width: 960px) {
    .topStrength {
        padding: 72px 24px;
    }

    .topStrength_header {
        margin-bottom: 48px;
    }

    .topStrength_list {
        gap: 24px;
    }

    .topStrength_item {
        padding: 28px;
    }

    .topStrength_title {
        font-size: 32px;
    }

    .topStrength_itemTitle {
        font-size: 22px;
    }
}

@media all and (max-width: 767px) {
    .topStrength_list {
        grid-template-columns: 1fr;
    }
}

@media all and (max-width: 599px) {
    .topStrength {
        padding: 56px 20px;
    }

    .topStrength_header {
        margin-bottom: 36px;
    }

    .topStrength_title {
        margin-bottom: 12px;
        font-size: 28px;
    }

    .topStrength_lead {
        font-size: 16px;
        text-align: left;
    }

    .topStrength_item {
        padding: 24px;
    }

    .topStrength_icon {
        width: 56px;
        height: 56px;
        margin-bottom: 20px;
    }

    .topStrength_icon svg {
        width: 28px;
        height: 28px;
    }

    .topStrength_itemTitle {
        margin-bottom: 12px;
        font-size: 21px;
    }
}


/*********************
TOP PAGE - BUSINESS
*********************/

/* business
----------------------------------------------- */
.topBusiness {
    width: 100%;
    padding: 96px 0 88px;
    background-color: #fff;
    overflow: hidden;
}

.topBusiness_inner {
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 24px;
}

.topBusiness_header {
    margin-bottom: 56px;
}

.topBusiness_title {
    max-width: 1100px;
    margin: 0 auto 28px;
    color: #1e3a8a;
    font-family: "Yu Gothic", YuGothic, sans-serif;
    font-size: 36px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: .03em;
    text-align: center;
    transition: 0.3s ease-in-out;
}

.topBusiness_title_break {
    display: none;
}

.topBusiness_lead {
    max-width: 1120px;
    margin: 0 auto;
    color: #4b5563;
    font-size: 18px;
    font-weight: 500;
    line-height: 2;
}

.topBusiness_carousel {
    width: 100%;
    margin-bottom: 48px;
    overflow: hidden;
}

.topBusiness_slider {
    width: 100%;
    overflow: visible;
}

.topBusiness_slider .swiper-wrapper {
    transition-timing-function: linear !important;
}

.topBusiness_slide {
    width: 384px;
    height: auto;
}

.topBusiness_image {
    position: relative;
    width: 100%;
    aspect-ratio: 3 / 2;
    overflow: hidden;
    border-radius: 8px;
}

.topBusiness_image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .6s ease;
}

.topBusiness_buttonWrap {
    width: 100%;
    padding: 0 24px;
    text-align: center;
}

.topBusiness_button {
    min-width: 320px;
    padding: 17px 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    color: #1e3a8a;
    font-family: "Yu Gothic", YuGothic, sans-serif;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.4;
    text-decoration: none;
    border: 2px solid #1e3a8a;
    border-radius: 4px;
    transition:
        color .3s ease,
        background-color .3s ease,
        transform .3s ease;
}

.topBusiness_button svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: transform .3s ease;
}

@media all and (min-width: 961px) {
    .topBusiness_image:hover img {
        transform: scale(1.05);
    }

    .topBusiness_button:hover,
    .topBusiness_button:focus {
        color: #fff;
        background-color: #1e3a8a;
        transform: translateY(-2px);
    }

    .topBusiness_button:hover svg,
    .topBusiness_button:focus svg {
        transform: translateX(4px);
    }
}


@media all and (max-width: 1080px) {
    .topBusiness_title_break {
        display: block;
    }
}

@media all and (max-width: 960px) {
    .topBusiness {
        padding: 80px 0 72px;
    }

    .topBusiness_header {
        margin-bottom: 48px;
    }

    .topBusiness_title {
        font-size: 32px;
    }

    .topBusiness_lead {
        font-size: 17px;
    }

    .topBusiness_slide {
        width: 340px;
    }
}

@media all and (max-width: 599px) {
    .topBusiness {
        padding: 64px 0 56px;
    }

    .topBusiness_inner {
        padding: 0 20px;
    }

    .topBusiness_header {
        margin-bottom: 36px;
    }

    .topBusiness_title {
        margin-bottom: 20px;
        font-size: 28px;
        text-align: left;
    }

    .topBusiness_lead {
        font-size: 16px;
        line-height: 1.9;
    }

    .topBusiness_carousel {
        margin-bottom: 36px;
    }

    .topBusiness_slide {
        width: 280px;
    }

    .topBusiness_buttonWrap {
        padding: 0 20px;
    }

    .topBusiness_button {
        width: 100%;
        min-width: 0;
        padding: 16px 22px;
        font-size: 15px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .topBusiness_slider .swiper-wrapper {
        transition-duration: 0ms !important;
    }

    .topBusiness_image img,
    .topBusiness_button,
    .topBusiness_button svg {
        transition: none;
    }
}

/************************************************************
TOP BUSINESS CAROUSEL WIDTH FIX
Swiper本体CSSが後から読み込まれるため、詳細度を上げて上書き
************************************************************/
.topBusiness_slider .swiper-slide {
    width: 320px;
    height: auto;
    flex-shrink: 0;
}

@media all and (max-width: 960px) {
    .topBusiness_slider .swiper-slide {
        width: 280px;
    }
}

@media all and (max-width: 599px) {
    .topBusiness_slider .swiper-slide {
        width: 230px;
    }
}

/* =====================================================
   TOP PAGE - Business Button Color Override
===================================================== */
.topBusiness_button,
.topBusiness_button:link,
.topBusiness_button:visited {
    color: #1e3a8a !important;
}

.topBusiness_button:hover,
.topBusiness_button:focus,
.topBusiness_button:active {
    color: #fff !important;
    background-color: #1e3a8a;
    border-color: #1e3a8a;
}

.topBusiness_button svg,
.topBusiness_button:hover svg,
.topBusiness_button:focus svg,
.topBusiness_button:active svg {
    stroke: currentColor;
}

/*********************
TOP PAGE - QUALITY
*********************/

/* quality
----------------------------------------------- */
.topQuality {
    width: 100%;
    padding: 80px 0;
    background-color: #f9fafb;
}

.topQuality_inner {
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 24px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 48px;
    align-items: center;
}

.topQuality_content {
    min-width: 0;
}

.topQuality_title {
    margin: 0 0 24px;
    color: #1e3a8a;
    font-family: "Yu Gothic", YuGothic, sans-serif;
    font-size: 36px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: .03em;
}

.topQuality_lead {
    margin: 0 0 32px;
    color: #4b5563;
    font-size: 18px;
    line-height: 1.9;
}

.topQuality_list {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.topQuality_item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.topQuality_icon {
    width: 24px;
    height: 24px;
    margin-top: 4px;
    flex-shrink: 0;
    color: #1e3a8a;
}

.topQuality_icon svg {
    display: block;
    width: 100%;
    height: 100%;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.topQuality_itemBody {
    min-width: 0;
}

.topQuality_itemTitle {
    margin: 0 0 8px;
    color: #1a1a2e;
    font-family: "Yu Gothic", YuGothic, sans-serif;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.5;
}

.topQuality_itemText {
    margin: 0;
    color: #4b5563;
    font-size: 16px;
    line-height: 1.7;
}

.topQuality_gallery {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.topQuality_image {
    margin: 0;
    position: relative;
    overflow: hidden;
    border-radius: 8px;
    background-color: #e5e7eb;
}

.topQuality_image_small {
    aspect-ratio: 3 / 2;
}

.topQuality_image_wide {
    grid-column: 1 / -1;
    aspect-ratio: 2 / 1;
}

.topQuality_image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .6s ease;
}

@media all and (min-width: 961px) {
    .topQuality_image:hover img {
        transform: scale(1.04);
    }
}

@media all and (max-width: 960px) {
    .topQuality {
        padding: 72px 0;
    }

    .topQuality_inner {
        gap: 36px;
    }

    .topQuality_title {
        font-size: 32px;
    }

    .topQuality_lead {
        font-size: 17px;
    }
}

@media all and (max-width: 767px) {
    .topQuality_inner {
        grid-template-columns: 1fr;
    }
}

@media all and (max-width: 599px) {
    .topQuality {
        padding: 56px 0;
    }

    .topQuality_inner {
        padding: 0 20px;
        gap: 32px;
    }

    .topQuality_title {
        margin-bottom: 20px;
        font-size: 28px;
    }

    .topQuality_lead {
        margin-bottom: 28px;
        font-size: 16px;
    }

    .topQuality_itemTitle {
        font-size: 17px;
    }

    .topQuality_itemText {
        font-size: 15px;
    }

    .topQuality_gallery {
        gap: 12px;
    }

    .topQuality_image {
        border-radius: 6px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .topQuality_image img {
        transition: none;
    }
}

/*********************
TOP PAGE - RECRUIT
*********************/

/* recruit
----------------------------------------------- */
.topRecruit {
    width: 100%;
    padding: 96px 0;
    color: #fff;
    background-color: #1e3a8a;
}

.topRecruit_inner {
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 24px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: center;
    gap: 48px;
}

.topRecruit_image {
    position: relative;
    overflow: hidden;
    min-height: 480px;
    aspect-ratio: 6 / 5;
    border-radius: 8px;
    background-color: #172554;
}

.topRecruit_image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .6s ease;
}

.topRecruit_content {
    min-width: 0;
}

.topRecruit_title {
    margin: 0 0 24px;
    color: #fff;
    font-family: "Yu Gothic", YuGothic, sans-serif;
    font-size: 36px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: .03em;
}

.topRecruit_lead {
    margin: 0 0 32px;
    color: rgba(255, 255, 255, .9);
    font-size: 18px;
    line-height: 1.9;
}

.topRecruit_list {
    margin: 0 0 36px;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
    list-style: none;
}

.topRecruit_item {
    display: flex;
    align-items: center;
    gap: 12px;
    color: #fff;
    font-family: "Yu Gothic", YuGothic, sans-serif;
    font-size: 18px;
    font-weight: 500;
    line-height: 1.6;
}

.topRecruit_dot {
    display: block;
    width: 8px;
    height: 8px;
    flex-shrink: 0;
    border-radius: 50%;
    background-color: #fff;
}

.topRecruit_buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
}

.topRecruit_button {
    min-height: 56px;
    padding: 15px 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    border: 2px solid #fff;
    border-radius: 4px;
    font-family: "Yu Gothic", YuGothic, sans-serif;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.4;
    text-decoration: none;
    transition:
        background-color .3s ease,
        color .3s ease,
        border-color .3s ease;
}

.topRecruit_button svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: transform .3s ease;
}

.topRecruit_button_primary,
.topRecruit_button_primary:link,
.topRecruit_button_primary:visited {
    color: #1e3a8a;
    background-color: #fff;
}

.topRecruit_button_secondary,
.topRecruit_button_secondary:link,
.topRecruit_button_secondary:visited {
    color: #fff;
    background-color: transparent;
}

@media all and (min-width: 961px) {
    .topRecruit_image:hover img {
        transform: scale(1.04);
    }

    .topRecruit_button_primary:hover,
    .topRecruit_button_primary:focus {
        color: #1e3a8a;
        background-color: #eff6ff;
        border-color: #eff6ff;
    }

    .topRecruit_button_secondary:hover,
    .topRecruit_button_secondary:focus {
        color: #1e3a8a;
        background-color: #fff;
    }

    .topRecruit_button:hover svg,
    .topRecruit_button:focus svg {
        transform: translateX(4px);
    }
}

@media all and (max-width: 1100px) {
    .topRecruit {
        padding: 80px 0;
    }

    .topRecruit_inner {
        grid-template-columns: 1fr;
        gap: 36px;
    }

    .topRecruit_image {
        width: 100%;
        min-height: 0;
        aspect-ratio: 6 / 5;
    }

    .topRecruit_content {
        width: 100%;
    }

    .topRecruit_title {
        font-size: 32px;
    }

    .topRecruit_lead,
    .topRecruit_item {
        font-size: 17px;
    }

    .topRecruit_button {
        padding-right: 24px;
        padding-left: 24px;
    }
}

@media all and (max-width: 599px) {
    .topRecruit {
        padding: 64px 0;
    }

    .topRecruit_inner {
        padding: 0 20px;
        gap: 32px;
    }

    .topRecruit_image {
        border-radius: 6px;
    }

    .topRecruit_title {
        margin-bottom: 20px;
        font-size: 28px;
    }

    .topRecruit_lead {
        margin-bottom: 28px;
        font-size: 16px;
    }

    .topRecruit_list {
        margin-bottom: 32px;
        gap: 14px;
    }

    .topRecruit_item {
        font-size: 16px;
    }

    .topRecruit_buttons {
        flex-direction: column;
    }

    .topRecruit_button {
        width: 100%;
        min-height: 54px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .topRecruit_image img,
    .topRecruit_button,
    .topRecruit_button svg {
        transition: none;
    }
}

/*********************
TOP PAGE - NEWS
*********************/

/* news
----------------------------------------------- */
.topNews {
    width: 100%;
    padding: 96px 0;
    background-color: #fff;
}

.topNews_inner {
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 24px;
}

.topNews_header {
    margin-bottom: 40px;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 32px;
}

.topNews_title {
    margin: 0;
    color: #1e3a8a;
    font-family: "Yu Gothic", YuGothic, sans-serif;
    font-size: 36px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: .03em;
}

.topNews_more {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #1e3a8a;
    font-family: "Yu Gothic", YuGothic, sans-serif;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.5;
    text-decoration: none;
    transition: color .3s ease;
}

.topNews_more svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: transform .3s ease;
}

.topNews_list {
    border-top: 1px solid #e5e7eb;
}

.topNews_item {
    margin: 0;
    border-bottom: 1px solid #e5e7eb;
}

.topNews_link {
    min-height: 92px;
    padding: 24px 28px;
    display: grid;
    grid-template-columns: 130px minmax(0, 1fr) 28px;
    align-items: center;
    gap: 28px;
    color: #1a1a2e;
    background-color: #fff;
    text-decoration: none;
    transition:
        background-color .3s ease,
        box-shadow .3s ease;
}

.topNews_date {
    color: #6b7280;
    font-family: "Roboto", sans-serif;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: .04em;
    white-space: nowrap;
}

.topNews_itemTitle {
    margin: 0;
    color: #1a1a2e;
    font-family: "Yu Gothic", YuGothic, sans-serif;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.7;
}

.topNews_arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #9ca3af;
}

.topNews_arrow svg {
    width: 22px;
    height: 22px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition:
        color .3s ease,
        transform .3s ease;
}

.topNews_empty {
    margin: 0;
    padding: 32px 28px;
    color: #6b7280;
    font-size: 16px;
    line-height: 1.8;
    border-bottom: 1px solid #e5e7eb;
}

@media all and (min-width: 961px) {
    .topNews_more:hover,
    .topNews_more:focus {
        color: #1d4ed8;
    }

    .topNews_more:hover svg,
    .topNews_more:focus svg {
        transform: translateX(4px);
    }

    .topNews_link:hover,
    .topNews_link:focus {
        background-color: #f8fafc;
        box-shadow: 0 8px 24px rgba(30, 58, 138, .08);
    }

    .topNews_link:hover .topNews_arrow svg,
    .topNews_link:focus .topNews_arrow svg {
        color: #1e3a8a;
        transform: translateX(5px);
    }
}

@media all and (max-width: 960px) {
    .topNews {
        padding: 80px 0;
    }

    .topNews_title {
        font-size: 32px;
    }

    .topNews_link {
        grid-template-columns: 110px minmax(0, 1fr) 24px;
        gap: 22px;
    }
}

@media all and (max-width: 599px) {
    .topNews {
        padding: 64px 0;
    }

    .topNews_inner {
        padding: 0 20px;
    }

    .topNews_header {
        margin-bottom: 28px;
        align-items: center;
        gap: 20px;
    }

    .topNews_title {
        font-size: 28px;
    }

    .topNews_more {
        gap: 6px;
        font-size: 14px;
    }

    .topNews_more svg {
        width: 16px;
        height: 16px;
    }

    .topNews_link {
        min-height: 0;
        padding: 20px 8px;
        grid-template-columns: minmax(0, 1fr) 22px;
        gap: 14px;
    }

    .topNews_date {
        grid-column: 1 / -1;
        font-size: 14px;
    }

    .topNews_itemTitle {
        font-size: 16px;
        line-height: 1.7;
    }

    .topNews_arrow {
        grid-column: 2;
        grid-row: 2;
    }

    .topNews_arrow svg {
        width: 20px;
        height: 20px;
    }

    .topNews_empty {
        padding: 24px 8px;
        font-size: 15px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .topNews_more,
    .topNews_more svg,
    .topNews_link,
    .topNews_arrow svg {
        transition: none;
    }
}

/*********************
TOP PAGE - CONTACT
*********************/

/* contact
----------------------------------------------- */
.topContact {
    position: relative;
    width: 100%;
    min-height: 420px;
    padding: 96px 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.topContact_overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    background-color: rgba(0, 36, 98, .48);
}

.topContact_inner {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
    text-align: center;
}

.topContact_title {
    margin: 0 0 24px;
    color: #fff;
    font-family: "Yu Gothic", YuGothic, sans-serif;
    font-size: 36px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: .03em;
}

.topContact_lead {
    margin: 0 0 40px;
    color: rgba(255, 255, 255, .92);
    font-family: "Yu Gothic", YuGothic, sans-serif;
    font-size: 18px;
    font-weight: 500;
    line-height: 1.9;
}

.topContact_button,
.topContact_button:link,
.topContact_button:visited {
    min-width: 320px;
    min-height: 64px;
    padding: 18px 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    color: #1e3a8a !important;
    background-color: #fff;
    border: 2px solid #fff;
    border-radius: 4px;
    font-family: "Yu Gothic", YuGothic, sans-serif;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.5;
    text-decoration: none;
    transition:
        color .3s ease,
        background-color .3s ease,
        border-color .3s ease,
        transform .3s ease;
}

.topContact_button svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: transform .3s ease;
}

@media all and (min-width: 961px) {
    .topContact_button:hover,
    .topContact_button:focus {
        color: #1e3a8a !important;
        background-color: #f3f4f6;
        border-color: #f3f4f6;
        transform: translateY(-2px);
    }

    .topContact_button:hover svg,
    .topContact_button:focus svg {
        transform: translateX(4px);
    }
}

@media all and (max-width: 960px) {
    .topContact {
        min-height: 380px;
        padding: 80px 24px;
    }

    .topContact_title {
        font-size: 32px;
    }
}

@media all and (max-width: 599px) {
    .topContact {
        min-height: 340px;
        padding: 64px 20px;
    }

    .topContact_title {
        margin-bottom: 20px;
        font-size: 28px;
    }

    .topContact_lead {
        margin-bottom: 32px;
        font-size: 16px;
        line-height: 1.8;
    }

    .topContact_button,
    .topContact_button:link,
    .topContact_button:visited {
        width: 100%;
        min-width: 0;
        min-height: 58px;
        padding: 15px 24px;
        font-size: 16px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .topContact_button,
    .topContact_button svg {
        transition: none;
    }
}


/*********************
FOOTER
*********************/

/* footer
----------------------------------------------- */
.footer {
    width: 100%;
    padding: 72px 24px 40px;
    color: #fff;
    background-color: #1a1a2e;
}

.footer_inner {
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
}

.footer_logo {
    margin-bottom: 48px;
}

.footer_logo a {
    display: inline-block;
}

.footer_logo img {
    display: block;
    width: 280px;
    max-width: 100%;
    height: auto;
}

.footer_nav {
    margin-bottom: 64px;
}

.footer_nav_list {
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 14px 32px;
    list-style: none;
}

.footer_nav_list li {
    margin: 0;
    padding: 0;
}

.footer_nav_list a,
.footer_nav_list a:link,
.footer_nav_list a:visited {
    color: rgba(255, 255, 255, .72) !important;
    font-family: "Yu Gothic", YuGothic, sans-serif;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.7;
    text-decoration: none;
    transition: color .3s ease;
}

.footer_bottom {
    padding-top: 30px;
    display: flex;
    align-items: center;
    gap: 24px 40px;
    border-top: 1px solid rgba(255, 255, 255, .2);
}

.footer_copyright {
    margin: 0;
    color: rgba(255, 255, 255, .72);
    font-family: "Roboto", sans-serif;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.7;
    letter-spacing: .03em;
}

.footer_privacy,
.footer_privacy:link,
.footer_privacy:visited {
    color: rgba(255, 255, 255, .72) !important;
    font-family: "Yu Gothic", YuGothic, sans-serif;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.7;
    text-decoration: none;
    transition: color .3s ease;
}

@media all and (min-width: 961px) {
    .footer_nav_list a:hover,
    .footer_nav_list a:focus,
    .footer_privacy:hover,
    .footer_privacy:focus {
        color: #fff !important;
    }
}

@media all and (max-width: 960px) {
    .footer {
        padding: 64px 32px 36px;
    }

    .footer_logo {
        margin-bottom: 40px;
    }

    .footer_logo img {
        width: 250px;
    }

    .footer_nav {
        margin-bottom: 52px;
    }

    .footer_nav_list {
        gap: 12px 24px;
    }
}

@media all and (max-width: 599px) {
    .footer {
        padding: 52px 20px 28px;
    }

    .footer_logo {
        margin-bottom: 36px;
    }

    .footer_logo img {
        width: min(240px, 74vw);
    }

    .footer_nav {
        margin-bottom: 44px;
    }

    .footer_nav_list {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 14px 20px;
    }

    .footer_nav_list a,
    .footer_nav_list a:link,
    .footer_nav_list a:visited {
        font-size: 13px;
    }

    .footer_bottom {
        padding-top: 24px;
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }

    .footer_copyright,
    .footer_privacy,
    .footer_privacy:link,
    .footer_privacy:visited {
        font-size: 12px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .footer_nav_list a,
    .footer_privacy {
        transition: none;
    }
}


/*********************
MOBILE MENU
*********************/

.mobileMenuButton,
.mobileMenu,
.mobileMenuOverlay {
    display: none;
}

@media all and (max-width: 960px) {
    .header_logo {
        z-index: 1003;
    }

    .mobileMenuButton {
        position: relative;
        z-index: 1003;
        display: flex;
        align-items: center;
        gap: 12px;
        margin: 0;
        padding: 10px 0 10px 12px;
        color: #fff;
        background: transparent;
        border: 0;
        cursor: pointer;
        appearance: none;
    }

    .header.is-scrolled .mobileMenuButton,
    body:not(.home) .mobileMenuButton,
    body.is-mobile-menu-open .mobileMenuButton {
        color: #1a1a2e;
    }

    .mobileMenuButton_text {
        font-family: "Roboto", sans-serif;
        font-size: 11px;
        font-weight: 700;
        line-height: 1;
        letter-spacing: .16em;
    }

    .mobileMenuButton_lines {
        position: relative;
        display: block;
        width: 34px;
        height: 18px;
    }

    .mobileMenuButton_lines span {
        position: absolute;
        right: 0;
        display: block;
        height: 1px;
        background-color: currentColor;
        transform-origin: center;
        transition: top .35s ease, width .35s ease, transform .35s ease;
    }

    .mobileMenuButton_lines span:first-child {
        top: 4px;
        width: 34px;
    }

    .mobileMenuButton_lines span:last-child {
        top: 13px;
        width: 24px;
    }

    body.is-mobile-menu-open .mobileMenuButton_lines span:first-child {
        top: 9px;
        width: 30px;
        transform: rotate(45deg);
    }

    body.is-mobile-menu-open .mobileMenuButton_lines span:last-child {
        top: 9px;
        width: 30px;
        transform: rotate(-45deg);
    }

    .mobileMenu {
        position: fixed;
        top: 0;
        right: 0;
        z-index: 1002;
        display: block;
        width: min(86vw, 520px);
        height: 100dvh;
        color: #fff;
        background-color: #0f1930;
        visibility: hidden;
        transform: translateX(100%);
        transition: transform .55s cubic-bezier(.2, .8, .2, 1), visibility .55s;
        overflow-y: auto;
        overscroll-behavior: contain;
    }

    .admin-bar .mobileMenu {
        top: 32px;
        height: calc(100dvh - 32px);
    }

    .mobileMenu_inner {
        min-height: 100%;
        padding: 118px 40px 48px;
    }

    .mobileMenu_header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 20px;
        margin-bottom: 22px;
        padding-bottom: 16px;
        border-bottom: 1px solid rgba(255, 255, 255, .16);
    }

    .mobileMenu_label {
        margin: 0;
        color: rgba(255, 255, 255, .48);
        font-family: "Roboto", sans-serif;
        font-size: 11px;
        font-weight: 700;
        letter-spacing: .2em;
    }

    .mobileMenuClose {
        display: inline-flex;
        align-items: center;
        gap: 10px;
        margin: 0;
        padding: 8px 0 8px 12px;
        color: #fff;
        background: transparent;
        border: 0;
        cursor: pointer;
        appearance: none;
    }

    .mobileMenuClose_text {
        font-family: "Roboto", sans-serif;
        font-size: 10px;
        font-weight: 700;
        line-height: 1;
        letter-spacing: .16em;
    }

    .mobileMenuClose_icon {
        position: relative;
        display: block;
        width: 24px;
        height: 24px;
    }

    .mobileMenuClose_icon span {
        position: absolute;
        top: 50%;
        left: 50%;
        display: block;
        width: 24px;
        height: 1px;
        background-color: currentColor;
        transform-origin: center;
    }

    .mobileMenuClose_icon span:first-child {
        transform: translate(-50%, -50%) rotate(45deg);
    }

    .mobileMenuClose_icon span:last-child {
        transform: translate(-50%, -50%) rotate(-45deg);
    }

    .mobileMenuClose:focus {
        outline: none;
    }

    .mobileMenuClose:focus-visible {
        outline: 1px solid rgba(255, 255, 255, .85);
        outline-offset: 5px;
    }

    .mobileMenu_list {
        margin: 0;
        padding: 0;
        list-style: none;
    }

    .mobileMenu_list li {
        margin: 0;
        border-bottom: 1px solid rgba(255, 255, 255, .14);
        opacity: 0;
        transform: translateY(18px);
        transition: opacity .4s ease, transform .4s ease;
    }

    .mobileMenu_list a {
        position: relative;
        display: grid;
        grid-template-columns: 42px 1fr auto;
        align-items: baseline;
        gap: 10px;
        padding: 22px 0 20px;
        color: #fff !important;
        text-decoration: none;
    }

    .mobileMenu_list a::after {
        position: absolute;
        right: 0;
        bottom: 18px;
        width: 22px;
        height: 1px;
        content: "";
        background-color: rgba(255, 255, 255, .5);
        transform: scaleX(.45);
        transform-origin: right center;
        transition: transform .3s ease;
    }

    .mobileMenu_number {
        color: rgba(255, 255, 255, .4);
        font-family: "Roboto", sans-serif;
        font-size: 11px;
        letter-spacing: .08em;
    }

    .mobileMenu_name {
        font-size: clamp(20px, 4.6vw, 28px);
        font-weight: 700;
        line-height: 1.4;
        letter-spacing: .04em;
    }

    .mobileMenu_en {
        padding-right: 34px;
        color: rgba(255, 255, 255, .46);
        font-family: "Roboto", sans-serif;
        font-size: 10px;
        font-weight: 700;
        letter-spacing: .12em;
    }

    .mobileMenuOverlay {
        position: fixed;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 1001;
        display: block;
        width: 100%;
        height: 100%;
        padding: 0;
        background-color: rgba(0, 0, 0, .48);
        border: 0;
        opacity: 0;
        visibility: hidden;
        transition: opacity .45s ease, visibility .45s;
        cursor: pointer;
    }

    body.is-mobile-menu-open {
        overflow: hidden;
    }

    body.is-mobile-menu-open .header {
        background-color: #fff;
        box-shadow: 0 4px 16px rgba(0, 0, 0, .12);
    }

    body.is-mobile-menu-open .header_logo_image_white {
        opacity: 0;
    }

    body.is-mobile-menu-open .header_logo_image_dark {
        opacity: 1;
    }

    body.is-mobile-menu-open .mobileMenu {
        visibility: visible;
        transform: translateX(0);
    }

    body.is-mobile-menu-open .mobileMenuOverlay {
        opacity: 1;
        visibility: visible;
    }

    body.is-mobile-menu-open .mobileMenu_list li {
        opacity: 1;
        transform: translateY(0);
    }

    body.is-mobile-menu-open .mobileMenu_list li:nth-child(1) { transition-delay: .16s; }
    body.is-mobile-menu-open .mobileMenu_list li:nth-child(2) { transition-delay: .21s; }
    body.is-mobile-menu-open .mobileMenu_list li:nth-child(3) { transition-delay: .26s; }
    body.is-mobile-menu-open .mobileMenu_list li:nth-child(4) { transition-delay: .31s; }
    body.is-mobile-menu-open .mobileMenu_list li:nth-child(5) { transition-delay: .36s; }
    body.is-mobile-menu-open .mobileMenu_list li:nth-child(6) { transition-delay: .41s; }
}

@media all and (max-width: 782px) {
    .admin-bar .mobileMenu {
        top: 46px;
        height: calc(100dvh - 46px);
    }
}

@media all and (max-width: 599px) {
    .mobileMenuButton {
        gap: 9px;
    }

    .mobileMenuButton_text {
        font-size: 10px;
    }

    .mobileMenuButton_lines {
        width: 30px;
    }

    .mobileMenuButton_lines span:first-child {
        width: 30px;
    }

    .mobileMenuButton_lines span:last-child {
        width: 21px;
    }

    .mobileMenu {
        width: 88vw;
    }

    .mobileMenu_inner {
        padding: 96px 24px 36px;
    }

    .mobileMenu_list a {
        grid-template-columns: 34px 1fr;
        gap: 8px;
        padding: 18px 0 17px;
    }

    .mobileMenu_en {
        display: none;
    }

    .mobileMenu_list a::after {
        bottom: 16px;
    }
}

@media (hover: hover) and (pointer: fine) and (max-width: 960px) {
    .mobileMenu_list a:hover::after,
    .mobileMenu_list a:focus::after {
        transform: scaleX(1);
    }
}

@media (prefers-reduced-motion: reduce) {
    .mobileMenuButton_lines span,
    .mobileMenu,
    .mobileMenuOverlay,
    .mobileMenu_list li,
    .mobileMenu_list a::after {
        transition: none;
    }
}

/* =====================================================
   RESPONSIVE TRANSITION
===================================================== */

.header_inner,
.header_logo,
.header_logo img,
.header_nav,
.topStrength,
.topStrength_header,
.topStrength_list,
.topStrength_item,
.topBusiness,
.topBusiness_inner,
.topBusiness_header,
.topBusiness_carousel,
.topBusiness_slider .swiper-slide,
.topBusiness_image,
.topBusiness_image img,
.topBusiness_buttonWrap,
.topQuality,
.topQuality_inner,
.topQuality_content,
.topQuality_gallery,
.topQuality_image,
.topQuality_image img,
.topRecruit,
.topRecruit_inner,
.topRecruit_image,
.topRecruit_image img,
.topRecruit_content,
.topRecruit_buttons,
.topNews,
.topNews_inner,
.topNews_header,
.topNews_link,
.topContact,
.topContact_inner,
.topContact_title,
.topContact_lead,
.topContact_button,
.footer,
.footer_inner,
.footer_logo,
.footer_logo img,
.footer_nav,
.footer_nav_list,
.footer_bottom {
    transition: 0.3s ease-in-out;
}

@media (prefers-reduced-motion: reduce) {
    .header_inner,
    .header_logo,
    .header_logo img,
    .header_nav,
    .topStrength,
    .topStrength_header,
    .topStrength_list,
    .topStrength_item,
    .topBusiness,
    .topBusiness_inner,
    .topBusiness_header,
    .topBusiness_carousel,
    .topBusiness_slider .swiper-slide,
    .topBusiness_image,
    .topBusiness_image img,
    .topBusiness_buttonWrap,
    .topQuality,
    .topQuality_inner,
    .topQuality_content,
    .topQuality_gallery,
    .topQuality_image,
    .topQuality_image img,
    .topRecruit,
    .topRecruit_inner,
    .topRecruit_image,
    .topRecruit_image img,
    .topRecruit_content,
    .topRecruit_buttons,
    .topNews,
    .topNews_inner,
    .topNews_header,
    .topNews_link,
    .topContact,
    .topContact_inner,
    .topContact_title,
    .topContact_lead,
    .topContact_button,
    .footer,
    .footer_inner,
    .footer_logo,
    .footer_logo img,
    .footer_nav,
    .footer_nav_list,
    .footer_bottom {
        transition: none;
    }
}

/*********************
ARCHIVE - NEWS
*********************/

/* archiveNews
----------------------------------------------- */
.archiveNews {
    width: 100%;
    min-height: 60vh;
    padding: 0 0 112px;
    background-color: #fff;
    transition: 0.3s ease-in-out;
}

.archiveNews_inner {
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 24px;
    transition: 0.3s ease-in-out;
}

.archiveNews_header {
    margin-bottom: 56px;
    padding-top: 80px;
    transition: 0.3s ease-in-out;
}

.archiveNews_title {
    margin: 0;
    color: #1e3a8a;
    font-family: "Yu Gothic", YuGothic, sans-serif;
    font-size: 44px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: .03em;
    transition: 0.3s ease-in-out;
}

.archiveNews_description {
    max-width: 780px;
    margin-top: 20px;
    color: #6b7280;
    font-size: 16px;
    line-height: 1.9;
}

.archiveNews_description p {
    margin: 0;
}

.archiveNews_list {
    border-top: 1px solid #e5e7eb;
}

.archiveNews_item {
    margin: 0;
    padding: 0;
    border-bottom: 1px solid #e5e7eb;
}

.archiveNews_link {
    min-height: 104px;
    padding: 28px 28px;
    display: grid;
    grid-template-columns: 140px minmax(0, 1fr) 30px;
    align-items: center;
    gap: 32px;
    color: #1a1a2e;
    background-color: #fff;
    text-decoration: none;
    transition: 0.3s ease-in-out;
}

.archiveNews_date {
    color: #6b7280;
    font-family: "Roboto", sans-serif;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: .04em;
    white-space: nowrap;
}

.archiveNews_itemTitle {
    margin: 0;
    color: #1a1a2e;
    font-family: "Yu Gothic", YuGothic, sans-serif;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.75;
    transition: 0.3s ease-in-out;
}

.archiveNews_arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #9ca3af;
}

.archiveNews_arrow svg {
    width: 22px;
    height: 22px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: 0.3s ease-in-out;
}

.archiveNews_empty {
    margin: 0;
    padding: 36px 28px;
    color: #6b7280;
    font-size: 16px;
    line-height: 1.8;
    border-bottom: 1px solid #e5e7eb;
}

.archiveNews_pagination {
    margin-top: 64px;
    transition: 0.3s ease-in-out;
}

.archiveNews_pagination .pagination {
    margin: 0;
}

.archiveNews_pagination .pagination ul {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background-color: transparent;
    border-radius: 0;
}

.archiveNews_pagination .pagination li {
    float: none;
    border: 0;
    overflow: visible;
}

.archiveNews_pagination .pagination a,
.archiveNews_pagination .pagination span {
    min-width: 44px;
    height: 44px;
    padding: 0 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #1e3a8a;
    font-family: "Roboto", sans-serif;
    font-size: 15px;
    line-height: 1;
    border: 1px solid #dbe1ea;
    background-color: #fff;
    transition: 0.3s ease-in-out;
}

.archiveNews_pagination .pagination .current {
    color: #fff;
    border-color: #1e3a8a;
    background-color: #1e3a8a;
}

@media all and (min-width: 961px) {
    .archiveNews_link:hover,
    .archiveNews_link:focus {
        background-color: #f8fafc;
        box-shadow: 0 8px 24px rgba(30, 58, 138, .08);
    }

    .archiveNews_link:hover .archiveNews_arrow svg,
    .archiveNews_link:focus .archiveNews_arrow svg {
        color: #1e3a8a;
        transform: translateX(5px);
    }

    .archiveNews_pagination .pagination a:hover,
    .archiveNews_pagination .pagination a:focus {
        color: #fff;
        border-color: #1e3a8a;
        background-color: #1e3a8a;
    }
}

@media all and (max-width: 960px) {
    .archiveNews {
        padding: 0 0 96px;
    }

    .archiveNews_header {
        margin-bottom: 48px;
        padding-top: 64px;
    }

    .archiveNews_title {
        font-size: 38px;
    }

    .archiveNews_link {
        grid-template-columns: 120px minmax(0, 1fr) 26px;
        gap: 24px;
    }
}

@media all and (max-width: 599px) {
    .archiveNews {
        padding: 0 0 72px;
    }

    .archiveNews_inner {
        padding: 0 20px;
    }

    .archiveNews_header {
        margin-bottom: 32px;
        padding-top: 44px;
    }

    .archiveNews_title {
        font-size: 30px;
    }

    .archiveNews_description {
        margin-top: 16px;
        font-size: 15px;
    }

    .archiveNews_link {
        min-height: 0;
        padding: 22px 8px;
        grid-template-columns: minmax(0, 1fr) 22px;
        gap: 14px;
    }

    .archiveNews_date {
        grid-column: 1 / -1;
        font-size: 14px;
    }

    .archiveNews_itemTitle {
        font-size: 16px;
        line-height: 1.7;
    }

    .archiveNews_arrow {
        grid-column: 2;
        grid-row: 2;
    }

    .archiveNews_arrow svg {
        width: 20px;
        height: 20px;
    }

    .archiveNews_empty {
        padding: 28px 8px;
        font-size: 15px;
    }

    .archiveNews_pagination {
        margin-top: 48px;
    }

    .archiveNews_pagination .pagination ul {
        gap: 6px;
    }

    .archiveNews_pagination .pagination a,
    .archiveNews_pagination .pagination span {
        min-width: 40px;
        height: 40px;
        padding: 0 10px;
        font-size: 14px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .archiveNews,
    .archiveNews_inner,
    .archiveNews_header,
    .archiveNews_title,
    .archiveNews_link,
    .archiveNews_itemTitle,
    .archiveNews_arrow svg,
    .archiveNews_pagination,
    .archiveNews_pagination .pagination a,
    .archiveNews_pagination .pagination span {
        transition: none;
    }
}

/*********************
PAGE TITLE
*********************/

/* pageTitle
----------------------------------------------- */
.pageTitle {
    width: 100%;
    text-align: center;
    transition: 0.3s ease-in-out;
}

.pageTitle_heading {
    position: relative;
    display: inline-block;
    margin: 0;
    padding: 0 0 24px;
    color: #1e3a8a;
    font-family: "Yu Gothic", YuGothic, sans-serif;
    font-size: clamp(28px, 2.4vw, 34px);
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: .08em;
    transition: 0.3s ease-in-out;
}

.pageTitle_heading::after {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    width: 88px;
    height: 2px;
    margin: 0 auto;
    content: "";
    background-color: #1e3a8a;
    transition: 0.3s ease-in-out;
}

/* archiveNews page title adjustment
----------------------------------------------- */
.archiveNews_header {
    text-align: center;
}

.archiveNews_description {
    margin-right: auto;
    margin-left: auto;
    text-align: center;
}

@media all and (max-width: 960px) {
    .pageTitle_heading {
        padding-bottom: 22px;
        font-size: clamp(28px, 4vw, 32px);
    }

    .pageTitle_heading::after {
        width: 80px;
    }
}

@media all and (max-width: 599px) {
    .pageTitle_heading {
        padding-bottom: 18px;
        font-size: 26px;
        letter-spacing: .06em;
    }

    .pageTitle_heading::after {
        width: 64px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .pageTitle,
    .pageTitle_heading,
    .pageTitle_heading::after {
        transition: none;
    }
}


/*********************
SINGLE - NEWS
*********************/

/* singleNews
----------------------------------------------- */
.singleNews {
    width: 100%;
    min-height: 60vh;
    padding: 0 0 112px;
    background-color: #fff;
    transition: 0.3s ease-in-out;
}

.singleNews_inner {
    width: 100%;
    max-width: 1040px;
    margin: 0 auto;
    padding: 0 24px;
    transition: 0.3s ease-in-out;
}

.singleNews_article {
    margin: 0;
}

.singleNews_header {
    margin-bottom: 64px;
    text-align: left;
    transition: 0.3s ease-in-out;
}

.singleNews_title {
    max-width: 920px;
    margin: 14px 0 0;
    padding: 0;
    color: #1e3a8a;
    font-family: "Yu Gothic", YuGothic, sans-serif;
    font-size: clamp(30px, 2.6vw, 36px);
    font-weight: 600;
    line-height: 1.55;
    letter-spacing: .04em;
    text-align: left;
    transition: 0.3s ease-in-out;
}

.singleNews_title::before,
.singleNews_title::after {
    display: none;
    content: none;
}

.singleNews_date {
    display: block;
    margin: 0;
    color: #64748b;
    font-family: "Roboto", sans-serif;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: .08em;
    transition: 0.3s ease-in-out;
}

.singleNews_content,
.pageContent {
    color: #333;
    font-family: -apple-system, BlinkMacSystemFont, "游ゴシック体", YuGothic, "Yu Gothic M", "游ゴシック Medium", "Yu Gothic Medium", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 2;
    letter-spacing: .03em;
    -webkit-font-smoothing: antialiased;
    transition: 0.3s ease-in-out;
}

.singleNews_content > *:first-child {
    margin-top: 0;
}

.singleNews_content > *:last-child {
    margin-bottom: 0;
}

.singleNews_content p {
    margin: 0 0 1.8em;
}

.singleNews_content h2 {
    position: relative;
    margin: 72px 0 28px;
    padding: 0 0 18px 22px;
    color: #1e3a8a;
    font-size: 28px;
    font-weight: 700;
    line-height: 1.55;
    border-bottom: 1px solid #dbe3ef;
    transition: 0.3s ease-in-out;
}

.singleNews_content h2::before {
    position: absolute;
    top: .18em;
    bottom: calc(.18em + 18px);
    left: 0;
    width: 4px;
    content: "";
    background-color: #1e3a8a;
}

.singleNews_content h3 {
    margin: 52px 0 22px;
    color: #1e3a8a;
    font-size: 23px;
    font-weight: 700;
    line-height: 1.6;
    transition: 0.3s ease-in-out;
}

.singleNews_content h4 {
    margin: 40px 0 18px;
    color: #1a1a2e;
    font-size: 19px;
    font-weight: 700;
    line-height: 1.65;
}

.singleNews_content ul,
.singleNews_content ol {
    margin: 0 0 2em;
    padding-left: 1.6em;
    list-style: revert;
}

.singleNews_content li + li {
    margin-top: .5em;
}

.singleNews_content a {
    color: #1e3a8a;
    text-decoration: underline;
    text-underline-offset: .2em;
}

.singleNews_content img {
    max-width: 100%;
    height: auto;
    border-radius: 4px;
}

.singleNews_content figure {
    margin: 48px 0;
}

.singleNews_content blockquote {
    margin: 40px 0;
    padding: 28px 32px;
    color: #475569;
    background-color: #f5f7fb;
    border-left: 4px solid #1e3a8a;
}

.singleNews_content table {
    width: 100%;
    margin: 40px 0;
    border-collapse: collapse;
}

.singleNews_content th,
.singleNews_content td {
    padding: 16px 18px;
    border: 1px solid #dbe1ea;
    vertical-align: top;
}

.singleNews_content th {
    color: #1e3a8a;
    background-color: #f4f7fb;
    font-weight: 700;
}

.singleNews_pageLinks {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-top: 48px;
}

.singleNews_pageLinks a,
.singleNews_pageLinks > span:not(.singleNews_pageLinksTitle) {
    min-width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #1e3a8a;
    border: 1px solid #dbe1ea;
    text-decoration: none;
}

.singleNews_navigation {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: 28px;
    margin-top: 96px;
    padding-top: 40px;
    border-top: 1px solid #dbe1ea;
    transition: 0.3s ease-in-out;
}

.singleNews_navigation a {
    color: #1a1a2e;
    text-decoration: none;
}

.singleNews_navigationPrev,
.singleNews_navigationNext {
    min-width: 0;
}

.singleNews_navigationNext {
    text-align: right;
}

.singleNews_navigationLabel {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #1e3a8a;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .08em;
    transition: 0.3s ease-in-out;
}

.singleNews_navigationNext .singleNews_navigationLabel {
    justify-content: flex-end;
}

.singleNews_navigationArrow {
    font-family: "Roboto", sans-serif;
    font-size: 18px;
    font-weight: 400;
    transition: 0.3s ease-in-out;
}


.singleNews_navigationIndex a {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    min-width: 108px;
    padding: 12px 8px;
    color: #1e3a8a;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .06em;
}

.singleNews_navigationIndex a span {
    position: relative;
    display: block;
    width: 22px;
    height: 22px;
}

.singleNews_navigationIndex a span::before,
.singleNews_navigationIndex a span::after {
    position: absolute;
    width: 8px;
    height: 8px;
    content: "";
    border: 1px solid currentColor;
}

.singleNews_navigationIndex a span::before {
    top: 2px;
    left: 2px;
    box-shadow: 11px 0 0 -1px #fff, 11px 0 0 0 currentColor;
}

.singleNews_navigationIndex a span::after {
    bottom: 2px;
    left: 2px;
    box-shadow: 11px 0 0 -1px #fff, 11px 0 0 0 currentColor;
}

.singleNews_notFound {
    text-align: center;
}

.singleNews_notFound p {
    margin: 40px 0 32px;
    color: #64748b;
    font-size: 16px;
}

.singleNews_backButton {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 220px;
    min-height: 54px;
    padding: 12px 24px;
    color: #fff;
    background-color: #1e3a8a;
    border: 1px solid #1e3a8a;
    transition: 0.3s ease-in-out;
}

@media all and (min-width: 961px) {
    .singleNews_navigationPrev a:hover .singleNews_navigationArrow,
    .singleNews_navigationPrev a:focus .singleNews_navigationArrow {
        transform: translateX(-5px);
    }

    .singleNews_navigationNext a:hover .singleNews_navigationArrow,
    .singleNews_navigationNext a:focus .singleNews_navigationArrow {
        transform: translateX(5px);
    }

    .singleNews_navigationPrev a:hover .singleNews_navigationLabel,
    .singleNews_navigationPrev a:focus .singleNews_navigationLabel,
    .singleNews_navigationNext a:hover .singleNews_navigationLabel,
    .singleNews_navigationNext a:focus .singleNews_navigationLabel,
    .singleNews_navigationIndex a:hover,
    .singleNews_navigationIndex a:focus {
        color: #1e40af;
    }

    .singleNews_backButton:hover,
    .singleNews_backButton:focus {
        color: #1e3a8a;
        background-color: #fff;
    }
}

@media all and (max-width: 960px) {
    .singleNews {
        padding: 0 0 96px;
    }

    .singleNews_inner {
        max-width: 900px;
    }

    .singleNews_header {
        margin-bottom: 56px;
    }

    .singleNews_content,
    .pageContent {
        font-size: 16px;
    }

    .singleNews_content h2 {
        margin-top: 64px;
        font-size: 25px;
    }

    .singleNews_content h3 {
        margin-top: 46px;
        font-size: 21px;
    }

    .singleNews_navigation {
        margin-top: 80px;
    }
}

@media all and (max-width: 599px) {
    .singleNews {
        padding: 0 0 72px;
    }

    .singleNews_inner {
        padding: 0 20px;
    }

    .singleNews_header {
        margin-bottom: 44px;
    }

    .singleNews_title {
        margin-top: 12px;
        font-size: 28px;
        line-height: 1.55;
        letter-spacing: .03em;
    }

    .singleNews_date {
        font-size: 14px;
    }

    .singleNews_content,
    .pageContent {
        font-size: 15px;
        line-height: 1.95;
    }

    .singleNews_content h2 {
        margin: 52px 0 24px;
        padding: 0 0 15px 17px;
        font-size: 22px;
    }

    .singleNews_content h2::before {
        bottom: calc(.18em + 15px);
        width: 3px;
    }

    .singleNews_content h3 {
        margin: 40px 0 18px;
        font-size: 19px;
    }

    .singleNews_content h4 {
        margin: 34px 0 16px;
        font-size: 17px;
    }

    .singleNews_content figure {
        margin: 36px 0;
    }

    .singleNews_content blockquote {
        margin: 32px 0;
        padding: 22px 20px;
    }

    .singleNews_content table {
        display: block;
        overflow-x: auto;
        white-space: nowrap;
    }

    .singleNews_navigation {
        grid-template-columns: 1fr 1fr;
        gap: 28px 16px;
        margin-top: 64px;
        padding-top: 32px;
    }

    .singleNews_navigationIndex {
        grid-column: 1 / -1;
        grid-row: 1;
        text-align: center;
    }

    .singleNews_navigationPrev {
        grid-column: 1;
        grid-row: 2;
    }

    .singleNews_navigationNext {
        grid-column: 2;
        grid-row: 2;
    }


    .singleNews_navigationLabel {
        font-size: 12px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .singleNews,
    .singleNews_inner,
    .singleNews_header,
    .singleNews_content,
    .pageContent,
    .singleNews_content h2,
    .singleNews_content h3,
    .singleNews_navigation,
    .singleNews_navigationArrow,
    .singleNews_navigationLabel,
    .singleNews_backButton {
        transition: none;
    }
}

/*********************
BREADCRUMB
*********************/

/* breadcrumb
----------------------------------------------- */
.breadcrumb {
    width: 100%;
    margin: 0;
    padding: 113px 0 0;
    background-color: #fff;
    transition: 0.3s ease-in-out;
}


.admin-bar .breadcrumb {
    padding-top: 145px;
}

@media all and (max-width: 782px) {
    .admin-bar .breadcrumb {
        padding-top: 130px;
    }
}
.breadcrumb_inner {
    position: relative;
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
    padding: 18px 24px;
    transition: 0.3s ease-in-out;
}

.breadcrumb_inner::after {
    position: absolute;
    right: 24px;
    bottom: 0;
    left: 24px;
    height: 1px;
    background-color: #e5e7eb;
    content: "";
    transition: 0.3s ease-in-out;
}

.breadcrumb_list {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: 0;
    margin: 0;
    padding: 0;
    overflow-x: auto;
    list-style: none;
    white-space: nowrap;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}

.breadcrumb_list::-webkit-scrollbar {
    display: none;
}

.breadcrumb_item {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    color: #6b7280;
    font-size: 13px;
    line-height: 1.6;
    letter-spacing: .03em;
}

.breadcrumb_item:not(:last-child)::after {
    width: 7px;
    height: 7px;
    margin: 0 14px;
    border-top: 1px solid #9ca3af;
    border-right: 1px solid #9ca3af;
    content: "";
    transform: rotate(45deg);
}

.breadcrumb_item a {
    color: #1e3a8a;
    text-decoration: none;
    transition: 0.3s ease-in-out;
}

.breadcrumb_current {
    display: inline-block;
    max-width: min(520px, 55vw);
    overflow: hidden;
    color: #4b5563;
    text-overflow: ellipsis;
    vertical-align: bottom;
}

@media all and (min-width: 961px) {
    .breadcrumb_item a:hover,
    .breadcrumb_item a:focus {
        color: #2563eb;
    }
}

@media all and (max-width: 960px) {
    .breadcrumb {
        padding: 0;
    }

    .breadcrumb_inner {
        padding: 16px 20px;
    }

    .breadcrumb_inner::after {
        right: 20px;
        left: 20px;
    }
}

@media all and (max-width: 599px) {
    .breadcrumb {
        padding: 0;
    }

    .breadcrumb_inner {
        padding: 14px 16px;
    }

    .breadcrumb_inner::after {
        right: 16px;
        left: 16px;
    }

    .breadcrumb_item {
        font-size: 12px;
    }

    .breadcrumb_item:not(:last-child)::after {
        margin: 0 10px;
    }

    .breadcrumb_current {
        max-width: 58vw;
    }
}

@media (prefers-reduced-motion: reduce) {
    .breadcrumb,
    .breadcrumb_inner,
    .breadcrumb_inner::after,
    .breadcrumb_item a {
        transition: none;
    }
}

/*********************
COMPANY PAGE
*********************/

/* companyPage
----------------------------------------------- */
.companyPage {
    width: 100%;
    color: #333;
    background-color: #fff;
    transition: 0.3s ease-in-out;
}

.companyPage *,
.companyPage *::before,
.companyPage *::after {
    box-sizing: border-box;
}

.companyPage img {
    display: block;
    width: 100%;
    height: auto;
}

.companyPage_title {
    padding: 80px 24px 64px;
}

/* companyLocalNav
----------------------------------------------- */
.companyLocalNav {
    width: 100%;
    max-width: 1040px;
    margin: 0 auto 96px;
    padding: 0 24px;
    transition: 0.3s ease-in-out;
}

.companyLocalNav_list {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    margin: 0;
    padding: 0;
    border-top: 1px solid #d9e0ea;
    border-bottom: 1px solid #d9e0ea;
    list-style: none;
}

.companyLocalNav_list li {
    margin: 0;
    padding: 0;
}

.companyLocalNav_list li + li {
    border-left: 1px solid #d9e0ea;
}

.companyLocalNav_list a {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 72px;
    padding: 16px 10px 26px;
    color: #1e3a8a;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: .06em;
    text-align: center;
    text-decoration: none;
    transition: 0.3s ease-in-out;
}

.companyLocalNav_list a::after {
    position: absolute;
    right: 0;
    bottom: 13px;
    left: 0;
    width: 7px;
    height: 7px;
    margin: auto;
    content: "";
    border-right: 1px solid #1e3a8a;
    border-bottom: 1px solid #1e3a8a;
    transform: rotate(45deg);
    transition: 0.3s ease-in-out;
}

@media (hover: hover) {
    .companyLocalNav_list a:hover,
    .companyLocalNav_list a:focus {
        color: #fff;
        background-color: #1e3a8a;
    }

    .companyLocalNav_list a:hover::after,
    .companyLocalNav_list a:focus::after {
        border-color: #fff;
    }
}

/* companySection
----------------------------------------------- */
.companySection {
    width: 100%;
    padding: 112px 0;
    scroll-margin-top: 100px;
    transition: 0.3s ease-in-out;
}

.companySection:nth-of-type(odd) {
    background-color: #f5f7fa;
}

.companySection_inner {
    width: 100%;
    max-width: 1040px;
    margin: 0 auto;
    padding: 0 24px;
    transition: 0.3s ease-in-out;
}

.companySection_innerNarrow {
    max-width: 900px;
}

/* companyHeading
----------------------------------------------- */
.companyHeading {
    margin: 0 0 56px;
    text-align: center;
    transition: 0.3s ease-in-out;
}

.companyHeading_title {
    position: relative;
    display: inline-block;
    margin: 0;
    padding: 0 0 20px;
    color: #1e3a8a;
    font-family: "Yu Gothic", YuGothic, sans-serif;
    font-size: clamp(26px, 2.4vw, 32px);
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: .08em;
    transition: 0.3s ease-in-out;
}

.companyHeading_title::after {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    width: 64px;
    height: 2px;
    margin: auto;
    content: "";
    background-color: #1e3a8a;
}

.companyHeading_light .companyHeading_title {
    color: #fff;
}

.companyHeading_light .companyHeading_title::after {
    background-color: #fff;
}

.companySubHeading {
    position: relative;
    margin: 80px 0 36px;
    padding: 0 0 16px 20px;
    color: #1e3a8a;
    font-size: 23px;
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: .06em;
    border-bottom: 1px solid #ccd6e5;
    transition: 0.3s ease-in-out;
}

.companySubHeading::before {
    position: absolute;
    top: .2em;
    bottom: calc(.2em + 16px);
    left: 0;
    width: 4px;
    content: "";
    background-color: #1e3a8a;
}

/* common image placeholder
----------------------------------------------- */
.companyImagePlaceholder {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 360px;
    overflow: hidden;
    color: #64748b;
    font-size: 14px;
    line-height: 1.6;
    letter-spacing: .06em;
    text-align: center;
    background: linear-gradient(135deg, #e5eaf1 0%, #f7f9fb 100%);
    border: 1px solid #d6dde7;
    transition: 0.3s ease-in-out;
}

.companyImagePlaceholder span {
    padding: 20px;
}

/* companyIntroduction
----------------------------------------------- */
.companyIntroduction_layout {
    display: grid;
    grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
    gap: 64px;
    align-items: center;
    transition: 0.3s ease-in-out;
}

.companyIntroduction_body p {
    margin: 0 0 1.6em;
}

.companyIntroduction_body p:last-child {
    margin-bottom: 0;
}

.companyLead {
    color: #1e3a8a;
    font-size: clamp(21px, 2vw, 27px);
    font-weight: 600;
    line-height: 1.75;
    letter-spacing: .05em;
}

/* companyCreed
----------------------------------------------- */
.companyCreed {
    color: #fff;
    background-color: #163272 !important;
}

.companyCreed_statement {
    max-width: 850px;
    margin: 0 auto 56px;
    font-size: 18px;
    font-weight: 500;
    line-height: 2.2;
    letter-spacing: .08em;
    text-align: center;
}

.companyCreed_list {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    max-width: 900px;
    margin: 0 auto;
    padding: 0;
    list-style: none;
}

.companyCreed_list li {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 90px;
    margin: 0;
    padding: 16px 8px;
    font-size: 18px;
    font-weight: 600;
    letter-spacing: .12em;
    border-top: 1px solid rgba(255, 255, 255, .4);
    border-bottom: 1px solid rgba(255, 255, 255, .4);
}

.companyCreed_list li + li {
    border-left: 1px solid rgba(255, 255, 255, .4);
}

/* companyDefinitionTable
----------------------------------------------- */
.companyDefinitionTable {
    border-top: 1px solid #ccd6e5;
}

.companyDefinitionTable dl {
    display: grid;
    grid-template-columns: 210px minmax(0, 1fr);
    margin: 0;
    border-bottom: 1px solid #ccd6e5;
}

.companyDefinitionTable dt,
.companyDefinitionTable dd {
    margin: 0;
    padding: 22px 28px;
}

.companyDefinitionTable dt {
    display: flex;
    align-items: center;
    color: #1e3a8a;
    font-weight: 600;
    background-color: #eef2f7;
}

.companyDefinitionTable dd {
    background-color: #fff;
}

.companyDefinitionTable a {
    color: #1e3a8a;
    text-decoration: underline;
    text-underline-offset: 4px;
}

/* companyLocation
----------------------------------------------- */
.companyLocationGrid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 32px;
    transition: 0.3s ease-in-out;
}

.companyLocation {
    overflow: hidden;
    background-color: #fff;
    border: 1px solid #d9e0ea;
    transition: 0.3s ease-in-out;
}

.companyLocation_body {
    padding: 32px;
}

.companyLocation_title {
    margin: 0 0 20px;
    color: #1e3a8a;
    font-size: 21px;
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: .05em;
}

.companyLocation_body p {
    margin: 0 0 12px;
}

.companyLocation_body p:last-child {
    margin-bottom: 0;
}

.companyLocation_body span {
    display: inline-block;
    min-width: 42px;
    color: #1e3a8a;
    font-weight: 600;
}

.companyLocation_map {
    position: relative;
    width: 100%;
    padding-top: 58%;
}

.companyLocation_map iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.companyLocation_note {
    margin: 40px 0 0;
    padding: 26px 30px;
    background-color: #fff;
    border-left: 4px solid #1e3a8a;
}

/* companyTimeline
----------------------------------------------- */
.companyTimeline {
    position: relative;
}

.companyTimeline::before {
    position: absolute;
    top: 14px;
    bottom: 14px;
    left: 190px;
    width: 1px;
    content: "";
    background-color: #becbdd;
}

.companyTimeline dl {
    position: relative;
    display: grid;
    grid-template-columns: 160px minmax(0, 1fr);
    column-gap: 64px;
    margin: 0;
    padding: 0 0 34px;
}

.companyTimeline dl:last-child {
    padding-bottom: 0;
}

.companyTimeline dt,
.companyTimeline dd {
    margin: 0;
}

.companyTimeline dt {
    color: #1e3a8a;
    font-weight: 600;
    line-height: 1.8;
    text-align: right;
}

.companyTimeline dt::after {
    position: absolute;
    top: 11px;
    left: 184px;
    width: 13px;
    height: 13px;
    content: "";
    background-color: #1e3a8a;
    border: 3px solid #f5f7fa;
    border-radius: 50%;
    box-shadow: 0 0 0 1px #1e3a8a;
}

.companyTimeline dd {
    line-height: 1.9;
}

/* companyFacility
----------------------------------------------- */
.companyFacility_intro {
    display: grid;
    grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
    gap: 56px;
    align-items: center;
    transition: 0.3s ease-in-out;
}

.companyFacility_body h3 {
    margin: 0 0 24px;
    color: #1e3a8a;
    font-size: clamp(21px, 2vw, 26px);
    font-weight: 600;
    line-height: 1.7;
    letter-spacing: .05em;
}

.companyFacility_body p {
    margin: 0 0 1.5em;
}

.companyFacility_body p:last-child {
    margin-bottom: 0;
}

.companyTableArea {
    width: 100%;
}

.companyTableGuide,
.companyTableScrollTop {
    display: none;
}

.companyTableScroll {
    width: 100%;
    overflow: visible;
}

.companyEquipmentTable {
    width: 100%;
    min-width: 0;
    margin: 0;
    border-collapse: collapse;
    border-spacing: 0;
    background-color: #fff;
}

.companyEquipmentTable th,
.companyEquipmentTable td {
    padding: 15px 20px;
    line-height: 1.6;
    vertical-align: middle;
    border: 1px solid #ccd6e5;
}

.companyEquipmentTable thead th {
    color: #fff;
    font-weight: 600;
    text-align: center;
    background-color: #1e3a8a;
}

.companyEquipmentTable tbody th {
    width: 28%;
    color: #1e3a8a;
    font-weight: 600;
    text-align: left;
    background-color: #eef2f7;
}

.companyEquipmentTable td:last-child {
    width: 16%;
    text-align: center;
    white-space: nowrap;
}

/* companyAssociated
----------------------------------------------- */
.companyAssociated_card {
    display: grid;
    grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
    gap: 56px;
    align-items: center;
    transition: 0.3s ease-in-out;
}

.companyAssociated_body h3 {
    margin: 0 0 16px;
    color: #1e3a8a;
    font-size: clamp(24px, 2.3vw, 30px);
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: .05em;
}

.companyAssociated_body p {
    margin: 0 0 1.5em;
}

.companyAssociated_address {
    padding: 18px 20px;
    background-color: #eef2f7;
    border-left: 4px solid #1e3a8a;
}

.companyAssociated_body sup {
    font-size: .65em;
}

.companyButton {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 280px;
    min-height: 60px;
    padding: 15px 48px 15px 24px;
    color: #fff !important;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: .04em;
    text-align: center;
    text-decoration: none !important;
    background-color: #1e3a8a;
    transition: 0.3s ease-in-out;
}

@media (hover: hover) {
    .companyButton:hover,
    .companyButton:focus {
        opacity: .78;
    }
}

/* company page responsive
----------------------------------------------- */
@media all and (max-width: 960px) {
    .companyPage_title {
        padding: 64px 24px 52px;
    }

    .companyLocalNav {
        margin-bottom: 72px;
    }

    .companyLocalNav_list {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .companyLocalNav_list li:nth-child(4) {
        border-left: 0;
    }

    .companyLocalNav_list li:nth-child(n+4) {
        border-top: 1px solid #d9e0ea;
    }

    .companySection {
        padding: 88px 0;
    }

    .companyIntroduction_layout,
    .companyFacility_intro,
    .companyAssociated_card {
        gap: 40px;
    }

    .companyCreed_list li {
        font-size: 16px;
    }

    .companyDefinitionTable dl {
        grid-template-columns: 180px minmax(0, 1fr);
    }

    .companyLocation_body {
        padding: 28px;
    }
}

@media all and (max-width: 767px) {
    .companyPage_title {
        padding: 52px 20px 44px;
    }

    .companyLocalNav {
        margin-bottom: 56px;
        padding: 0 20px;
    }

    .companySection {
        padding: 72px 0;
    }

    .companySection_inner {
        padding: 0 20px;
    }

    .companyHeading {
        margin-bottom: 40px;
    }

    .companyHeading_title {
        padding-bottom: 16px;
        font-size: 25px;
    }

    .companyHeading_title::after {
        width: 56px;
    }

    .companyIntroduction_layout,
    .companyFacility_intro,
    .companyAssociated_card,
    .companyLocationGrid {
        grid-template-columns: 1fr;
    }

    .companyImagePlaceholder {
        min-height: 280px;
    }

    .companyLead {
        font-size: 21px;
    }

    .companyCreed_statement {
        margin-bottom: 40px;
        font-size: 16px;
        line-height: 2;
        text-align: left;
    }

    .companyCreed_list {
        grid-template-columns: 1fr;
        border-top: 1px solid rgba(255, 255, 255, .4);
    }

    .companyCreed_list li {
        min-height: 64px;
        border-top: 0;
        border-bottom: 1px solid rgba(255, 255, 255, .4);
        border-left: 0 !important;
    }

    .companyDefinitionTable dl {
        grid-template-columns: 1fr;
    }

    .companyDefinitionTable dt,
    .companyDefinitionTable dd {
        padding: 16px 20px;
    }

    .companyDefinitionTable dt {
        padding-bottom: 10px;
    }

    .companyDefinitionTable dd {
        padding-top: 10px;
    }

    .companySubHeading {
        margin-top: 64px;
        font-size: 21px;
    }

    .companyTimeline::before {
        left: 7px;
    }

    .companyTimeline dl {
        display: block;
        padding: 0 0 34px 34px;
    }

    .companyTimeline dt {
        margin-bottom: 7px;
        text-align: left;
    }

    .companyTimeline dt::after {
        top: 8px;
        left: 1px;
    }

    .companyLocation_note {
        padding: 22px 24px;
    }
}

@media all and (max-width: 599px) {
    .companyPage_title {
        padding-top: 44px;
    }

    .companyLocalNav_list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .companyLocalNav_list li:nth-child(3),
    .companyLocalNav_list li:nth-child(5) {
        border-left: 0;
    }

    .companyLocalNav_list li:nth-child(4) {
        border-left: 1px solid #d9e0ea;
    }

    .companyLocalNav_list li:nth-child(n+3) {
        border-top: 1px solid #d9e0ea;
    }

    .companyLocalNav_list a {
        min-height: 64px;
        font-size: 14px;
    }

    .companySection {
        padding: 64px 0;
    }

    .companySection_inner {
        padding: 0 16px;
    }

    .companyImagePlaceholder {
        min-height: 220px;
    }

    .companyLocation_body {
        padding: 24px 20px;
    }

    .companyLocation_note {
        margin-top: 32px;
        padding: 20px;
    }

    .companyEquipmentTable th,
    .companyEquipmentTable td {
        padding: 12px 14px;
    }

    .companyButton {
        width: 100%;
        min-width: 0;
        padding-right: 24px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .companyPage,
    .companyLocalNav,
    .companyLocalNav_list a,
    .companyLocalNav_list a::after,
    .companySection,
    .companySection_inner,
    .companyHeading,
    .companyHeading_title,
    .companySubHeading,
    .companyImagePlaceholder,
    .companyIntroduction_layout,
    .companyLocationGrid,
    .companyLocation,
    .companyFacility_intro,
    .companyAssociated_card,
    .companyButton {
        transition: none;
    }
}

/* company page final adjustments
----------------------------------------------- */
html {
    scroll-behavior: smooth;
}

.companySection {
    scroll-margin-top: 120px;
}

.companyIntroduction_layout,
.companyFacility_intro,
.companyAssociated_card {
    align-items: start;
}

.companyIntroduction_image,
.companyFacility_image,
.companyAssociated_image {
    width: 100%;
    aspect-ratio: 4 / 3;
    min-height: 0;
}

.companyMediaImage {
    display: block;
    width: 100%;
    height: auto;
    object-fit: contain;
}

.companyInlineList {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 28px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.companyInlineList li {
    position: relative;
    margin: 0;
    padding-left: 18px;
}

.companyInlineList li::before {
    position: absolute;
    top: .72em;
    left: 0;
    width: 6px;
    height: 6px;
    content: "";
    background-color: #1e3a8a;
    border-radius: 50%;
    transform: translateY(-50%);
}

@media all and (max-width: 767px) {
    .companyIntroduction_image,
    .companyFacility_image,
    .companyAssociated_image {
        aspect-ratio: 4 / 3;
        min-height: 0;
    }
}

@media all and (max-width: 599px) {
    .companyIntroduction_image,
    .companyFacility_image,
    .companyAssociated_image {
        aspect-ratio: 4 / 3;
        min-height: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }
}

/* Company creed president portrait
-------------------------------------------------------------- */
.companyCreed_president {
    display: flex;
    justify-content: center;
    margin: 0 auto 36px;
    text-align: center;
}

.companyCreed_president img {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
}

@media only screen and (max-width: 767px) {
    .companyCreed_president {
        margin-bottom: 28px;
        transition: 0.3s ease-in-out;
    }

    .companyCreed_president img {
        transition: 0.3s ease-in-out;
    }
}

/* Company page image no-padding correction
-------------------------------------------------------------- */
.companyImagePlaceholder.companyIntroduction_image,
.companyImagePlaceholder.companyFacility_image,
.companyImagePlaceholder.companyAssociated_image {
    display: block;
    min-height: 0;
    padding: 0;
    overflow: hidden;
    background: none;
    border: 0;
    border-radius: 20px;
}

.companyImagePlaceholder.companyIntroduction_image span,
.companyImagePlaceholder.companyFacility_image span,
.companyImagePlaceholder.companyAssociated_image span {
    display: block;
    padding: 0;
}

.companyMediaImage.companyIntroduction_image,
.companyMediaImage.companyFacility_image,
.companyMediaImage.companyAssociated_image,
.companyImagePlaceholder.companyIntroduction_image img,
.companyImagePlaceholder.companyFacility_image img,
.companyImagePlaceholder.companyAssociated_image img {
    display: block;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    object-fit: cover;
    border: 0;
    border-radius: inherit;
    transition: 0.3s ease-in-out;
}

@media only screen and (max-width: 767px) {
    .companyImagePlaceholder.companyIntroduction_image,
    .companyImagePlaceholder.companyFacility_image,
    .companyImagePlaceholder.companyAssociated_image {
        border-radius: 16px;
        transition: 0.3s ease-in-out;
    }
}


/* Company equipment table mobile scroll */

@media screen and (max-width: 767px) {

    .companyTableGuide {
        display: block;
        margin: 0 0 8px;
        color: #5f6b7a;
        font-size: 12px;
        line-height: 1.6;
        text-align: right;
    }

    .companyTableGuide::before {
        content: "← ";
    }

    .companyTableGuide::after {
        content: " →";
    }

    .companyTableScrollTop,
    .companyTableScroll {
        width: 100%;
        overflow-x: scroll;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        scrollbar-color: #1e3a8a #e4e9f0;
        scrollbar-width: auto;
    }

    .companyTableScrollTop {
        display: block;
        margin: 0 0 10px;
    }

    .companyTableScrollTop_inner {
        height: 1px;
    }

    .companyTableScroll {
        padding: 0 0 4px;
    }

    .companyEquipmentTable {
        width: 680px;
        min-width: 680px;
    }

    .companyTableScrollTop::-webkit-scrollbar,
    .companyTableScroll::-webkit-scrollbar {
        height: 10px;
    }

    .companyTableScrollTop::-webkit-scrollbar-track,
    .companyTableScroll::-webkit-scrollbar-track {
        background-color: #e4e9f0;
        border-radius: 999px;
    }

    .companyTableScrollTop::-webkit-scrollbar-thumb,
    .companyTableScroll::-webkit-scrollbar-thumb {
        background-color: #1e3a8a;
        border: 2px solid #e4e9f0;
        border-radius: 999px;
    }

    .companyTableScrollTop,
    .companyTableScroll,
    .companyEquipmentTable {
        transition: 0.3s ease-in-out;
    }

}

/* ==========================================================================
   Products page final
   ========================================================================== */
.productsPage_title {
    margin-bottom: 0;
}

.productsLocalNav_list {
    grid-template-columns: repeat(5, 1fr);
}

.productsSection {
    scroll-margin-top: 110px;
}

.productsMediaImage,
.productsPhotoGrid img,
.productsDiagram img {
    display: block;
    width: 100%;
    height: auto;
}

.productsFeature_intro {
    max-width: 920px;
    margin: 0 auto 52px;
}

.productsFeature_intro img {
    aspect-ratio: 16 / 7;
    object-fit: cover;
    border-radius: 18px;
}

.productsFeature_intro01 {
    max-width: 920px;
    margin: 0 auto 52px;
}

.productsFeature_intro01 img {
    object-fit: cover;
}

.productsFeature_list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
}

.productsFeature_item {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    gap: 18px;
    padding: 28px;
    background-color: #fff;
    border: 1px solid #dfe6ed;
    border-radius: 16px;
    box-shadow: 0 10px 28px rgba(19, 49, 79, 0.06);
}

.productsFeature_number {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 54px;
    height: 54px;
    color: #fff;
    background-color: #173e66;
    border-radius: 50%;
    font-size: 20px;
    font-weight: 700;
}

.productsFeature_body h3,
.productsSubHeading {
    margin: 0 0 12px;
    color: #173e66;
    font-size: 21px;
    line-height: 1.45;
}

.productsFeature_body p {
    margin: 0;
}

.productsLead {
    margin: 0 0 18px;
    color: #173e66;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.7;
}

.productsPhotoGrid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    margin: 38px 0;
}

.productsPhotoGrid figure {
    margin: 0;
}

.productsPhotoGrid img {
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: 14px;
}

.productsVariation_table {
    min-width: 840px;
}

.productsTwoColumn,
.productsExample_layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: center;
    gap: 54px;
}

.productsTwoColumn img {
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: 18px;
}

.productsDiagram {
    max-width: 980px;
    margin: 38px auto 0;
    padding: 20px;
    background-color: #fff;
    border: 1px solid #dfe6ed;
    border-radius: 16px;
}

.productsCarDiagram {
    margin: 0;
}

.productsExample_list {
    counter-reset: productsExample;
    margin: 0;
    padding: 0;
    list-style: none;
}

.productsExample_list li {
    counter-increment: productsExample;
    position: relative;
    margin: 0;
    padding: 12px 0 12px 46px;
    border-bottom: 1px solid #dfe6ed;
    line-height: 1.65;
}

.productsExample_list li::before {
    content: counter(productsExample);
    position: absolute;
    top: 10px;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    color: #fff;
    background-color: #173e66;
    border-radius: 50%;
    font-size: 13px;
    font-weight: 700;
}

@media only screen and (max-width: 900px) {
    .productsLocalNav_list {
        grid-template-columns: repeat(3, 1fr);
        transition: 0.3s ease-in-out;
    }

    .productsLocalNav_list li:nth-child(3) {
        border-right: 0;
    }

    .productsLocalNav_list li:nth-child(n+4) {
        border-top: 1px solid #dce3ec;
    }

    .productsFeature_list,
    .productsTwoColumn,
    .productsExample_layout {
        grid-template-columns: 1fr;
        transition: 0.3s ease-in-out;
    }
}

@media only screen and (max-width: 767px) {
    .productsFeature_intro {
        margin-bottom: 34px;
        transition: 0.3s ease-in-out;
    }

    .productsFeature_list,
    .productsPhotoGrid {
        grid-template-columns: 1fr;
        transition: 0.3s ease-in-out;
    }

    .productsFeature_item {
        grid-template-columns: 44px minmax(0, 1fr);
        gap: 14px;
        padding: 22px 18px;
        transition: 0.3s ease-in-out;
    }

    .productsFeature_number {
        width: 44px;
        height: 44px;
        font-size: 17px;
        transition: 0.3s ease-in-out;
    }

    .productsFeature_body h3,
    .productsSubHeading {
        font-size: 18px;
        transition: 0.3s ease-in-out;
    }

    .productsLead {
        font-size: 19px;
        transition: 0.3s ease-in-out;
    }

    .productsDiagram {
        padding: 10px;
        transition: 0.3s ease-in-out;
    }
}

@media only screen and (max-width: 599px) {
    .productsLocalNav_list {
        grid-template-columns: repeat(2, 1fr);
        transition: 0.3s ease-in-out;
    }

    .productsLocalNav_list li:nth-child(3) {
        border-right: 1px solid #dce3ec;
    }

    .productsLocalNav_list li:nth-child(even) {
        border-right: 0;
    }

    .productsLocalNav_list li:last-child {
        grid-column: 1 / -1;
        border-right: 0;
    }
}

/* --------------------------------------------------------------------------
   Activities Page
   -------------------------------------------------------------------------- */
.activitiesPage {
    color: #26384a;
}

.activitiesSection_inner {
    width: min(1120px, calc(100% - 40px));
    margin: 0 auto;
}

.activitiesLocalNav_list {
    grid-template-columns: repeat(4, 1fr);
}

.activitiesLeadGrid,
.activitiesTwoColumn,
.activitiesHero {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: 48px;
    align-items: center;
}

.activitiesLeadImage img,
.activitiesPhoto img,
.activitiesHero img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 6px;
}

.activitiesLeadImage img {
    aspect-ratio: 16 / 10;
}

.activitiesLead,
.activitiesHeroText .activitiesLead {
    margin: 0 0 18px;
    color: #173e66;
    font-size: 24px;
    font-weight: 700;
    line-height: 1.65;
}

.activitiesQualityFlow {
    display: grid;
    grid-template-columns: repeat(7, auto);
    gap: 16px;
    align-items: center;
    margin: 64px 0;
}

.activitiesQualityStep {
    min-height: 170px;
    padding: 26px 20px;
    background: #f4f7fa;
    border-top: 4px solid #173e66;
    border-radius: 4px;
}

.activitiesQualityStep span {
    display: block;
    margin-bottom: 12px;
    color: #7c91a7;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.12em;
}

.activitiesQualityStep strong,
.activitiesQualityStep small {
    display: block;
}

.activitiesQualityStep strong {
    margin-bottom: 10px;
    color: #173e66;
    font-size: 18px;
}

.activitiesQualityStep small {
    font-size: 13px;
    line-height: 1.7;
}

.activitiesQualityFlow > i {
    position: relative;
    width: 28px;
    height: 2px;
    background: #9aabbc;
}

.activitiesQualityFlow > i::after {
    content: "";
    position: absolute;
    top: -4px;
    right: 0;
    width: 9px;
    height: 9px;
    border-top: 2px solid #9aabbc;
    border-right: 2px solid #9aabbc;
    transform: rotate(45deg);
}

.activitiesSubHeading {
    margin: 0 0 24px;
    padding-left: 18px;
    color: #173e66;
    border-left: 4px solid #66a2d8;
    font-size: 23px;
}

.activitiesCheckList {
    margin: 28px 0 0;
    padding: 0;
    list-style: none;
}

.activitiesCheckList li {
    position: relative;
    padding: 11px 0 11px 30px;
    border-bottom: 1px solid #dfe6ed;
}

.activitiesCheckList li::before {
    content: "";
    position: absolute;
    top: 18px;
    left: 3px;
    width: 12px;
    height: 7px;
    border-left: 2px solid #3979b5;
    border-bottom: 2px solid #3979b5;
    transform: rotate(-45deg);
}

.activitiesPhoto img {
    aspect-ratio: 4 / 3;
}

.activitiesCertification {
    display: grid;
    grid-template-columns: 240px minmax(0, 1fr);
    gap: 48px;
    align-items: center;
    padding: 48px;
    background: #fff;
    border: 1px solid #d9e2eb;
    border-radius: 6px;
}

.activitiesCertificationMark {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 180px;
    color: #fff;
    background: #173e66;
    border-radius: 4px;
}

.activitiesCertificationMark span {
    font-size: 52px;
    font-weight: 800;
    line-height: 1;
}

.activitiesCertificationMark strong {
    margin-top: 14px;
    font-size: 16px;
}

.activitiesCertificationBody h3 {
    margin: 0 0 18px;
    color: #173e66;
    font-size: 26px;
}

.activitiesHero img {
    aspect-ratio: 16 / 10;
}

.activitiesHero {
    margin-bottom: 64px;
}

.activitiesActionGrid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
}

.activitiesActionGrid article {
    position: relative;
    min-height: 220px;
    padding: 30px 26px;
    overflow: hidden;
    background: #f4f7fa;
    border-bottom: 3px solid #3979b5;
}

.activitiesActionGrid article > span {
    position: absolute;
    top: 12px;
    right: 16px;
    color: rgba(23, 62, 102, 0.10);
    font-size: 58px;
    font-weight: 800;
}

.activitiesActionGrid h4 {
    position: relative;
    margin: 28px 0 15px;
    color: #173e66;
    font-size: 20px;
}

.activitiesActionGrid p {
    position: relative;
    margin: 0;
}

.activitiesCertificationEa .activitiesCertificationMark {
    background: #2c6b5a;
}

.activitiesTargetPanel {
    margin-top: 42px;
    padding: 40px;
    background: #f4f7fa;
}

.activitiesTargetPanel h3 {
    margin: 0 0 28px;
    color: #173e66;
    text-align: center;
    font-size: 23px;
}

.activitiesTargetGrid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
}

.activitiesTargetGrid div {
    padding: 24px 18px;
    background: #fff;
    border-left: 4px solid #3979b5;
}

.activitiesTargetGrid strong,
.activitiesTargetGrid span {
    display: block;
}

.activitiesTargetGrid strong {
    color: #173e66;
    font-size: 23px;
}

.activitiesTargetGrid span {
    margin-top: 7px;
    font-size: 14px;
}

.activitiesNote {
    margin: 28px 0 0;
    padding: 18px 20px;
    background: #eef4f8;
    border-left: 4px solid #3979b5;
}

@media only screen and (max-width: 1000px) {
    .activitiesQualityFlow {
        grid-template-columns: repeat(2, 1fr);
        transition: 0.3s ease-in-out;
    }

    .activitiesQualityFlow > i {
        display: none;
        transition: 0.3s ease-in-out;
    }

    .activitiesActionGrid {
        grid-template-columns: repeat(2, 1fr);
        transition: 0.3s ease-in-out;
    }
}

@media only screen and (max-width: 767px) {
    .activitiesLocalNav_list {
        grid-template-columns: repeat(2, 1fr);
        transition: 0.3s ease-in-out;
    }

    .activitiesLeadGrid,
    .activitiesTwoColumn,
    .activitiesHero,
    .activitiesCertification {
        grid-template-columns: 1fr;
        gap: 28px;
        transition: 0.3s ease-in-out;
    }

    .activitiesLead {
        font-size: 20px;
        transition: 0.3s ease-in-out;
    }

    .activitiesQualityFlow,
    .activitiesActionGrid,
    .activitiesTargetGrid {
        grid-template-columns: 1fr;
        transition: 0.3s ease-in-out;
    }

    .activitiesQualityStep {
        min-height: 0;
        transition: 0.3s ease-in-out;
    }

    .activitiesCertification,
    .activitiesTargetPanel {
        padding: 26px 20px;
        transition: 0.3s ease-in-out;
    }

    .activitiesCertificationMark {
        min-height: 150px;
        transition: 0.3s ease-in-out;
    }

    .activitiesActionGrid article {
        min-height: 0;
        transition: 0.3s ease-in-out;
    }
}

/* ==========================================================================
   Contact Form
   ========================================================================== */

.cform {
    width: 100%;
    margin: 0;
    border-collapse: collapse;
    border-spacing: 0;
    background: #fff;
    border-top: 1px solid #d9e0e7;
}

.cform tr {
    border-bottom: 1px solid #d9e0e7;
}

.cform th,
.cform td {
    padding: 30px 32px;
    vertical-align: middle;
}

.cform th {
    width: 30%;
    background: #f4f7f9;
    color: #152333;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.7;
    text-align: left;
    letter-spacing: 0.04em;
}

.cform td {
    width: 70%;
    background: #fff;
}

.cform input[type="text"],
.cform input[type="email"],
.cform input[type="tel"],
.cform textarea {
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 14px 16px;
    border: 1px solid #c9d3dc;
    border-radius: 4px;
    background: #fff;
    color: #152333;
    font-family: inherit;
    font-size: 16px;
    line-height: 1.6;
    box-sizing: border-box;
    outline: none;
    transition: 0.3s ease-in-out;
}

.cform input[type="text"],
.cform input[type="email"],
.cform input[type="tel"] {
    min-height: 54px;
}

.cform textarea {
    min-height: 190px;
    resize: vertical;
}

.cform input[type="text"]:hover,
.cform input[type="email"]:hover,
.cform input[type="tel"]:hover,
.cform textarea:hover {
    border-color: #8fa3b5;
}

.cform input[type="text"]:focus,
.cform input[type="email"]:focus,
.cform input[type="tel"]:focus,
.cform textarea:focus {
    border-color: #0d5d91;
    box-shadow: 0 0 0 3px rgba(13, 93, 145, 0.12);
}

.cform input::placeholder,
.cform textarea::placeholder {
    color: #96a3af;
}

.required-srt {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 42px;
    margin-right: 10px;
    padding: 3px 8px;
    border-radius: 2px;
    background: #b4232f;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.08em;
    vertical-align: 1px;
}

.submit-btn,
.back-btn {
    text-align: center;
}

.submit-btn {
    margin-top: 48px;
}

.back-btn {
    margin-top: 18px;
}

.submit-btn input,
.submit-btn button,
.back-btn input,
.back-btn button {
    min-width: 260px;
    min-height: 58px;
    padding: 15px 38px;
    border-radius: 2px;
    font-family: inherit;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.08em;
    cursor: pointer;
    transition: 0.3s ease-in-out;
}

.submit-btn input,
.submit-btn button {
    border: 1px solid #0d5d91;
    background: #0d5d91;
    color: #fff;
    box-shadow: 0 10px 24px rgba(13, 93, 145, 0.16);
}

.submit-btn input:hover,
.submit-btn button:hover {
    background: #0a486f;
    border-color: #0a486f;
    transform: translateY(-2px);
    box-shadow: 0 14px 28px rgba(13, 93, 145, 0.22);
}

.back-btn input,
.back-btn button {
    border: 1px solid #7b8995;
    background: #fff;
    color: #42515e;
}

.back-btn input:hover,
.back-btn button:hover {
    background: #eef2f5;
    border-color: #42515e;
}

.mw_wp_form .error {
    margin-top: 8px;
    color: #b4232f;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.6;
}

.mw_wp_form_confirm .cform th {
    background: #f4f7f9;
}

.mw_wp_form_confirm .cform td {
    color: #263746;
    font-size: 16px;
    line-height: 1.8;
}

.mw_wp_form_complete {
    padding: 46px 40px;
    border-top: 3px solid #0d5d91;
    background: #f4f7f9;
    color: #263746;
    line-height: 2;
}

@media only screen and (max-width: 767px) {

    .cform,
    .cform tbody,
    .cform tr,
    .cform th,
    .cform td {
        display: block;
        width: 100%;
    }

    .cform {
        border-top: 0;
    }

    .cform tr {
        padding: 0;
        border-bottom: 1px solid #d9e0e7;
    }

    .cform th {
        padding: 20px 18px 10px;
        background: #f4f7f9;
        font-size: 14px;
    }

    .cform td {
        padding: 14px 18px 24px;
        background: #f4f7f9;
    }

    .cform input[type="text"],
    .cform input[type="email"],
    .cform input[type="tel"],
    .cform textarea {
        font-size: 16px;
        transition: 0.3s ease-in-out;
    }

    .submit-btn {
        margin-top: 36px;
    }

    .submit-btn input,
    .submit-btn button,
    .back-btn input,
    .back-btn button {
        width: 100%;
        min-width: 0;
        transition: 0.3s ease-in-out;
    }

    .mw_wp_form_complete {
        padding: 32px 22px;
    }

}


/* contactContents
----------------------------------------------- */
.contactContents_wrap {
    width: 100%;
    padding: 112px 0;
    background-color: #f5f7fa;
    transition: 0.3s ease-in-out;
}

.contactContents_inner_box {
    width: 100%;
    max-width: 1040px;
    margin: 0 auto;
    padding: 0 24px;
    transition: 0.3s ease-in-out;
}

.contactHeadingMain {
    margin-bottom: 48px;
}

.contactContents_txtBox {
    transition: 0.3s ease-in-out;
}

.contactContents_intro {
    max-width: 820px;
    margin: 0 auto 72px;
    color: #374151;
    font-size: 16px;
    line-height: 2;
    text-align: center;
}

.contactContents_intro p {
    margin: 0;
}

.contactContents_phoneBox {
    max-width: 820px;
    margin: 0 auto 88px;
    padding: 42px 48px 38px;
    background-color: #fff;
    border-top: 4px solid #1e3a8a;
    box-shadow: 0 16px 40px rgba(30, 58, 138, 0.10);
}

.contactContents_subHeading {
    margin: 0 0 34px;
}

.contactPhone {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 24px;
    transition: 0.3s ease-in-out;
}

.contactPhone_label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 64px;
    height: 32px;
    padding: 0 14px;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.12em;
    background-color: #1e3a8a;
}

.contactPhone_number {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    color: #172554;
    font-size: clamp(34px, 4.3vw, 50px);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.03em;
    text-decoration: none;
    transition: 0.3s ease-in-out;
}

.contactPhone_number:hover {
    color: #1e3a8a;
    transform: translateY(-2px);
}

.contactPhone_number i {
    color: #1e3a8a;
    font-size: 0.8em;
}

.contactPhone_address {
    margin: 22px 0 0;
    color: #4b5563;
    font-size: 14px;
    line-height: 1.8;
    text-align: center;
}

.contactContents_formHeading {
    margin: 0 0 36px;
}

.contactContents_formHeading .contactContents_subHeading {
    margin-bottom: 0;
}

.contactContents_inner_box .mw_wp_form {
    width: 100%;
    max-width: 980px;
    margin: 0 auto;
    padding: 48px;
    background-color: #fff;
    box-shadow: 0 16px 40px rgba(30, 58, 138, 0.08);
    transition: 0.3s ease-in-out;
}

@media only screen and (max-width: 767px) {

    .contactContents_wrap {
        padding: 72px 0;
        transition: 0.3s ease-in-out;
    }

    .contactContents_inner_box {
        padding: 0 18px;
        transition: 0.3s ease-in-out;
    }

    .contactHeadingMain {
        margin-bottom: 36px;
    }

    .contactContents_intro {
        margin-bottom: 48px;
        font-size: 15px;
        text-align: left;
        transition: 0.3s ease-in-out;
    }

    .contactContents_intro br {
        display: none;
    }

    .contactContents_phoneBox {
        margin-bottom: 64px;
        padding: 30px 22px 28px;
        transition: 0.3s ease-in-out;
    }

    .contactContents_subHeading {
        margin-bottom: 28px;
    }

    .contactPhone {
        flex-direction: column;
        gap: 14px;
        transition: 0.3s ease-in-out;
    }

    .contactPhone_number {
        gap: 10px;
        font-size: clamp(30px, 10vw, 38px);
        transition: 0.3s ease-in-out;
    }

    .contactPhone_address {
        margin-top: 18px;
    }

    .contactContents_formHeading {
        margin-bottom: 28px;
    }

    .contactContents_inner_box .mw_wp_form {
        padding: 24px 18px;
        transition: 0.3s ease-in-out;
    }

}

/* =====================================================
   Contact Complete Page
===================================================== */

.contactContents_wrap {
    padding: 80px 20px;
    background: #f4f7f9;
}

.contactContents_wrap .contactContents_inner_box {
    max-width: 960px;
    margin: 0 auto;
    padding: 64px 72px;
    border-top: 4px solid #0d5d91;
    background: #fff;
    box-shadow: 0 16px 40px rgba(21, 35, 51, 0.10);
}

.contactContents_wrap .contactContents_inner_box > p {
    margin: 0 0 26px;
    color: #3f4d59;
    font-size: 16px;
    line-height: 2;
}

.contactContents_wrap .contactContents_inner_box > p:last-child {
    margin-bottom: 0;
}

.contactContents_wrap .contactContents_inner_box > .bold {
    position: relative;
    margin: 0 0 44px;
    padding: 0 0 24px;
    color: #0d5d91;
    font-size: 34px;
    font-weight: 700;
    line-height: 1.5;
    text-align: center;
    letter-spacing: 0.06em;
}

.contactContents_wrap .contactContents_inner_box > .bold::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    width: 64px;
    height: 3px;
    background: #0d5d91;
    transform: translateX(-50%);
}

.contactContents_wrap .contactComplete_phone {
    display: inline-block;
    margin: 0 4px;
    color: #0d5d91;
    font-size: 18px;
    font-weight: 700;
    text-decoration: none;
    transition: 0.3s ease-in-out;
}

.contactContents_wrap .contactComplete_phone:hover {
    color: #0a486f;
}

.contactContents_wrap .contactComplete_actions {
    margin-top: 40px;
    text-align: center;
}

.contactContents_wrap .contactComplete_home {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 260px;
    min-height: 56px;
    padding: 14px 32px;
    border: 1px solid #0d5d91;
    border-radius: 2px;
    background: #0d5d91;
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.08em;
    text-decoration: none;
    box-shadow: 0 10px 24px rgba(13, 93, 145, 0.16);
    transition: 0.3s ease-in-out;
}

.contactContents_wrap .contactComplete_home:hover {
    border-color: #0a486f;
    background: #0a486f;
    transform: translateY(-2px);
    box-shadow: 0 14px 28px rgba(13, 93, 145, 0.22);
}

@media only screen and (max-width: 767px) {

    .contactContents_wrap {
        padding: 50px 16px;
    }

    .contactContents_wrap .contactContents_inner_box {
        padding: 38px 24px;
    }

    .contactContents_wrap .contactContents_inner_box > p {
        margin-bottom: 22px;
        font-size: 15px;
        line-height: 1.9;
    }

    .contactContents_wrap .contactContents_inner_box > .bold {
        margin-bottom: 32px;
        padding-bottom: 20px;
        font-size: 26px;
    }

    .contactContents_wrap .contactComplete_phone {
        font-size: 17px;
        transition: 0.3s ease-in-out;
    }

    .contactContents_wrap .contactComplete_home {
        width: 100%;
        min-width: 0;
        transition: 0.3s ease-in-out;
    }

}

/* /Contact Complete Page */



/* Contact form width adjustment */
.contactFormWrap{
    max-width:1180px;
}
.cform th{
    width:240px;
    white-space:nowrap;
}
.cform td{
    width:auto;
}
@media only screen and (max-width:767px){
    .cform th,
    .cform td{
        width:100%;
    }
}

/* =====================================================
   Job Information Refined
===================================================== */

.jobInfoPage {
    padding-bottom: 80px;
}


.jobInfoPage .inner1024 {
    max-width: 1080px;
}

.jobInfoPage #main {
    float: none;
    width: 100%;
}

.jobInfoPage .recruit_block_wrap {
    margin-bottom: 42px;
    padding: 42px 46px 46px;
    border-top: 4px solid #0d5d91;
    background: #fff;
    box-shadow: 0 12px 34px rgba(21, 35, 51, 0.08);
}

.jobInfoPage .recruit_block_wrap > .center {
    margin-bottom: 30px;
}

.jobInfoPage .recruit_block_wrap > h3,
.jobInfoPage .recruit_block_wrap .h3 {
    margin: 0;
    color: #152333;
    font-size: 26px;
    font-weight: 700;
    line-height: 1.55;
    letter-spacing: 0.04em;
    text-align: center;
}

.jobInfoPage .recruit_list_box_wrap {
    overflow: hidden;
    border: 1px solid #d8e0e6;
    background: #fff;
}

.jobInfoPage .recruit_list_box_inner {
    display: grid;
    grid-template-columns: 210px minmax(0, 1fr);
    border-bottom: 1px solid #d8e0e6;
}

.jobInfoPage .recruit_list_box_inner:last-of-type {
    border-bottom: 0;
}

.jobInfoPage .recruit_list_box_inner_left,
.jobInfoPage .recruit_list_box_inner_right,
.jobInfoPage .recruit_list_box_inner_center {
    box-sizing: border-box;
    min-width: 0;
    padding: 20px 24px;
    font-size: 15px;
    line-height: 1.9;
}

.jobInfoPage .recruit_list_box_inner_left {
    display: flex;
    align-items: center;
    background: #eef3f6;
    color: #152333;
    font-weight: 700;
    letter-spacing: 0.03em;
}

.jobInfoPage .recruit_list_box_inner_right {
    color: #3f4d59;
    overflow-wrap: anywhere;
}

.jobInfoPage .recruit_list_box_inner_center {
    grid-column: 1 / -1;
    background: #f7f9fa;
    color: #33424f;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.9;
    text-align: center;
}

.jobInfoPage .recruit_list_box_inner_right a {
    color: #0d5d91;
    font-weight: 700;
    text-underline-offset: 4px;
    transition: 0.3s ease-in-out;
}

.jobInfoPage .recruit_list_box_inner_right a:hover {
    color: #083e62;
}

.jobInfoPage .common_btn_wrap1,
.jobInfoPage .plr10.pt40.center {
    margin-top: 0;
    padding: 36px 24px 42px;
    text-align: center;
}

.jobInfoPage .arrow_btn3,
.jobInfoPage .btn1,
.jobInfoPage .btn2 {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 260px;
    min-height: 56px;
    padding: 14px 34px;
    border: 1px solid #0d5d91;
    background: #0d5d91;
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.06em;
    text-decoration: none;
    box-shadow: 0 10px 24px rgba(13, 93, 145, 0.16);
    transition: 0.3s ease-in-out;
}

.jobInfoPage .arrow_btn3:hover,
.jobInfoPage .btn1:hover,
.jobInfoPage .btn2:hover {
    border-color: #083e62;
    background: #083e62;
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 14px 28px rgba(13, 93, 145, 0.22);
}

.jobInfoPage .footer_recruit {
    margin-top: 70px;
}

.jobInfoPage .footer_recruit_inner {
    max-width: 1080px;
    margin: 0 auto;
}

.jobInfoPage .footer_recruit_box .cp_btn {
    transition: 0.3s ease-in-out;
}

.jobInfoSinglePage .recruit_block_wrap {
    padding-top: 46px;
}

.jobInfoSinglePage .recruit_block_wrap > h3 {
    margin: 0 0 32px;
    font-size: 27px;
}

.jobInfoSinglePage .recruit_list_box_wrap {
    box-shadow: none;
}

.jobInfoSinglePage .center.plr10.mt60 {
    margin-top: 48px;
}

@media only screen and (max-width: 767px) {

    .jobInfoPage {
        padding-bottom: 60px;
        transition: 0.3s ease-in-out;
    }

    .jobInfoPage .block_title_wrap {
        margin-bottom: 38px;
    }

    .jobInfoPage .block_title2 {
        padding-bottom: 15px;
        font-size: 27px;
        transition: 0.3s ease-in-out;
    }

    .jobInfoPage .recruit_block_wrap {
        margin-bottom: 30px;
        padding: 30px 20px 32px;
        transition: 0.3s ease-in-out;
    }

    .jobInfoPage .recruit_block_wrap > h3,
    .jobInfoPage .recruit_block_wrap .h3,
    .jobInfoSinglePage .recruit_block_wrap > h3 {
        font-size: 22px;
        transition: 0.3s ease-in-out;
    }

    .jobInfoPage .recruit_list_box_inner {
        display: block;
        transition: 0.3s ease-in-out;
    }

    .jobInfoPage .recruit_list_box_inner_left,
    .jobInfoPage .recruit_list_box_inner_right,
    .jobInfoPage .recruit_list_box_inner_center {
        padding: 14px 16px;
        font-size: 14px;
        transition: 0.3s ease-in-out;
    }

    .jobInfoPage .recruit_list_box_inner_left {
        padding-bottom: 8px;
    }

    .jobInfoPage .recruit_list_box_inner_right {
        padding-top: 8px;
        background: #eef3f6;
    }

    .jobInfoPage .recruit_list_box_inner_center {
        font-size: 15px;
    }

    .jobInfoPage .arrow_btn3,
    .jobInfoPage .btn1,
    .jobInfoPage .btn2 {
        width: 100%;
        min-width: 0;
        transition: 0.3s ease-in-out;
    }

    .jobInfoPage .footer_recruit {
        margin-top: 48px;
    }

}

/* /Job Information Refined */

/* Job Information Single Adjustments */

.jobInfoSinglePage .btn1 {
    line-height: 1;
}

.jobInfoSinglePage .btn1 .btn_text {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 26px;
    line-height: 1.4;
}

@media only screen and (max-width: 767px) {

    .jobInfoSinglePage .btn1,
    .jobInfoSinglePage .btn1 .btn_text {
        transition: 0.3s ease-in-out;
    }

}

/* /Job Information Single Adjustments */



/* Job Information Final Adjustments */
.jobInfoArchivePage .common_btn_wrap1,
.jobInfoSinglePage .plr10.pt40.center {
    padding-bottom: 42px;
}

@media only screen and (max-width: 767px) {

    .jobInfoArchivePage .common_btn_wrap1,
    .jobInfoSinglePage .plr10.pt40.center {
        padding: 28px 16px 34px;
        transition: 0.3s ease-in-out;
    }

}
/* /Job Information Final Adjustments */


/* Recruit Intro
-------------------------------------------------------------- */
.jobRecruitIntro {
    max-width: 960px;
    margin: 0 auto 60px;
}

.jobRecruitIntro_message {
    position: relative;
    overflow: hidden;
    padding: 44px 48px;
    background: #ffffff;
    border: 1px solid #dbe4ec;
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(21, 35, 51, 0.06);
    transition: 0.3s ease-in-out;
}

.jobRecruitIntro_message::before {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 5px;
    background: #164d73;
    content: "";
}

.jobRecruitIntro_message .h3 {
    margin: 0 0 26px;
    color: #164d73;
    font-size: 1.5rem;
    font-weight: 700;
    letter-spacing: 0.06em;
}

.jobRecruitIntro_message p {
    margin: 0 0 1.35em;
    line-height: 2;
}

.jobRecruitIntro_message p:first-of-type {
    margin: 0 0 28px;
    color: #152333;
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.6;
    text-align: center;
    letter-spacing: 0.08em;
}

.jobRecruitIntro_message p:last-child {
    margin-bottom: 0;
}

.jobRecruitContact {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 36px;
    position: relative;
    overflow: hidden;
    margin-top: 24px;
    padding: 28px 34px;
    color: #ffffff;
    background: linear-gradient(135deg, #173f5c 0%, #0f2f47 100%);
    border-radius: 12px;
    box-shadow: 0 10px 24px rgba(15, 47, 71, 0.18);
    transition: 0.3s ease-in-out;
}

.jobRecruitContact::after {
    position: absolute;
    top: -55px;
    right: -35px;
    width: 180px;
    height: 180px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 50%;
    content: "";
}

.jobRecruitContact_company,
.jobRecruitContact_tel {
    position: relative;
    z-index: 1;
}

.jobRecruitContact_name,
.jobRecruitContact_person {
    margin: 0;
}

.jobRecruitContact_name {
    font-size: 1.15rem;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.jobRecruitContact_person {
    margin-top: 7px;
    color: rgba(255, 255, 255, 0.78);
    font-size: 0.95rem;
}

.jobRecruitContact_tel {
    display: flex;
    align-items: baseline;
    gap: 14px;
    flex-shrink: 0;
    padding-left: 34px;
    border-left: 1px solid rgba(255, 255, 255, 0.22);
}

.jobRecruitContact_telLabel {
    color: rgba(255, 255, 255, 0.68);
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.16em;
}

.jobRecruitContact_telNumber {
    color: #ffffff;
    font-size: 1.75rem;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
    letter-spacing: 0.04em;
    transition: 0.3s ease-in-out;
}

.jobRecruitContact_telNumber:hover {
    color: #ffffff;
    opacity: 0.78;
}

@media only screen and (max-width: 767px) {
    .jobRecruitIntro {
        margin-bottom: 44px;
    }

    .jobRecruitIntro_message {
        padding: 32px 22px;
    }

    .jobRecruitIntro_message .h3 {
        margin-bottom: 20px;
        font-size: 1.3rem;
    }

    .jobRecruitIntro_message p:first-of-type {
        margin-bottom: 22px;
        font-size: 1.55rem;
        letter-spacing: 0.04em;
    }

    .jobRecruitContact {
        display: block;
        padding: 26px 24px;
    }

    .jobRecruitContact_tel {
        margin-top: 22px;
        padding-top: 20px;
        padding-left: 0;
        border-top: 1px solid rgba(255, 255, 255, 0.22);
        border-left: 0;
    }

    .jobRecruitContact_telNumber {
        font-size: 1.55rem;
    }
}

/* Products variation table: 4-column layout */
.productsVariation_table {
    width: 100%;
    min-width: 0;
    table-layout: fixed;
}

/* All cells wrap automatically */
.productsVariation_table th,
.productsVariation_table td {
    white-space: normal;
    overflow-wrap: break-word;
    word-break: normal;
}

/* Header row */
.productsVariation_table thead th {
    text-align: center;
}

/* Category column */
.productsVariation_table th:nth-child(1),
.productsVariation_table td:nth-child(1) {
    width: 14%;
}

.productsVariation_table tbody td:nth-child(1) {
    text-align: center;
}

/* Symbol / product name */
.productsVariation_table th:nth-child(2),
.productsVariation_table td:nth-child(2) {
    width: 24%;
}

.productsVariation_table tbody td:nth-child(2) {
    text-align: left;
}

/* Standard / type */
.productsVariation_table th:nth-child(3),
.productsVariation_table td:nth-child(3) {
    width: 24%;
}

.productsVariation_table tbody td:nth-child(3) {
    text-align: left;
}

/* Main use */
.productsVariation_table th:nth-child(4),
.productsVariation_table td:nth-child(4) {
    width: 38%;
}

.productsVariation_table tbody td:nth-child(4) {
    text-align: left;
}

/* Override common last-column rules for the products table */
.productsVariation_table th:last-child,
.productsVariation_table td:last-child {
    white-space: normal;
}

@media all and (max-width: 767px) {
    .productsVariation_table {
        width: 760px;
        min-width: 760px;
    }
}

/* Products variation table: explicit header/body alignment */
.productsVariation_table thead th {
    text-align: center;
}

.productsVariation_table thead th:nth-child(2) {
    text-align: center;
}

.productsVariation_table tbody td:nth-child(2) {
    text-align: left;
}

/* Allow all table text to wrap naturally within each column */
.productsVariation_table th,
.productsVariation_table td {
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: normal;
}
