@charset 'UTF-8';

body
{
    font-family: 'Noto Sans JP',sans-serif;
    font-size: .875rem;
    font-weight: normal;
    line-height: 2.1429;

    overflow-x: hidden;

    min-width: 320px;

    letter-spacing: .1em;
    letter-spacing: 0;

    color: #222;
}

a
{
    cursor: pointer;
    text-decoration: none;

    color: #222;
}

h1,
h2,
h3,
h4,
h5,
h6,
p,
ul,
ol,
dl
{
    margin: 0;
}

figure
{
    margin: 0;
}

img
{
    width: 100%;
    max-width: 100%;
    height: auto;
}

p
{
    margin: 0;
}

/* Lazyload
------------------------------------------ */
.lazyload,
.lazyloading
{
    opacity: 0;
}

.lazyloaded
{
    transition: opacity .3s;

    opacity: 1;
}

@-webkit-keyframes progress
{
    0%
    {
        width: 0;
    }
    100%
    {
        width: 100%;
    }
}

@keyframes progress
{
    0%
    {
        width: 0;
    }
    100%
    {
        width: 100%;
    }
}

@-webkit-keyframes scbefore
{
    0%
    {
        top: -46px;
    }
    25%
    {
        top: -46px;
    }
    50%
    {
        top: -46px;
    }
    100%
    {
        top: 0;
    }
}

@keyframes scbefore
{
    0%
    {
        top: -46px;
    }
    25%
    {
        top: -46px;
    }
    50%
    {
        top: -46px;
    }
    100%
    {
        top: 0;
    }
}

@-webkit-keyframes scafter
{
    0%
    {
        top: 0;
    }
    25%
    {
        top: 46px;
    }
    50%
    {
        top: 46px;
    }
    100%
    {
        top: 46px;
    }
}

@keyframes scafter
{
    0%
    {
        top: 0;
    }
    25%
    {
        top: 46px;
    }
    50%
    {
        top: 46px;
    }
    100%
    {
        top: 46px;
    }
}

@-webkit-keyframes tabchange
{
    from
    {
        opacity: 0;
    }
    to
    {
        opacity: 1;
    }
}

@keyframes tabchange
{
    from
    {
        opacity: 0;
    }
    to
    {
        opacity: 1;
    }
}

@-webkit-keyframes fade-in
{
    0%
    {
        opacity: 0;
    }
    100%
    {
        opacity: 1;
    }
}

@keyframes fade-in
{
    0%
    {
        opacity: 0;
    }
    100%
    {
        opacity: 1;
    }
}

@-webkit-keyframes fade-ot
{
    0%
    {
        opacity: 1;
    }
    100%
    {
        opacity: 0;
    }
}

@keyframes fade-ot
{
    0%
    {
        opacity: 1;
    }
    100%
    {
        opacity: 0;
    }
}

@-webkit-keyframes fadeinFromTop
{
    0%
    {
        transform: translateY(-100px);

        opacity: 0;
    }
    100%
    {
        transform: translateY(0);

        opacity: 1;
    }
}

@keyframes fadeinFromTop
{
    0%
    {
        transform: translateY(-100px);

        opacity: 0;
    }
    100%
    {
        transform: translateY(0);

        opacity: 1;
    }
}

@-webkit-keyframes fadeinFromLeft
{
    0%
    {
        transform: translateX(-100px);

        opacity: 0;
    }
    100%
    {
        transform: translateX(0);

        opacity: 1;
    }
}

@keyframes fadeinFromLeft
{
    0%
    {
        transform: translateX(-100px);

        opacity: 0;
    }
    100%
    {
        transform: translateX(0);

        opacity: 1;
    }
}

/* Document
 * ========================================================================== */
/**
 * Add border box sizing in all browsers (opinionated).
 */
*,
::before,
::after
{
    box-sizing: border-box;
}

/**
  * 1. Add text decoration inheritance in all browsers (opinionated).
  * 2. Add vertical alignment inheritance in all browsers (opinionated).
  */
::before,
::after
{
    /* 1 */
    vertical-align: inherit;
    text-decoration: inherit;
    /* 2 */
}

/**
  * 1. Use the default cursor in all browsers (opinionated).
  * 2. Change the line height in all browsers (opinionated).
  * 3. Use a 4-space tab width in all browsers (opinionated).
  * 4. Remove the grey highlight on links in iOS (opinionated).
  * 5. Prevent adjustments of font size after orientation changes in
  *    IE on Windows Phone and in iOS.
  * 6. Breaks words to prevent overflow in all browsers (opinionated).
  */
html
{
    /* 1 */
    line-height: 1.5;
    overflow-x: hidden;
    cursor: default;
    /* 5 */
    word-break: break-word;
    /* 2 */
    -moz-tab-size: 4;
    /* 3 */
      -o-tab-size: 4;
         tab-size: 4;
    /* 3 */

    -webkit-tap-highlight-color: transparent;
        -ms-text-size-adjust: 100%;
    /* 5 */
    -webkit-text-size-adjust: 100%;
    /* 6 */
}

/* Sections
  * ========================================================================== */
/**
  * Remove the margin in all browsers (opinionated).
  */
body
{
    margin: 0;
}

/**
  * Correct the font size and margin on `h1` elements within `section` and
  * `article` contexts in Chrome, Edge, Firefox, and Safari.
  */
/* Grouping content
  * ========================================================================== */
/**
  * Remove the margin on nested lists in Chrome, Edge, IE, and Safari.
  */
dl dl,
dl ol,
dl ul,
ol dl,
ul dl
{
    margin: 0;
}

/**
  * Remove the margin on nested lists in Edge 18- and IE.
  */
ol ol,
ol ul,
ul ol,
ul ul
{
    margin: 0;
}

/**
  * 1. Add the correct sizing in Firefox.
  * 2. Show the overflow in Edge 18- and IE.
  */
hr
{
    /* 1 */
    overflow: visible;

    height: 0;
    /* 2 */
}

/**
  * Add the correct display in IE.
  */
main
{
    display: block;
}

/**
  * Remove the list style on navigation lists in all browsers (opinionated).
  */
nav ol,
nav ul
{
    padding: 0;

    list-style: none;
}

/**
  * 1. Correct the inheritance and scaling of font size in all browsers.
  * 2. Correct the odd `em` font sizing in all browsers.
  */
pre
{
    font-family: monospace,monospace;
    /* 1 */
    font-size: 1em;
    /* 2 */
}

/* Text-level semantics
  * ========================================================================== */
/**
  * Remove the gray background on active links in IE 10.
  */
a
{
    background-color: transparent;
}

/**
  * Add the correct text decoration in Edge 18-, IE, and Safari.
  */
abbr[title]
{
            text-decoration: underline;
            text-decoration: underline dotted;

    -webkit-text-decoration: underline dotted;
}

/**
  * Add the correct font weight in Chrome, Edge, and Safari.
  */
b,
strong
{
    font-weight: bolder;
}

/**
  * 1. Correct the inheritance and scaling of font size in all browsers.
  * 2. Correct the odd `em` font sizing in all browsers.
  */
code,
kbd,
samp
{
    font-family: monospace,monospace;
    /* 1 */
    font-size: 1em;
    /* 2 */
}

/**
  * Add the correct font size in all browsers.
  */
small
{
    font-size: 80%;
}

/* Embedded content
  * ========================================================================== */
/*
  * Change the alignment on media elements in all browsers (opinionated).
  */
audio,
canvas,
iframe,
img,
svg,
video
{
    vertical-align: middle;
}

