/* Theme base styles */

/* Generic */

/* =================================
   ■ 基本指定
================================== */
body,main,aside,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,p,blockquote,th,td,figure,figcaption{
    padding: 0px;
    margin: 0px;
    min-width:0;
    min-height:0;
}

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

/* --------------------------------
   □ body
-------------------------------- */
html {
    height:100%;
}

body {
    font-family:  sans-serif;
} 

/* --------------------------------
   □ text
-------------------------------- */

strong,
em{
    font-weight:bold;
}

em,
address,
cite{
    font-style: normal;
}

h1,h2,h3,h4,h5,h6{ 
    font-weight:bold;
    line-height:1.2;
}

h1 { font-size: 150%;}
h2 { font-size: 125%;}
h3 { font-size: 108%;}
h4 { font-size: 100%;}
h5 { font-size: 100%;}
h6 { font-size: 100%;}

acronym,abbr{cursor:help;}

sup{
    vertical-align:0;
    position:relative;
    top:-0.7em;  
    font-size: 9px;
    line-height: normal;
}

sub{
    vertical-align:0; 
    font-size: 9px;
    line-height: normal;
}

/* --------------------------------
   □ style
-------------------------------- */
table{
    border-collapse:collapse;
 }	

th,td{ text-align:left; }

input[type]{ 
    line-height:1; 
}

/* IE only \*/
* html input{ margin:0; }
*:first-child + html input{ margin:0; }	
/* end */

input.text,
textarea {
    font-size:100%;
}


textarea, select, input {
    font-family : sans-serif;
}

hr {display:none;}

ul,ol  { list-style : none; }

fieldset {
    border: none;
}

/* --------------------------------
   □ link
-------------------------------- */
/* gecko対策 */
a[name]:hover{text-decoration:none !important;outline:0 !important;} 

/* --------------------------------
   □ image
-------------------------------- */
img{
    vertical-align: top;
    border: 0;
}

object,param{
    border:0;
    vertical-align:bottom;
}
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */

/* Document
   ========================================================================== */

/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */

html {
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
}

/* Sections
   ========================================================================== */

/**
 * Remove the margin in all browsers.
 */

