:root {
    --black: #000;
    --white: #fff;

    --main-color01: #2a62ae;
    --main-color02: #f7ac00;

    --sub-color01: #d4e0ef;

    --bg-color01: #ebebec;

    --text-color01: #231815;
}

html {
    scroll-behavior: smooth;
    font-size: clamp(10px, 1.3vw, 20px);
}

body {
    font-family: 'Noto Sans JP',"メイリオ","Meiryo",verdana,"ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro",Osaka,"ＭＳ Ｐゴシック","MS PGothic",sans-serif;
    line-height: 2;
}

.spblock {
    display: none;
}
.spcut {
    display: block;
}

section, 
article {
    padding: 6em 0;
}

img {
    width: 100%;
}

.wide_lg {
    max-width: 75em;
    margin: 0 auto;
}

.inner {
    max-width: 60em;
    margin: 0 auto;
    padding: 0 30px;
    position: relative;
    box-sizing: border-box;
}

#cornerName {
    background: var(--bg-color01);
    background-image: url(img/bg_cornerName.png);
    background-position: right center;
    background-size: cover;
    border-radius: 1.5em;
    margin: 0 2em 2em;
    padding: 7em 0;
}
#cornerName .tl_popup01 {
    margin-bottom: 0;
}

.flex {
    display: flex;
}

.bg01 {
    background: var(--bg-color01);
}

.bg02 {
    background: var(--main-color01);
}

.tl_popup01 {
    display: flex;
    flex-direction: column;
    color: var(--main-color01);
    margin-bottom: 3.5em;
    /* opacity: 0; */
}

.tl_popup01 span {
    font-size: 1.5em;
}

.tl_popup01 small {
    font-size: 1em;
}

.btn a {
    display: block;
    font-size: 0.9em;
    font-weight: 500;
    color: var(--white);
    text-align: center;
    width: 18em;
    background: var(--main-color02);
    padding: 0.5em 1em;
    border: 2px solid var(--main-color02);
    border-radius: 50px;
    position: relative;
    transition: all .3s;
}
.btn a:hover {
    color: var(--main-color02);
    background: var(--white);
}

.textCenter {
    text-align: center;
    display: block;
}

.textCenter.btn a {
    margin-left: auto;
    margin-right: auto;
}

.telLink {
    pointer-events: none;
}

/* -----------------------------------------------------------
    slick
----------------------------------------------------------- */
.slick-dots li {
    margin: 0 3px;
}
.slick-dots li button:before {
    font-size: 10px;
    color: var(--main-color04);
    opacity: 1;
}
.slick-dots li button:hover:before {
    color: var(--main-color02);
    opacity: 1;
}
.slick-dots li.slick-active button:before {
    color: var(--main-color02);
    opacity: 1;
}

.slickSliderContent .slick-slide {
    margin: 0 0.2em;
}

/* -----------------------------------------------------------
    topicsList
----------------------------------------------------------- */
#top .topicsList {
    background: var(--main-color01);
    padding: 0 4em;
    border-radius: 1.5em 1.5em 0 0;
}

#top .topicsList .wide_lg {
    background: var(--white);
    border-radius: 1em;
    transform: translateY(-10em);
}

#top .topicsList .wide_lg .inner {
    padding: 4em 30px;
}

#top .topicsList .btn {
    position: absolute;
    right: 30px;
    top: 4em;
}

.topicsList .inner > p {
    font-size: 0.8em;
    margin-bottom: 3.75em;
}

.topicsList ul {
    margin: 2em 0 3em;
}
#top .topicsList ul {
    margin-bottom: 0;
}

.topicsList ul li {
    display: flex;
    align-items: center;
    gap: 1.5em;
    font-size: 0.8em;
    padding: 1em 0;
    border-bottom: 1px solid var(--main-color01);
}
.topicsList ul li:first-child {
    padding-top: 0;
}
.topicsList ul li:last-child {
    border-bottom: 0;
}

.topicsList ul li h3 {
    flex: 1;
}

.topicsList ul li a {
    transition: all 0.3s;
}
.topicsList ul li a:hover {
    opacity: 0.7;
}

body#topics.single .topicsList h2 {
    font-size: 1.2em;
    border-bottom: 1px solid var(--main-color04);
    padding-bottom: 0.5em;
    margin-bottom: 2em;
}

/* ----- cats cat ----- */
.cats {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6em;
    margin-right: 2em;
}

.cats .cat {
    background: var(--main-color01);
    color: var(--white);
    padding: 0.5em 2.5em;
    border-radius: 50px;
}
.cats .cat.news {
    background: var(--sub-color01);
    color: var(--main-color01);
}

/* ----- topicsCategory ----- */
.topicsCategory h3 {
    color: var(--main-color01);
}
.topicsCategory h3::before {
    content: "・";
    color: var(--main-color02);
}

.topicsCategory .cats {
    margin: 0.5em 0 3em;
}

.topicsCategory .cats .cat {
    font-size: 0.8em;
    color: var(--main-color01);
    background: var(--white);
    border: 1px solid var(--main-color01);
    transition: all 0.3s;
}
.topicsCategory .cats .cat:hover {
    opacity: 0.7;
}

.topicsCategory .cats .cat.current {
    color: var(--white);
    background: var(--main-color01);
}

/* -----------------------------------------------------------
    pageNavi
----------------------------------------------------------- */
#topics .wp-pagenavi {
    display: flex;
    justify-content: center;
    text-align: center;
    margin: 3em 0 3em auto;
    position: relative;
}

.wp-pagenavi a, 
.wp-pagenavi span {
    display: inline-block;
    font-size: 1.15em;
    font-weight: 500;
    color: var(--main-color01);
    line-height: 3em;
    width: 3em;
    height: 3em;
    padding: 0;
    border: 0;
    border-radius: 50%;
    transition: 0.3s;
}