/**
  * Add the correct display in IE 9-.
  */
audio,
video
{
    display: inline-block;
}

/**
  * Add the correct display in iOS 4-7.
  */
audio:not([controls])
{
    display: none;

    height: 0;
}

/**
  * Remove the border on iframes in all browsers (opinionated).
  */
iframe
{
    border-style: none;
}

/**
  * Remove the border on images within links in IE 10-.
  */
img
{
    border-style: none;
}

/**
  * Change the fill color to match the text color in all browsers (opinionated).
  */
svg:not([fill])
{
    fill: currentColor;
}

/**
  * Hide the overflow in IE.
  */
svg:not(:root)
{
    overflow: hidden;
}

/* Tabular data
  * ========================================================================== */
/**
  * Collapse border spacing in all browsers (opinionated).
  */
table
{
    border-collapse: collapse;
}

/* Forms
  * ========================================================================== */
/**
  * Remove the margin on controls in Safari.
  */
button,
input,
select
{
    margin: 0;
}

/**
  * 1. Show the overflow in IE.
  * 2. Remove the inheritance of text transform in Edge 18-, Firefox, and IE.
  */
button
{
    overflow: visible;
    /* 1 */

    text-transform: none;
    /* 2 */
}

/**
  * Correct the inability to style buttons in iOS and Safari.
  */
button,
[type='button'],
[type='reset'],
[type='submit']
{
    -webkit-appearance: button;
}

/**
  * 1. Change the inconsistent appearance in all browsers (opinionated).
  * 2. Correct the padding in Firefox.
  */
fieldset
{
    /* 1 */
    padding: .35em .75em .625em;

    border: 1px solid #a0a0a0;
    /* 2 */
}

/**
  * Show the overflow in Edge 18- and IE.
  */
input
{
    overflow: visible;
}

/**
  * 1. Correct the text wrapping in Edge 18- and IE.
  * 2. Correct the color inheritance from `fieldset` elements in IE.
  */
legend
{
    /* 2 */
    display: table;
    /* 1 */

    max-width: 100%;
    /* 1 */

    white-space: normal;

    color: inherit;
    /* 1 */
}

/**
  * 1. Add the correct display in Edge 18- and IE.
  * 2. Add the correct vertical alignment in Chrome, Edge, and Firefox.
  */
progress
{
    display: inline-block;
    /* 1 */

    vertical-align: baseline;
    /* 2 */
}

/**
  * Remove the inheritance of text transform in Firefox.
  */
select
{
    text-transform: none;
}

/**
  * 1. Remove the margin in Firefox and Safari.
  * 2. Remove the default vertical scrollbar in IE.
  * 3. Change the resize direction in all browsers (opinionated).
  */
textarea
{
    /* 1 */
    overflow: auto;

    margin: 0;
    /* 2 */

    resize: vertical;
    /* 3 */
}

/**
  * Remove the padding in IE 10-.
  */
[type='checkbox'],
[type='radio']
{
    padding: 0;
}

/**
  * 1. Correct the odd appearance in Chrome, Edge, and Safari.
  * 2. Correct the outline style in Safari.
  */
[type='search']
{
    /* 1 */
    outline-offset: -2px;

    -webkit-appearance: textfield;
    /* 2 */
}

/**
  * Correct the cursor style of increment and decrement buttons in Safari.
  */
::-webkit-inner-spin-button,
::-webkit-outer-spin-button
{
    height: auto;
}

/**
  * Correct the text style of placeholders in Chrome, Edge, and Safari.
  */
::-webkit-input-placeholder
{
    opacity: .54;
    color: inherit;
}

/**
  * Remove the inner padding in Chrome, Edge, and Safari on macOS.
  */
::-webkit-search-decoration
{
    -webkit-appearance: none;
}

/**
  * 1. Correct the inability to style upload buttons in iOS and Safari.
  * 2. Change font properties to `inherit` in Safari.
  */
::-webkit-file-upload-button
{
    /* 1 */
    font: inherit;

    -webkit-appearance: button;
    /* 2 */
}

/**
  * Remove the inner border and padding of focus outlines in Firefox.
  */
::-moz-focus-inner
{
    padding: 0;

    border-style: none;
}

/**
  * Restore the focus outline styles unset by the previous rule in Firefox.
  */
:-moz-focusring
{
    outline: 1px dotted ButtonText;
}

/**
  * Remove the additional :invalid styles in Firefox.
  */
:-moz-ui-invalid
{
    box-shadow: none;
}

/* Interactive
  * ========================================================================== */
/*
  * Add the correct display in Edge 18- and IE.
  */
details
{
    display: block;
}

/*
  * Add the correct styles in Edge 18-, IE, and Safari.
  */
dialog
{
    position: absolute;
    right: 0;
    left: 0;

    display: block;

    width:    -moz-fit-content;
    width: -webkit-fit-content;
    width:         fit-content;
    height:    -moz-fit-content;
    height: -webkit-fit-content;
    height:         fit-content;
    margin: auto;
    padding: 1em;

    color: black;
    border: solid;
    background-color: white;
}

dialog:not([open])
{
    display: none;
}

/*
  * Add the correct display in all browsers.
  */
summary
{
    display: list-item;
}

/* Scripting
  * ========================================================================== */
/**
  * Add the correct display in IE 9-.
  */
canvas
{
    display: inline-block;
}

/**
  * Add the correct display in IE.
  */
template
{
    display: none;
}

/* User interaction
  * ========================================================================== */
/*
  * 1. Remove the tapping delay in IE 10.
  * 2. Remove the tapping delay on clickable elements
       in all browsers (opinionated).
  */
a,
area,
button,
input,
label,
select,
summary,
textarea,
[tabindex]
{
    /* 1 */
    touch-action: manipulation;
    /* 2 */
}

/**
  * Add the correct display in IE 10-.
  */
[hidden]
{
    display: none;
}

/* Accessibility
  * ========================================================================== */
/**
  * Change the cursor on busy elements in all browsers (opinionated).
  */
[aria-busy='true']
{
    cursor: progress;
}

/*
  * Change the cursor on control elements in all browsers (opinionated).
  */
[aria-controls]
{
    cursor: pointer;
}

/*
  * Change the cursor on disabled, not-editable, or otherwise
  * inoperable elements in all browsers (opinionated).
  */
[aria-disabled='true'],
[disabled]
{
    cursor: not-allowed;
}

/*
  * Change the display on visually hidden accessible elements
  * in all browsers (opinionated).
  */
[aria-hidden='false'][hidden]
{
    display: initial;
}

[aria-hidden='false'][hidden]:not(:focus)
{
    position: absolute;

    clip: rect(0, 0, 0, 0);
}

input,
button,
select,
textarea
{
    font: inherit;

    border: none;
    border-radius: 0;
    outline: none;
    background: transparent;

    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
}

textarea
{
    resize: vertical;
}

input[type='checkbox'],
input[type='radio']
{
    display: none;
}

input[type='submit'],
input[type='button'],
label,
button,
select
{
    cursor: pointer;
}

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

.cmn-footer
{
    padding-top: 40px;
    padding-bottom: 40px;
}

.cmn-footer .footer-upper .logo
{
    width: 108px;
    margin-right: auto;
    margin-left: auto;
}

.cmn-footer .footer-nav
{
    font-size: .875rem;
    line-height: 1.5714;

    text-align: center;
}

.cmn-footer .footer-nav .lists
{
    width: 84px;
    margin-top: 30px;
    margin-right: auto;
    margin-left: auto;
}

.cmn-footer .footer-nav .lists li
{
    text-align: left;
}