body {
  margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */

main {
  display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */

h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
   ========================================================================== */

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */

hr {
  box-sizing: content-box; /* 1 */
  height: 0; /* 1 */
  overflow: visible; /* 2 */
}

/**
 * 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;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */

abbr[title] {
  border-bottom: none; /* 1 */
  text-decoration: underline; /* 2 */
  text-decoration: underline dotted; /* 2 */
}

/**
 * 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%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
   ========================================================================== */

/**
 * Remove the border on images inside links in IE 10.
 */

img {
  border-style: none;
}

/* Forms
   ========================================================================== */

/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */

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

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */

button,
input { /* 1 */
  overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */

button,
select { /* 1 */
  text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */

button,
[type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */

button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */

fieldset {
  padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */

legend {
  box-sizing: border-box; /* 1 */
  color: inherit; /* 2 */
  display: table; /* 1 */
  max-width: 100%; /* 1 */
  padding: 0; /* 3 */
  white-space: normal; /* 1 */
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */

progress {
  vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */

textarea {
  overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */

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

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */

[type="search"] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */

[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/* Interactive
   ========================================================================== */

/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */

details {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */

summary {
  display: list-item;
}

/* Misc
   ========================================================================== */

/**
 * Add the correct display in IE 10+.
 */

template {
  display: none;
}

/**
 * Add the correct display in IE 10.
 */

[hidden] {
  display: none;
}


@charset "utf-8";

/* ==================================================================
    ■コンポーネント一覧
     サイトによって使わない指定が多いので随時削除・変更すること。
=================================================================== */

/* --------------------------------
   □ clearfix
-------------------------------- */

.clearfix:after{
    content:".";
    height:0;
    clear:both;
    display:block;
    visibility:hidden;
    line-height:0;
    font-size:0;
}


/* --------------------------------
   □ パンくずナビ
-------------------------------- */

ol#breadcrumbs { }
ol#breadcrumbs li {
    vertical-align  : middle;
    display	: inline;
}

ol#breadcrumbs li a{  
    padding-right	: 8px;
    margin-right:0px;
    background:url(../images/common/icon/arrow/breadcrumbs.gif) 100% 50% no-repeat;
}

/* --------------------------------
   □ ボタンスタイル
-------------------------------- */
.contents .buttonStyle{
    text-align: center;
    margin-bottom: 0;
}

.contents .buttonStyle button,
.contents .buttonStyle a{
    font-size: 2.0rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    width: 100%;
    max-width: 416px;
    padding: 25px 25px;
    border-radius: 40px;
    position: relative;
    box-sizing: border-box;
    display: inline-block;
    color: #fff;
    background: #a51c4b;
    text-decoration: none;
    transition: all 300ms 0s ease;
    cursor: pointer;
    vertical-align: middle;
}

    .contents .buttonStyle button:hover,
    .contents .buttonStyle a:hover{
        opacity: 0.7;
    }

    .contents .buttonStyle.icon button span,
    .contents .buttonStyle.icon a span{
        background:url(../images/check.png) 0 50% no-repeat;
        background-size:auto 65%;
        padding-left:23px;
    }

    .contents .buttonStyle button span:before,
    .contents .buttonStyle a span:before{
        content: "";
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        -webkit-transform: translateY(-50%);
        right: 8%;
        display: inline-block;
        width: 15px;
        height: 23px;
        background: url(../images/arrow_right_white.svg) no-repeat right center;
        background-size: contain;
        z-index: 1;
        transition: all 300ms 0s ease;
    }

    .contents .buttonStyle.rightIcon button span,
    .contents .buttonStyle.rightIcon a span{
        background-position:100% 50%;
        padding-left:0;
        padding-right:23px;
    }

.contents .buttonStyle.gray a{
    background:#ccc;
}

    .contents .buttonStyle.gray a:hover{
        background:#ddd;
    }

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

.contents .buttonStyle a{
    font-size:100%;
}


}

/* --------------------------------
   □ テーブルスタイル
-------------------------------- */

table.tableStyle{
    width:100%;
    border:1px solid #ccc;
}
table.tableStyle th,
table.tableStyle td{
    padding:10px 5px;
    border:1px solid #ccc;
}

/* --------------------------------
   □ メニュー

   メニューの原型
-------------------------------- */

ul.navigationInterface{

}

ul.navigationInterface li{
    float:left;
    display:inline;
}

ul.navigationInterface li a{
    display:block;

    text-indent: -1000em;
    text-decoration:none;
    font-size:1px;
    overflow: hidden;
}	
/* MAC用IE only \*//*/
ul.navigationInterface li a  {overflow: inherit;}
/* end */

    /* --------------------------------
       □ トップメニュー

        個別に指定
    -------------------------------- */

    .site ul.navigation{
    }

    .site ul.navigation li{
        width:128px;	
        height:67px;
        margin-right:2px;
        background:0 0 no-repeat;
    }

    .site ul.navigation li a{
        width:100%;
        height:100%;
        background:0 0 no-repeat;
    }

    /* ロールオーバー */
    html .site ul.navigation li a:hover{ visibility:inherit;}
    html .site ul.navigation li a:hover img{ visibility:hidden; display:inline-block;}
    html:not(:target) .site ul.navigation li a:hover img{ display:block;}

    /* 個別指定 */
    .site ul.navigation li.company {	background-image:url(../images/navigation/company-over.gif)}

    .site ul.navigation li.company a{	background-image:url(../images/navigation/company.gif)}

    /* オン */
    .company .site ul.navigation li.company img{ visibility:hidden;}

/* --------------------------------
   □ newsInformation
-------------------------------- */

#newsInformation dl{
    line-height:1.3;
    width:100%;
}

    #newsInformation dt,
    #newsInformation dd{
        margin-bottom:5px;
    }

    #newsInformation dt{
        width:6em;
        float:left;
        font-weight:700;
        clear:both;
    }

    #newsInformation dd{
        padding-left:6em;	
    }

    *:first-child+html #newsInformation dd{
        padding-left:0px;		
    }


/* =================================
   ■ 共通指定
================================== */

/* --------------------------------
   □ 共通クラス
-------------------------------- */

/* ◇ text
-------------------------------- */
/* 明朝の指定 */
.mincho{
    font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
}

/* margin0 */
p.none{ margin-bottom:0;}
/* 段落 */
p.indent{ text-indent:1em;}
/* 備考 */
p.remarks{ text-indent:-1em; padding-left:1em;}

/* 右寄せ */
.right{float:right;}
/* 左寄せ */
.left{float:left;}

/* text中央寄せ */
.text-center,
.text-center p{ text-align:center;}
.text-center img{ margin: 0 auto;}

/* text右寄せ */
.text-right,
.text-right p{ text-align:right;}
/* text左寄せ */
.text-left,
.text-left p{ text-align:left;}

/* clear */
.clear{
    clear:both;
}

/* 変換
-------------------------------- */
.ime-disabled{
    ime-mode:disabled;
}
.ime-active{
    ime-mode:active;
}

/* 文字隠
-------------------------------- */
.texthidden{
    text-indent: -1000em;
    text-decoration:none;
    font-size:1px;
    overflow: hidden;
}

/* MAC用IE only \*//*/
.texthidden  {overflow: inherit;}
/* end */



/* ◇ disc
-------------------------------- */

ul.disc li{
    list-style-type:disc;
    margin-left:2em;
}

*:first-child + html ul.disc li{
    display:list-item;
    vertical-align:top;
    position:relative;
    top:-0.3em;
    margin-top:0.3em;
}


/* ◇ 番号付きリスト
-------------------------------- */

ol.decimal li{
    list-style-type:decimal;
    margin-left:2em;
}

*:first-child + html ol.decimal li{
    display:list-item;
    vertical-align:top;
    position:relative;
    top:-0.3em;
    margin-top:0.3em;
}

/* 送信フォーム
-------------------------------- */
.submitArea{
    margin:15px 0;
    text-align:center;
}

.submitArea img,
.submitArea input{
    vertical-align:baseline;
}

/* エラー ----------------------- */
.warning{
    color:#FF0000;
    font-size:92%;
    display:none;
}

/* バナー一覧
-------------------------------- */
.publicity ul li{
    margin-bottom:5px;
}

/* 広告バナー
-------------------------------- */
.abs{
    margin:0;
}

/* ◇ 簡易マウスオーバー
-------------------------------- */
.mouse-over a:hover img,
.mouse-over:hover img{
    filter:alpha(opacity=90);  
    -ms-filter: "alpha(opacity=90)";
    -moz-opacity:0.9; 
    -khtml-opacity: 0.9;
    opacity: 0.9; 
}

/* ◇ タグ嵩張らないように
-------------------------------- */
.hiddentags{
    overflow:hidden;
    height:1px;
}


/* アイコン
-------------------------------- */
a._blank,
a > ._blank{
    display: inline-block;
    padding-right: 22px;
    background: url("../images/common/icon/blank.svg") 100% 50% no-repeat;
}

/* ◇ .pseudoTable
-------------------------------- */
.pseudoTable{
    display: table;
}
.pseudoTable > *{
    display: table-cell;
    vertical-align: middle;
}

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

    .pseudoTable.sp_noTable{
        display: block;
    }
    .pseudoTable.sp_noTable > *{
        display: block;
    }

}

/* ◇ .flexbox
-------------------------------- */
.flexbox{
    display:flex;
    flex-wrap: wrap;
    align-items: center;
}
.flexbox.between{
    justify-content: space-between;
}
.flexbox.around{
    justify-content: space-around;
}
.flexbox.col2 > *{
    width: 48%;
}
.flexbox.col3 > *{
    width: 32%;
}

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

    .flexbox.sp_no_flex{
        display:block;
    }

    .flexbox.col2.sp_no_flex > *{
        width: auto;
    }
    .flexbox.col3.sp_no_flex > *{
        width: auto;
    }

}
@charset "utf-8";


/*
==============================================
contentsの後表示
==============================================
*/
.contents {
    -webkit-animation-fill-mode:both;
    -ms-animation-fill-mode:both;
    animation-fill-mode:both;
    -webkit-animation-duration:2s;
    -ms-animation-duration:2s;
    animation-duration:2s;
    -webkit-animation-name: fadeInDown;
    animation-name: fadeInDown;
    visibility: visible !important;
}
@-webkit-keyframes fadeInDown {
    0% { opacity: 0;  }
    100% { opacity: 1;  }
}
@keyframes fadeInDown {
    0% { opacity: 0; }
    100% { opacity: 1;  }
}

[data-animation],
.inview{
    opacity:0;
    visibility:hidden;
}

[data-animation].confirmed,
.inview.confirmed{
    opacity:1;
    visibility:visible;

    animation-duration: 1s;
    -webkit-animation-duration: 1s;

    animation-timing-function: ease;
    -webkit-animation-timing-function: ease;
}

/*
==============================================
左に
==============================================
*/

[data-animation="left"].confirmed,
.animation-left.confirmed{
    animation-name: animation-left;
    -webkit-animation-name: animation-left;
    animation-duration: 1s;
    -webkit-animation-duration: 1s;
}

@keyframes animation-left {
    0% {
        opacity:0;
        transform: translateX(150%);
    }
    100% {
        opacity:1;
        transform: translateX(0%);
    }
}

/*
==============================================
右に
==============================================
*/
[data-animation="right"].confirmed,
.animation-right.confirmed{
    animation-name: animation-right;
    -webkit-animation-name: animation-right;
}

@keyframes animation-right {
    0% {
        opacity:0;
        transform: translateX(-150%);
    }
    100% {
        opacity:1;
        transform: translateX(0%);
    }
}

/*
==============================================
下に
==============================================
*/

[data-animation="down"].confirmed,
.animation-down.confirmed{
    animation-name: animation-down;
    -webkit-animation-name: animation-down;
}

@keyframes animation-down {
    0% {
        opacity:0;
        transform: translateY(-100%);
    }
    100% {
        opacity:1;
        transform: translateY(0%);
    }
}


/*
==============================================
上に
==============================================
*/

[data-animation="up"].confirmed,
.animation-up.inview.confirmed{
    animation-name: animation-up;
    -webkit-animation-name: animation-up;
}

@keyframes animation-up {
    0% {
        transform: translateY(100%);
    }
    100% {
        transform: translateY(0%);
    }
}

/*
==============================================
zoomIn
==============================================
*/

[data-animation="zoomIn"].confirmed,
.animation-zoomIn.inview.confirmed{
    animation-name: animation-zoomIn;
    -webkit-animation-name: animation-zoomIn;

    animation-duration: 1s;
    -webkit-animation-duration: 1s;
}

@keyframes animation-zoomIn {
    0% {
        transform: scale(0);
        opacity: 0.0;
    }
    100% {
        transform: scale(1);
        opacity: 1;
    }
}

/*
==============================================
fadeIn
==============================================
*/

[data-animation="fadeIn"].confirmed,
.animation-fadeIn.inview.confirmed{
    animation-name: animation-fadeIn;
    -webkit-animation-name: animation-fadeIn;

    animation-duration: 1s;
    -webkit-animation-duration: 1s;
}

@keyframes animation-fadeIn {
    0% {
        opacity: 0.0;
        transform:translate(0,15px);
    }
    100% {
        opacity: 1;
        transform:translate(0,0);
    }
}

/*
==============================================
animation
==============================================
*/

[data-animation="expandOpen"].confirmed,
.animation-expandOpen.inview.confirmed{
    animation-name: expandOpen;
    -webkit-animation-name: expandOpen;

    animation-duration: 1s;
    -webkit-animation-duration: 1s;

    animation-timing-function: ease-out;
    -webkit-animation-timing-function: ease-out;
}


/*
==============================================
slideDown
==============================================
*/


.slideDown{
    animation-name: slideDown;
    -webkit-animation-name: slideDown;

    animation-duration: 1s;
    -webkit-animation-duration: 1s;

    animation-timing-function: ease;
    -webkit-animation-timing-function: ease;

    visibility: visible !important;
}

@keyframes slideDown {
    0% {
        transform: translateY(-100%);
    }
    50%{
        transform: translateY(8%);
    }
    65%{
        transform: translateY(-4%);
    }
    80%{
        transform: translateY(4%);
    }
    95%{
        transform: translateY(-2%);
    }
    100% {
        transform: translateY(0%);
    }
}

@-webkit-keyframes slideDown {
    0% {
        -webkit-transform: translateY(-100%);
    }
    50%{
        -webkit-transform: translateY(8%);
    }
    65%{
        -webkit-transform: translateY(-4%);
    }
    80%{
        -webkit-transform: translateY(4%);
    }
    95%{
        -webkit-transform: translateY(-2%);
    }
    100% {
        -webkit-transform: translateY(0%);
    }
}

/*
==============================================
slideUp
==============================================
*/


.slideUp{
    animation-name: slideUp;
    -webkit-animation-name: slideUp;

    animation-duration: 1s;
    -webkit-animation-duration: 1s;

    animation-timing-function: ease;
    -webkit-animation-timing-function: ease;

    visibility: visible !important;
}

@keyframes slideUp {
    0% {
        transform: translateY(100%);
    }
    50%{
        transform: translateY(-8%);
    }
    65%{
        transform: translateY(4%);
    }
    80%{
        transform: translateY(-4%);
    }
    95%{
        transform: translateY(2%);
    }
    100% {
        transform: translateY(0%);
    }
}

@-webkit-keyframes slideUp {
    0% {
        -webkit-transform: translateY(100%);
    }
    50%{
        -webkit-transform: translateY(-8%);
    }
    65%{
        -webkit-transform: translateY(4%);
    }
    80%{
        -webkit-transform: translateY(-4%);
    }
    95%{
        -webkit-transform: translateY(2%);
    }
    100% {
        -webkit-transform: translateY(0%);
    }
}

/*
==============================================
slideLeft
==============================================
*/


.slideLeft{
    animation-name: slideLeft;
    -webkit-animation-name: slideLeft;

    animation-duration: 1s;
    -webkit-animation-duration: 1s;

    animation-timing-function: ease-in-out;
    -webkit-animation-timing-function: ease-in-out;

    visibility: visible !important;
}

@keyframes slideLeft {
    0% {
        transform: translateX(150%);
    }
    50%{
        transform: translateX(-8%);
    }
    65%{
        transform: translateX(4%);
    }
    80%{
        transform: translateX(-4%);
    }
    95%{
        transform: translateX(2%);
    }
    100% {
        transform: translateX(0%);
    }
}

@-webkit-keyframes slideLeft {
    0% {
        -webkit-transform: translateX(150%);
    }
    50%{
        -webkit-transform: translateX(-8%);
    }
    65%{
        -webkit-transform: translateX(4%);
    }
    80%{
        -webkit-transform: translateX(-4%);
    }
    95%{
        -webkit-transform: translateX(2%);
    }
    100% {
        -webkit-transform: translateX(0%);
    }
}

/*
==============================================
slideRight
==============================================
*/


.slideRight{
    animation-name: slideRight;
    -webkit-animation-name: slideRight;

    animation-duration: 1s;
    -webkit-animation-duration: 1s;

    animation-timing-function: ease-in-out;
    -webkit-animation-timing-function: ease-in-out;

    visibility: visible !important;
}

@keyframes slideRight {
    0% {
        transform: translateX(-150%);
    }
    50%{
        transform: translateX(8%);
    }
    65%{
        transform: translateX(-4%);
    }
    80%{
        transform: translateX(4%);
    }
    95%{
        transform: translateX(-2%);
    }
    100% {
        transform: translateX(0%);
    }
}

@-webkit-keyframes slideRight {
    0% {
        -webkit-transform: translateX(-150%);
    }
    50%{
        -webkit-transform: translateX(8%);
    }
    65%{
        -webkit-transform: translateX(-4%);
    }
    80%{
        -webkit-transform: translateX(4%);
    }
    95%{
        -webkit-transform: translateX(-2%);
    }
    100% {
        -webkit-transform: translateX(0%);
    }
}

/*
==============================================
slideExpandUp
==============================================
*/


.slideExpandUp{
    animation-name: slideExpandUp;
    -webkit-animation-name: slideExpandUp;

    animation-duration: 1.6s;
    -webkit-animation-duration: 1.6s;

    animation-timing-function: ease-out;
    -webkit-animation-timing-function: ease -out;

    visibility: visible !important;
}

@keyframes slideExpandUp {
    0% {
        transform: translateY(100%) scaleX(0.5);
    }
    30%{
        transform: translateY(-8%) scaleX(0.5);
    }
    40%{
        transform: translateY(2%) scaleX(0.5);
    }
    50%{
        transform: translateY(0%) scaleX(1.1);
    }
    60%{
        transform: translateY(0%) scaleX(0.9);
    }
    70% {
        transform: translateY(0%) scaleX(1.05);
    }
    80%{
        transform: translateY(0%) scaleX(0.95);
    }
    90% {
        transform: translateY(0%) scaleX(1.02);
    }
    100%{
        transform: translateY(0%) scaleX(1);
    }
}

@-webkit-keyframes slideExpandUp {
    0% {
        -webkit-transform: translateY(100%) scaleX(0.5);
    }
    30%{
        -webkit-transform: translateY(-8%) scaleX(0.5);
    }
    40%{
        -webkit-transform: translateY(2%) scaleX(0.5);
    }
    50%{
        -webkit-transform: translateY(0%) scaleX(1.1);
    }
    60%{
        -webkit-transform: translateY(0%) scaleX(0.9);
    }
    70% {
        -webkit-transform: translateY(0%) scaleX(1.05);
    }
    80%{
        -webkit-transform: translateY(0%) scaleX(0.95);
    }
    90% {
        -webkit-transform: translateY(0%) scaleX(1.02);
    }
    100%{
        -webkit-transform: translateY(0%) scaleX(1);
    }
}

/*
==============================================
expandUp
==============================================
*/


.expandUp{
    animation-name: expandUp;
    -webkit-animation-name: expandUp;

    animation-duration: 0.7s;
    -webkit-animation-duration: 0.7s;

    animation-timing-function: ease;
    -webkit-animation-timing-function: ease;

    visibility: visible !important;
}

@keyframes expandUp {
    0% {
        transform: translateY(100%) scale(0.6) scaleY(0.5);
    }
    60%{
        transform: translateY(-7%) scaleY(1.12);
    }
    75%{
        transform: translateY(3%);
    }
    100% {
        transform: translateY(0%) scale(1) scaleY(1);
    }
}

@-webkit-keyframes expandUp {
    0% {
        -webkit-transform: translateY(100%) scale(0.6) scaleY(0.5);
    }
    60%{
        -webkit-transform: translateY(-7%) scaleY(1.12);
    }
    75%{
        -webkit-transform: translateY(3%);
    }
    100% {
        -webkit-transform: translateY(0%) scale(1) scaleY(1);
    }
}

/*
==============================================
fadeIn
==============================================
*/

.fadeIn{
    animation-name: fadeIn;
    -webkit-animation-name: fadeIn;

    animation-duration: 1.5s;
    -webkit-animation-duration: 1.5s;

    animation-timing-function: ease-in-out;
    -webkit-animation-timing-function: ease-in-out;

    visibility: visible !important;
}

@keyframes fadeIn {
    0% {
        transform: scale(0);
        opacity: 0.0;
    }
    60% {
        transform: scale(1.1);
    }
    80% {
        transform: scale(0.9);
        opacity: 1;
    }
    100% {
        transform: scale(1);
        opacity: 1;
    }
}

@-webkit-keyframes fadeIn {
    0% {
        -webkit-transform: scale(0);
        opacity: 0.0;
    }
    60% {
        -webkit-transform: scale(1.1);
    }
    80% {
        -webkit-transform: scale(0.9);
        opacity: 1;
    }
    100% {
        -webkit-transform: scale(1);
        opacity: 1;
    }
}

/*
==============================================
expandOpen
==============================================
*/


.expandOpen{
    animation-name: expandOpen;
    -webkit-animation-name: expandOpen;

    animation-duration: 1.2s;
    -webkit-animation-duration: 1.2s;

    animation-timing-function: ease-out;
    -webkit-animation-timing-function: ease-out;

    visibility: visible !important;
}

@keyframes expandOpen {
    0% {
        transform: scale(1.8);
    }
    50% {
        transform: scale(0.95);
    }
    80% {
        transform: scale(1.05);
    }
    90% {
        transform: scale(0.98);
    }
    100% {
        transform: scale(1);
    }
}

@-webkit-keyframes expandOpen {
    0% {
        -webkit-transform: scale(1.8);
    }
    50% {
        -webkit-transform: scale(0.95);
    }
    80% {
        -webkit-transform: scale(1.05);
    }
    90% {
        -webkit-transform: scale(0.98);
    }
    100% {
        -webkit-transform: scale(1);
    }
}

/*
==============================================
bigEntrance
==============================================
*/


.bigEntrance{
    animation-name: bigEntrance;
    -webkit-animation-name: bigEntrance;

    animation-duration: 1.6s;
    -webkit-animation-duration: 1.6s;

    animation-timing-function: ease-out;
    -webkit-animation-timing-function: ease-out;

    visibility: visible !important;
}

@keyframes bigEntrance {
    0% {
        transform: scale(0.3) rotate(6deg) translateX(-30%) translateY(30%);
        opacity: 0.2;
    }
    30% {
        transform: scale(1.03) rotate(-2deg) translateX(2%) translateY(-2%);

        opacity: 1;
    }
    45% {
        transform: scale(0.98) rotate(1deg) translateX(0%) translateY(0%);
        opacity: 1;
    }
    60% {
        transform: scale(1.01) rotate(-1deg) translateX(0%) translateY(0%);
        opacity: 1;
    }
    75% {
        transform: scale(0.99) rotate(1deg) translateX(0%) translateY(0%);
        opacity: 1;
    }
    90% {
        transform: scale(1.01) rotate(0deg) translateX(0%) translateY(0%);
        opacity: 1;
    }
    100% {
        transform: scale(1) rotate(0deg) translateX(0%) translateY(0%);
        opacity: 1;
    }
}

@-webkit-keyframes bigEntrance {
    0% {
        -webkit-transform: scale(0.3) rotate(6deg) translateX(-30%) translateY(30%);
        opacity: 0.2;
    }
    30% {
        -webkit-transform: scale(1.03) rotate(-2deg) translateX(2%) translateY(-2%);
        opacity: 1;
    }
    45% {
        -webkit-transform: scale(0.98) rotate(1deg) translateX(0%) translateY(0%);
        opacity: 1;
    }
    60% {
        -webkit-transform: scale(1.01) rotate(-1deg) translateX(0%) translateY(0%);
        opacity: 1;
    }
    75% {
        -webkit-transform: scale(0.99) rotate(1deg) translateX(0%) translateY(0%);
        opacity: 1;
    }
    90% {
        -webkit-transform: scale(1.01) rotate(0deg) translateX(0%) translateY(0%);
        opacity: 1;
    }
    100% {
        -webkit-transform: scale(1) rotate(0deg) translateX(0%) translateY(0%);
        opacity: 1;
    }
}

/*
==============================================
hatch
==============================================
*/

.hatch{
    animation-name: hatch;
    -webkit-animation-name: hatch;

    animation-duration: 2s;
    -webkit-animation-duration: 2s;

    animation-timing-function: ease-in-out;
    -webkit-animation-timing-function: ease-in-out;

    transform-origin: 50% 100%;
    -ms-transform-origin: 50% 100%;
    -webkit-transform-origin: 50% 100%; 

    visibility: visible !important;
}

@keyframes hatch {
    0% {
        transform: rotate(0deg) scaleY(0.6);
    }
    20% {
        transform: rotate(-2deg) scaleY(1.05);
    }
    35% {
        transform: rotate(2deg) scaleY(1);
    }
    50% {
        transform: rotate(-2deg);
    }
    65% {
        transform: rotate(1deg);
    }
    80% {
        transform: rotate(-1deg);
    }
    100% {
        transform: rotate(0deg);
    }
}

@-webkit-keyframes hatch {
    0% {
        -webkit-transform: rotate(0deg) scaleY(0.6);
    }
    20% {
        -webkit-transform: rotate(-2deg) scaleY(1.05);
    }
    35% {
        -webkit-transform: rotate(2deg) scaleY(1);
    }
    50% {
        -webkit-transform: rotate(-2deg);
    }
    65% {
        -webkit-transform: rotate(1deg);
    }
    80% {
        -webkit-transform: rotate(-1deg);
    }
    100% {
        -webkit-transform: rotate(0deg);
    }
}


/*
==============================================
bounce
==============================================
*/


.bounce{
    animation-name: bounce;
    -webkit-animation-name: bounce;

    animation-duration: 1.6s;
    -webkit-animation-duration: 1.6s;

    animation-timing-function: ease;
    -webkit-animation-timing-function: ease;

    transform-origin: 50% 100%;
    -ms-transform-origin: 50% 100%;
    -webkit-transform-origin: 50% 100%; 
}

@keyframes bounce {
    0% {
        transform: translateY(0%) scaleY(0.6);
    }
    60%{
        transform: translateY(-100%) scaleY(1.1);
    }
    70%{
        transform: translateY(0%) scaleY(0.95) scaleX(1.05);
    }
    80%{
        transform: translateY(0%) scaleY(1.05) scaleX(1);
    }
    90%{
        transform: translateY(0%) scaleY(0.95) scaleX(1);
    }
    100%{
        transform: translateY(0%) scaleY(1) scaleX(1);
    }
}

@-webkit-keyframes bounce {
    0% {
        -webkit-transform: translateY(0%) scaleY(0.6);
    }
    60%{
        -webkit-transform: translateY(-100%) scaleY(1.1);
    }
    70%{
        -webkit-transform: translateY(0%) scaleY(0.95) scaleX(1.05);
    }
    80%{
        -webkit-transform: translateY(0%) scaleY(1.05) scaleX(1);
    }
    90%{
        -webkit-transform: translateY(0%) scaleY(0.95) scaleX(1);
    }
    100%{
        -webkit-transform: translateY(0%) scaleY(1) scaleX(1);
    }
}


/*
==============================================
pulse
==============================================
*/

.pulse{
    animation-name: pulse;
    -webkit-animation-name: pulse;

    animation-duration: 1.0s;
    -webkit-animation-duration: 1.0s;

    animation-iteration-count: infinite;
    -webkit-animation-iteration-count: infinite;
}

@keyframes pulse {
    0% {
        transform: scale(0.98);
        opacity: 0.9;
    }
    50% {
        transform: scale(1);
        opacity: 1;
    }
    100% {
        transform: scale(0.98);
        opacity: 0.9;
    }
}

@-webkit-keyframes pulse {
    0% {
        -webkit-transform: scale(0.98);
        opacity: 0.9;
    }
    50% {
        -webkit-transform: scale(1);
        opacity: 1;
    }
    100% {
        -webkit-transform: scale(0.98);
        opacity: 0.9;
    }
}



/*
==============================================
pulse
==============================================
*/

.blink{
    animation-name: blink;
    -webkit-animation-name: blink;

    animation-duration: 1.0s;
    -webkit-animation-duration: 1.0s;

    animation-iteration-count: infinite;
    -webkit-animation-iteration-count: infinite;
}

@keyframes blink {
    0% {
        opacity: 0.6;
    }
    50% {
        opacity: 1;
    }
    100% {
        opacity: 0.6;
    }
}

@-webkit-keyframes blink {
    0% {
        opacity: 0.6;
    }
    50% {
        opacity: 1;
    }
    100% {
        opacity: 0.6;
    }
}

/*
==============================================
floating
==============================================
*/

.floating{
    animation-name: floating;
    -webkit-animation-name: floating;

    animation-duration: 1.5s;
    -webkit-animation-duration: 1.5s;

    animation-iteration-count: infinite;
    -webkit-animation-iteration-count: infinite;
}

@keyframes floating {
    0% {
        transform: translateY(0%);
    }
    50% {
        transform: translateY(8%);
    }
    100% {
        transform: translateY(0%);
    }
}

@-webkit-keyframes floating {
    0% {
        -webkit-transform: translateY(0%);
    }
    50% {
        -webkit-transform: translateY(8%);
    }
    100% {
        -webkit-transform: translateY(0%);
    }
}

/*
==============================================
tossing
==============================================
*/

.tossing{
    animation-name: tossing;
    -webkit-animation-name: tossing;

    animation-duration: 2.5s;
    -webkit-animation-duration: 2.5s;

    animation-iteration-count: infinite;
    -webkit-animation-iteration-count: infinite;
}

@keyframes tossing {
    0% {
        transform: rotate(-0.5deg);
    }
    50% {
        transform: rotate(0.5deg);
    }
    100% {
        transform: rotate(-0.5deg);
    }
}

@-webkit-keyframes tossing {
    0% {
        -webkit-transform: rotate(-4deg);
    }
    50% {
        -webkit-transform: rotate(4deg);
    }
    100% {
        -webkit-transform: rotate(-4deg);
    }
}

/*
==============================================
pullUp
==============================================
*/

.pullUp{
    animation-name: pullUp;
    -webkit-animation-name: pullUp;

    animation-duration: 1.1s;
    -webkit-animation-duration: 1.1s;

    animation-timing-function: ease-out;
    -webkit-animation-timing-function: ease-out;

    transform-origin: 50% 100%;
    -ms-transform-origin: 50% 100%;
    -webkit-transform-origin: 50% 100%; 
}

@keyframes pullUp {
    0% {
        transform: scaleY(0.1);
    }
    40% {
        transform: scaleY(1.02);
    }
    60% {
        transform: scaleY(0.98);
    }
    80% {
        transform: scaleY(1.01);
    }
    100% {
        transform: scaleY(0.98);
    }
    80% {
        transform: scaleY(1.01);
    }
    100% {
        transform: scaleY(1);
    }
}

@-webkit-keyframes pullUp {
    0% {
        -webkit-transform: scaleY(0.1);
    }
    40% {
        -webkit-transform: scaleY(1.02);
    }
    60% {
        -webkit-transform: scaleY(0.98);
    }
    80% {
        -webkit-transform: scaleY(1.01);
    }
    100% {
        -webkit-transform: scaleY(0.98);
    }
    80% {
        -webkit-transform: scaleY(1.01);
    }
    100% {
        -webkit-transform: scaleY(1);
    }
}

/*
==============================================
pullDown
==============================================
*/

.pullDown{
    animation-name: pullDown;
    -webkit-animation-name: pullDown;

    animation-duration: 1.1s;
    -webkit-animation-duration: 1.1s;

    animation-timing-function: ease-out;
    -webkit-animation-timing-function: ease-out;

    transform-origin: 50% 0%;
    -ms-transform-origin: 50% 0%;
    -webkit-transform-origin: 50% 0%; 
}

@keyframes pullDown {
    0% {
        transform: scaleY(0.1);
    }
    40% {
        transform: scaleY(1.02);
    }
    60% {
        transform: scaleY(0.98);
    }
    80% {
        transform: scaleY(1.01);
    }
    100% {
        transform: scaleY(0.98);
    }
    80% {
        transform: scaleY(1.01);
    }
    100% {
        transform: scaleY(1);
    }
}

@-webkit-keyframes pullDown {
    0% {
        -webkit-transform: scaleY(0.1);
    }
    40% {
        -webkit-transform: scaleY(1.02);
    }
    60% {
        -webkit-transform: scaleY(0.98);
    }
    80% {
        -webkit-transform: scaleY(1.01);
    }
    100% {
        -webkit-transform: scaleY(0.98);
    }
    80% {
        -webkit-transform: scaleY(1.01);
    }
    100% {
        -webkit-transform: scaleY(1);
    }
}

/*
==============================================
stretchLeft
==============================================
*/

.stretchLeft{
    animation-name: stretchLeft;
    -webkit-animation-name: stretchLeft;

    animation-duration: 1.5s;
    -webkit-animation-duration: 1.5s;

    animation-timing-function: ease-out;
    -webkit-animation-timing-function: ease-out;

    transform-origin: 100% 0%;
    -ms-transform-origin: 100% 0%;
    -webkit-transform-origin: 100% 0%; 
}

@keyframes stretchLeft {
    0% {
        transform: scaleX(0.3);
    }
    40% {
        transform: scaleX(1.02);
    }
    60% {
        transform: scaleX(0.98);
    }
    80% {
        transform: scaleX(1.01);
    }
    100% {
        transform: scaleX(0.98);
    }
    80% {
        transform: scaleX(1.01);
    }
    100% {
        transform: scaleX(1);
    }
}

@-webkit-keyframes stretchLeft {
    0% {
        -webkit-transform: scaleX(0.3);
    }
    40% {
        -webkit-transform: scaleX(1.02);
    }
    60% {
        -webkit-transform: scaleX(0.98);
    }
    80% {
        -webkit-transform: scaleX(1.01);
    }
    100% {
        -webkit-transform: scaleX(0.98);
    }
    80% {
        -webkit-transform: scaleX(1.01);
    }
    100% {
        -webkit-transform: scaleX(1);
    }
}

/*
==============================================
stretchRight
==============================================
*/

.stretchRight{
    animation-name: stretchRight;
    -webkit-animation-name: stretchRight;

    animation-duration: 1.5s;
    -webkit-animation-duration: 1.5s;

    animation-timing-function: ease-out;
    -webkit-animation-timing-function: ease-out;

    transform-origin: 0% 0%;
    -ms-transform-origin: 0% 0%;
    -webkit-transform-origin: 0% 0%; 
}

@keyframes stretchRight {
    0% {
        transform: scaleX(0.3);
    }
    40% {
        transform: scaleX(1.02);
    }
    60% {
        transform: scaleX(0.98);
    }
    80% {
        transform: scaleX(1.01);
    }
    100% {
        transform: scaleX(0.98);
    }
    80% {
        transform: scaleX(1.01);
    }
    100% {
        transform: scaleX(1);
    }
}

@-webkit-keyframes stretchRight {
    0% {
        -webkit-transform: scaleX(0.3);
    }
    40% {
        -webkit-transform: scaleX(1.02);
    }
    60% {
        -webkit-transform: scaleX(0.98);
    }
    80% {
        -webkit-transform: scaleX(1.01);
    }
    100% {
        -webkit-transform: scaleX(0.98);
    }
    80% {
        -webkit-transform: scaleX(1.01);
    }
    100% {
        -webkit-transform: scaleX(1);
    }
}
@charset "utf-8";

/* ==================================================================
    common.css

=================================================================== */

@font-face {
  font-family: "YuGothic M";
  src: local(Yu Gothic Medium);
}

/* =================================
   ■ 共通指定
================================== */

/* --------------------------------
   □ 共通変数の定義
-------------------------------- */
:root {
    --text-color: #371F28;
    --link-color-black: #371F28;
    --link-color-blue: #0EB7FA;
    --link-color-blue-hover: #36A8D5;
    
    --bg-color-white: #fff;
}


/* --------------------------------
   □ font設定
-------------------------------- */
html{
    font-size:62.5%!important;
}

body{
    font-size:16px;
}
/* WINIE用 \*/
* html body{ font-size:100%; }
*:first-child+html body{ font-size:100%; }
/* */

table {
    font-size:inherit;
    font:100%;
}

select, input, textarea {
    font:99%;
}

li li,li p,li pre,li dt,li dd,dd li,dd p,dd pre,dd dt,dd dd {
  font-size:100%;
}

/* --------------------------------
   □ body
-------------------------------- */ 
body{
    font-family: 'Noto Sans JP', sans-serif;
    text-align: center;	/* IE用 */

    color: var(--text-color , #371F28);
    background:var(--bg-color-white , #fff);;

    -webkit-text-size-adjust: 100%;
}

body.fixed {
    width: 100%;
    height: 100%;
    position: fixed;
    overflow-y: scroll;
}

main{
    display:block;
}

img {
    max-width: 100%;
}

/* --------------------------------
   □ text
-------------------------------- */
p { 
    margin:0 0 0.8em 0;
    text-align:justify;
    text-justify:inter-ideograph;
}

p,table,ul,dl,ol,address{
    line-height:1.5;
}

p,table,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,figure,figcaption,address{
    box-sizing: border-box;
}


/* --------------------------------
   □ form
-------------------------------- */
input, select{
    box-sizing: border-box;
}

input.text{
    line-height:1.2;
}

input.text,
textarea,
select {
    border:1px solid #cfcfcf;
    padding:11px;
    border-radius:4px;
    box-sizing: border-box;
}

input.text:hover,
textarea:hover {
    border:1px solid #cfcfcf;
}

input.text:focus,
textarea:focus {
    border: 1px solid #371F28;
}

input.error,
textarea.error {
    border:1px solid #da3e42;
    background:#fff3f3;
}

input.error:hover,
textarea.error:hover {
    border:1px solid #C30;
}

input.submit{
    line-height:100%;
    padding-top:2px;
}

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

/* --------------------------------
   □ link
-------------------------------- */
/* 基本 */
a{
    box-sizing: border-box;
    transition: .3s
}

a,
a:link{
    color:var(--link-color-black , #371F28);
    text-decoration:none;
}

/* 訪問済 */
a:visited {
    /*  color:var(--link-color-blue , #0033cc); */
}

/* ロールオーバー */
a:hover{
    /*  color:var(--link-color-blue-hover , #245fbb); */
    /*  text-decoration:underline; */
    opacity: .7
}

/* =================================
   ■ レイアウト
================================== */
/* --------------------------------
   □ 大枠 
-------------------------------- */
header,
.contents,
footer{
    /* 16px基準 */
}

/* .area → .containerに変更 */
header .container,
.contents main > section,
.contents .chapter,
.contents .wide .container,
footer .container{
    max-width:1020px;
    margin: 0 auto;
    text-align: center;
    box-sizing:border-box;
}

.contents section.wide,
.contents .chapter.wide{
    width:100%;
    max-width: inherit;
}

/* --------------------------------
   □ サイト情報 (ヘッダー)
-------------------------------- */
header { 
    width: 100%;
    height: 72px;
    position: fixed;
    top: 0;
    left: 0;
    background: #FFF;
    overflow: hidden;
    z-index: 3;
}
header .container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: 1200px;
    margin: 0 auto;
    padding: 14px 40px;
}
    header .container:after,
    ul.navigation:after {
        content: none;
    }

header .logo {
    max-width: 96px;
    line-height: 1;
    font-size: 100%;
    margin: 0;
}
    header .logo a {
        display: flex;
        margin: 0;
    }
        header .logo a:hover {
            opacity: 0.7;
        }
    header .logo a img {
        max-width: 100%;
    }

header .float_btn {
    position: fixed;
    bottom: 10px;
    right: 55px;
    height: 215px;
    width: 252px;
    margin-bottom: 0;
    transition: 0.5s;
    opacity: 0;
}
header .float_btn .close{
    position: absolute;
    top: -10px;
    right: -5px;
    background: url("https://23788502.fs1.hubspotusercontent-na2.net/hubfs/23788502/images/close.png") 0 0 no-repeat;
    background-size: contain;
    width: 30px;
    height: 30px;
    content: "";
    z-index: 1;
    cursor: pointer;
}
    header.is-animation .float_btn {
        opacity: 1;
    }

header #globalNavigation {
    display: flex;
    flex-direction: column;
    justify-content: center;
}
#globalNavigation > ul.navigation {
    display: flex;
    align-items: center;
    font-weight: 700;
}
    #globalNavigation > ul.navigation li:not(:first-child) {
        margin-left: 15px;
    }