.wp-pagenavi a:hover {
    opacity: 0.7;
}

.wp-pagenavi span.current {
    font-weight: 500;
    color: var(--white);
    background: var(--main-color01);
}

.nextpostslink, 
.previouspostslink {
    position: relative;
    padding: 0 !important;
}
.nextpostslink::after, 
.previouspostslink::after {
    content: "";
    position: absolute;
    width: 0.5em;
    aspect-ratio: 44 / 75;
    inset: 50% 0 auto 0;
    margin: 0 auto;
    transform: translateY(-50%);
    background: var(--main-color01);
    mask-image: url(img/svg_arrow.svg);
    mask-repeat: no-repeat;
    mask-position: 0 0;
    mask-size: contain;
    -webkit-mask-image: url(img/svg_arrow.svg);
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: 0 0;
    -webkit-mask-size: contain;
    transition: all .3s;
}
.nextpostslink::after {
    right: 0;
}
.previouspostslink::after {
    left: 0;
    transform: scale(-1, 1) translateY(-50%);
}
.nextpostslink:hover, 
.previouspostslink:hover {
    background: none !important;
}
.nextpostslink:hover::after, 
.previouspostslink:hover::after {
    opacity: 0.7;
}

/* -----------------------------------------------------------
    header
----------------------------------------------------------- */
header > .wide_lg {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: none;
    width: 100%;
    background: var(--white);
    padding: 1em 2em;
}
header > .wide_lg.fixed {
    background: rgba(255, 255, 255, 0.9);
    position: fixed;
    inset: 0 0 auto 0;
    z-index: 100;
    animation: slideDown 0.3s ease-in-out;
}
@keyframes slideDown {
    0% {
        transform: translateY(-100%);
    }
    100% {
        transform: translateY(0%);
    }
}

header .boxL h1 {
    width: 15em; 
}
header .boxL h1 > a {
    display: block;
    transition: all 0.3s;
}
header .boxL h1 > a:hover {
    opacity: 0.7;
}

header .boxR {
    display: flex;
    gap: 2em;
    align-items: center;
}

header .boxR .menu {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
}

header .boxR .menu .tel {
    font-size: 1.5em;
    font-weight: 600;
    color: var(--main-color01);
    letter-spacing: 3px;
    padding-left: 1.5em;
    position: relative;
}
header .boxR .menu .tel::before {
    content: "";
    width: 1.2em;
    height: auto;
    aspect-ratio: 229 / 150;
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-40%);
    background-color: currentColor;
    --mask: url(img/svg_fdl.svg);
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
    -webkit-mask-image: var(--mask);
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
    mask-image: var(--mask);
    transition: all .3s;
}

header .boxR .menu ul {
    display: flex;
    align-items: center;
    gap: 2em;
}

header .boxR .menu ul li {
    font-size: 0.9em;
    font-weight: 600;
    color: var(--main-color01);
    position: relative;
}

header .boxR .contact a {
    display: block;
    font-size: 0.9em;
    font-weight: 600;
    color: var(--white);
    background: var(--main-color02);
    padding: 1.2em 2.5em;
    border: 2px solid var(--main-color02);
    border-radius: 0.5em;
    box-sizing: border-box;
    position: relative;
    transition: all .3s;
}
header .boxR .contact a:hover {
    color: var(--main-color02);
    background: var(--white);
}

header .boxR ul li a {
    position: relative;
    transition: all 0.3s ease;
}
header .boxR ul li a:hover {
    opacity: 0.7;
}

.menuBtn {
    display: none;
}

/* -----------------------------------------------------------
    top
----------------------------------------------------------- */
/* ----- mainv ----- */
.mainv {
    background: var(--bg-color01);
    padding: 3em 2em 11em;
    margin: 0 2em 2em;
    border-radius: 1.5em;
    position: relative;
}

.mainv .wide_lg {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 3em;
}

.mainv .slogan h2 {
    font-size: 2.5em;
    font-weight: 700;
    line-height: 1.5;
    margin: 0.5em 0 1em;
}
.mainv .slogan h2 b {
    font-size: 1.2em;
    color: var(--main-color01);
}

.mainv .slogan p span {
    color: var(--white);
    background: var(--main-color01);
    padding: 0.5em 1.5em;
    border-radius: 50px;
}

.mainv .slogan, 
.mainv figure {
    width: calc((100% - 3em) / 2);
}

.mainvBtn {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    color: var(--white);
    text-align: center;
    width: 7em;
    height: 7em;
    border-radius: 50%;
    background: var(--main-color01);
    position: fixed;
    bottom: 1.5em;
    right: 1.5em;
    z-index: 100;
    transition: all 0.3s;
}
.mainvBtn::before {
    content: "";
    width: 6.3em;
    height: 6.3em;
    border: 1px solid var(--white);
    border-radius: 50%;
    position: absolute;
    inset: 50% 0 auto 0;
    transform: translateY(-50%);
    margin: 0 auto;
}
.mainvBtn:hover {
    transform: scale(0.95);
    opacity: 0.7;
}

.mainvBtn p {
    font-size: 0.9em;
    line-height: 1.3;
}
.mainvBtn p span {
    display: inline-block;
    font-size: 0.7em;
    margin-bottom: 0.5em;
    padding: 0 0.8em;
    position: relative;
}
.mainvBtn p span::before, 
.mainvBtn p span::after {
    content: "";
    width: 1px;
    height: 1em;
    background: var(--white);
    position: absolute;
    top: 50%;
}
.mainvBtn p span::before {
    left: 0;
    transform: translateY(-50%) rotate(-20deg);
}
.mainvBtn p span::after {
    right: 0;
    transform: translateY(-50%) rotate(20deg);
}