.cmn-footer .footer-nav .lists li + li
{
    margin-top: 20px;
}

.cmn-footer .footer-nav .lists a
{
    position: relative;

    display: inline-block;
}

.cmn-footer .footer-nav .lists a::after
{
    position: absolute;
    bottom: -2px;
    left: 0;

    width: 100%;
    height: 1px;

    content: '';
    transition: all .3s ease;

    opacity: 0;
    background-color: #2f7e9c;
}

.cmn-footer .footer-nav .lists a.link-blank
{
    padding-right: 24px;
}

.cmn-footer .footer-nav .lists a.link-blank::before
{
    position: absolute;
    top: 1px;
    right: 2px;

    width: 18px;
    height: 18px;

    content: '';

    background-image: url(/img/icon-page.svg);
}

.cmn-footer .footer-lower .company-list
{
    display: flex;

    padding-top: 40px;
    padding-left: 0;

    list-style-type: none;

    flex-wrap: wrap;
}

.cmn-footer .footer-lower .item
{
    font-size: .625rem;
    line-height: 1.8;

    width: 48.9552%;
    padding: 8px 6px;

    border: 1px solid #e0e0e0;
    border-radius: 10px;
}

.cmn-footer .footer-lower .item:nth-child(2n)
{
    margin-left: 2.0896%;
}

.cmn-footer .footer-lower .item:nth-child(n + 3)
{
    margin-top: 7px;
}

.cmn-footer .footer-lower .item:nth-child(5) .image
{
    width: 56%;
}

.cmn-footer .footer-lower .item:nth-child(6) .image
{
    width: 56%;
}

.cmn-footer .footer-lower .item a
{
    display: flex;

    flex-flow: column-reverse;
}

.cmn-footer .footer-lower .item .image
{
    display: flex;

    width: 80%;
    margin-right: auto;
    margin-left: auto;

    align-items: center;
}

.cmn-footer .footer-lower .item .text
{
    text-align: center;
}

.cmn-footer .footer-lower .copyrights
{
    font-size: .625rem;
    line-height: 1.8;

    margin-top: 12px;

    text-align: center;

    color: #6e7d81;
}

.cmn-header
{
    position: fixed;
    z-index: 4;
    top: 0;
    left: 0;

    width: 100%;
    height: 64px;
}

.cmn-header .header-pc
{
    display: none;

    max-width: 1185px;
    margin-right: auto;
    margin-left: auto;
}

.cmn-header .header-pc .logo
{
    width: 138px;
    margin-left: 10px;
}

.cmn-header .header-pc .header-nav
{
    margin-right: -10px;

    flex: 1 1;
}

.cmn-header .header-pc .header-nav .lists
{
    display: flex;

    justify-content: flex-end;
}

.cmn-header .header-pc .header-nav li + li
{
    margin-left: 2.2222%;
}

.cmn-header .header-pc .header-nav a
{
    font-size: 1.125rem;
    font-weight: bold;
    line-height: 1;

    position: relative;
}

.cmn-header .header-pc .header-nav a::after
{
    position: absolute;
    bottom: 0;
    left: 0;

    width: 100%;
    height: 1px;

    content: '';
    transition: all .3s ease;

    opacity: 0;
    background-color: #2f7e9c;
}

.cmn-header .header-pc .header-nav a.link-blank
{
    padding-right: 24px;
}

.cmn-header .header-pc .header-nav a.link-blank::before
{
    position: absolute;
    top: 5px;
    right: 2px;

    width: 18px;
    height: 18px;

    content: '';

    background-image: url(/img/icon-page.svg);
}

.cmn-header .header-sp
{
    position: fixed;
    z-index: 4;
    top: 0;
    left: 0;

    width: 100%;
    height: 64px;

    background-color: #fff;
}

.cmn-header .header-sp .logo
{
    position: absolute;
    top: 16px;
    left: 20px;

    width: 108px;
}

.cmn-header .header-toggle
{
    position: fixed;
    z-index: 4;
    top: 20px;
    right: 14px;

    width: 40px;
    height: 40px;
}

.cmn-header .nav-global
{
    position: absolute;
    top: 0;
    left: 0;

    display: none;

    width: 100%;
    height: 100%;
}

.cmn-header .nav-global.-active
{
    display: block;

    -webkit-animation-name: fade-in;
            animation-name: fade-in;
    -webkit-animation-duration: .3s;
            animation-duration: .3s;
}

.cmn-header .nav-global .bg-nav
{
    position: fixed;
    z-index: 3;

    width: 100%;
    height: 100%;

    background-color: #fff;
}

.cmn-header .nav-global .bg-nav::before
{
    position: absolute;
    top: 100px;
    right: -100px;

    width: 114px;
    height: 114px;

    content: '';

    background-image: url(/img/object-illust_sp.svg);
}

.cmn-header .nav-global .logo-bg
{
    position: inherit;
    z-index: 2;
}

.cmn-header .nav-global .logo-bg::before
{
    position: absolute;
    top: 0;
    left: 0;

    width: 100%;
    height: 64px;

    content: '';

    background-color: #fff;
}

.cmn-header .nav-global .nav-wrapper
{
    position: relative;

    overflow: hidden;

    width: 100%;
    height: 100%;
}

.cmn-header .nav-global .nav-wrapper::before
{
    position: absolute;
    z-index: 2;
    top: 10px;
    right: -80px;

    width: 204px;
    height: 204px;

    content: '';

    background-image: url(/img/object-illust_sp.svg);
    background-size: contain;
}

.cmn-header .nav-global .nav-wrapper::after
{
    position: absolute;
    z-index: 2;
    bottom: -40px;
    left: -60px;

    width: 154px;
    height: 154px;

    content: '';

    background-image: url(/img/object-illust_sp.svg);
    background-size: contain;
}

.cmn-header .nav-global .nav-wrapper .lists
{
    position: absolute;
    top: 50%;
    left: 50%;

    margin-top: 30px;

    transform: translateY(-50%) translateX(-50%);
    text-align: center;
}

.cmn-header .nav-global .nav-wrapper .item + .item
{
    margin-top: 40px;
}

.cmn-header .nav-global .nav-wrapper .item a
{
    font-size: 1.25rem;
    font-weight: bold;
    line-height: 1;
}

.cmn-header .nav-global .nav-wrapper .item a.link-blank
{
    position: relative;
}

.cmn-header .nav-global .nav-wrapper .item a.link-blank::before
{
    position: absolute;
    top: 0;
    right: -24px;
    bottom: 0;

    width: 20px;
    height: 20px;
    margin: auto;

    content: '';

    background-image: url(/img/icon-page.svg);
    background-repeat: no-repeat;
    background-size: contain;
}

.button
{
    margin-right: auto;
    margin-left: auto;

    border: 1px solid #2f7e9c;
    border-radius: 40px;
    background-color: #fff;
}

.button a
{
    font-weight: normal;

    display: flex;

    width: 100%;

    color: #2f7e9c;

    align-items: center;
    justify-content: center;
}

.button.-middle
{
    width: 72.8745%;
}

.button.-middle a
{
    font-size: .75rem;
    line-height: 1;

    height: 36px;
}

.button.-large
{
    width: 75.8209%;
    max-width: 280px;

    border: 2px solid #2f7e9c;
}

.button.-large a
{
    font-size: .875rem;
    line-height: 1;

    height: 48px;
}

.button.-long
{
    width: 100%;
    max-width: 335px;

    border: 2px solid #73b8d4;
    background-color: #73b8d4;
}