#globalNavigation > ul.navigation li a {
    display: block;
    font-size: 1.4rem;
}
    #globalNavigation > ul.navigation li a.link--btn {
        width: 150px;
    /*  height: 44px;  */
        padding: 11.5px 19px;
        border-radius: 22px;
        background: #a51c4b;
        color: #FFF;
        text-align: center;
    }

/* --------------------------------
   □ ページコンテンツ
-------------------------------- */
.contents{
    height:auto;
    margin-top: 72px;
}

    /* ◆ メニュー(サイド)
    -------------------------------- */
    .contents .sub{
        width:30%;
    }

    /* ◆ ページ内容情報(メイン)
    -------------------------------- */
    .contents .main{
        width:70%;
    }

    /* ◆ 汎用指定
    -------------------------------- */

    /* ◇ box
    -------------------------------- */	
    /* main直下のsection */
    .contents main > section,
    .contents main section.wide{
        padding: 70px 0;
    }

    /* ◇ title
    -------------------------------- */	

/* --------------------------------
   □ サイト情報(フッター)
-------------------------------- */
footer{
    clear:both;
}

    footer{
    }

    footer .cvArea{
        background: #A51C4B;
        padding: 67px 0;
    }

    footer .cvArea .container{
        display: flex;
        justify-content: space-between;
        align-items: center;
    }

    footer .cvArea .container p{
        width: 49%;
        text-align: center;
    }

    footer .cvArea .buttonStyle a{
        font-size: 2.0rem;
        font-weight: 700;
        letter-spacing: 0.01em;
        width: 100%;
        max-width: 416px;
        margin: 0 auto;
        padding: 25px 25px;
        border-radius: 40px;
        
        position: relative;
        box-sizing: border-box;
        display: block;
        color: #A51C4B;
        background: #F6E8ED;
        text-decoration: none;
        transition: all 300ms 0s ease;
        cursor: pointer;
        text-align: center;
        vertical-align: middle;
    }

    footer .cvArea .buttonStyle a:before{
        content: "";
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        
        right: 8%;
        display: inline-block;
        width: 15px;
        height: 23px;
        background: url(https://23788502.fs1.hubspotusercontent-na2.net/hubfs/23788502/images/arrow_right.svg) no-repeat right center;
        background-size: contain;
        z-index: 1;
        transition: all 300ms 0s ease;
    }

    footer .foot{
        padding: 40px 0;
        display: flex;
        justify-content: space-between;
        align-items: center;
    }
    footer .foot nav ul.navigation {
        display: flex;
        justify-content: flex-end;
    }
    footer .foot nav ul.navigation li{
        line-height: 1;
    }
    footer .foot nav ul.navigation li + li{
        position: relative;
        margin-left: 20px;
    }
    footer .foot nav ul.navigation li + li:before{
        position: absolute;
        content: "";
        top: 0;
        left: -10px;
        width: 1px;
        height: 100%;
        background: #333;
    }

    /* TOPへ戻る
    -------------------------------- */
    footer p.pagetop{
        display: none;
        position: fixed;
        z-index: 2;
        right: 0;
        bottom: 0;
        text-align:right;
        margin: 0;
    }

/* --------------------------------
   □ スマートフォン用の記述
-------------------------------- */
body .pc{
    display:block;
}
body .sp,
span.textized,
br.spOnly{
    display:none;
}

a.phone.noanchor{
    text-decoration:none;
    cursor:default;
}

/* SP以外(PC)
-------------------------------------------- */	
@media screen and (min-width: 768px)  {


}

/* タブレット用
-------------------------------------------- */
@media (max-width: 999px) and 
(min-width: 768px) {
    
    .contents main > section,
    .contents .chapter,
    .contents .wide .container,
    footer .container{
        font-size:100%;
        max-width: 96%;
        margin-left: auto;
        margin-right: auto;
    }
    

}

/* SP用
-------------------------------------------- */
@media only screen and
(max-width : 767px) {

    /* =================================
    ■ 共通指定
    ================================== */

    body {
        transform: none !important;
        min-width: auto;
    }

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

    body .pc{
        display: none !important;
    }
    body .sp{
        display:block;
    }

    span.textized{
        display:inline;
    }

    br.spOnly{
        display:inline-block;
    }

    br.pcOnly{
        display:none;
    }

    .txtimg{
        display:none;
    }

    input, select{
        font-size:16px;
    }

    /* --------------------------------
    □ 大枠 
    -------------------------------- */
    header .container{
        font-size:100%;
        width:auto;
        
    }
    .contents main > section,
    .contents .chapter,
    .contents .wide .container,
    footer .container{
        font-size:100%;
        width:auto;
        margin-left: 4vw;
        margin-right: 4vw;
    }

    .contents section.wide,
    .contents .chapter.wide{
        width:auto;
        margin-left: 0;
        margin-right: 0;
    }

    /* --------------------------------
    □ サイト情報 (ヘッダー)
    -------------------------------- */
    header{
        position:relative;
        height:auto;
    }

    header .container{
        position: fixed;
        z-index: 2;
        background: #fff;
        max-width: inherit;
        width:100%;
        height: 55px;
        top: 0;
        left: 0;
        padding: 0 4%;
    }
        
    header .container .information{
        display:flex;
        justify-content: space-between;
        align-items: center;
        width: 100%;
        height: 100%;
        box-sizing: border-box;
    }

    header .information .logo{
        display:flex;
        flex-grow: 1;
        align-items: center;
        margin: 0;
        max-width: 73px;
        height: auto;
    }
    header .information .menu{
        display: flex;
        align-items: center;
        justify-content: center;
        width: 24px;
        text-align: center;
    }
        header .information .menu > p{
            position:relative;
            z-index: 6;
            display:inline-block;
            width : 24px;
            height: 16px;
            margin: 0;
            text-align: center;
            cursor: pointer;
            transition: all .7s ease;
        }

            header .information .menu > p > span {
                display : block;
                position: absolute;
                left: 0;
                width: 24px;
                height: 2px ;
                background: #A51C4B;
                -webkit-transition: 0.5s ease-in-out;
                -moz-transition   : 0.5s ease-in-out;
                transition        : 0.5s ease-in-out;
            }
        
                header .information .menu > p > span:nth-child(1) {
                    top: 0px;
                }
                header .information .menu > p > span:nth-child(2) {
                    top: 7px;
                }
                header .information .menu > p > span:nth-child(3) {
                    top: 14px;
                }

                /* ナビ開いてる時のボタン */
                header .information .menu.open > p span {
                    background: #A51C4B;
                }
                header .information .menu.open > p span:nth-child(1) {
                    top : 7px;
                    -webkit-transform: rotate(315deg);
                    -moz-transform   : rotate(315deg);
                    transform        : rotate(315deg);
                }
                header .information .menu.open > p span:nth-child(2),
                header .information .menu.open > p span:nth-child(3) {
                    top: 7px;
                    -webkit-transform: rotate(-315deg);
                    -moz-transform   : rotate(-315deg);
                    transform        : rotate(-315deg);
                }

    header #globalNavigation{
        position: fixed;
        top  : 55px;
        left : 0;
        z-index : -1;
        color: #371F28;
        background: #fff;
        display: flex;
        align-items: center;
        justify-content: flex-start;
        flex-direction: column;
        text-align: center;
        width: 100%;
        height: 100vh;
        opacity: 0;
        visibility: hidden;
        transition: .6s ease;
        pointer-events: none;

        width: 100vw;
        height: calc(100vh - 55px);
    }
        
        header #globalNavigation a{
            pointer-events: none;
        }
        
        header #globalNavigation ul.navigation {
            display: flex;
            flex-wrap: wrap;
            align-items: center;
            gap : 8px 0;
            margin: 0 4%;
        }
        header #globalNavigation ul.navigation li {
            width: 100%;
        }
            #globalNavigation > ul.navigation li:not(:first-child) {
                margin-left: auto;
            }
        header #globalNavigation ul.navigation li a {
            display:inline-block;
            padding:10px;
            text-align:center;
        }

    header #globalNavigation.open {
        opacity: 100;
        visibility:visible;
        z-index : 2;
        pointer-events:visible;
    }
        header #globalNavigation.open a {
            pointer-events:visible;
        }

    header #globalNavigation ul.navigation li.buttonStyle.first-child{
        margin: 30px 0 10px
    }
    header #globalNavigation > ul.navigation li a.link--btn {
        width: 245px;
        margin: 0 auto;
        position: relative;
        padding: 17px 25px;
        border-radius: 27px;
    }
        header #globalNavigation > ul.navigation li a.link--btn span:after {
            content: "";
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            -webkit-transform: translateY(-50%);
            right: 8%;
            display: inline-block;
            width: 9px;
            height: 13px;
            background: url(https://23788502.fs1.hubspotusercontent-na2.net/hubfs/23788502/images/arrow_right_white.svg) no-repeat right center;
            background-size: contain;
            z-index: 1;
            transition: all 300ms 0s ease;
        }

    /* --------------------------------
    □ ページコンテンツ
    -------------------------------- */
    .contents{
        height:auto;
        margin-top: 55px;
    }

        /* ◇ box
        -------------------------------- */	
        /* main直下のsection */
        .contents main > section{

        }


        /* ◇ box
        -------------------------------- */	
        /* main直下のsection */
        .contents main > section,
        .contents main section.wide{
            padding: 40px 0;
        }
    
        .contents main > section + section{
            margin-top:0;
        }

        /* ◇ title
        -------------------------------- */	
        .contents main .title._lv1{
            font-size:1.6rem;
        }

        .contents main .title + *{
            margin-top: 3vw;
        }
        
        /* ◆ ページ内容情報(メイン)
        -------------------------------- */
        .contents .main,
        .contents .sub{
            float:none;
            width:auto;
        }

    /* --------------------------------
    □ サイト情報(フッター)
    -------------------------------- */
    footer{
    }

    footer .cvArea{
        padding: 42px 0;
    }


    footer .cvArea .buttonStyle a{
        font-size: 1.1rem;
        font-weight: 700;
        letter-spacing: 0.01em;
        width: 100%;
        max-width: 416px;
        padding: 11px 25px 11px 11px;
    }

    footer .cvArea .buttonStyle a:before{
        right: 8%;
        width: 9px;
        height: 13px;
    }

    footer .foot{
        padding: 18px 0;
        display: flex;
        justify-content: space-between;
        align-items: center;
    }
    footer .foot nav ul.navigation {
        display: flex;
        justify-content: flex-end;
    }
    footer .foot nav ul.navigation li{
        line-height: 1;
    }
    footer .foot nav ul.navigation li + li{
        position: relative;
        margin-left: 20px;
    }
    footer .foot nav ul.navigation li + li:before{
        position: absolute;
        content: "";
        top: 0;
        left: -10px;
        width: 1px;
        height: 100%;
        background: #333;
    }
    

    /* TOPへ戻る
    -------------------------------- */
    footer p.pagetop{
        width: 14vw;
    }
        footer p.pagetop img{
            width: 100%;
        }

}