/* ----- topBlock02 ----- */
.topBlock02 {
    border-radius: 0 0 1.5em 1.5em;
    margin-top: -6em;
    padding-bottom: 14em;
    position: relative;
    overflow: hidden;
}

.topBlock02 h2 {
    font-size: 1.75em;
    color: var(--white);
    text-align: center;
    margin-bottom: 1em;
}

.topBlock02 .inner > p {
    font-size: 0.8em;
    color: var(--white);
    text-align: center;
}

.topBlock02 ul {
    display: flex;
    flex-wrap: wrap;
    gap: 2.5em;
    margin-top: 4em;
}

.topBlock02 ul li {
    display: flex;
    flex-direction: column;
    justify-content: space-around;
    width: calc((100% - 2.5em * 3) / 4);
    background: var(--white);
    padding: 1em;
    border-radius: 1em;
    box-sizing: border-box;
}

.topBlock02 ul li figure {
    display: flex;
    align-items: center;
    width: 100%;
    margin: 0 auto;
}

.topBlock02 ul li p {
    font-size: 0.8em;
    color: var(--main-color01);
    text-align: center;
    line-height: 1.5;
}

/* .topBlock02 .bg_text {
    font-size: 9.35em;
    font-weight: 100;
    color: var(--white);
    line-height: 1;
    white-space: nowrap;
    opacity: 0.12;
    position: absolute;
    bottom: 0;
} */
.topBlock02 .bg_text {
    display: flex;
    width: max-content;

    font-size: 9.35em;
    font-weight: 100;
    color: var(--white);
    line-height: 1;
    white-space: nowrap;
    opacity: 0.12;

    position: absolute;
    bottom: 0;
    left: 0;

    animation: bgTextLoop 20s linear infinite;
}
.topBlock02 .bg_text span {
    flex: 0 0 auto;
    padding: 0 0.2em 0 0;
}
@keyframes bgTextLoop {
    from {
        transform: translateX(0);
    }
    to {
        transform: translateX(calc(var(--loop-width) * -1));
    }
}

/* ----- topBlock03 ----- */
.topBlock03 .tl_popup01 {
    margin-bottom: 2em;
}

.topBlock03 .flex {
    justify-content: space-between;
    align-items: center;
    margin-bottom: 6em;
}

.topBlock03 .flex .inBox p {
    font-size: 0.8em;
}
.topBlock03 .flex .inBox p + p {
    margin-top: 2.5em;
}

.topBlock03 .flex figure {
    width: 29em;
}

.topBlock03 ul {
    display: flex;
    flex-wrap: wrap;
    padding: 3em 0 2em;
    background: var(--bg-color01);
    border-radius: 0.5em;
    position: relative;
}
.topBlock03 ul::before {
    content: "こんな方におすすめ";
    font-size: 1.25em;
    color: var(--white);
    position: absolute;
    inset: 0 0 auto 0;
    transform: translateY(-50%);
    width: fit-content;
    background: var(--main-color01);
    margin: 0 auto;
    padding: 0 2em 0.1em;
    border-radius: 50px;
}

.topBlock03 ul li {
    color: var(--main-color01);
    text-align: center;
    line-height: 1.5;
    width: calc(100% / 3);
    border-right: 1px solid #606060;
    box-sizing: border-box;
}
.topBlock03 ul li:last-child {
    border-right: 0;
}

.topBlock03 ul li p {
    display: inline-block;
    padding-left: 2em;
    position: relative;
}
.topBlock03 ul li p::before {
    content: "";
    position: absolute;
    width: 1em;
    aspect-ratio: 88 / 75;
    left: 0;
    top: 0;
    transform: translateY(30%);
    background-image: url(img/top/ico_checkList.svg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    transition: all .3s;
}

/* ----- topBlock04 ----- */
.topBlock04 {
    margin: 0 1.75em;
    border-radius: 1.5em;
    position: relative;
    z-index: 1;
}

.topBlock04 .tl_popup01 {
    text-align: center;
    margin-bottom: 2em;
}

.topBlock04 p {
    font-size: 0.8em;
    text-align: center;
}

.topBlock04 ol {
    display: flex;
    margin-top: 4em;
}

.topBlock04 ol li {
    display: flex;
    width: calc(100% / 5);
    background: var(--white);
    padding: 3em 1em;
    filter: drop-shadow(0 0 10px rgba(31, 85, 122, 0.75));
    position: relative;
    counter-increment: number;
}
.topBlock04 ol li:nth-child(1) { 
    border-radius: 1em 0 0 1em; 
    z-index: 5;
}
.topBlock04 ol li:nth-child(2) { 
    background: 
    #e6eff8; z-index: 4;
}
.topBlock04 ol li:nth-child(3) { 
    background: #ccdeed; 
    z-index: 3;
}
.topBlock04 ol li:nth-child(4) { 
    background: #a3c3db; 
    z-index: 2; 
}
.topBlock04 ol li:nth-child(5) { 
    background: #86afd3; 
    border-radius: 0 1em 1em 0; 
    z-index: 1; 
}
.topBlock04 ol li::before {
    content: counter(number, decimal-leading-zero);
    display: block;
    font-family: "Outfit", sans-serif;
    font-size: 2em;
    color: var(--main-color01);
    text-align: center;
    -webkit-text-combine: horizontal;
    -ms-text-combine-horizontal: all;
    text-combine-upright: all;
    position: absolute;
    inset: 0 0 auto 0;
    transform: translateY(-50%);
}

.topBlock04 ol li:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 0;
    right: -1em;
    width: 1em;
    height: 100%;
    background: inherit;
    clip-path: polygon(0 0, 100% 50%, 0 100%);
}

.topBlock04 ol li p {
    font-size: 1.25em;
    font-weight: 500;
    color: var(--main-color01);
    text-align: left;
    line-height: 1.5;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    margin: 0 auto;
}