.button.-long a,
.button.-long input
{
    font-size: 1rem;
    line-height: 1;

    width: 100%;
    height: 52px;

    color: #fff;
}

.button.-white
{
    border: 2px solid #73b8d4;
    background-color: #fff;
}

.button.-white a,
.button.-white input
{
    font-size: 1rem;
    line-height: 1;

    width: 100%;
    height: 52px;

    color: #73b8d4;
}

.cmn-mv
{
    margin-top: 64px;
    padding-top: 52px;
    padding-bottom: 50px;

    background-repeat: no-repeat;
    background-size: cover;
}

.cmn-mv.contact-mv
{
    background-image: url(/img/contact-mv_bg_sp.jpg);
}

.cmn-mv.news-mv
{
    background-image: url(/img/news-mv_bg_sp.jpg);
}

.cmn-ttl
{
    font-size: 1.5rem;
    font-weight: bold;
    line-height: 1;

    text-align: center;
    letter-spacing: .12em;
}

.cmn-ttl.-small
{
    font-size: 1.25rem;
    line-height: 1;
}

.cmn-ttl.-white
{
    color: #fff;
}

.sub-ttl
{
    font-size: .875rem;
    font-weight: bold;
    line-height: 1;

    display: block;

    padding-top: 12px;

    text-align: center;
    letter-spacing: .12em;

    color: #73b8d4;
}

.sub-ttl.-white
{
    color: #fff;
}

.sub-ttl.-small
{
    font-size: .75rem;
    line-height: 1;

    color: #fff;
}

.cmn-section
{
    width: 89.3333%;
    margin-right: auto;
    margin-left: auto;
}

.cmn-chart
{
    margin-top: 36px;
}

.cmn-chart .row:not(:last-child)
{
    padding-bottom: 12px;

    border-bottom: 1px solid #e0e0e0;
}

.cmn-chart .row:not(:first-child)
{
    padding-top: 18px;
}

.cmn-chart dt
{
    font-size: .75rem;
    line-height: 1.6667;

    letter-spacing: .1em;
}

.cmn-chart dd
{
    font-size: .875rem;
    line-height: 1.7143;

    margin-top: 6px;
    margin-left: 0;

    letter-spacing: .1em;
}

.cmn-chart dd ul
{
    padding-left: 0;

    list-style-type: none;
}

.index-pager
{
    margin-top: 40px;
}

.index-pager .pager-body
{
    display: flex;

    justify-content: center;
    align-items: center;
}

.index-pager .page-numbers
{
    font-size: 1rem;
    line-height: 1;
}

.index-pager .page-numbers.-current
{
    display: flex;

    width: 30px;
    height: 30px;
    padding-bottom: 3px;

    color: #fff;
    border-radius: 50px;
    background-color: #73b8d4;

    justify-content: center;
    align-items: center;
}

.index-pager .page-numbers a
{
    font-size: 1rem;
    line-height: 1;

    padding-right: 16px;
    padding-left: 16px;

    color: #6e7d81;
}

.index-pager .pager-icon
{
    position: relative;

    width: 36px;
    height: 36px;

    border-radius: 50px;
    background-color: #73b8d4;
}

.index-pager .pager-icon a
{
    display: block;

    width: 36px;
    height: 36px;
}

.index-pager .pager-icon.-prev::before,
.index-pager .pager-icon.-next::before
{
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;

    width: 7px;
    height: 14px;
    margin: auto;

    content: '';

    background-image: url(/img/arrow-pager.svg);
    background-repeat: no-repeat;
    background-size: contain;
}

.index-pager .pager-icon.-prev
{
    margin-right: 28px;
}

.index-pager .pager-icon.-next
{
    margin-left: 28px;

    transform: rotate(180deg);
}

.contact-top
{
    padding-top: 68px;
    padding-bottom: 62px;
}

.contact-confirm
{
    padding-top: 130px;
    padding-bottom: 62px;
}

.contact-confirm .contact-form dd
{
    font-weight: bold;

    margin-top: 6px;
}

.contact-confirm .contact-form dd .name
{
    width: auto;
}

.contact-confirm .contact-form dd input
{
    font-size: 1rem;
    font-weight: bold;
    line-height: 1;

    background-color: #fff;
}

.contact-confirm .contact-form dd textarea
{
    font-size: 1rem;
    line-height: 1;

    background-color: #fff;
}

.contact-form .form-row + .form-row
{
    margin-top: 35px;
}

.contact-form dt
{
    font-size: .875rem;
    line-height: 1;

    letter-spacing: .1em;
}

.contact-form dt label
{
    display: flex;

    align-items: center;
}

.contact-form dt .btn
{
    font-size: .625rem;
    line-height: 1;

    display: inline-flex;

    width: 40px;
    height: 16px;
    margin-left: 14px;

    color: #fff;
    border-radius: 2px;
    background-color: #d72500;

    align-items: center;
    justify-content: center;
}

.contact-form dd
{
    margin-top: 16px;
    margin-left: 0;

    letter-spacing: .1em;

    border-radius: 4px;
}

.contact-form dd .name
{
    display: inline-block;

    width: 47.7612%;
}

.contact-form dd .name + .name
{
    margin-left: 2.3881%;
}

.contact-form dd input
{
    font-size: 1rem;
    font-weight: normal;
    line-height: 1;

    width: 100%;
    height: 45px;
    padding-left: 12px;

    border-radius: 4px;
    background-color: #f0f5fa;
}

.contact-form dd textarea
{
    font-size: 1rem;
    line-height: 1;

    width: 100%;
    height: 180px;
    padding-top: 12px;
    padding-left: 12px;

    border-radius: 4px;
    background-color: #f0f5fa;
}

.contact-form dd .error
{
    font-size: .875rem;
    line-height: 1.7143;

    display: block;

    margin-top: 6px;

    letter-spacing: .1em;

    color: #d72500;
}

.contact-form .submit-wrap
{
    margin-top: 32px;
}

.contact-form .submit-wrap .button + .button
{
    margin-top: 20px;
}

.contact-thanks
{
    padding-top: 128px;
    padding-bottom: 60px;

    text-align: center;
}

.contact-thanks .image
{
    width: 90px;
    margin-right: auto;
    margin-left: auto;
}

.contact-thanks .ttl
{
    font-size: 1.5rem;
    font-weight: bold;
    line-height: 1;

    margin-top: 36px;

    letter-spacing: .06em;
}

.contact-thanks .text
{
    font-size: .875rem;
    line-height: 1.5714;

    margin-top: 20px;

    letter-spacing: .06em;
}

.contact-thanks .thanks-btn
{
    margin-top: 35px;
}

.index-about
{
    padding-top: 72px;
}

.index-news
{
    padding-top: 72px;
}

.index-news .news-button
{
    margin-top: 26px;
}

.index-case
{
    margin-top: 82px;
    padding-bottom: 32px;

    background-image: url(/img/case-bg.png);
    background-repeat: repeat-x;
    background-position: bottom;
}

.index-case .case-wrap
{
    padding-bottom: 32px;

    background-color: #fff;
}

.index-case .case-list
{
    display: flex;

    padding-top: 34px;
    padding-left: 0;

    list-style-type: none;

    flex-wrap: wrap;
    justify-content: center;
}

.index-case .case-list li
{
    overflow: hidden;

    width: 46.2908%;

    transition: all ease .3s;

    border-radius: 8px;
    background-color: #fff;
    box-shadow: 0 4px 10px 0 rgba(0, 0, 0, .1);
}

.index-case .case-list li:nth-child(2n)
{
    margin-left: 2.3739%;
}