@charset "utf-8";

/* ==================================================================
	index.css
	
=================================================================== */

/* --------------------------------
   □ 共通
-------------------------------- */
.contents .title {
    color: #371F28;
    font-weight: 700;
    text-align: center;
}

.contents .lv3 {
    font-size: 3.6rem;
    letter-spacing: 0.01em;
    line-height: 1.3;
    margin-bottom: 70px;
}
    .contents .lv3 .sml {
        font-size: 2.4rem;
        display: block;
        margin-bottom: 10px;
    }
        .contents .lv3 .sml em {
            font-size: 2.6rem;
            color: #A51C4B;
        }
    .contents .lv3 .mdl {
        font-size: 3.2rem;
    }

.contents .lv3._underline {
    font-size: 4.8rem;
    display: inline-block;
    position: relative;
    padding-bottom: 30px;
}
    .contents .lv3._underline:before {
        content: "";
        position: absolute;
        bottom: 0;
        left: 50%;
        transform: translateX(-50%);
        width: 131px;
        height: 4px;
        background: #a51c4b;
    }
    .contents .lv3._underline .sml {
        font-size: 2.8rem;
    }

.contents .lv4 {
    font-size: 2rem;
    margin-top: 0;
    margin-bottom: 20px;
    text-align: left;
}
.contents .lv4.text-center {
    text-align: center;
}