/* ----- topBlock05 ----- */
.topBlock05 {
    background-color: #ffffff;
    background-image: linear-gradient(90deg, #2a62ae26 1px, transparent 1px), linear-gradient(#2a62ae26 1px, transparent 1px);
    background-position: 0 0;
    background-size: 2.5em 2.5em;
    margin-top: -7.5em;
    padding-top: 13.5em;
}

.topBlock05 figure {
    position: absolute;
    top: -1em;
    left: 15em;
    width: 7em;
}

.topBlock05 .faq div {
    background: var(--white);
    border: 1px solid var(--main-color01);
    padding: 1em 2em 1.2em;
    border-radius: 0.8em;
    transition: all 0.5s ease;
    cursor: pointer;
}
.topBlock05 .faq div + div {
    margin-top: 1.5em;
}
/* .topBlock05 .faq div.is-open {
    border-radius: 1em;
} */

.topBlock05 .faq dt {
    color: var(--main-color01);
    position: relative;
}
.topBlock05 .faq dt::before,
.topBlock05 .faq dt::after {
    content: "";
    display: block;
    width: 1.5em;
    height: 2px;
    background: currentColor;
    position: absolute;
    top: 50%;
    right: 0;
    transition: transform 0.5s ease;
}
.topBlock05 .faq dt::before {
    transform: translateY(-50%);
}
.topBlock05 .faq dt::after {
    transform: translateY(-50%) rotate(90deg);
}
.topBlock05 .faq div.is-open dt::before {
    transform: translateY(-50%) rotate(135deg);
}
.topBlock05 .faq div.is-open dt::after {
    transform: translateY(-50%) rotate(225deg);
}

.topBlock05 .faq dd {
    height: 0;
    overflow: hidden;
    transition: all 0.5s ease;
}
.topBlock05 .faq dd p {
    font-size: 0.8em;
    margin-top: 1em;
}
.topBlock05 .faq dd p + p {
    margin-top: 2em;
}

/* ----- topBlock06 ----- */
.topBlock06 {
    border-radius: 1.5em 1.5em 0 0;
    background-image: url(img/bg_company.png);
    background-repeat: no-repeat;
    background-position: right center;
    background-size: contain;
    padding-bottom: 16em;
}

.topBlock06 .flex {
    justify-content: space-between;
    align-items: center;
}

.topBlock06 .tl_popup01 {
    color: var(--white);
    margin-bottom: 1.5em;
}

.topBlock06 .inBox p {
    font-size: 0.8em;
    color: var(--white);
    margin-bottom: 2.5em;
}

.topBlock06 .slider {
    width: 30em;
    border-radius: 1.25em;
    overflow: hidden;
}
.topBlock06 .slider figure img {
    width: 100%;
}
@keyframes zoomDown {
    0% {
        transform: scale(1.2);
    }
    100% {
        transform: scale(1);
    }
}
.add-animation {
    animation: zoomDown 8s linear 0s normal both;
}

/* -----------------------------------------------------------
    company
----------------------------------------------------------- */
/* ----- coBlock01 ----- */
.coBlock01 {
    background-image: url(img/bg_company.png);
    background-repeat: no-repeat;
    background-position: right bottom -5em;
    background-size: contain;
}

.coBlock01 .tl_popup01 {
    color: var(--white);
    text-align: center;
    margin-bottom: 2em;
}

.coBlock01 .inBox p {
    font-size: 0.8em;
    color: var(--white);
    text-align: center;
}
.coBlock01 .inBox p + p {
    margin-top: 2em;
}

.coBlock01 .inBox p.ceoName {
    font-size: 1.1em;
}
.coBlock01 .inBox p.ceoName span {
    display: block;
    font-size: 1.45em;
    font-weight: 100;
    font-style: italic;
    letter-spacing: 2.5px;
    color: var(--main-color02);
}

/* ----- coBlock02 ----- */
.coBlock02 figure {
    width: 100%;
    margin-bottom: 5em;
    border-radius: 1.5em;
    overflow: hidden;
}

.coBlock02 .tl_popup01 {
    margin-bottom: 1em;
}

.coBlock02 table {
    width: 100%;
}

.coBlock02 table th, 
.coBlock02 table td {
    font-size: 0.9em;
    padding: 1.5em 0;
    border-bottom: 1px solid var(--main-color01);
}

.coBlock02 table tr:last-child th, 
.coBlock02 table tr:last-child td {
    border-bottom: none;
}

.coBlock02 table th {
    font-weight: 600;
    color: var(--main-color01);
    width: 25%;
}
.coBlock02 table td {
    width: 75%;
    border-color: #a1a1a2;
}

/* ----- coBlock03 ----- */
.coBlock03 {
    max-width: 75em;
    width: calc(100% - 4em);
    margin: 0 auto;
    border-radius: 2.25em 2.25em 0 0;
    padding-bottom: 16em;
}

.coBlock03 .tl_popup01 {
    color: var(--white);
    margin-bottom: 2em;
}

.coBlock03 iframe {
    width: 100%;
    height: 20.5em;
    border-radius: 0.5em;
}

.coBlock03 .inBox p {
    font-weight: 500;
    color: var(--white);
}

.coBlock03 .inBox .flex {
    justify-content: space-between;
    padding-bottom: 1.5em;
    margin: 2em 0 1.5em;
    border-bottom: 1px solid var(--white);
}
.coBlock03 .inBox .flex p {
    font-size: 0.8em;
    font-weight: normal;
}
.coBlock03 .inBox .flex p span {
    display: block;
    font-size: 1.3em;
}

/* -----------------------------------------------------------
    single-topics
----------------------------------------------------------- */
.singleTopics .singleTitle {
    padding-bottom: 2em;
    border-bottom: 1px solid var(--main-color01);
}

.singleTopics .singleTitle .flex {
    align-items: center;
    gap: 1.5em;
    margin-bottom: 1em;
}

.singleTopics .singleTitle time {
    font-size: 1.25em;
    color: var(--main-color01);
}

.singleTopics .singleTitle .cats .cat {
    font-size: 0.8em;
}

.singleTopics .singleTitle h2 {
    font-size: 1.5em;
    color: var(--main-color01);
}

.singleDetail {
    margin-top: 2.5em;
}
.singleDetail > *:first-child {
    margin-top: 0;
}

.singleDetail p {
    font-size: 0.8em;
    margin-top: 1.5em;
}

.singleDetail p a {
    color: var(--main-color01);
    transition: all 0.3s;
}
.singleDetail p a:hover {
    opacity: 0.7;
}

.singleDetail img {
    max-width: 100%;
    width: auto;
}

.singleTopics .btn {
    margin-top: 4em;
}

.singleDetail ul {
    margin-top: 1.2em;
}
.singleDetail ul li {
    font-size: 0.8em;
    padding-left: 1em;
    position: relative;
}
.singleDetail ul li::before {
    content: "";
    width: 0.5em;
    height: 0.5em;
    border-radius: 50%;
    background: var(--main-color01);
    position: absolute;
    top: 0.8em;
    left: 0;
}

.singleDetail ol {
    margin-top: 1.2em;
}
.singleDetail ol li {
    font-size: 0.8em;
    padding-left: 2em;
    position: relative;
    counter-increment: number;
}
.singleDetail ol li::before {
    content: counter(number);
    font-size: 0.9em;
    color: var(--white);
    line-height: 1;
    padding: 0.3em 0.5em;
    border-radius: 2px;
    background: var(--main-color02);
    position: absolute;
    top: 0.3em;
    left: 0;
}

.singleDetail blockquote {
    background: #f2f2f2;
    border: 1px dotted #444;
    padding: 1em;
    margin-top: 1.2em;
}
.singleDetail blockquote p {
    font-size: 0.7em;
    margin-top: 0;
}

.singleDetail #gallery-1 {
    margin-top: 1.2em;
}
.singleDetail #gallery-1 .gallery-item {
    margin-top: 0;
}
.singleDetail #gallery-1 img {
    border: 0;
    height: auto;
}