.index-case .case-list li:nth-child(n + 3)
{
    margin-top: 8px;
}

.index-case .case-list li a
{
    display: flex;

    flex-flow: column-reverse;
}

.index-case .case-list li .text
{
    padding: 12px 8px 8px 8px;
}

.index-case .case-list li .figure
{
    position: relative;

    overflow: hidden;

    width: 100%;
    height: auto;
}

.index-case .case-list li .figure::before
{
    display: block;

    width: 100%;
    padding-top: 53.5336%;

    content: '';
}

.index-case .case-list li .figure > img
{
    position: absolute;
    top: -10px;
    right: -10px;
    bottom: -10px;
    left: -10px;

    width: 100%;
    min-height: 100%;
    margin: auto;
}

.index-case .case-list li .tag
{
    font-size: .625rem;
    font-weight: normal;
    line-height: 1.6;

    display: inline-block;

    padding: 2px 8px;

    color: #3a5f9e;
    border: 1px solid #3a5f9e;
    border-radius: 3px;
}

.index-case .case-list li .tag + .tag
{
    margin-top: -4px;
}

.index-case .case-list li .ttl
{
    font-size: .75rem;
    font-weight: bold;
    line-height: 1.6667;

    margin-top: 6px;
}

.index-case .case-list li .company
{
    font-size: .625rem;
    font-weight: normal;
    line-height: 1.6;

    margin-top: 2px;

    letter-spacing: .02em;
}

.index-case .case-button
{
    margin-top: 30px;
}

.index-contact
{
    position: relative;
    z-index: 2;

    margin-top: 64px;
    padding-top: 32px;
    padding-bottom: 32px;

    background-image: url(/img/contact-mv_bg_sp.jpg);
    background-repeat: no-repeat;
    background-size: cover;
}

.index-contact .contact-wrap
{
    position: relative;

    padding: 38px 32px 32px 32px;
}

.index-contact .contact-wrap::before
{
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;

    width: 100%;
    height: 100%;

    content: '';

    opacity: .8;
    background-color: #fff;
}

.index-contact .contact-wrap p
{
    font-size: .875rem;
    line-height: 1.7143;

    margin-top: 26px;

    text-align: center;
    letter-spacing: .04em;
}

.index-contact .contact-button
{
    width: 93.7269%;
    margin-top: 20px;
    margin-right: auto;
    margin-left: auto;
}

.index-contact .contact-button a
{
    display: flex;

    width: 100%;
    max-width: 280px;
    height: 48px;
    margin-right: auto;
    margin-left: auto;

    transition: all ease .3s;

    color: #fff;
    border: 2px solid #2f7e9c;
    border-radius: 40px;
    background-color: #2f7e9c;

    align-items: center;
    justify-content: center;
}

.index-intern
{
    position: relative;

    padding-top: 82px;
}

.index-intern .media-button
{
    margin-top: 20px;
}

.index-intern .intern-square1,
.index-intern .intern-square2
{
    position: absolute;
    z-index: -2;

    width: 113px;
    height: 113px;

    transform: rotate(45deg);

    opacity: .2;
    border-radius: 10px;
    background-color: #a1d6ea;
}

.index-intern .intern-square1.square,
.index-intern .intern-square2.square
{
    will-change: transform;
}

.index-intern .intern-square1
{
    top: 86px;
    left: -74px;
}

.index-intern .intern-square2
{
    z-index: 1;
    top: 236px;
    right: -44px;
}

.index-map
{
    margin-top: 60px;
}

.index-map .map
{
    position: relative;

    overflow: hidden;

    height: 0;
    padding-bottom: 48%;
}

.index-map .map iframe
{
    position: absolute;
    top: 0;
    left: 0;

    width: 100%;
    height: 100%;
}

.index-media
{
    position: relative;

    padding-top: 70px;
}

.index-media .media-square1,
.index-media .media-square2,
.index-media .media-square3
{
    position: absolute;
    z-index: -2;

    transform: rotate(45deg);

    opacity: .2;
    border-radius: 10px;
    background-color: #a1d6ea;
}

.index-media .media-square1
{
    top: 256px;
    right: -144px;

    width: 306px;
    height: 306px;
}

.index-media .media-square2
{
    display: none;
}

.index-media .media-square3
{
    bottom: 156px;
    left: -94px;

    width: 170px;
    height: 170px;
}

.index-media .media-list
{
    margin-top: 60px;
}

.index-media .media-button
{
    margin-top: 20px;
}

.index-mv
{
    position: relative;

    padding-top: 163.2%;

    background-image: url(/img/index-mv_bg_sp.jpg);
    background-repeat: no-repeat;
    background-position: bottom center;
    background-size: contain;
}

.index-mv .mv-title
{
    font-size: 6.6667vw;
    font-weight: bold;
    line-height: 13.3333vw;

    position: absolute;
    top: 23.4667%;
    left: 5.3333%;

    letter-spacing: .1em;
}

.index-mv .mv-title .-large
{
    font-size: 9.3333vw;

    position: relative;
    z-index: 1;
}

.index-mv .mv-title .-large::before
{
    position: absolute;
    z-index: -1;
    bottom: 1.6vw;
    left: 0;

    width: 100%;
    height: 6px;

    content: '';

    border-radius: 60px;
    background-color: #73b8d4;
}

.index-mv .mv-title .-midium
{
    font-size: 8.5333vw;

    position: relative;
    z-index: 1;
}

.index-mv .mv-title .-midium::before
{
    position: absolute;
    z-index: -1;
    bottom: .2667vw;
    left: 0;

    width: 100%;
    height: 6px;

    content: '';

    border-radius: 60px;
    background-color: #73b8d4;
}

.index-mv .mv-title .-small
{
    font-size: 5.3333vw;
}

.main-archive h2
{
    font-size: 1.25rem;
    line-height: 1.5;

    margin-bottom: 10px;
}

.main-archive p
{
    font-size: .875rem;
    line-height: 1.8571;

    margin-bottom: 10px;

    letter-spacing: .07em;
}

.main-archive h3
{
    font-size: 1.0625rem;
    line-height: 1.4118;

    margin-bottom: 10px;
}

.main-archive img
{
    margin: 20px 0;
}

.main-archive * a
{
    text-decoration: underline;

    color: #2f7e9c;
}

.main-archive ul
{
    margin: 10px 0;
    padding-left: 0;

    list-style-type: none;
}

.main-archive ul li
{
    padding-left: 1em;

    text-indent: -1em;
}

.main-archive ul li::before
{
    content: '・';
}

.main-archive ol
{
    margin-top: 10px;
    margin-bottom: 10px;
    margin-left: 1.5em;
    padding-left: 0;
}

.main-archive ol li
{
    position: relative;
}

.index-page .header-spNav
{
    opacity: 0;
}

.index-page .header-spNav.is-active
{
    z-index: 3;

    -webkit-animation: fadeinFromTop 1.2s ease forwards;
            animation: fadeinFromTop 1.2s ease forwards;
    -webkit-animation-delay: .6s;
            animation-delay: .6s;
}

.index-page .cmn-headerPc
{
    opacity: 0;
}

.index-page .cmn-headerPc.is-active
{
    z-index: 3;

    -webkit-animation: fadeinFromTop 1.2s ease forwards;
            animation: fadeinFromTop 1.2s ease forwards;
    -webkit-animation-delay: .6s;
            animation-delay: .6s;
}

.index-page .mv-title
{
    opacity: 0;
}

