@charset "utf-8";
/*------------------------------------------------------------
セイコープロセス　カスタマイズCSS
------------------------------------------------------------*/
/* -------------------------------------
CSS変数
--------------------------------------*/
:root {
    --seikoBlue: #203982;
    --baseBlue: #003686;
    --btnOrange: #ffae00;
}
/* ----------------------------------------------------------
各ページ共通使用
-----------------------------------------------------------*/
@media (min-width: 769px) {
    .header-type--row1 .site-branding {
        margin: 1em 0;
        padding: 0;
    }
    .header-type--row1 .global-nav {
        margin-top: -0.5em;
        padding-bottom: 1em;
    }
}
.site-header__content {
    flex-wrap: wrap;
}
/*#footer::before {
    display: block;
    content: "";
    height: 150px;
    background-color: #fff;
    background-image: url(../seiko-images/footer-top.webp);
    background-position: bottom center;
    background-size: cover;
    background-repeat: no-repeatt;
}*/
/*表示切り替え*/
@media screen and (max-width: 768px) {
    /*　スマホ・タブレットより小さい時は非表示　*/
    .spNone {
		display: none;
	}
}
@media screen and (min-width: 769px) {
    /*　スマホ・タブレットより大きい時は非表示　*/
    .pcNone {
		display: none;
	}
}
/*フォントサイズ*/
.Font14 {
    font-size: 14px;
}
.textCenter {
    text-align: center;
}
/*ポジション*/
.posiRelative {
    position: relative;
}
/*マージン*/
.marginNone {
    margin: 0;
}
.marginTopNone {
    margin-top: 0;
}
.mB20 {
    margin-bottom: 20px;
}
.mB30 {
    margin-bottom: 30px;
}
.mB50 {
    margin-bottom: 50px;
}
/*マーカー*/
span.markerYellow {
    padding-bottom: 2px;
    background: linear-gradient(transparent 60%, #ffda01 50%);
}
span.markerGreen {
    padding-bottom: 2px;
    background: linear-gradient(transparent 60%, #8effa1 50%);
}
/*マーカー（アニメーション）*/
span.markerYellowAnime {
    padding-bottom: 2px;
    background: linear-gradient(transparent 60%, #ffda01 50%) no-repeat;
    display: inline;
    background-size: 0% 100%;/* マーカーの横方向を0にして縮める */
    transition:background-size 1.5s;/* マーカーが引かれる速度 */
}
/* マーカーが引かれる際に付与するクラス */
span.markerYellowAnime.js-animeON {
    background-size: 100% 100%;/* 横方向を100%にしてマーカーを引く */
}
@media (min-width: 769px) {
/*スマホ・タブレットより大きい時、電話番号リンクの無効化*/
    a[href^="tel:"] {
        pointer-events: none;
        cursor: default;
        text-decoration: none;
    }
}
/* -----------------------------------------------------------------
アニメーション
------------------------------------------------------------------*/
/*下からフェードイン*/
.fadeIn_Up {
    opacity: 0;
    transform: translate(0, 50%);
    transition: 0.75s;
}
.fadeIn_Up.js-animeON {
    transform: translate(0, 0);
    opacity: 1;
}
/*左からフェードイン*/
.fadeIn_Right {
    opacity: 0;
    transform: translate(50%, 0);
    transition: 0.75s;
}
.fadeIn_Right.js-animeON {
    transform: translate(0, 0);
    opacity: 1;
}
/* ----------------------------------------------------------
TOPページカスタマイズ用
-----------------------------------------------------------*/
#PRmovie {
    margin-bottom: 5%;
    padding-top: 5%;
}
#PRmovie > iframe {
    display: block;
    margin: 0 auto 1%;
}
.campaign-banner {
    padding: 0 10px;
    width: auto;
    max-width: 1280px;
    max-height: 400px;
}
.campaign-banner img {
	max-width: 100%;
	height: auto;
}
/*スライダー設定*/
.slick-dotted.slick-slider {
    margin: 60px 0 70px;
}
.slick-prev,
.slick-next {
	width: 10%;
	height: 15%;
	z-index: 1;
}
@media screen and (max-width: 560px) {
	.slick-prev,
	.slick-next {
		width: 3rem;
		height: 3rem;
	}
}
.slick-prev {
	left: 5%;
}
.slick-prev::before {
	content: "";
	display: inline-block;
	width: 100%;
	height: 100%;
	background-image: url(../seiko-images/slick-arrow-left.svg);
	background-size: contain;
	background-repeat: no-repeat;
	background-position: left;
	vertical-align: middle;
}
.slick-next {
	right: 5%;
}
.slick-next::before {
	content: "";
	display: inline-block;
	width: 100%;
	height: 100%;
	background-image: url(../seiko-images/slick-arrow-right.svg);
	background-size: contain;
	background-repeat: no-repeat;
	background-position: right;
	vertical-align: middle;
}
.slick-dots {
    margin-bottom: -1%;
}
.slick-dots li button::before {
    content:'';
    width:1em;
    height: 1em;
    background: #006fb9;
    border-radius: 50%;
    margin-right: 8px;
}
/*--------------------------------------
入力フォーム
--------------------------------------*/
.form-head {
    margin-bottom: 40px;
}
.required::after {
    content: "必須";
    margin-left: 1em;
    margin-bottom: 3px;
    padding: 3px 5px;
    font-size: 12px;
    font-weight: bold;
    color: #fff;
    background-color: red;
    border-radius: 6px;
}
.input-item {
    margin-bottom: 40px;
}
.input-item input {
    padding: 12px;
    font-size: 18px;
}
.flexTextarea {
    position: relative;
    font-size: 18px;
    line-height: 1.8;
}
.flexTextarea_dummy {
    overflow: hidden;
    visibility: hidden;
    box-sizing: border-box;
    min-height: 250px;
    padding: 12px;
    white-space: pre-wrap;
    word-wrap: break-word;
    overflow-wrap: break-word;
    border: 1px solid;
}
.flexTextarea_textarea {
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    overflow: hidden;
    box-sizing: border-box;
    width: 100%;
    height: 100%;
    padding: 12px;
    background-color: transparent;
    border: 1px solid #b6c3c6;
    border-radius: 4px;
    color: inherit;
    font: inherit;
    letter-spacing: inherit;
    resize: none;
}
.input-item input:focus,
.flexTextarea_textarea:focus {
    box-shadow: 0 0 0 4px rgba(35, 167, 195, 0.3);
    outline: 0;
}
.form-send {
    display: grid;
    place-items: center;
    padding-top: 50px;
}
.form-send input#submit-button {
    padding: 14px 3em;
    font-size: 18px;
    font-weight: bold;
    background-color: var(--seikoBlue);
    border: none;
    border-radius: 18px;
    cursor: pointer;
}
.form-send input#submit-button:hover {
    color: var(--seikoBlue);
    background-color: #ffae00;
    transition: all 0.3s;
}
.tel-btn {
    width: 80%;
    margin: 30px auto;
    background-color: #ffae00;
    border-radius: 9999px;
}
.tel-btn a {
    display: block;
    width: fit-content;
    margin: 0 auto;
    padding: 10px 0;
    font-size: 28px;
    font-weight: bold;
    color: var(--seikoBlue);
    text-decoration: none;
    cursor: pointer;
}
.tel-btn a::before {
    content: "";
    display: inline-block;
    vertical-align: middle;
    height: 50px;
    padding-left: 50px;
    background: url(../../contact/images/tel-call_icon_sp.svg) no-repeat;
    background-position-y: 3px;
    background-size: 40px auto;
}
@media (min-width: 769px) {
    .form-head {
        margin: 0 auto 40px;
    }
    form {
        width: 60%;
        min-width: 500px;
        margin: 0 auto;
    }
    .formFlexBox {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
    }
    .input-item_Small {
        width: 48%;
    }
    .tel-btn {
        display: block;
        width: fit-content;
        margin: 30px 0;
        background-color: #fff;
    }
    .tel-btn a::before {
        content: "";
        padding-left: 40px;
        background: url(../../contact/images/tel-call_icon_pc.svg) no-repeat;
        background-position-y: 50%;
        background-size: 28px auto;   
    }
}
.error-msg {
    margin: 0;
    font-weight: 500;
    color: red;
}
/*バリデーションエンジンのエラーメッセージカスタマイズ*/
.formError .formErrorContent {
    font-size: 13px;
    font-weight: 500;
}
/*--------------------------------------
ランディングページ共通
--------------------------------------*/
#seikoLP header,
#seikoLP #breadcrumbs,
#seikoLP footer {
    display: none;
}
/*お問い合わせ入力フォームへボタン*/
#move-cta {
    display: flex;
    justify-content: right;
    width: 100%;
    max-width: calc(var(--ystd-container-width) + var(--ystd-container-gutter)* 2);
    margin-right: auto;
    margin-left: auto;
    padding-right: var(--ystd-container-gutter);
    padding-left: var(--ystd-container-gutter);
    position: fixed; /*リンクを右下に固定*/
    bottom: 50px;
	z-index: 9999;
	opacity: 0; /*はじめは非表示*/
	transform: translateY(150px);
}
#move-cta a:hover {
    filter: drop-shadow(0 10px 8px #00000070);
    transform: translateY(-10px);
}
/*上に上がる動き*/
#move-cta.js-UpMove {
    animation: UpAnime 0.5s forwards;
}
@keyframes UpAnime {
    from {
        opacity: 0;
        transform: translateY(150px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
/*--------------------------------------
Web楽々プラン
--------------------------------------*/
#seikoLP #content {
    margin: 0;
    background-color: #008cd2;
    position: relative;
}
#seikoLP #content::before {
    content: "";
    width: 100%;
    height: 100%;
    position: absolute;
    background: url(../../lp/images/bk_image.svg) repeat-y;
    background-size: contain;
}
#seikoLP #webplanLP .contentArea {
    width: auto;
    max-width: 1000px;
    margin: 0 auto 10%;
}
#seikoLP #webplanLP h1 {
    width: 100%;
    margin: 8% 0;
    padding: 10px 0;
    color: #fff;
    font-size: 32px;
    text-align: center;
    background-color: #000;
}
.drop-shadow {        
    filter: drop-shadow(10px 10px 5px #00000070);
}
.img_W100 {
    width: 100%;
}
#webplanLP .mainCatchcopy {
    position: relative;
    margin: 0 auto 280px;
}
#webplanLP .mainCatchcopy::after {
    content: "";
    position: absolute;
    bottom: -50%;
    right: 50%;
    transform: translate(50%, -10%);
    display: block;
    width: 80%;
    max-width: 340px;
    height: 205px;
    background: url(../../lp/images/catch_image01.svg) bottom right no-repeat;
    background-size: contain;
}
#webplanLP .mainCatchcopy .catchcopy01 {
    width: 100%;
    max-width: 650px;
    margin-top: 4%;
    padding-right: 5%;
}
#webplanLP .mainCatchcopy .catchcopy02 {
    width: 100%;
    max-width: 350px;
    margin-top: 4%;
}
#webplanLP .subCatchcopy div figure {
    width: 80%;
}
#webplanLP .recommend h2,
#webplanLP .reason h2 {
    margin: 0;
    padding: 4% 6% 2%;
    text-align: center;
    background-color: var(--baseBlue);
}
#webplanLP .recommend {
    position: relative;
    margin: 0 auto 280px;
    padding-top: 8%;
}
#webplanLP .recommend::after {
    content: "";
    position: absolute;
    bottom: -100%;
    left: 0;
    transform: translateY(-50%);
    display: block;
    width: 60%;
    max-width: 230px;
    height: 100%;
    background: url(../../lp/images/recommend_image01.svg) bottom right no-repeat;
    background-size: contain;
}
#webplanLP .listItemBox ul {
    margin: 0;
    padding: 3%;
    font-size: 18px;
    background-color: white;
    list-style: none;
}
#webplanLP .recommend .listItemBox ul li {
    position: relative;
    width: fit-content;
    margin-bottom: 5%;
    padding-left: 35px;
    background: url(../../lp/images/recommend_icon.svg) no-repeat;
    background-size: 28px auto;
}
#webplanLP .recommend .listItemBox ul li::after {
    content: "";
    width: calc(100% - 35px);
    border-bottom: 2px dotted var(--baseBlue);
    position: absolute;
    bottom: 0;
    left: 35px;
}
#webplanLP .reason {
    padding-top: 8%;
}
#webplanLP .reason .listItemBox ul li {
    position: relative;
    margin-top: 20px;
    padding-left: 15px;
}
#webplanLP .reason .listItemBox ul li::before {
    content: "";
    position: absolute;
    top: 10px;
    left: 0;
    width: 10px;
    height: 10px;
    background-color: var(--baseBlue);
    border-radius: 50%;
}
#webplanLP .webplan-head {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
}
#webplanLP .webplan-head figure {
    width: 100%;
    max-width: 250px;
}
#webplanLP .webplan h2 {
    width: 100%;
    margin: 0 0 6%;
    padding: 4% 6% 2%;
    text-align: center;
    background-color: var(--baseBlue);
}
#webplanLP .webplanList {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
}
#webplanLP .webplan .plan-course {
    width: 100%;
    margin-bottom: 50px;
}
#webplanLP .webplanList ul {
    list-style: none;
    color: white;
    margin-top: -50px;
    padding: 0 0 0 16px;
    text-indent: -16px;
}
#webplanLP .present {
    display: flex;
    flex-direction: column-reverse;
    align-items: center;
    margin-bottom: 40px;
}
#webplanLP .present-image {
    width: 70%;
    text-align: center;
}
#webplanLP .support {
    display: flex;
    flex-direction: column-reverse;
    align-items: center;
}
#webplanLP .support-image {
    width: 70%;
    margin-top: -20px;
    text-align: center;
}
#webplanForm {
    padding-top: 10px;
    background-color: #fff;
}
.webplanSubhead {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    font-weight: bold;
    color: var(--seikoBlue);
}
.webplanSubhead::before,
.webplanSubhead::after {
    content: "";
    height: 5px;
    width: 40px;
    background-color: var(--seikoBlue);
    border-radius: 5px;
}
.webplanSubhead::before {
    margin-right: 10px;
    transform: rotate(60deg);
}
.webplanSubhead::after {
    margin-left: 10px;
    transform: rotate(-60deg);
}
#webplanForm h2 {
    display: block;
    width: fit-content;
    margin: 0 auto 40px;
    padding: 10px 40px 8px;
    font-size: 24px;
    font-weight: bold;
    color: #fff;
    background-color: var(--seikoBlue);
    border-radius: 9999px;
}
.webplanForm-image {
    width: 70%;
    margin: 50px auto 30px;
    text-align: center;
}
@media (min-width: 769px) {
    .flexBox {
        display: flex;
        flex-wrap: wrap;
    }
    #seikoLP #webplanLP h1 {
        font-size: 40px;
    }
    #webplanLP .mainCatchcopy {
        margin-bottom: 0;
    }
    #webplanLP .mainCatchcopy::after {
        bottom: 0;
        right: 0;
        transform: translate(0, 0);
        width: 28%;
    }
    #webplanLP .mainCatchcopy .catchcopy03 {
        width: 70%;
        max-width: 700px;
    }
    #webplanLP .subCatchcopy div figure {
        width: auto;
    }
    #webplanLP .recommend::after {
        bottom: 0;
        left: 0;
        transform: translate(0, 0);
        width: 28%;
    }
    #webplanLP .recommend h2,
    #webplanLP .reason h2 {
        width: 80%;
        padding: 2% 2% 1%;
        position: absolute;
        transform: translateY(calc(-100% + 25px));
        z-index: 1;
    }
    #webplanLP .listItemBox {
        margin-left: 10%;
    }
    #webplanLP .listItemBox ul {
        padding: calc(3% + 25px) 5% 2% 8%;
        font-size: 24px;
    }
    #webplanLP .recommend .listItemBox ul li {
        background-position: left top 5px;
    }
    #webplanLP .reason .listItemBox ul::before {
        content: url(../../lp/images/reason_image01.svg);
        position: absolute;
        top: 2%;
        right: 2%;
    }
    #webplanLP .reason .listItemBox ul li::before {
        top: 15px;
    }
    #webplanLP .webplan-head {
        flex-direction: row-reverse;
    }
    #webplanLP .webplan-head figure {
        width: 25%;
    }
    #webplanLP .webplan h2 {
        width: 75%;
        margin: 0 0 6%;
        padding: 1.5% 6% 0.5%;
    }
    #webplanLP .webplan h2::before {
        content: "";
        width: 100%;
        height: 60%;
        position: absolute;
        top: -50%;
        right: 50%;
        transform: translate(20%, 5px);
        background: url(../../lp/images/webplan-title_sub01.svg) bottom right no-repeat;
        background-size: contain;
    }
    #webplanLP .webplan .plan-item {
        width: 17.5%;
        margin-bottom: 50px;
    }
    #webplanLP .webplan .plan-course {
        width: 27.5%;
    }
    #webplanLP .present {
        flex-direction: row-reverse;
    }
    #webplanLP .present-image {
        width: 28%;
        padding-left: 1%;
        margin: 0;
    }
    #webplanLP .present-info {
        width: 42%;
    }
    #webplanLP .support {
        flex-direction: row;
        align-items: center;
    }
    #webplanLP .support-info {
        width: 60%;
    }
    #webplanLP .support-image {
        width: 20%;
        margin-top: 0;
    }
    .webplanSubhead {
        font-size: 32px;
    }
    #webplanForm h2 {
        padding: 10px 25px 5px;
        font-size: 28px;
    }
    #webplanForm h2::before {
        content: "";
        display: inline-block;
        vertical-align: middle;
        height: 50px;
        padding-left: 50px;
        background: url(../../lp/images/webplan-form-icon.svg) no-repeat;
        background-position-y: 3px;
        background-size: 40px auto;
    }
    .webplanForm-image {
        width: 100%;
        text-align: right;
    }
}
@media (min-width: 769px) and (max-width: 1200px) {
    #webplanLP .recommend::after {
        bottom: -50%;
    }
    #webplanLP .reason::after {
        bottom: -85%;
    }
}
#webplanLP #move-cta a {
	display: block;
	width: 25%;
    max-width: 125px;
    min-width: 80px;
    transition: all 0.3s ease 0s;
}
/*-------------------------------------------------------
年賀状デザインダウンロードページ
-------------------------------------------------------*/
.download_Item {
    display: inline-block;
    margin: 0 1rem 2rem 0;
    padding: 0.5rem 0 0.5rem 4rem;
}
.download_Item.dl_Pdf {
    background-image: url("../seiko-images/pdf-icon.svg");
    background-size: contain;
    background-position: left;
    background-repeat: no-repeat;
}
.downloadBtn {
    justify-content: center;
    gap: 2.5em 2em;
    font-size: 18px !important;
}
.downloadBtn a:last-child {
    width: 300px;
    padding: 15px 30px;
    color: #ffffff00 !important;
    background-color: var(--btnOrange) !important;
    background-image: url("../seiko-images/download-btn-txt.svg");
    background-position: center;
    background-repeat: no-repeat;
    border-radius: 9999px;
}
.downloadBtn a:last-child:hover {
    filter: drop-shadow(0 10px 8px #00000070);
    transform: translateY(-7px);
}