/* -----------------------------------------------------------
    contact
----------------------------------------------------------- */
.ctcBlock01 .inner > p {
    font-size: 0.8em;
    text-align: center;
}

.ctcBlock01 > .btn.textCenter {
    margin-top: 5em;
}

/* ----- telBox ----- */
.telBox {
    display: block;
    color: var(--white);
    text-align: center;
    background: var(--main-color01);
    width: fit-content;
    margin: 2.5em auto 0;
    padding: 2em 4.5em;
    border-radius: 0.75em;
}

.telBox span {
    font-size: 2.5em;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 3px;
    padding-left: 1em;
    position: relative;
}
.telBox span::before {
    content: "";
    width: 0.8em;
    height: auto;
    display: block;
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-40%);
    aspect-ratio: 229 / 150;
    background-color: currentColor;
    --mask: url(img/svg_fdl.svg);
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
    -webkit-mask-image: var(--mask);
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
    mask-image: var(--mask);
    transition: all .3s;
}

.telBox p {
    font-size: 0.9em !important;
}

/* -----------------------------------------------------------
    form
----------------------------------------------------------- */
.form {
    background: var(--bg-color01);
    margin: 4em auto 0;
    max-width: 74em;
    width: calc(100% - 4em);
    border-radius: 1.25em;
    padding: 5em 1em;
}

.form p.caption {
    font-size: 0.9em;
    margin-bottom: 3em;
}
.form p.caption b {
    font-weight: 500;
    color: #da3844;
}

.form .form_text > p, 
.form .form_textarea > p, 
.form .form_checkbox > p {
    display: flex;
    justify-content: space-between;
    gap: 1em;
    margin-bottom: 2.5em;
}

.form .form_checkbox > p {
    flex-direction: column;
}

.form .form_checkbox > p span.wpcf7-list-item {
    display: block;
    font-size: 0.8em;
    margin-left: 0;
}

.form p > label {
    font-size: 0.7em;
    width: 30%;
}

.form p > label > span {
    font-size: 1.5em;
    color: var(--main-color01);
}

.form .form_text > p > label > span, 
.form .form_textarea > p > label > span {
    display: block;
}

.form p > label > span > b {
    font-size: 0.6em;
    font-weight: 500;
    color: #da3844;
    background: var(--white);
    padding: 0 0.6em 1px;
    margin-left: 0.8em;
    border: 1px solid #da3844;
    border-radius: 20px;
}

.form_text .wpcf7-form-control-wrap, 
.form_textarea .wpcf7-form-control-wrap {
    width: 70%;
}

.form_text input, 
.form_textarea textarea {
    font-size: 0.8em;
    width: 100%;
    padding: 10px;
    background: var(--white);
    border-radius: 0.6em;
}
.form_textarea textarea {
    height: 13em;
}

.form_btn input[type="submit"]:disabled {
    opacity: 0.5;
    cursor: default;
}
.form_btn input[type="submit"]:disabled:hover {
    color: var(--white);
    background: var(--main-color01);
}
.form_btn input[type="submit"] {
    font-weight: 500;
    color: var(--white);
    text-align: center;
    width: 20em;
    background: var(--main-color01);
    padding: 1em;
    margin-top: 3em;
    border: 2px solid var(--main-color01);
    border-radius: 50px;
    transition: all 0.3s;
}
.form_btn input[type="submit"]:hover {
    color: var(--main-color01);
    background: var(--white);
}
.form_btn p {
    margin: 0 auto;
    width: fit-content;
    position: relative;
}
.form_btn p > span {
    display: none;
}