.index-page .mv-title.is-active
{
    -webkit-animation: fadeinFromLeft 1.2s ease forwards;
            animation: fadeinFromLeft 1.2s ease forwards;
    -webkit-animation-delay: .6s;
            animation-delay: .6s;
}

.nav-toggle
{
    position: relative;
}

.nav-toggle > span
{
    position: absolute;
    left: 0;

    display: inline-block;

    width: 32px;
    height: 1.5px;

    transition: all ease .3s;

    border-radius: 1.5px;
    background-color: #222;
}

.nav-toggle > span:nth-child(1)
{
    top: 0;
}

.nav-toggle > span:nth-child(2)
{
    top: 12px;
}

.nav-toggle > span:nth-child(3)
{
    top: 24px;
}

.nav-toggle > span.-active
{
    transition: all ease .3s;
}

.nav-toggle > span.-active:nth-child(1)
{
    top: 12px;

    transform: rotate(45deg);
}

.nav-toggle > span.-active:nth-child(2)
{
    top: 12px;

    transform: rotate(45deg);

    opacity: 0;
}

.nav-toggle > span.-active:nth-child(3)
{
    top: 12px;

    transform: rotate(-45deg);
}

.news-top
{
    padding-top: 26px;
}

.news-single
{
    padding-top: 26px;
}

.news-single .headline-wrap
{
    padding-bottom: 10px;

    border-bottom: 1px solid #e0e0e0;
}

.news-single .headline-wrap time
{
    font-size: .875rem;
    font-weight: bold;
    line-height: 1;

    color: #73b8d4;
}

.news-single .headline-wrap .title
{
    font-size: 1.25rem;
    line-height: 1.6;

    letter-spacing: .1em;
}

.service-item
{
    display: flex;

    padding-top: 36px;

    flex-flow: column-reverse;
}

.service-item .service-image
{
    position: inherit;
    z-index: 2;

    width: 76.1194%;
    margin-right: auto;
    margin-left: auto;
}

.service-item .service-text
{
    margin-top: 16px;
    margin-right: auto;
    margin-left: auto;
}

.service-item .service-text .logo.-media
{
    width: 83.8462%;
    margin-right: auto;
    margin-left: auto;
}

.service-list
{
    padding-left: 0;

    list-style-type: none;
}

.service-list li + li
{
    margin-top: 64px;
}

.service-list li:nth-child(n + 3) .logo
{
    width: 69.2308%;
    margin-right: auto;
    margin-left: auto;
}

.service-text
{
    width: 73.7313%;
    margin: 0 auto;
}

.service-text .text
{
    font-size: .75rem;
    line-height: 1.8333;

    margin-top: 12px;

    letter-spacing: .04em;
}

.sns-buttons
{
    position: fixed;
    z-index: 3;
    top: 216px;
    right: 0;
}

.sns-buttons .link
{
    display: flex;

    width: 40px;
    height: 40px;

    justify-content: center;
    align-items: center;
}

.sns-buttons .twitter
{
    background-color: #1da1f2;
}

.sns-buttons .twitter img
{
    width: 16px;
}

.sns-buttons .facebook
{
    background-color: #3c5a99;
}

.sns-buttons .facebook img
{
    width: 8px;
}

._se
{
    display: block !important;
}

._sp
{
    display: block !important;
}

._pc
{
    display: none !important;
}

._tablet-only
{
    display: none;
}

._pc-only
{
    display: none;
}

._sp-only
{
    display: none;
}

.visually-hidden
{
    position: absolute;

    overflow: hidden;
    clip: rect(0 0 0 0);

    width: 1px;
    height: 1px;
    padding: 0;

    white-space: nowrap;

    border: 0;

    -webkit-clip-path: inset(50%);
            clip-path: inset(50%);
}