.contents p.text {
    line-height: 2;
}

.contents p.image {
    margin-bottom: 0;
}

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

    .contents .lv3 {
        font-size: 2.6rem;
        margin-bottom: 35px;
    }
        .contents .lv3 .sml {
            font-size: 1.5rem;
            margin-bottom: 10px;
        }
            .contents .lv3 .sml em {
                font-size: 1.6rem;
            }
        .contents .lv3 .mdl {
            font-size: 1.9rem;
        }

    .contents .lv3._underline {
        font-size: 2.8rem;
        padding-bottom: 10px;
    }
        .contents .lv3._underline:before {
            width: 131px;
            height: 4px;
        }
        .contents .lv3._underline .sml {
            font-size: 1.6rem;
        }

    .contents .lv4 {
        font-size: 2rem;
        margin-top: 0;
        margin-bottom: 20px;
        text-align: left;
    }
    .contents .lv4.text-center {
        text-align: center;
    }

    .contents p.text {
        line-height: 2;
    }

    .contents p.image {
        margin-bottom: 0;
    }
}


/* --------------------------------
   □ lead
-------------------------------- */ 
#lead {
    padding-top: 40px;
    padding-bottom: 0;
    text-align: left;
}
#lead .lv3 {
    color: #A51C4B;
    font-size: 2.0rem;
    margin-bottom: 15px;
    text-align: left;
}
#lead .text {
    font-size: 1.4rem;
    line-height: 1.5;
}

#lead .appeal{
    background-color: #16202E;
    padding: 33px 0 50px 0;
}

#lead .appeal{
    color: #fff;
}
#lead .appeal dt{
    text-align: center;
    font-size: 2.0rem;
    padding-bottom: 12px;
}
#lead .appeal dt .num{
    display: inline-block;
    padding: 0 4px;
    font-size: 5.3rem;
}
#lead .appeal dt span{
    display: inline-block;
    position: relative;
}

#lead .appeal dt span::before,
#lead .appeal dt span::after{
  content: "";
  display: inline-block;
  background: #fff;
  width: 1px;
  position: absolute;
}
#lead .appeal dt span::before{
  left: 0;
}
#lead .appeal .slider ul{
    display: flex;
    align-items: stretch;
    justify-content: center;
    gap:0 15px;
}



@media screen and (min-width: 768px){
  #lead .appeal dt span{
    padding: 0 30px;
  }
  #lead .appeal dt span::before,
  #lead .appeal dt span::after{
    height: 50px;
    bottom: 0px;
  }
  #lead .appeal dt span::before{
    transform: rotate(-30deg);
    left: 0;
  }
  #lead .appeal dt span::after{
    transform: rotate(30deg);
    right: 0;
  }
}
@media screen and (max-width: 767px){

#lead .appeal dt{
    font-size: 1.2rem;
    padding-bottom: 7px;
}
#lead .appeal dt .num{
    font-size: 2.8rem;
}
    
  #lead .appeal dt span{
    display: inline-block;
    padding: 0 20px;
  }
  #lead .appeal dt span::before,
  #lead .appeal dt span::after{
    height: 30px;
    bottom: 5px;
  }
  #lead .appeal dt span::before{
    transform: rotate(-20deg);
    left: 0;
  }
  #lead .appeal dt span::after{
    transform: rotate(20deg);
    right: 0;
  }

    #lead .appeal .slider ul{
        gap:0 8px;
    }
    #lead .appeal .slider ul li{
        min-width: 150px;
    }
}

/* --------------------------------
   □ issue
-------------------------------- */ 
#issue {
    position: relative;
}
    #issue:after {
        visibility:visible;
        content: "";
        position: absolute;
        bottom: -75px;
        left: 50%;
        transform: translateX(-50%);
        -webkit-transform: translateX(-50%);
        display: inline-block;
        width: 289px;
        height: 75px;
        background: url(https://23788502.fs1.hubspotusercontent-na2.net/hubfs/23788502/images/issue_bg.svg) no-repeat center;
        background-size: contain;
    }


@media only screen and
(max-width : 767px) {
    #issue:after {
        bottom: -35px;
        width: 289px;
        height: 35px;
    }
}

/* --------------------------------
   □ achieve
-------------------------------- */ 
#achieve {
    background-color: #FCF5F8;
    padding-top: 140px;
    padding-bottom: 70px;
}

#achieve .lv3 .sml {
    font-size: 2.2rem;
}
    #achieve .lv3 .sml em {
        font-size: 2.6rem;
        color: #A51C4B;
    }

#achieve .achieve-list {
    display: flex;
    justify-content: space-between
}
#achieve .achieve-list li {
    background-color: #fff;
    width: 32%;
    max-width: 320px;
    padding: 50px 38px;
    border-radius: 10px;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
    #achieve .achieve-list li:before {
        content: "";
        position: absolute;
        top: -10px;
        left: 20px;
        display: inline-block;
        width: 34px;
        height: 34px;
        background: url(https://23788502.fs1.hubspotusercontent-na2.net/hubfs/23788502/images/check.svg) no-repeat center;
        background-size: contain;
    }
#achieve .achieve-list li .text {
    line-height: 1.8;
    margin-bottom: 20px;
}
    #achieve .achieve-list li .text em {
        color: #A51C4B;
        font-size: 1.8rem;
        text-decoration: underline;
    }
#achieve .achieve-list li .image {
    text-align: center;
}


@media only screen and
(max-width : 767px) {
    
    #achieve {
        padding-top: 53px;
        padding-bottom: 40px;
    }

    #achieve .lv3 .sml {
        font-size: 1.6rem;
    }
        #achieve .lv3 .sml em {
            font-size: 1.6rem;
        }
    #achieve .lv3 .mdl {
        font-size: 2.0rem;
    }

    #achieve .achieve-list {
        display: block;
    }
    #achieve .achieve-list li {
        width: auto;
        max-width: inherit;
        
        padding: 40px 38px;
    }
        #achieve .achieve-list li:before {
            top: -10px;
            left: -6px;
        }
    
    #achieve .achieve-list li + li{
        margin-top: 32px;
    }
    
    #achieve .achieve-list li .text {
        margin-bottom: 20px;
    }
        #achieve .achieve-list li .text em {
            font-size: 1.8rem;
        }
    
}


/* --------------------------------
   □ service
-------------------------------- */ 
#service {
    background-color: #F6F6F6;
    padding-bottom: 100px;
}

.iframe-wrapper {
    position: relative;
    /*
    padding-bottom: 56.25%;
    */
    overflow: hidden;
    max-width: 796px;
    margin: 45px auto;
}
    .iframe-wrapper iframe {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        border: none;
    }

#service .text + .image {
    margin-top: 60px;
}

@media only screen and
(max-width : 767px) {
    
    #service {
        margin-top: 0;
        padding-top: 40px;
        padding-bottom: 40px;
    }

    #service .text + .image {
        margin-top: 26px;
    }
    
}


/* --------------------------------
   □ case
-------------------------------- */ 
#case {
    background-color: #FCF5F8;
    padding-bottom: 100px;
}

.case-item {
    padding: 25px 20px 40px 35px;
    background: #FFF;
    border-radius: 5px;
    text-align: left;
}
    .case-item:not(:first-child) {
        margin-top: 40px
    }

.case-item .cat {
    display: inline-block;
    color: #fff;
    font-size: 1.2rem;
    font-weight: 700;
    background-color: #3F3D56;
    padding: 10px;
    border-radius: 5px;
    margin-bottom: 15px;
}
.case-item .lv4 {
    font-size: 2.4rem;
    color: #371F28;
    margin-bottom: 20px;
}
    .case-item .lv4 em {
        color: #A51C4B;
    }

.case-box dl {
    display: flex;
    align-items: center;
}
    .case-box dl + dl {
        padding-top: 15px;
    }
    .case-box dl dt {
        display: flex;
        justify-content: center;
        align-items: center;
        font-size: 2rem;
        font-weight: 700;
        color: #a51c4b;
        width: 126px;
        height: 88px;
        border-radius: 5px;
        background: #ebd9de;
    }
        .case-box dl.effect dt {
            background: #a51c4b;
            color: #FFF
        }
    .case-box dl dd {
        width: calc( 100% - 150px );
        padding-left: 24px;
    }
        .case-box dl.effect dd {
            font-weight: 700;
        }
    .case-box dl dd li {
        line-height: 2;
        padding-left: 1em;
        text-indent: -1em;
    }

@media only screen and
(max-width : 767px) {
    
    #case {
        padding-bottom: 40px;
    }

    .case-item {
        padding: 25px 16px 30px 16px;
    }
        .case-item:not(:first-child) {
            margin-top: 27px
        }

    .case-item .cat {
        font-size: 1.0rem;
        padding: 4px 10px;
        margin-bottom: 15px;
    }
    .case-item .lv4 {
        font-size: 2.0rem;
    }

    .case-box dl {
        display: block;
    }
        .case-box dl + dl {
            padding-top: 15px;
        }
        .case-box dl dt {
            display: block;
            font-size: 1.4rem;
            width: 100%;
            padding: 10px;
            height: auto;
            text-align: center;
        }
            .case-box dl.effect dt {
                background: #a51c4b;
                color: #FFF
            }
        .case-box dl dd {
            padding: 19px 0;
            width: auto;
        }

}


/* --------------------------------
   □ merit
-------------------------------- */ 
.merit-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
    .merit-item:not(:first-child) {
        margin-top: 50px
    }
.merit-item .txtArea {
    max-width: 712px;
}
    .merit-item .txtArea .title {
        display: flex;
        justify-content: start;
        align-items: center;
        font-size: 2.4rem;
        line-height: 1.5;
    }
    .merit-item .txtArea .title .image.point {
        margin-right: 20px;
    }
    .merit-item .txtArea .text {
        max-width: 655px;
    }