.form .cautionBox {
    text-align: center;
    margin-top: 6em;
}
.form .cautionBox > p {
    font-size: 0.8em;
}
.form .cautionBox > p a {
    color: #da3844;
    transition: all 0.3s;
}
.form .cautionBox > p a:hover {
    opacity: 0.7;
}
.form .cautionBox > p > span {
    display: block;
    font-size: 1.25em;
    margin-top: 1em;
}
.form .cautionBox > p > span span.wpcf7-list-item {
    margin-left: 0;
}

.wpcf7-not-valid-tip {
    font-size: 0.8em;
}

/* -----------------------------------------------------------
    sent
----------------------------------------------------------- */
.sentBlock p {
    font-size: 0.8em;
    text-align: center;
}

/* -----------------------------------------------------------
    sitepolicy
----------------------------------------------------------- */
#sitepolicy #main .inBox {
    padding-bottom: 2.5em;
    margin-bottom: 2.5em;
    border-bottom: 1px solid var(--main-color01);
}

#sitepolicy #main .inBox:last-of-type {
    padding-bottom: 0;
    margin-bottom: 0;
    border-bottom: none;
}

#sitepolicy #main .inBox h2 {
    font-size: 1.25em;
    color: var(--main-color01);
    margin-bottom: 1.5em;
}

#sitepolicy #main .inBox h3 {
    font-size: 1em;
    color: var(--main-color01);
    margin: 2.5em 0 0.5em;
}

#sitepolicy #main .inBox ul li {
    font-size: 0.9em;
    text-indent: -1em;
    padding-left: 1em;
}
#sitepolicy #main .inBox ul li + li {
    margin-top: 1em;
}
#sitepolicy #main .inBox ul li::before {
    content: "・";
}

#sitepolicy #main .inBox p + ul {
    margin-top: 2em;
}

#sitepolicy #main .inBox p {
    font-size: 0.9em;
}
#sitepolicy #main .inBox p a {
    color: var(--main-color02);
    transition: all 0.3s;
}
#sitepolicy #main .inBox p a:hover {
    opacity: 0.7;
}

#sitepolicy #main .inBox .flex {
    flex-wrap: wrap;
    gap: 2em;
    margin-top: 2em;
}

#sitepolicy #main .inBox .flex > p {
    background: var(--main-color01);
    color: var(--white);
    padding: 1em 2em;
    width: 20em;
    border-radius: 0.7em;
}

#sitepolicy #main .inBox .flex > p span {
    display: block;
    font-size: 1.2em;
    font-weight: 500;
}

#sitepolicy #main .btn {
    margin-top: 4em;
}

/* -----------------------------------------------------------
    footer
----------------------------------------------------------- */
footer {
    color: var(--main-color01);
    background: var(--bg-color01);
    border-top-right-radius: 10em;
}
#top footer, 
#company footer {
    margin-top: -10em;
}

.footerContact {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 4em 0;
    border-bottom: 1px solid var(--main-color01);
}
.footerContact .tl_popup01 {
    margin-bottom: 1.5em;
}
.footerContact p {
    font-size: 0.8em;
}

.footerMenu {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding: 4em 0;
}
.footerMenu a {
    transition: all 0.3s;
}
.footerMenu a:hover {
    opacity: 0.7;
}

.footerAdd .ftrLogo {
    display: block;
    max-width: 19.5em;
    margin-bottom: 1.5em;
}
.footerAdd p {
    font-size: 0.8em;
}

.footerMenuList {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0.5em 2em;
    max-width: 19em;
}
.footerMenuList li a {
    display: flex;
    font-size: 0.8em;
    white-space: nowrap;
}

.page-top {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 2em;
}
.page-top a {
    font-size: 0.8em;
    text-align: center;
    transition: all 0.3s;
}
.page-top a:hover {
    opacity: 0.7;
}

.page-top a:last-child {
    font-weight: 700;
}
.page-top a:last-child::before {
    content: "";
    display: block;
    width: 3em;
    height: 3em;
    background: url(img/ico_pageTop.png) no-repeat center / cover;
}

.copyRight {
    font-size: 0.6em;
    padding-bottom: 3em;
}