@media print,screen and (min-width: 768px)
{
    a:hover
    {
        text-decoration: none;
    }
    a[href^='tel:']
    {
        text-decoration: none;
        pointer-events: none;

        color: color(text);
    }
    .cmn-footer
    {
        padding-top: 60px;
    }
    .cmn-footer .footer-upper
    {
        display: flex;

        justify-content: space-between;
    }
    .cmn-footer .footer-upper .logo
    {
        width: 138px;
        margin-right: 0;
        margin-left: 0;

        transition: all .3s ease;
    }
    .cmn-footer .footer-upper .logo:hover
    {
        transition: all .3s ease;

        opacity: .6;
    }
    .cmn-footer .footer-nav
    {
        width: 90.2778%;
        margin-top: 10px;
    }
    .cmn-footer .footer-nav .lists
    {
        display: flex;

        width: auto;
        margin-top: 0;

        justify-content: flex-end;
    }
    .cmn-footer .footer-nav .lists li + li
    {
        margin-top: 0;
        margin-left: 2.2222%;
    }
    .cmn-footer .footer-nav .lists a
    {
        font-size: 1.125rem;
        line-height: 1;

        transition: all .3s ease;
    }
    .cmn-footer .footer-nav .lists a:hover
    {
        transition: all .3s ease;

        color: #2f7e9c;
    }
    .cmn-footer .footer-nav .lists a:hover::before
    {
        background-image: url(/img/icon-page_blue.svg);
    }
    .cmn-footer .footer-nav .lists a:hover::after
    {
        transition: all .3s ease;

        opacity: 1;
    }
    .cmn-footer .footer-lower .company-list
    {
        padding-top: 54px;
    }
    .cmn-footer .footer-lower .item
    {
        width: 15.3333%;

        transition: all .3s ease;
    }
    .cmn-footer .footer-lower .item:hover
    {
        transition: all .3s ease;

        box-shadow: 0 4px 16px 0 rgba(0, 0, 0, .25);
    }
    .cmn-footer .footer-lower .item:nth-child(2n)
    {
        margin-left: 0;
    }
    .cmn-footer .footer-lower .item:nth-child(n + 3)
    {
        margin-top: 0;
    }
    .cmn-footer .footer-lower .item:nth-child(4) .image
    {
        width: 81.9672%;
    }
    .cmn-footer .footer-lower .item:nth-child(5) .image
    {
        width: 55.7377%;
    }
    .cmn-footer .footer-lower .item:nth-child(6) .image
    {
        width: 55.7377%;
    }
    .cmn-footer .footer-lower .item + .item
    {
        margin-left: 1.3889%;
    }
    .cmn-footer .footer-lower .item a
    {
        align-items: center;
        justify-content: center;
    }
    .cmn-footer .footer-lower .item .image
    {
        width: 74.3169%;
        height: 36px;
    }
    .cmn-footer .footer-lower .item .text
    {
        font-size: .75rem;
        line-height: 1.5;

        margin-top: 6px;
    }
    .cmn-footer .footer-lower .copyrights
    {
        font-size: .75rem;
        line-height: 1.5;

        margin-top: 36px;

        letter-spacing: .07em;
    }
    .cmn-header
    {
        height: 80px;

        background-color: #fff;
    }
    .cmn-header .header-pc
    {
        display: flex;

        width: 82.2917%;
        height: 80px;

        justify-content: space-between;
        align-items: center;
    }
    .cmn-header .header-pc .logo
    {
        transition: all .3s ease;
    }
    .cmn-header .header-pc .logo:hover
    {
        transition: all .3s ease;

        opacity: .6;
    }
    .cmn-header .header-pc .header-nav a
    {
        transition: all .3s ease;
    }
    .cmn-header .header-pc .header-nav a:hover
    {
        transition: all .3s ease;

        color: #2f7e9c;
    }
    .cmn-header .header-pc .header-nav a:hover::before
    {
        background-image: url(/img/icon-page_blue.svg);
    }
    .cmn-header .header-pc .header-nav a:hover::after
    {
        transition: all .3s ease;

        opacity: 1;
    }
    .cmn-header .header-sp .logo
    {
        transition: all .3s ease;
    }
    .cmn-header .header-sp .logo:hover
    {
        transition: all .3s ease;

        opacity: .6;
    }
    .button.-middle
    {
        width: 208px;

        transition: all ease .3s;
    }
    .button.-middle:hover
    {
        transition: all ease .3s;

        background-color: #2f7e9c;
    }
    .button.-middle:hover a
    {
        color: #fff;
    }
    .button.-middle a
    {
        font-size: 1rem;
        line-height: 1;

        height: 46px;
    }
    .button.-large
    {
        width: 320px;
        max-width: inherit;

        transition: all ease .3s;
    }
    .button.-large:hover
    {
        transition: all ease .3s;

        background-color: #2f7e9c;
    }
    .button.-large:hover a
    {
        color: #fff;
    }
    .button.-large a
    {
        font-size: 1rem;
        line-height: 1;

        height: 60px;
    }
    .button.-long
    {
        max-width: 320px;

        transition: all ease .3s;
    }
    .button.-long:hover
    {
        transition: all ease .3s;

        background-color: #fff;
    }
    .button.-long a,
    .button.-long input
    {
        height: 60px;

        transition: all ease .3s;
    }
    .button.-long a:hover,
    .button.-long input:hover
    {
        transition: all ease .3s;

        color: #73b8d4;
    }
    .button.-white
    {
        transition: all ease .3s;
    }
    .button.-white:hover
    {
        transition: all ease .3s;

        background-color: #73b8d4;
    }
    .button.-white a,
    .button.-white input
    {
        height: 60px;

        transition: all ease .3s;
    }
    .button.-white a:hover,
    .button.-white input:hover
    {
        transition: all ease .3s;

        color: #fff;
    }
    .cmn-mv
    {
        margin-top: 80px;
        padding-top: 130px;
        padding-bottom: 120px;
    }
    .cmn-mv.contact-mv
    {
        background-image: url(/img/contact-mv_bg.jpg);
    }
    .cmn-mv.news-mv
    {
        background-image: url(/img/news-mv_bg.jpg);
    }
    .cmn-ttl
    {
        font-size: 2.5rem;
        line-height: 1;
    }
    .cmn-ttl.-small
    {
        font-size: 2.5rem;
        line-height: 1;
    }
    .sub-ttl
    {
        font-size: 1rem;
        line-height: 1;

        padding-top: 14px;
    }
    .sub-ttl.-small
    {
        font-size: 1rem;
        line-height: 1;
    }
    .cmn-section.-large
    {
        width: 83.3333%;
        max-width: 1200px;
    }
    .cmn-section.-middle
    {
        width: 75%;
        max-width: 1080px;
    }
    .cmn-section.-small
    {
        width: 58.3333%;
        max-width: 840px;
    }
    .cmn-chart
    {
        margin-top: 66px;
    }
    .cmn-chart .row
    {
        display: flex;
    }
    .cmn-chart .row a
    {
        display: flex;

        width: 100%;

        transition: all .2ss ease;
    }
    .cmn-chart .row a:hover .text
    {
        font-weight: bold;

        transition: all .2s ease;
        text-decoration: underline;

        color: #2f7e9c;
    }
    .cmn-chart .row:not(:last-child)
    {
        padding-bottom: 22px;
    }
    .cmn-chart dt
    {
        font-size: 1rem;
        line-height: 1.75;

        width: 115px;
    }
    .cmn-chart dd
    {
        font-size: 1rem;
        line-height: 1.75;

        margin-top: 0;

        flex: 1 1;
    }
    .index-pager
    {
        margin-top: 64px;
        margin-right: -50px;
        margin-left: -50px;
    }
    .index-pager .page-numbers
    {
        font-size: 1.5rem;
        line-height: 1;
    }
    .index-pager .page-numbers.-current
    {
        width: 36px;
        height: 36px;
        margin: 0 10px;
    }
    .index-pager .page-numbers a
    {
        font-size: 1.5rem;
        line-height: 1;

        padding-right: 24px;
        padding-left: 24px;
    }
    .index-pager .pager-icon.-prev
    {
        margin-right: 70px;
    }
    .index-pager .pager-icon.-next
    {
        margin-left: 80px;
    }
    .contact-top
    {
        padding-top: 120px;
        padding-bottom: 120px;
    }
    .contact-confirm
    {
        padding-top: 190px;
        padding-bottom: 120px;
    }
    .contact-confirm .contact-form dt
    {
        margin-top: 12px;
    }
    .contact-confirm .contact-form dd
    {
        margin-top: 10px;
    }
    .contact-form .form-row
    {
        display: flex;

        justify-content: center;
    }
    .contact-form .form-row + .form-row
    {
        margin-top: 48px;
    }
    .contact-form dt
    {
        font-size: 1rem;
        line-height: 1;

        width: 320px;
        margin-top: 20px;
    }
    .contact-form dt .btn
    {
        margin-left: 24px;
    }
    .contact-form dd
    {
        font-size: 1rem;
        line-height: 1.5;

        width: 520px;
        margin-top: 0;
    }
    .contact-form dd .name
    {
        width: 46.1539%;
    }
    .contact-form dd .name + .name
    {
        margin-left: 5.7692%;
    }
    .contact-form dd input
    {
        height: 54px;
        padding-left: 16px;
    }
    .contact-form dd textarea
    {
        padding-top: 16px;
        padding-left: 16px;
    }
    .contact-form dd .error
    {
        font-size: 1rem;
        line-height: 1.625;

        margin-top: 2px;
    }
    .contact-form .submit-wrap
    {
        display: flex;

        margin-top: 64px;

        justify-content: center;
        flex-flow: row-reverse;
    }
    .contact-form .submit-wrap .button
    {
        margin-right: 0;
        margin-left: 0;
    }
    .contact-form .submit-wrap .button + .button
    {
        margin-top: 0;
        margin-right: 30px;
    }
    .contact-thanks
    {
        padding-top: 200px;
        padding-bottom: 120px;
    }
    .contact-thanks .image
    {
        width: 120px;
    }
    .contact-thanks .ttl
    {
        font-size: 2rem;
        line-height: 1;
    }
    .contact-thanks .text
    {
        font-size: 1rem;
        line-height: 1.5;

        margin-top: 30px;
    }
    .contact-thanks .thanks-btn
    {
        margin-top: 65px;
    }
    .index-about
    {
        padding-top: 132px;
    }
    .index-news
    {
        padding-top: 132px;
    }
    .index-news .news-button
    {
        margin-top: 72px;
    }
    .index-case
    {
        margin-top: 0;
        padding-bottom: 66px;
    }
    .index-case .case-wrap
    {
        padding-top: 168px;
    }
    .index-case .case-list
    {
        padding-top: 68px;
    }
    .index-case .case-list li
    {
        width: 24.25%;

        border-radius: 10px;
    }
    .index-case .case-list li:hover
    {
        transition: all ease .3s;

        box-shadow: 0 8px 20px 0 rgba(0, 0, 0, .2);
    }
    .index-case .case-list li:nth-child(2n)
    {
        margin-left: 2.7778%;
    }
    .index-case .case-list li:nth-child(n + 3)
    {
        margin-top: 0;
    }
    .index-case .case-list li:nth-child(4)
    {
        display: none;
    }
    .index-case .case-list li + li
    {
        margin-left: 2.7778%;
    }
    .index-case .case-list li .text
    {
        padding: 16px;
    }
    .index-case .case-list li .tag
    {
        font-size: .6875rem;
        line-height: 1.6364;

        padding: 2px 12px;

        border-radius: 4px;
    }
    .index-case .case-list li .tag + .tag
    {
        margin-top: 8px;
    }
    .index-case .case-list li .ttl
    {
        font-size: 1.125rem;
        line-height: 1.4444;
    }
    .index-case .case-list li .company
    {
        font-size: .875rem;
        line-height: 1.4286;

        margin-top: 6px;
    }
    .index-case .case-button
    {
        margin-top: 70px;
    }
    .index-contact
    {
        margin-top: 124px;
        padding-top: 62px;
        padding-bottom: 62px;

        background-image: url(/img/contact-mv_bg.jpg);
    }
    .index-contact .contact-wrap p
    {
        font-size: 1rem;
        line-height: 1.5;
    }
    .index-contact .contact-button
    {
        margin-top: 36px;
    }
    .index-contact .contact-button a
    {
        font-size: 1rem;
        line-height: 1.5;

        width: 320px;
        max-width: inherit;
        height: 64px;
    }
    .index-contact .contact-button a:hover
    {
        transition: all ease .3s;

        color: #2f7e9c;
        background-color: #fff;
    }
    .index-intern
    {
        padding-top: 130px;
    }
    .index-intern .media-button
    {
        margin-top: 35px;
        margin-right: 0;
        margin-left: 0;
    }
    .index-intern .intern-square1
    {
        left: -344px;

        width: 306px;
        height: 306px;
    }
    .index-intern .intern-square2
    {
        top: 336px;
        right: -134px;

        width: 295px;
        height: 295px;
    }
    .index-map
    {
        margin-top: 110px;
    }
    .index-map .map
    {
        padding-bottom: 27.7778%;
    }
    .index-media
    {
        padding-top: 130px;
    }
    .index-media .media-square1
    {
        top: 186px;
        right: inherit;
        left: -60px;
    }
    .index-media .media-square2
    {
        top: 456px;
        right: -284px;

        display: block;

        width: 306px;
        height: 306px;
    }
    .index-media .media-square3
    {
        bottom: -366px;
        left: -304px;

        width: 383px;
        height: 383px;
    }
    .index-media .media-list
    {
        margin-top: 80px;
    }
    .index-media .media-button
    {
        margin-top: 30px;
        margin-right: 0;
        margin-left: 0;
    }
    .index-mv
    {
        margin-top: 80px;
        padding-top: 53.125%;

        background-image: url(/img/index-mv_bg.png);
        background-position: top center;
    }
    .index-mv .mv-title
    {
        font-size: 2.5vw;
        line-height: 4.8611vw;

        top: 23.6111%;
        left: 8.1944%;
    }
    .index-mv .mv-title .-large
    {
        font-size: 3.3333vw;
    }
    .index-mv .mv-title .-large::before
    {
        bottom: .5333vw;

        height: 12px;
    }
    .index-mv .mv-title .-midium
    {
        font-size: 3.3333vw;
    }
    .index-mv .mv-title .-midium::before
    {
        height: 12px;
    }
    .index-mv .mv-title .-small
    {
        font-size: 2.5vw;
    }
    .main-archive h2
    {
        font-size: 1.75rem;
        line-height: 1.4286;

        margin-bottom: 14px;
    }
    .main-archive p
    {
        font-size: 1rem;
        line-height: 1.875;

        margin-bottom: 16px;

        letter-spacing: .1em;
    }
    .main-archive h3
    {
        font-size: 1.5rem;
        line-height: 1.3333;

        margin-bottom: 14px;
    }
    .main-archive img
    {
        margin: 40px 0;
    }
    .main-archive * a
    {
        font-size: 1rem;
        line-height: 1.875;
    }
    .main-archive ul
    {
        margin: 16px 0;
    }
    .main-archive ul li
    {
        font-size: 1rem;
        line-height: 1.875;
    }
    .main-archive ol
    {
        margin-top: 20px;
        margin-bottom: 20px;
    }
    .main-archive ol li
    {
        font-size: 1rem;
        line-height: 1.875;
    }
    .main-archive ol li::before
    {
        margin-top: 5px;
        margin-left: -66px;
    }
    .news-top
    {
        padding-top: 50px;
    }
    .news-single
    {
        padding-top: 66px;
    }
    .news-single .headline-wrap
    {
        padding-bottom: 34px;
    }
    .news-single .headline-wrap time
    {
        font-size: 1.25rem;
        line-height: 1;
    }
    .news-single .headline-wrap .title
    {
        font-size: 2rem;
        line-height: 1.5;

        margin-top: 10px;
    }
    .service-item
    {
        padding-top: 68px;

        flex-flow: nowrap;
    }
    .service-item.-reverce
    {
        flex-flow: row-reverse;
    }
    .service-item.-reverce .service-image
    {
        margin-right: auto;
        margin-left: 0;
    }
    .service-item.-reverce .service-text
    {
        margin-top: 26px;
    }
    .service-item.-reverce .service-text .text
    {
        margin-top: 24px;
    }
    .service-item.-reverce .media-button
    {
        margin-top: 30px;
    }
    .service-item .service-image
    {
        width: 50%;
        margin-right: 0;
    }
    .service-item .service-text
    {
        width: 44.4444%;
        margin-right: 0;
        margin-left: 0;
    }
    .service-item .service-text .logo.-intern
    {
        width: 313px;
        margin-top: 10px;
        margin-left: -30px;
    }
    .service-item .service-text .logo.-media
    {
        width: 315px;
        margin-top: 10px;
        margin-left: -30px;
    }
    .service-list
    {
        display: flex;

        flex-flow: wrap;
    }
    .service-list li
    {
        width: 44.4444%;
    }
    .service-list li + li
    {
        margin-top: 0;
    }
    .service-list li:nth-child(2n)
    {
        margin-left: 10.1852%;
    }
    .service-list li:nth-child(n + 3)
    {
        margin-top: 64px;
    }
    .service-list li:nth-child(n + 3) .logo
    {
        margin-right: 0;
        margin-left: 0;
    }
    .service-list li:nth-child(1) .logo
    {
        width: 247px;
    }
    .service-list li:nth-child(2) .logo
    {
        width: 267px;
    }
    .service-list li:nth-child(3) .logo
    {
        width: 180px;
    }
    .service-list li:nth-child(4) .logo
    {
        width: 180px;
    }
    .service-text
    {
        width: 100%;
    }
    .service-text .text
    {
        font-size: 1rem;
        line-height: 1.75;

        margin-top: 34px;

        letter-spacing: .06em;
    }
    .sns-buttons
    {
        top: 416px;
    }
    .sns-buttons .link
    {
        width: 64px;
        height: 64px;
    }
    .sns-buttons .twitter img
    {
        width: 26px;
    }
    .sns-buttons .facebook img
    {
        width: 13px;
    }
    ._sp
    {
        display: none !important;
    }
    ._pc
    {
        display: block !important;
    }
}

@media print,screen and (min-width: 321px)
{
    ._se
    {
        display: none !important;
    }
}

@media screen and (min-width: 768px) and (max-width: 1023px)
{
    ._tablet-only
    {
        display: block;
    }
}

@media print,screen and (min-width: 1024px)
{
    ._pc-only
    {
        display: block;
    }
}

@media screen and (max-width: 767px)
{
    ._sp-only
    {
        display: block;
    }
}