@media only screen and
(max-width : 767px) {
    
    .merit-item {
        display: block;
    }
        .merit-item:not(:first-child) {
            margin-top: 50px
        }
    .merit-item .txtArea {
        max-width: inherit;
    }
        .merit-item .txtArea .title {
            display: block;
            font-size: 2.0rem;
        }
        .merit-item .txtArea .title .image.point {
            display: block;
            margin: 0 0 10px 0;
            text-align: center;
        }
        .merit-item .txtArea .text {
            max-width: inherit;
        }
        .merit-item .image {
            text-align: center;
        }

}

/* --------------------------------
   □ price
-------------------------------- */ 
#price {
    background-color: #F6F6F6;
    padding-bottom: 100px;
}
#price .lv3 {
    margin-bottom: 50px;
}
#price .text {
    font-size: 1.8rem;
    font-weight: 700;
    max-width: 603px;
    margin: 0 auto 30px;
}

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

    #price {
        padding-bottom: 40px;
    }
    #price .lv3 {
        margin-bottom: 50px;
    }
    #price .text {
        font-size: 1.4rem;
        font-weight: 700;
        max-width: inherit;
        margin: 0 auto 30px;
    }
}
    
/* --------------------------------
   □ step
-------------------------------- */ 


/* --------------------------------
   □ faq
-------------------------------- */ 
#faq {
	background-color: #FCF5F8;
}
#faq ul.qa li:not(:first-child) {
    margin-top: 20px
}
#faq ul.qa li dl {
    background-color: #fff;
    padding: 25px 20px 10px;
    text-align: left;
}
#faq ul.qa li dl dt {
	padding: 5px 40px;
	position:relative;
    font-weight: 700;
    margin-bottom: 15px;
	cursor: pointer;
}
    #faq ul.qa li dl dt::before {
        content:"Q";
        color: #fff;
        background: #A51C4B;
        padding: 0;
        width: 32px;
        height: 32px;
        line-height: 30px;
        text-align: center;
        display: inline-block;
        border-radius: 50%;
        position: absolute;
        left: 0;
        top: 50%;
        transform: translateY(-50%);
    }
        #faq ul.qa li dl dt span::before,
        #faq ul.qa li dl dt span::after {
            display: block;
            content: "";
            position: absolute;
            width: 16px;
            height: 3px;
            transform: rotate(90deg);
            background: #000;
            transition: all .3s ease-in-out;
            right: 0;
            top: 50%;
            transform: translateY(-50%);
        }
        #faq ul.qa li dl dt span::after {
            transform: translateY(-50%) rotate(90deg);
        }
        #faq ul.qa li dl dt.open span::after {
            transform: translateY(-50%) rotate(0);
        }

#faq ul.qa li dl dd {
    display: none;
    padding: 5px 40px;
    position: relative;
    margin-bottom: 20px;
}
    #faq ul.qa li dl dd::before {
        content: "A";
        color: #fff;
        background: #87787C;
        padding: 0;
        width: 32px;
        height: 32px;
        line-height: 30px;
        text-align: center;
        display: inline-block;
        border-radius: 50%;
        position: absolute;
        left: 0;
        top: 50%;
        transform: translateY(-50%);
        margin: 0;
        font-weight: 700;
    }



@media only screen and
(max-width : 767px) {
    #faq ul.qa li dl dt::before {
        top: 0%;
        transform: translateY(0%);
    }

    #faq ul.qa li dl dd::before {
        top: 0%;
        transform: translateY(0%);
    }
    
    #faq ul.qa li dl dt span::before,
    #faq ul.qa li dl dt span::after {
        top: 18px;
    }
    
}

/* --------------------------------
   □ security
-------------------------------- */ 
#security .image{
    margin-bottom: 35px;
}

#security .lv4{
    margin-bottom: 45px;
}

#security .securityList{
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
    gap:24px;
    max-width: 920px;
    margin: 0 auto;
}
#security .securityList li{
    width: calc(50% - 24px);
    text-align: left;
    font-size: 1.8rem;
    font-weight: 700;
    padding: 4px 0 4px 12px;
    border-left:6px solid #A51C4B;
}

@media only screen and
(max-width : 767px) {
    #security .image{
        margin-bottom: 15px;
    }

    #security .lv4{
        margin-bottom: 54px;
    }

    #security .securityList{
        display: block;
    }
    #security .securityList li{
        width: auto;
        font-size: 1.4rem;
    padding: 4px 0 4px 6px;
    }
    #security .securityList li + li{
        margin-top: 16px;
    }

}


/* --------------------------------
   □ policy
-------------------------------- */ 
#policy p.text{
    text-align: center;
    font-weight: 700;
    font-size: 2.4rem;
}
#policy p.text a{
    text-decoration: underline;
    color: #0404FF;
}

@media only screen and
(max-width : 767px) {
	
#policy p.text{
    text-align: left;
    font-size: 1.6rem;
}

}
@charset "utf-8";

/* ==================================================================
	mainvisual用のCSS
=================================================================== */

/* =================================
   ■ メインビジュアル
================================== */


.accentBox {
    position: relative;
    height: 639px;
    margin: 0;
    overflow: hidden;
    background: linear-gradient(-14deg, #ccc 0%, #ccc 40%, #f6f6f6 40%, #f6f6f6 100%);
}

.mv_inner {
    position: relative;
    width: 1020px;
    margin: 0 auto;
    padding: 55px 0 66px;
}
    .mv_inner .mv_top_flex {
        display: flex;
    }

.mv_top {
    max-width: 507px;
    text-align: left;
}
    .mv_top-text01{
        font-weight: 700;
        font-size: 2.0rem;
        color: #3F3D56;
    }

    .mv_top-text02 {
        margin: 20px 0 40px;
        font-size: 4.5rem;
        font-weight: 700;
        color: #371F28;
    }

    .mv_top-text03{
        font-size: 2.1rem;
        font-weight: 700;
        color: #371F28;
        margin-top: 25px;
    }

    .mv_top-text04 ul{
        display: flex;
        justify-content: center;
        align-items: stretch;
        column-gap:11px; 
    }
    .mv_top-text04 ul li{
        font-size: 1.2rem;
        font-weight: 700;
        color: #3F3D56;
    }
    .mv_top-text04 ul li + li{
        padding-left: 11px;
        border-left:1px solid #3F3D56;
    }

    .mv_top-text05{
        font-size: 1.5rem;
        font-weight: 700;
        color: #A51C4B;
        letter-spacing: 0.05em;
        line-height: 1.3;

    }

    .mv_top-box {
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin-bottom: 20px;
    }
    .mv_top._left .mv_top-logo {
        margin-right: 10px
    }
    .mv_top._right .mv_top-logo02 {
        text-align: right;
        margin-right: 30px;
    }
    .mv_top._right .mv_top-box {
        max-width: 354px;
        margin: 40px auto 20px;
    }

.mv_bottom {
    padding: 0;
    max-width: 602px;
    position: relative;
}
    .mv_bottom-text04 {
        position: relative;
        z-index: 2;
        width: 740px
    }
    .mv_bottom-text04>img {
        width: 100%
    }
    .mv_bottom-btns.pc {
        position: relative;
        z-index: 2;
        display: flex;
        justify-content: space-between;
    }
    .mv_bottom-btn {
        display: block;
        text-decoration: none
    }

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

/* =================================
   ■ メインビジュアル
================================== */
.accentBox {
    height: auto;
}

.mv_inner {
    width: 100%;
    padding: 0;
}
.mv_inner .mv_top_flex {
    flex-direction: column;
    padding-left: 6%;
    padding-right: 6%;
}
.mv_top._left {
    padding: 30px 0;
}
.mv_top .mv_top-box {
    margin-bottom: 0;
    justify-content: flex-start;
}
.mv_top .mv_top-text01 {
    width: 70vw;
}
.mv_top .mv_top-text02 {
    margin: 5px 0 10px;
}
.mv_top._left .mv_top-logo {
    margin-right: 10px;
    width: 90px;
}

.mv_top._middle .mv_top-logo02 {
    width: 70px;
    text-align: left;
    margin-right: 15px;
}
.mv_top._middle .mv_top-box {
    align-items: flex-start;
    width: auto;
    margin-bottom: 10px;
}
.mv_top._middle .mv_top-text05 {
    width: calc( 100% - 85px);
    font-size: 1.1rem;
}
.mv_top._middle .mv_top-logo03 {
    width: 64px;
}
.mv_top._middle .mv_top-image {
    width: calc( 100% - 64px)
}

.mv_top-text01{
    font-size: 1.2rem;
}

.mv_top-text02 {
    font-size: 3.0rem;
}

.mv_top-text03{
    font-size: 1.4rem;
    margin-top: 0;
}

.mv_top-text04 ul li{
    font-size: 1.1rem;
    line-height: 1.2;
    color: #fff;
    font-weight: 400;
    text-align: left;
    border-color: #fff;
}
    .mv_top-text04 ul li + li{
        border-color: #fff;
    }


.mv_bottom .mv_top-text04.sp {
    background-color: #A51C4B;
    padding: 4%;
}





}
@charset "utf-8";

/* ==================================================================
	useful.css
	
=================================================================== */

/* --------------------------------
   □ usefulList
-------------------------------- */
#usefulList{
    max-width: 1280px;
    margin: 0 auto;
    padding-bottom: 132px;
}

#usefulList .visual{
    margin-bottom: 80px;
}

#usefulList .visual img{
    width: 100%;
    height: auto;
}

#usefulList section{
    padding: 0;
}

#usefulList section + section{
    margin-top: 70px;
}

#usefulList h3{
    position: relative;
    font-size: 3.2rem;
    text-align: left;
    padding: 27px 0 0 0;
    margin-bottom: 30px;
    letter-spacing: 0.13em;
}
#usefulList h3:before{
    position: absolute;
    content: "";
    top: 0;
    left: 0;
    width: 90px;
    height: 6px;
    background: #A51C4B;
    border-radius: 6px;
}

#usefulList section ul.list{
    display: flex;
    align-items: stretch;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap:14px;
}
#usefulList section ul.list > li{
    width: calc((100% / 3) - 14px);
}
#usefulList section ul.list > li a{
    display: block;
    height: 100%;
    border-radius: 8px;
    border: 1px solid #DEDEDE;
}
#usefulList section ul.list > li a figure > .image{
    width: 100%;
    height: 184px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #F6F6F6;
    border-radius: 8px 8px 0 0;
}
#usefulList section ul.list > li a figure > .image img{
    max-width: 100%;
    max-height: 100%;
    object-fit: cover;
}
#usefulList section ul.list > li a figure figcaption{
    padding: 20px 24px;
    text-align: left;
}
#usefulList section ul.list > li a figure figcaption dt{
    font-size: 1.6rem;
    font-weight: 700;
    margin-bottom: 14px;
}
#usefulList section ul.list > li a figure figcaption dd p{
    font-size: 1.4rem;
    line-height: 1.4;
}
#usefulList section ul.list > li a figure figcaption dd p.buttonStyle{
    font-size: 1.4rem;
    font-weight: 700;
    color: #A51C4B;
    border:2px solid #A51C4B;
    border-radius: 80px;
    padding: 12px 20px;
    background: url("../images/arrow_right.svg") 90% 50% no-repeat;
    background-size: auto 12px;
}


#usefulList section ul.list + *{
    margin-top: 40px;
}
#usefulList section .more{
    text-align: center;
}
#usefulList section .more a{
    text-decoration: underline;
    font-size: 2.0rem;
    font-weight: 700;
}

#usefulList .blog-listing--card.blog-listing--3-col{
    align-items: stretch;
}

#usefulList .blog-listing__post{
    border-radius: 8px;
    border: 1px solid #DEDEDE;
}

#usefulList .blog-listing__post-image-wrapper{
    width: 100%;
    height: 184px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #F6F6F6;
    border-radius: 8px 8px 0 0;
    overflow: hidden;
}

#usefulList .blog-listing__post-image-wrapper img{
    max-width: 100%;
    max-height: 100%;
    object-fit: cover;
}
#usefulList .blog-listing__post-content{
    padding: 20px 24px;
    text-align: left;
}

#usefulList .blog-listing__post-title{
    font-size: 1.6rem;
    font-weight: 700;
    margin-bottom: 14px;
}

#usefulList .blog-listing__post-summary{
    font-size: 1.4rem;
    line-height: 1.4;
}
#usefulList .blog-listing__post-button-wrapper a{
    display: block;
    font-size: 1.4rem;
    font-weight: 700;
    color: #A51C4B;
    border:2px solid #A51C4B;
    border-radius: 80px;
    padding: 12px 20px;
    background: url("../images/arrow_right.svg") 90% 50% no-repeat;
    background-size: auto 12px;
}