@media screen and (max-width: 767px) {
    body {
        line-height: 1.5;
    }

    .spblock {
        display: block;
    }
    .spcut {
        display: none;
    }

    section, 
    article {
        padding: 50px 0;
    }

    p {
        font-size: 16px;
    }

    .inner {
        max-width: 100%;
        padding: 0 20px;
    }

    #cornerName {
        padding: 50px 0;
    }

    .tl_popup01 {
        margin-bottom: 30px;
    }
    .tl_popup01 span {
        font-size: 22px;
    }
    .tl_popup01 small {
        font-size: 16px;
    }

    .btn a {
        font-size: 16px;
        width: 100%;
    }

    .telLink {
        pointer-events: auto;
    }

    #top .topicsList {
        padding: 0 20px;
    }
    #top .topicsList .wide_lg .inner {
        padding: 30px 20px;
    }
    .topicsList .inner > p {
        font-size: 16px;
        margin-bottom: 30px;
    }
    .topicsList ul {
        margin-bottom: 20px;
    }
    .topicsList ul li {
        display: block;
        font-size: 16px;
        padding: 20px 0;
    }
    .topicsList ul li time {
        font-size: 14px;
    }
    #top .topicsList .btn {
        position: static;
        margin-top: 20px;
    }

    .topicsCategory h3 {
        font-size: 18px;
    }
    .topicsCategory .cats {
        padding-left: 0;
        margin: 10px 0 30px;
    }
    .topicsCategory .cats .cat {
        font-size: 14px;
    }
    
    .cats {
        padding-left: 80px;
        margin: -27px 0 10px 0;
    }
    .cats .cat {
        font-size: 14px;
        padding: 5px 20px;
    }

    #topics .wp-pagenavi {
        margin: 20px 0 40px;
    }
    .wp-pagenavi a, 
    .wp-pagenavi span {
        font-size: 16px;
        line-height: 38px;
        width: 40px;
        height: 40px;
    }
    .nextpostslink::after, 
    .previouspostslink::after {
        width: 7px;
    }

    body#topics.single .topicsList h2 {
        font-size: 20px;
    }

    .singleTopics .inner {
        max-width: 100%;
        padding: 0 20px;
    }
    .singleTopics .singleTitle time {
        font-size: 14px;
    }
    .singleTopics .singleTitle .cats {
        padding-left: 0;
        margin: 0;
    }
    .singleTopics .singleTitle .cats .cat {
        font-size: 14px;
    }
    .singleTopics .singleTitle h2 {
        font-size: 18px;
    }
    .singleDetail p {
        font-size: 16px;
        overflow-wrap: anywhere;
    }
    .singleTopics .btn {
        margin-top: 40px;
    }
    .singleTopics .btn a {
        width: calc(100% - 40px);
    }

    .singleDetail ul {
        margin-top: 24px;
        line-height: 1.8;
    }
    .singleDetail ul li {
        font-size: 16px;
    }
    .singleDetail ul li::before {
        top: 0.7em;
    }
    .singleDetail ol {
        margin-top: 24px;
        line-height: 1.8;
    }
    .singleDetail ol li {
        font-size: 16px;
    }
    .singleDetail ol li::before {
        top: 0.2em;
    }
    .singleDetail blockquote {
        padding: 20px;
        margin-top: 24px;
    }
    .singleDetail blockquote p {
        font-size: 14px;
    }
    .singleDetail #gallery-1 {
        margin-top: 24px;
    }

    .menuBtn {
        display: block;
        position: absolute;
        top: 11px;
        right: 20px;
        width: 40px;
        height: 40px;
        background: var(--main-color01);
        border: none;
        z-index: 1000;
        cursor: pointer;
        transition: 0.3s ease;
    }
    .menuBtn .btn-line,
    .menuBtn .btn-line::before,
    .menuBtn .btn-line::after {
        content: "";
        position: absolute;
        width: 24px;
        height: 2px;
        background: var(--white);
        transition: 0.3s ease;
    }
    .menuBtn .btn-line {
        inset: 50% 0 auto 0;
        transform: translateY(-50%);
        margin: 0 auto;
    }
    .menuBtn .btn-line::before {
        top: -8px;
    }
    .menuBtn .btn-line::after {
        top: 8px;
    }
    .menuBtn.active {
        background: var(--white);
    }
    .menuBtn.active .btn-line {
        background: transparent;
    }
    .menuBtn.active .btn-line::before {
        top: 0;
        transform: rotate(45deg);
        background: var(--main-color01);
    }
    .menuBtn.active .btn-line::after {
        top: 0;
        transform: rotate(-45deg);
        background: var(--main-color01);
    }
    
    header .boxL h1 {
        width: 200px;
    }

    header > .wide_lg {
        padding: 20px;
    }
    header .boxR {
        position: fixed;
        top: 0;
        right: -100%;
        width: 100%;
        height: 100vh;
        background: rgba(42, 98, 174, 0.95);
        padding: 150px 20px;
        transition: 0.4s ease;
        z-index: 1000;
        overflow-y: auto;
        flex-direction: column;
    }
    header .boxR.open {
        right: 0;
    }
    header .boxR .menu {
        gap: 20px;
        align-items: center;
    }
    header .boxR .menu .tel {
        font-size: 20px;
        color: var(--white);
    }
    header .boxR .menu .tel::before {
        width: 20px;
    }
    header .boxR ul {
        flex-direction: column;
        gap: 0;
    }
    header .boxR > ul > li {
        padding: 20px 0;
        border-bottom: 1px solid var(--white);
        width: 100%;
    }
    header .boxR ul li a {
        font-size: 16px;
        color: var(--white);
    }
    header .boxR ul li a:hover {
        color: var(--white);
    }
    header .boxR .contact a {
        font-size: 16px;
        padding: 15px 30px;
    }


    .mainv .wide_lg {
        flex-direction: column-reverse;
    }
    .mainv .slogan {
        width: 100%;
        margin: 0 auto;
    }
    .mainv .slogan p span {
        display: block;
        font-size: 14px;
        text-align: center;
    }
    .mainv .slogan h2 {
        font-size: 22px;
        margin: 10px 0 20px;
    }
    .mainv .slogan h2 b {
        font-size: 26px;
    }
    .mainv figure {
        width: 100%;
    }

    .mainvBtn {
        width: 100px;
        height: 100px;
        right: 10px;
    }
    .mainvBtn::before {
        width: 90px;
        height: 90px;
    }
    .mainvBtn p {
        font-size: 12px;
    }


    .topBlock02 {
        margin-top: -50px;
        padding-bottom: 100px;
    }
    .topBlock02 h2 {
        font-size: 20px;
        margin-bottom: 30px;
    }
    .topBlock02 .inner > p {
        font-size: 16px;
        text-align: left;
    }
    .topBlock02 ul {
        gap: 10px;
    }
    .topBlock02 ul li {
        width: calc((100% - 10px) / 2);
    }
    .topBlock02 ul li p {
        font-size: 12px;
    }
    .topBlock02 .bg_text {
        font-size: 57px;
    }


    .topBlock03 .tl_popup01 {
        margin-bottom: 30px;
    }
    .topBlock03 .flex {
        flex-direction: column;
        gap: 30px;
    }
    .topBlock03 .flex .inBox p {
        font-size: 16px;
    }
    .topBlock03 .flex figure {
        width: 80%;
    }

    .topBlock03 ul {
        flex-direction: column;
        padding: 30px 20px 20px;
    }
    .topBlock03 ul::before {
        font-size: 14px;
        padding: 5px 20px;
    }
    .topBlock03 ul li {
        text-align: left;
        width: 100%;
        padding-bottom: 10px;
        margin-bottom: 10px;
        border-right: 0;
        border-bottom: 1px solid #606060;
    }
    .topBlock03 ul li:last-child {
        padding-bottom: 0;
        margin-bottom: 0;
        border-bottom: 0;
    }


    .topBlock04 p {
        font-size: 16px;
        text-align: left;
    }
    .topBlock04 ol li {
        filter: drop-shadow(0 0 5px rgba(31, 85, 122, 0.25));
    }
    .topBlock04 ol li p {
        font-size: 12px;
    }


    .topBlock05 figure {
        left: auto;
        right: 20px;
    }
    .topBlock05 .faq div {
        padding: 10px 35px 10px 20px;
    }
    .topBlock05 .faq dt {
        font-size: 14px;
    }
    .topBlock05 .faq dt::before,
    .topBlock05 .faq dt::after {
        width: 15px;
        right: -20px;
    }
    .topBlock05 .faq dd p {
        font-size: 14px;
        margin-top: 10px;
    }


    .topBlock06 {
        background-position: right bottom 10%;
    }
    .topBlock06 .tl_popup01 {
        margin-bottom: 30px;
    }
    .topBlock06 .inBox {
        width: 100%;
    }
    .topBlock06 .slider {
        width: 100%;
        margin-bottom: 30px;
    }
    .topBlock06 .inBox p {
        font-size: 16px;
    }


    .coBlock01 .tl_popup01 {
        margin-bottom: 30px;
    }
    .coBlock01 .inBox p {
        font-size: 16px;
        text-align: left;
    }
    .coBlock01 .inBox p.ceoName {
        font-size: 16px;
    }
    .coBlock01 .inBox p.ceoName span {
        font-size: 20px;
    }

    .coBlock02 figure {
        margin-bottom: 40px;
    }
    .coBlock02 .tl_popup01 {
        margin-bottom: 15px;
    }
    .coBlock02 table th, 
    .coBlock02 table td {
        font-size: 16px;
        padding: 15px 0;
    }
    .coBlock02 table th {
        width: 30%;
    }
    .coBlock02 table td {
        width: 70%;
    }

    .coBlock03 .tl_popup01 {
        margin-bottom: 30px;
    }
    .coBlock03 .inBox .flex {
        flex-direction: column;
        gap: 20px;
        margin: 30px 0 20px;
        padding-bottom: 20px;
    }
    .coBlock03 iframe {
        height: 300px;
    }
    .coBlock03 .inBox .flex p {
        font-size: 14px;
    }
    .coBlock03 .inBox .flex p span {
        font-size: 18px;
    }

    
    .ctcBlock01 .inner > p {
        font-size: 16px;
        text-align: left;
    }
    .ctcBlock01 > .btn.textCenter {
        margin: 40px auto 0;
        width: calc(100% - 40px);
    }

    .telBox p {
        font-size: 14px !important;
        margin-top: 5px;
    }


    .form {
        padding: 30px 0;
    }
    .form p.caption {
        font-size: 14px;
        margin-bottom: 30px;
    }
    .form p {
        flex-direction: column;
        gap: 10px;
    }
    .form p span {
        font-size: 16px;
    }
    .form p > label {
        width: 100%;
        font-size: 14px;
    }
    .form p > label > span {
        font-size: 18px;
    }
    .form p > label > span > b {
        font-size: 12px;
    }
    .form .form_text > p, 
    .form .form_textarea > p, 
    .form .form_checkbox > p {
        margin-bottom: 20px;
    }
    .form_text input, 
    .form_textarea textarea {
        font-size: 16px;
    }
    .form_text .wpcf7-form-control-wrap, 
    .form_textarea .wpcf7-form-control-wrap {
        width: 100%;
    }

    .form .cautionBox {
        margin-top: 30px;
    }
    .form .cautionBox > p {
        font-size: 14px;
    }

    .form_btn p {
        width: 100%;
    }
    .form_btn input[type="submit"] {
        margin-top: 30px;
        width: 100%;
    }


    .sentBlock p {
        font-size: 16px;
    }


    #sitepolicy #main .inBox {
        padding-bottom: 30px;
        margin-bottom: 30px;
    }
    #sitepolicy #main .inBox h2 {
        font-size: 20px;
    }
    #sitepolicy #main .inBox h3 {
        font-size: 18px;
        margin: 30px 0 10px;
    }
    #sitepolicy #main .inBox p {
        font-size: 16px;
    }
    #sitepolicy #main .inBox ul li {
        font-size: 16px;
    }
    #sitepolicy #main .inBox .flex {
        gap: 10px;
    }
    #sitepolicy #main .inBox .flex > p {
        font-size: 14px;
        width: 100%;
    }
    #sitepolicy #main .inBox .flex > p span {
        font-size: 16px;
    }
    #sitepolicy #main .btn {
        width: calc(100% - 40px);
        margin: 40px auto 0;
    }


    .footerContact {
        flex-direction: column;
        align-items: stretch;
    }
    .footerContact .tl_popup01 {
        margin-bottom: 30px;
    }
    .footerContact p {
        font-size: 16px;
    }
    .footerContact .btn {
        margin-top: 30px;
    }

    .footerMenu {
        flex-direction: column;
        gap: 30px;
    }
    .footerAdd p {
        font-size: 16px;
    }
    .footerMenuList {
        flex-direction: column;
        gap: 10px;
    }
    .footerMenuList li a {
        font-size: 16px;
    }

    .page-top a {
        font-size: 14px;
    }
    .copyRight {
        font-size: 12px;
        padding: 80px 0 40px;
    }
}