@media only screen and
(max-width : 767px) {
    
    #usefulList{
        padding-left: 15px;
        padding-right: 15px;
        padding-bottom: 43px;
    }

    #usefulList .visual{
        margin-left: -15px;
        margin-right: -15px;
        margin-bottom: 26px;
    }

    #usefulList section{
        padding: 0;
    }

    #usefulList section + section{
        margin-top: 70px;
    }

    #usefulList h3{
        font-size: 2.0rem;
        padding: 18px 0 0 0;
        margin-bottom: 18px;
    }
    #usefulList h3:before{
        width: 79px;
        height: 6px;
    }

    #usefulList section ul.list{
        display: block;
        border-top: 1px solid #DEDEDE;
    }
    #usefulList section ul.list > li{
        width: auto;
    }
    #usefulList section ul.list > li a{
        display: block;
        padding: 24px 0;
        border-radius: 0;
        border: 0;
        border-bottom: 1px solid #DEDEDE;
    }
    
    #usefulList section ul.list > li a figure{
        display: flex;
        justify-content: space-between;
        align-items: stretch;
    }
    
    #usefulList section ul.list > li a figure > .image{
        width: 37.86vw;
        height: auto;
        min-height: 78px;
        display: flex;
        align-items: center;
        justify-content: center;
        background: #F6F6F6;
        border-radius: 8px 8px 0 0;
    }
    #usefulList section ul.list > li a figure > .image img{
        max-width: 100%;
        max-height: 100%;
        object-fit: cover;
    }
    #usefulList section ul.list > li a figure figcaption{
        padding: 6px 11px;
        flex-grow: 1;
    }
    #usefulList section ul.list > li a figure figcaption dt{
        font-size: 1.6rem;
        font-weight: 700;
        margin-bottom: 0;
    }
    #usefulList section ul.list > li a figure figcaption dd{
        display: none;
    }

    #usefulList section ul.list + *{
        margin-top: 30px;
    }
    
    #usefulList section .more a{
        font-size: 1.7rem;
    }
    
    #usefulList .blog-listing--card.blog-listing--3-col{
        display: block;
        border-top: 1px solid #DEDEDE;
    }

    #usefulList .blog-listing__post{
        margin-bottom: 0;
        padding: 24px 0;
        border-radius: 0;
        border: 0;
        border-bottom: 1px solid #DEDEDE;
        
        display: flex;
        flex-direction: row;
        justify-content: space-between;
        align-items: stretch;
    }

    #usefulList .blog-listing__post-image-wrapper{
        width: 37.86vw;
        height: auto;
        min-height: 78px;
        display: flex;
        align-items: center;
        justify-content: center;
        background: #F6F6F6;
        border-radius: 8px 8px 0 0;
        flex-shrink: 0;
    }

    #usefulList .blog-listing__post-image-wrapper img{
        max-width: 100%;
        max-height: 80%;
        object-fit: cover;
    }
    #usefulList .blog-listing__post-content{
        padding: 6px 11px;
        flex-grow: 1;
    }

    #usefulList .blog-listing__header {
        margin-bottom: 0;
        height: 100%;
        display: flex;
        align-items: center;
    }
    
    #usefulList .blog-listing__post-title{
        font-size: 1.6rem;
        font-weight: 700;
        margin-bottom: 0;
    }

    #usefulList .blog-listing__post-summary{
        display: none;
    }
    #usefulList .blog-listing__post-button-wrapper{
        display: none;
    }
    
    

}

/* --------------------------------
   □ usefulDetails
-------------------------------- */
#usefulDetails a{
  text-decoration:underline;
  color: blue;
}

#usefulDetails .chapter{
    text-align: left;
    padding-top: 97px;
    padding-bottom: 97px;
}
#usefulDetails h1{
    font-size: 2.4rem;
    margin-bottom: 44px;
}

#usefulDetails .blog-post__body{

}
#usefulDetails .blog-post__body h2{
    font-size: 2.2rem;
    padding-bottom: 9px;
    margin-bottom: 34px;
    border-bottom: 1px solid #ccc;
}
#usefulDetails .blog-post__body h2 > span{
    font-size: 2.2rem!important;
}
#usefulDetails .blog-post__body * + h2{
    margin-top: 55px;
}

#usefulDetails .blog-post__body h3{
    font-size: 2.0rem;
    margin-bottom: 24px;
}
#usefulDetails .blog-post__body h3 > span{
    font-size: 2.0rem!important;
}
#usefulDetails .blog-post__body * + h3{
    margin-top: 35px;
}

#usefulDetails .blog-post__body p{
    line-height: 1.8;
    margin-bottom: 0;
}
#usefulDetails .blog-post__body p + p,
#usefulDetails .blog-post__body ＊ + p{
    margin-top: 1em;
}

#usefulDetails .blog-post__body ul{
    list-style: disc;
    margin-left: 2em;
    margin-bottom: 24px;
}

#usefulDetails .blog-post__body ul li ul li a{
    font-size: 100%!important;
}

#usefulDetails .blog-post__body * + ul{
    margin-top: 1em;
}

#usefulDetails .blog-post__tags{
    display: none;
}

#usefulDetails div{
    margin-top: 35px;
    margin-bottom: 35px;
}

#usefulDetails .blog-post-section{
    margin: 0;
}
#usefulDetails .blog-post-section + .blog-post-section{
    margin-top: 35px;
}

#usefulDetails div.index{
    background: #F7F7F7;
    padding: 18px 24px;
}

#usefulDetails .hs_cos_wrapper,
#usefulDetails .hs-embed-wrapper{
    max-width: 100%!important;
    width: 800px!important;
}

#usefulDetails div.input {
    margin-bottom: 5px;
    margin-top: 5px;
}

#usefulDetails input.hs-button{
    display: inline-block;
    border: 0;
    background: #A51C4B;
    font-size: 1.5rem;
    color: #fff;
    border-radius: 80px;
    padding: 20px;
    width: 300px;
    max-width: 100%;
    margin: 0 auto;
    cursor: pointer;
}

#usefulDetails ul.hs-error-msgs{
    margin: 0 0 10px 0;
    padding: 0;
}

@media (min-width: 768px){
    .dnd_area-row-0-vertical-alignment > .row-fluid {
        justify-content: center;
    }
}


#usefulDetails #hs_cos_wrapper_related_posts{
    margin-top: 120px;
}

#usefulDetails .blog-listing__heading{
    text-align: center;
    margin-bottom: 30px;
}


#usefulDetails .blog-listing--card{
    align-items: stretch;
}

#usefulDetails .blog-listing__post{
}

#usefulDetails .blog-listing__post-image-wrapper{
    width: 100%;
    height: 184px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #F6F6F6;
    border-radius: 8px;
    border: 1px solid #DEDEDE;
    overflow: hidden;
}

#usefulDetails .blog-listing__post-image-wrapper img{
    max-width: 100%;
    max-height: 100%;
    object-fit: cover;
}
#usefulDetails .blog-listing__post-content{
    margin: 0;
    padding: 17px 4px;
    text-align: left;
}

#usefulDetails .blog-listing__header{
    margin: 0;
}

#usefulDetails .blog-listing__post-title{
    font-size: 1.6rem;
    font-weight: 700;
    margin-bottom: 14px;
}

#usefulDetails .blog-listing__post-summary{
    margin: 0;
    font-size: 1.4rem;
    line-height: 1.4;
}
#usefulDetails .blog-listing__post-button-wrapper a{
    display: block;
    font-size: 1.4rem;
    font-weight: 700;
    color: #A51C4B;
    border:2px solid #A51C4B;
    border-radius: 80px;
    padding: 12px 20px;
    background: url("../images/arrow_right.svg") 90% 50% no-repeat;
    background-size: auto 12px;
}



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

    #usefulDetails .blog-listing--card{
        display: block;
    }

    #usefulDetails .blog-listing__post:first-of-type{
        border-top: 1px solid #DEDEDE;
    }
    
    #usefulDetails .blog-listing__post{
        margin-bottom: 0;
        padding: 24px 0;
        border-radius: 0;
        border: 0;
        border-bottom: 1px solid #DEDEDE;
        
        display: flex;
        flex-direction: row;
        justify-content: space-between;
        align-items: stretch;
    }

    #usefulDetails .blog-listing__post-image-wrapper{
        width: 37.86vw;
        height: auto;
        min-height: 78px;
        display: flex;
        align-items: center;
        justify-content: center;
        background: #F6F6F6;
        border-radius: 8px 8px 0 0;
        flex-shrink: 0;
    }

    #usefulDetails .blog-listing__post-image-wrapper img{
        max-width: 100%;
        max-height: 80%;
        object-fit: cover;
    }
    #usefulDetails .blog-listing__post-content{
        padding: 6px 11px;
        flex-grow: 1;
    }

    #usefulDetails .blog-listing__header {
        margin-bottom: 0;
        height: 100%;
        display: flex;
        align-items: center;
    }
    
    #usefulDetails .blog-listing__post-title{
        font-size: 1.6rem;
        font-weight: 700;
        margin-bottom: 0;
    }

    #usefulDetails .blog-listing__post-summary{
        display: none;
    }
    #usefulDetails .blog-listing__post-button-wrapper{
        display: none;
    }
    
    

}
@charset "utf-8";

/* --------------------------------
   □ フォーム専用
-------------------------------- */

body.form{
    background: #e0e0e0;
}
body.form header{
    position: relative;
    padding: 20px 0;
    background: #e0e0e0;
}
body.form header .container{
    display: block;
    padding: 0;
    text-align: center;
}
body.form header .container .logo{
    margin: 0 auto;
}

body.form header h1{
    text-align: center;
}

body.form #globalNavigation{
    display: none;
}
body.form .float_btn{
    display: none;
}
body.form .menu{
    display: none!important;
}

body.form .contents{
    margin: 0 auto;
}
body.form .formLayout{
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    margin: 0 auto;
    width: 96%;
    max-width: 925px;
    background: #fff;
    padding: 45px 30px 50px 30px;
    box-sizing: border-box;
}
body.form .formLayout .row{
    width: 48%;
    text-align: left;
}

body.form .formLayout h2{
    font-size: 3.2rem;
    color: #A61C4B;
    margin-bottom: 46px;
}

body.form .formLayout p.lead{
    margin-bottom: 22px;
}

body.form .formLayout .document h3{
    font-size: 1.7rem;
    margin-bottom: 25px;
}

body.form .formLayout .document p.text{
    font-size: 1.5rem;
    margin-bottom: 20px;
}
body.form .formLayout .document p.image{
    margin-bottom: 23px;
}
body.form .formLayout .document dl.know dt{
    font-weight: 700;
    font-size: 1.5rem;
    color: #A61C4B;
    margin-bottom: 12px;
}
body.form .formLayout .document dl.know dd{
    font-size: 1.5rem;
}


body.form .formLayout .document + .document{
    margin-top: 77px;
}


body.form footer{
    padding: 34px 0;
}

body.form footer .cvArea,
body.form footer .foot{
    display: none;
}

body.form footer p.copy{
    text-align: center;
    font-size: 1.2rem;
}

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

    body.form header{
        padding: 14px 0;
    }

    body.form header .container{
        position: relative;
        padding: 0;
        background: #e0e0e0;

    }
    body.form header .container .information{
        position: relative;
        padding: 0;
        background: #e0e0e0;

    }

    body.form .contents{
        margin: 0 auto;
    }
    body.form .formLayout{
        display: block;
        width: 96%;
        padding: 34px 18px;
    }
    body.form .formLayout .row{
        width: auto;
        text-align: left;
    }

    body.form .formLayout h2{
        font-size: 2.4rem;
        margin-bottom: 41px;
    }

    body.form .formLayout p.lead{
        margin-bottom: 22px;
    }

    body.form .formLayout .document h3{
        font-size: 1.6rem;
        margin-bottom: 25px;
    }

    body.form .formLayout .document p.text{
        font-size: 1.4rem;
        margin-bottom: 20px;
    }
    body.form .formLayout .document p.image{
        margin-bottom: 20px;
    }
    body.form .formLayout .document dl.know dt{
        font-size: 1.4rem;
        margin-bottom: 10px;
    }
    body.form .formLayout .document dl.know dd{
        font-size: 1.4rem;
    }


    body.form .formLayout .document + .document{
        margin-top: 60px;
    }


    body.form footer{
        padding: 30px 0;
    }

    body.form footer p.copy{
        text-align: center;
        font-size: 1.2rem;
    }

    

}

/* Objects */

/* Content wrappers for blog post and system templates */

.content-wrapper {
  padding: 0 20px;
  margin: 0 auto;
}

/* Drag and drop layout styles */

.dnd-section > .row-fluid {
  margin: 0 auto;
}

@media (max-width: 767px) {
  .dnd-section .dnd-column {
    padding: 0;
  }
}

/* Elements */

body {
  overflow-wrap: break-word;
}
/* Paragraphs */
/* Primary button */

button,
.button,
.hs-button {
  position: relative;
  display: inline-flex;
  align-items: center;
  cursor: pointer;
  text-align: center;
  transition: color 0.15s linear;
  white-space: normal;
}

/* Simple button */

.button.button--simple {
  position: relative;
  padding: 0;
  border: none;
  border-radius: 0;
  background-color: transparent;
}

.button.button--simple:hover,
.button.button--simple:focus {
  border: none;
  background-color: transparent;
}

/* Disabled button */

button:disabled,
.button:disabled,
.hs-button:disabled {
  border-color: #f1f1f1;
  background-color: #f1f1f1;
  pointer-events: none;
}

button:disabled,
.button:disabled,
.button.button--secondary:disabled,
.button.button--simple:disabled {
  color: #d0d0d0;
}

/* No button */

.no-button,
.no-button:hover,
.no-button:focus,
.no-button:active {
  padding: 0;
  border: none;
  border-radius: 0;
  margin-bottom: 0;
  background: none;
  color: initial;
  font-family: inherit;
  font-size: inherit;
  font-style: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  line-height: inherit;
  text-align: left;
  text-decoration: none;
  transition: none;
}

/* Tooltip styles for copy to clipboard */

.hs-tooltip {
  position: absolute;
  bottom: calc(100% + 7px);
  left: 50%;
  display: none;
  height: auto;
  width: auto;
  padding: 5px 10px;
  border-radius: 3px;
  background-color: #494a52;
  color: #fff;
  font-size: 14px;
  font-weight: 400;
  opacity: 0.8;
  transform: translateX(-50%);
}
.hs-tooltip:after {
  position: absolute;
  top: 100%;
  left: 50%;
  height: 0;
  width: 0;
  border-top: 5px solid #494a52;
  border-right: 5px solid transparent;
  border-left: 5px solid transparent;
  content: '';
  transform: translateX(-50%);
}
.hs-tooltip__failure,
.hs-tooltip__success {
  display: none;
  min-width: -webkit-max-content;
  min-width: -moz-max-content;
  min-width: max-content;
}
.hs-visible {
  display: block;
}

/* Button icons */

.button .button__icon svg {
  display: block;
  height: 1.25rem;
  margin-right: 1rem;
  fill: inherit;
}

@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .button .button__icon svg {
    width: 1.25rem;
  }
}

.button--icon-right .button__icon {
  order: 1;
}

.button--icon-right .button__icon svg {
  margin-right: 0;
  margin-left: 1rem;
}
/* Form title */

.form-title {
  margin: 0;
}

.form-title ~ div > form {
  border-top: none;
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

/* Labels */

form label {
  display: block;
  margin-bottom: 0.35rem;
}

/* Form fields */

form .hs-form-field {
  margin-bottom: 1.4rem;
}

form input[type='text'],
form input[type='email'],
form input[type='password'],
form input[type='tel'],
form input[type='number'],
form input[type='file'],
form input[type='search'],
form select,
form textarea {
  display: inline-block;
  width: 100% !important; /* stylelint-disable-line declaration-no-important */
}

form fieldset {
  max-width: 100% !important; /* stylelint-disable-line declaration-no-important */
}

/* Form fields - checkbox/radio */

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

form .inputs-list > li {
  display: block;
  margin: 0.7rem 0;
}

form .inputs-list input,
form .inputs-list span {
  vertical-align: middle;
}

form input[type='checkbox'],
form input[type='radio'] {
  margin-right: 0.35rem;
  cursor: pointer;
}

/* Form fields - date picker */

form .hs-dateinput {
  position: relative;
}

form .hs-dateinput:before {
  position: absolute;
  top: 50%;
  content: '\01F4C5';
  transform: translateY(-50%);
}

form .is-selected .pika-button {
  border-radius: 0 !important; /* stylelint-disable-line declaration-no-important */
  box-shadow: none !important; /* stylelint-disable-line declaration-no-important */
}

form .fn-date-picker .pika-button:hover,
form .fn-date-picker .pika-button:focus {
  border-radius: 0 !important; /* stylelint-disable-line declaration-no-important */
}

/* Form fields - file picker */

form input[type='file'] {
  padding: initial;
  border: initial;
  background-color: transparent;
}

/* Headings and text */

form .hs-richtext,
form .hs-richtext p {
  margin: 0 0 1.4rem;
  font-size: 0.8rem;
}

form .hs-richtext img {
  height: auto;
  max-width: 100% !important; /* stylelint-disable-line declaration-no-important */
}

/* GDPR */

form .legal-consent-container .hs-form-booleancheckbox-display > span {
  margin-left: 1rem !important; /* stylelint-disable-line declaration-no-important */
}

/* Validation */

form .hs-form-required {
  color: #ef6b51;
}

form .hs-input.error {
  border-color: #ef6b51;
}

form .hs-error-msg,
form .hs-error-msgs {
  margin-top: 0.35rem;
  color: #ef6b51;
}

/* Submit button */

form input[type='submit'],
form .hs-button {
  display: inline-block;
  width: 100%;
  cursor: pointer;
  text-align: center;
  transition: all 0.15s linear;
  white-space: normal !important; /* stylelint-disable-line declaration-no-important */
}

/* Captcha */

.grecaptcha-badge {
  margin: 0 auto;
}
/* Icon wrapper */

.icon {
  display: inline-flex;
  border-radius: 50%;
}

.icon--square .icon {
  border-radius: 0;
}

/* Icon */

.icon svg {
  vertical-align: middle;
}
/* Table */

table {
  border-collapse: collapse;
  margin-bottom: 1.4rem;
  overflow-wrap: break-word;
}

/* Table cells */

th,
td {
  padding: 0.7rem;
  vertical-align: top;
}

/* Table header */

thead th,
thead td {
  vertical-align: bottom;
}

/* Components */

/* Navigation skipper */

.header__skip {
  position: absolute;
  top: -1000px;
  left: -1000px;
  overflow: hidden;
  height: 1px;
  width: 1px;
  text-align: left;
}

.header__skip:hover,
.header__skip:focus,
.header__skip:active {
  z-index: 2;
  top: 0;
  left: 0;
  overflow: visible;
  height: auto;
  width: auto;
}
/* Card */

.card {
  border: 0;
}

.card--dark,
.card--light {
  padding: 1.4rem;
}
/* Blog listing */

.blog-listing {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

.blog-listing--3-col,
.blog-listing--4-col {
  justify-content: flex-start;
}

/* Section heading */

.blog-listing__heading {
  width: 100%;
  text-align: center;
}

/* Article */

.blog-listing__post {
  display: flex;
  width: 100%;
  padding: 0;
  margin-bottom: 2.8rem;
  flex-direction: column;
}

.blog-listing__post-inner-wrapper {
  display: flex;
  height: 100%;
  background-color: rgba(255, 255, 255, 0.4);
}

/* Featured image */

.blog-listing__post-image-wrapper {
  display: flex;
}

.blog-listing__post-image {
  height: auto;
  width: 100%;
}

/* Content */

.blog-listing__post-content {
  display: flex;
  padding: 0.7rem 0 0;
  flex-direction: column;
  flex-grow: 1;
}

.card--dark .blog-listing__post-content,
.card--light .blog-listing__post-content {
  padding: 1.4rem;
}

/* Heading */

.blog-listing__header {
  margin-bottom: 1.05rem;
}

/* Tags */

.blog-listing__post-tags {
  margin-bottom: 0.7rem;
}

.blog-listing__post-tag,
.blog-listing__post-tag:hover,
.blog-listing__post-tag:focus,
.blog-listing__post-tag:active {
  text-decoration: none;
}

/* Title */

.blog-listing__post-title {
  margin-bottom: 0.7rem;
}

/* Author */

.blog-listing__post-author {
  display: flex;
  margin-bottom: 0.7rem;
  align-items: center;
}

.blog-listing__post-author-image {
  height: auto;
  width: 50px;
  margin-right: 0.7rem;
}

.blog-listing__post-author-name,
.blog-listing__post-author-name:hover,
.blog-listing__post-author-name:focus,
.blog-listing__post-author-name:active {
  text-decoration: none;
}

/* Date */

.blog-listing__post-timestamp {
  display: block;
  margin-bottom: 0.35rem;
}

/* Button */

.blog-listing__post-button-wrapper {
  margin-top: auto;
}

/* Blog listing - basic grid */

.blog-listing--card .blog-listing__post {
  flex-direction: column;
}

.blog-listing--2-col .blog-listing__post {
  width: calc(50% - 1rem);
}

.blog-listing--3-col .blog-listing__post {
  width: calc(33.3% - 1rem);
}

.blog-listing--4-col .blog-listing__post {
  width: calc(25% - 1rem);
}

.blog-listing--3-col .blog-listing__post:nth-of-type(3n + 1),
.blog-listing--3-col .blog-listing__post:nth-of-type(3n + 2) {
  margin-right: 1.5rem;
}

.blog-listing--4-col .blog-listing__post:nth-of-type(4n + 1),
.blog-listing--4-col .blog-listing__post:nth-of-type(4n + 2),
.blog-listing--4-col .blog-listing__post:nth-of-type(4n + 3) {
  margin-right: 1.333rem;
}

@media (max-width: 767px) {
  .blog-listing .blog-listing__post {
    width: 100%;
    margin-right: 0 !important; /* stylelint-disable-line declaration-no-important */
  }
}

.blog-listing--card .blog-listing__post-image-wrapper {
  height: 200px;
}

.blog-listing--card .blog-listing__post-image {
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .blog-listing--card .blog-listing__post-image-wrapper,
  .blog-listing--card .blog-listing__post-image {
    height: auto;
  }
}

/* Blog listing - side by side */

/* stylelint-disable no-descending-specificity */
.blog-listing--list .blog-listing__post {
  display: flex;
}
/* stylelint-enable no-descending-specificity */

.blog-listing--list .blog-listing__post-image-wrapper {
  width: 100%;
}

.blog-listing--list .blog-listing__post-image {
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .blog-listing--list .blog-listing__post-image-wrapper,
  .blog-listing--list .blog-listing__post-image {
    height: auto;
  }
}

@media (min-width: 768px) {
  .blog-post-listing__post--list {
    flex-direction: row;
  }

  .blog-listing__post-content--list {
    order: 1;
  }

  .blog-post-listing__post-image-wrapper--list {
    order: 1;
  }

  .blog-post-listing__post-image-wrapper--right {
    order: 2;
  }

  .blog-listing--list .blog-listing__post-image-wrapper {
    width: 25%;
  }

  .blog-listing--list .blog-post-listing__post-image-wrapper--left {
    margin-right: 1.4rem;
  }

  .blog-listing--list .blog-post-listing__post-image-wrapper--right {
    margin-left: 1.4rem;
  }
}
/* Logo */

.widget-type-logo img {
  height: auto;
  max-width: 100%;
  margin-bottom: 1.4rem;
}

/* Menu and simple menu */

.hs-menu-wrapper ul {
  display: flex;
  padding-left: 0;
  margin: 0;
  flex-wrap: wrap;
  justify-content: space-around;
  list-style: none;
}

.hs-menu-wrapper li {
  margin: 0;
}

@media (max-width: 767px) {
  .hs-menu-wrapper li {
    margin-bottom: 1.4rem;
    text-align: center;
  }
}

/* Horizontal menu */

.hs-menu-wrapper.hs-menu-flow-horizontal .hs-menu-children-wrapper {
  flex-direction: column;
}

@media (max-width: 767px) {
  .hs-menu-wrapper.hs-menu-flow-horizontal ul {
    flex-direction: column;
  }
}

/* Vertical menu */

.hs-menu-wrapper.hs-menu-flow-vertical ul {
  flex-direction: column;
}

/* Flyouts */

.hs-menu-wrapper.hs-menu-flow-vertical.flyouts ul {
  display: inline-flex;
}

@media (max-width: 767px) {
  .hs-menu-wrapper.hs-menu-flow-vertical ul {
    display: flex;
  }
}

.hs-menu-wrapper.flyouts .hs-item-has-children {
  position: relative;
}

.hs-menu-wrapper.flyouts .hs-menu-children-wrapper {
  position: absolute;
  left: -9999px;
  opacity: 0;
}

.hs-menu-wrapper.flyouts .hs-menu-children-wrapper a {
  display: block;
  white-space: nowrap;
}

/* prettier-ignore */
.hs-menu-wrapper.hs-menu-flow-horizontal.flyouts
.hs-item-has-children:hover
> .hs-menu-children-wrapper {
  top: 100%;
  left: 0;
  opacity: 1;
}

/* prettier-ignore */
.hs-menu-wrapper.hs-menu-flow-vertical.flyouts
.hs-item-has-children:hover
> .hs-menu-children-wrapper {
  top: 0;
  left: 100%;
  opacity: 1;
}

@media (max-width: 767px) {
  /* prettier-ignore */
  .hs-menu-wrapper.flyouts .hs-menu-children-wrapper,
  .hs-menu-wrapper.hs-menu-flow-horizontal.flyouts
  .hs-item-has-children:hover
  > .hs-menu-children-wrapper,
  .hs-menu-wrapper.hs-menu-flow-vertical.flyouts
  .hs-item-has-children:hover
  > .hs-menu-children-wrapper {
    position: relative;
    top: auto;
    left: 0;
    opacity: 1;
  }
}

/* Rich text */

.widget-type-rich_text img {
  height: auto;
  max-width: 100%;
}

/* Utilities */

/* For content that needs to be visually hidden but stay visible for screenreaders */

/* stylelint-disable declaration-no-important */
.show-for-sr {
  position: absolute !important;
  overflow: hidden !important;
  height: 1px !important;
  width: 1px !important;
  padding: 0 !important;
  border: 0 !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
}

@media (max-width: 767px) {
  .show-for-sr--mobile {
    position: absolute !important;
    overflow: hidden !important;
    height: 1px !important;
    width: 1px !important;
    padding: 0 !important;
    border: 0 !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
  }
}
/* stylelint-enable declaration-no-important */