@charset "UTF-8";
* {
    box-sizing:border-box;
	font-size: 100%;
	font-weight: normal;
	margin: 0px;
	padding: 0px;
    -webkit-box-sizing:border-box;
    -moz-box-sizing:border-box;
}
* {
    -webkit-touch-callout:none;
  }

html {
	font-size: 62.5%;
    font-size: calc(100vw * 16 / 375);
    height: 100%;
}
html.locked {
  overflow: hidden;
  height: 100%;
}
@media screen and (min-width: 1440px) {
    html {
        font-size: calc(100vw * 50 / 1440);
    }
}

body {
    color: #0c0c0c;
    font-size: 16px;
    font-weight: 500;
    font-feature-settings: "palt";
	font-variant-ligatures: no-common-ligatures;
	font-family: "Noto Sans JP", "游ゴシック", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo";
	-moz-font-feature-settings: "palt";
	line-height: 1.5;
	letter-spacing: 0.1em;
	position: relative;
    text-align: center;
	width: 100%;
}
.font-Inter {
  font-family: "Ubuntu", sans-serif;
  font-weight: 700;
  font-style: normal;
}
img,
picture {
	border: none;
	height: auto;
	max-width: 100%;
	margin: 0px;
	padding: 0px;
    vertical-align: top;
}
a img {
	border: none;
}
/*
a:hover img {
    opacity: 0.8;
*/
h1,
h2,
h3,
h4 {
    font-weight: bold;
}
a:link,
a:visited {
    color: #0c0c0c;
    text-decoration: none;
}
ul, li  {
    list-style: none;
    margin: 0;
    padding: 0;
}
.sp-only { display: none }
.flex {
    align-items: center;
    display: flex;
    justify-content: center;
}
.txt {
    text-align: left;
}
.em,
.strong,
strong,
span {
    font-weight: 700;
}
.btn-wrap {
    margin: 60px auto 80px;
    text-align: center;
}
a.btn {
    align-items: center;
    border-radius: 50vw;
    background: #18415c;
    color: #fff;
    display: flex;
    line-height: 1.1;
    font-size: 22px;
    font-weight: 500;
    padding: 10px 0 10px 10px;
    position: relative;
    transition: 0.3s ease-in-out;
    width: 350px;
}
a.btn::after {
	border-top: 2px solid #fff;
	border-right: 2px solid #fff;
	content: " ";
	height: 8px;
	position: absolute;
    right: 22px;
	top: calc( 50% - 4px);
    transform: rotate(45deg);
    transition: 0.3s ease-in-out;
	width: 8px;
}
a.btn:hover:after {
    right: 18px;
}
a.btn.reverse {
    background: #fff;
    color: #18415c;
}
.btn-wrap a.btn {
    background: #18415c;
    color: #fff;
    margin: 10px auto;
    width: 430px;
}

.badge {
    border-radius: 50vw;
    background: #fdc250;
    color: #18415c;
    font-size: 12px;
    height: 55px;
    left: 0;
    margin-right: 20px;
    padding: 17px 0 0 2px;
    position: relative;
    text-align: center;
    width: 55px;
}
.badge .em {
    font-size: 18px;
    display: block;
}
.wrapper {
  overflow: hidden;
}
.mb {
    margin-bottom: 50px;
}
@media screen and (max-width: 768px) {
    body {
        line-height: 1.3;
    }
    .sp-only {
        display: block
        }
    .pc {
        display: none;
        visibility: hidden;
    }
    .flex {
        display: block;
    }
    .mb {
        margin-bottom: 0;
    }
    a.btn {
        font-size: 18px;
        width: 100%;
    }
    .badge {
        margin-right: 35px;
    }
    .MV .badge {
        margin-right: 50px;
    }
}
@media screen and (max-width: 375px) {
    a.btn {
        font-size: 16px;
    }
    .badge {
        margin-right: 15px;
    }
    .MV .badge {
        margin-right: 40px;
    }
}
#works.--bg-grada,
#details,
#adviser,
#consult,
#faq {
    margin-top: -100px;
    padding-top: 100px;
}


/* ---------------------------------

HEADER
	
--------------------------------- */
h1 {
  max-width: 340px;
}
header {
    align-items: center;
    background: #fff;
    box-shadow: 0 2px 5px rgb(0, 0, 0, .2);
    display: flex;
    height: 80px;
    justify-content: space-between;
    left: 0;
    margin: 0 auto;
    padding: 0 40px;
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 100;
}
header ul {
    align-items: center;
    display: flex;
    justify-content: end;
    margin: 30px 0;
}
header ul li {
    margin-left: 50px;
}

header ul li a {
    color: #0c0c0c;
    font-family: Ubuntu;
    font-size: 16px;
    font-weight: 700;
}
.nav {
    flex-shrink: 0;
}

.nav a.btn {
    display: none;
}
@media screen and (max-width: 1200px) {
    header {
        padding: 0 20px;
    }
    header ul li {
        margin-left: 30px;
    }
    header ul li a {
        font-size: 15px;
        letter-spacing: 0.2px;
    }
}
@media screen and (max-width: 980px) {
    header ul li a {
        font-size: 13px;
    }
    header ul li {
        margin-left: 20px;
    }
}
@media screen and (max-width: 768px) {
    h1 {
    width: 230px;
    }
    header {
        height: 60px;
        padding: 0 10px;
    }
    /* Menu */
    .nav {
        background-color: hsla(0, 0%, 97%, 1);
        bottom: 0;
        display: none;
        height: 100vh;
        left: 0;
        opacity: 0;
        padding: 50px 1.5rem 0;
        position: fixed;
        right: 0;
        top: -100%;
        transform: translateY(100%);
        transition: ease .4s;
        width: 100vw;
    }
    .nav.active {
        display: block;
        opacity: 1;
        margin-top: 65px;
        transform: translateY(100%);
        z-index: 1;
    }
    header ul {
        display: none
    }
        header ul li {
        margin-left: 0;
    }

    header ul li a {
        border-bottom: 1px solid #0c0c0c;
        display: block;
        font-size: 13px;
        padding: 30px 0;
    }
    header ul li a {
        font-size: 16px;
    }
    header .nav.active ul {
        display: block;
        margin: 0 0 50px;
    }
    .nav a.btn {
        display: flex
    }
    .MV .nav a.btn .badge {
        margin-right: 40px;
    }
}
.hamburger {
    display: none;
}
@media screen and (max-width: 768px) {
    .hamburger {
        background: #18415c;
        border-color: transparent;
        display: block;
        height: 60px;
        padding: 0 18px;
        position: absolute;
        right: 0;
        top: 0;
        width: 60px;
        z-index: 555;
    }
    .hamburger:hover {
        opacity: 1;
    }
    .hamburger::after {
        display: block;
        content: "";
        color: #fff;
        font-size: 8px;
        font-weight: 500;
        margin-left: -2px;
    }
    .hamburger span {
        height: 2px;
        background-color: #fff;
        position: relative;
        transition: ease .4s;
        display: block;
    }
    .hamburger span:nth-child(1) {
        top: 0px;
    }
    .hamburger span:nth-child(2) {
        margin: 5px 0;
    }
    .hamburger span:nth-child(3) {
        top: 0px;
    }
    .hamburger.active span:nth-child(1) {
        top: 5px;
        transform: rotate(45deg);
    }
    .hamburger.active span:nth-child(2) {
        opacity: 0;
    }
    .hamburger.active span:nth-child(3) {
        top: -9px;
        transform: rotate(-45deg);
    }
}

/* ---------------------------------

MV
	
--------------------------------- */
.MV {
    background: #f6f6f6;
    position: relative;
    min-height: 100vh;
    margin-bottom: 80px;
    max-height: 800px;
    top: 80px;
}
.MV .txt {
    padding: 50px 0;
    position: relative;
    text-align: left;
    z-index: 1;
}
.MV .txt strong {
    color: #18415c;
    font-size: 65px;
}
.tape {
    background-color: #0c0c0c;
    color: #fff;
    padding: 10px 0;
}
.MV .wrap-tape {
    font-weight: 700;
    margin-bottom: 40px;
    text-align: center;
    width: 600px;
}
.tagline {
    font-size: 32px;
    font-weight: 700;
}
.tagline .em {
    font-size: 34px;
}
.tagline .strong {
    color: #ed9c33;
    font-size: 37px;
}
.MV ul {
    align-items: center;
    display: flex;
    margin: 35px 0;
}
.MV ul li {
    align-items: center;
    border: 1px solid #18415c;
    border-radius: 50vw;
    background: rgba(255, 255, 255, 0.8);
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    font-weight: 700;
    height: 165px;
    justify-content: center;
    margin-right: 20px;
    text-align: center;
    width: 165px;
}
.MV ul li span {
    display: block;
    height: 30px;
    font-size: 22px;
    line-height: 1;
}
.MV ul li i {
    display: inline-block;
    font-size: 42px;
    font-style: normal;
    font-weight: 700;
    padding-top: 5px;
}
.MV ul li:nth-of-type(2) {
    justify-content: space-around
}
.MV ul li span.em {
    top: -45px;
    font-size: 42px;
    position: relative;
}
.MV picture {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: 100%;
    z-index: 0;
}
.MV picture img {
    display: block;
    position: absolute;
    right: 0;
    bottom: 0;
    height: 100%;
}
@media screen and (max-width:1300px) {
    .MV {
        margin-bottom: 60px;
        top: 60px;
    }
    .MV picture img {
        object-fit: cover;
        position: relative;
        width: 100%;
    }
    .MV .txt {
        padding: 50px 0 50px 20px;
    }
}
@media screen and (max-width:768px) {
    .MV {
        min-height: 88vh;
    }
    .MV .txt {
        line-height: 1.6;
        min-height: 85vh;
        padding: 10px 0;
        position: relative;
        z-index: 2;
    }
    .MV .txt strong {
        font-size: 31px;
        display: block;
        padding-top: 15px;
    }
    .MV .wrap-tape {
        margin-bottom: 20px;
        width: 100%;
    }
    .tape {
        padding: 3px 0;
    }
    .tape + p {
        font-weight: 700;
        font-size: 10px;
        letter-spacing: 0.5px;
        margin-top: 5px;
    }
    .tagline {
        font-size: 16px;
        font-weight: 700;
    }
    .tagline .strong {
        font-size: 18px;
    }
    .tagline .em {
        font-size: 15px;
    }
    .MV ul {
        margin: 235px 0 30px;
        justify-content: space-evenly;
    }
    .MV ul li {
        font-size: 13px;
        letter-spacing: 0.5px;
        height: 125px;
        margin-right: 0;
        width: 125px;
    }
    .MV ul li i {
        font-size: 30px;
    }
    .MV ul li span.em {
    top: -25px;
    font-size: 30px;
    }
    .MV ul li span {
        font-size: 16px;
        height: 25px;
    }
    .MV .panel {
        bottom: 0;
        position: absolute;
        width: 100%;
    }
}
@media screen and (max-width: 390px) {
    .MV {
        min-height: 100vh;
    }
    .MV .txt {
        min-height: 95vh;
    }
    .MV ul li {
        height: 110px;
        width: 110px;
    }
    .tagline{
        letter-spacing: 0.5px;
    }
}
@media screen and (max-width: 375px) {
    .MV {
        min-height: 100vh;
    }

}
/* ---------------------------------

CONTENTS
	
--------------------------------- */
.inner {
    margin: 0 auto;
    max-width: 1200px;
    padding: 65px 0;
    position: relative;
}
.inner.-w980 {
    max-width: 980px;
}
.inner.-w980 + .inner {
    margin-top: -65px;
    padding-top: 0;
}
.--bg01 {
    background: #f1f5f9;
}
.--bg02 {
    background: #bcd9f1;
}
.--bg-grada {
	background: #e8f8d7;
	background: linear-gradient(130deg, #dbeafd 0%, #f3f3d5 50%, #e8f8d7 100%);
}

.--bg-grada02 {
	background: #e8f8d7;
	background: linear-gradient(130deg, #19425d 0%, #246e9e 100%);
    padding-top: 100px;
    position: relative;
}
.ttl {
    font-weight: 700;
    position: relative;
}
.MV .inner {
    padding: 0;
}
h2 {
    font-size: 38px;
    font-weight: 700;
}
.introduction h2 {
    font-size: 48px;
}
.bubble {
	background: #18415c;
	color: #fff;
    font-weight: 500;
    margin: 0 auto;
    padding: 10px 0;
	position: relative;
    text-align: center;
    width: 100px;
}
.bubble::before {
	border-style: solid;
	border-width: 10px 8px 0 8px;
	border-color: #18415c transparent transparent transparent;
	content: " ";
	left: calc( 50% - 10px);
	height: 0;
	position: absolute;
	bottom: -9px;
	width: 0;
}
.bubble.voice {
	background: #bcd9f1;
    border: 3px solid #18415c;
	color: #18415c;
    margin-bottom: initial;
}
.bubble.voice::before {
	border-color: #18415c transparent transparent transparent;
	bottom: -10px;
}
.bubble.voice::after {
	border-style: solid;
	border-width: 10px 8px 0 8px;
	border-color: #bcd9f1 transparent transparent transparent;
	content: " ";
	left: calc( 50% - 10px);
	height: 0;
	position: absolute;
	bottom: -6px;
	width: 0;
    z-index: 1;
}
.ttl-wrap h2 {
    font-size: 38px;
    font-weight: 700;
    padding: 30px 0;
    text-align: center;
}
.ttl-wrap .ttl.slash + h2 {
    font-size: 34px;
}
.ttl-wrap h2 span {
    color: #18415c;
    display: inline-block;
    position: relative;
}
.ttl-wrap h2 span::after {
    background: #18415c;
    bottom: -3px;
    content: "";
    display: block;
    height: 4px;
    position: relative;
    width: 100%;
}
.ttl-wrap + .txt {
    font-size: 24px;
    font-weight: 700;
    padding: 30px 0;
    text-align: center;
}
.introduction ul  {
    align-items: center;
    display: flex;
    margin: 35px auto;
    justify-content: center;
    position: relative;
}
.introduction ul li {
    align-items: center;
    background: url(../images/Ellipse.webp) no-repeat;
    background-size: contain;
    color: #18415c;
    display: flex;
    flex-wrap: wrap;
    font-size: 35px;
    font-weight: 700;
    height: 250px;
    justify-content: center;
    line-height: 1;
    margin-right: 20px;
    text-align: center;
    width: 250px;
}
.introduction ul li span {
    display: inline-block;
    font-size: 26px;
    padding-top: 10px;
}

.introduction ul  li:nth-last-of-type(2) {
    position: relative;
    top: 30px;
}
.col3 {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 20px;
}
.--bg-grada .col3 {
    gap: 10px;
}
.col3 .card {
    background: #fff;
    padding: 0;
    text-align: left;
}
.col3 .card .name {
    color: #18415c;
    font-size: 22px;
    font-weight: 700;
    letter-spacing: 0.5px;
    padding: 30px 0 0 28px;
}
.col3 .card .name span {
    font-size: 16px;
}
.col3 .card .txt {
    font-size: 16px;
    padding: 30px;
}
.col3 .card .txt {
    font-size: 16px;
    line-height: 1.8;
    padding: 30px;
}
@media screen and (max-width: 1220px) {
    .inner {
        padding: 65px 20px;
    }
}
@media screen and (max-width: 768px) {
    .inner {
        padding: 50px 10px;
    }
    .MV .inner {
        padding: 18px;
    }
    .MV .inner::after {
        background: rgba(255, 255, 255, 0.5);
        content: "";
        display: block;
        height: 235px;
        left: 0;
        position: absolute;
        top: 0;
        z-index: 1;
        width: 100%;
    }
    .bubble {
        font-size: 14px;
        padding: 6px 0;
        width: 80px;
    }
    .introduction ul {
        justify-content: space-between;
    }
    .introduction ul li {
        background-position: bottom;
        font-size: 20px;
        height: 133px;
        margin-right: initial;
        padding-bottom: 10px;
    }
    .introduction ul li span {
        font-size: 14px;
        padding-top: 6px;
    }
    h2 {
        font-size: 22px;
    }
    .introduction h2,
    .ttl-wrap h2,
    .ttl-wrap .ttl.slash + h2 {
        font-size: 22px;
    }
    .ttl-wrap h2 {
        padding-top: 20px;
    }
    .ttl-wrap + .txt {
        font-size: 20px;
        padding: 0 0 30px;
    }
    .col3 {
        display: block;
    }
    .card {
        margin-bottom: 30px;
    }
    .col3 .card .image {
        display: block;
        padding: 20px 20px 0;
    }
    .col3 .card .name {
        font-size: 20px;
        padding: 30px 0 0 28px;
    }
    .--bg-grada02 {
        background: linear-gradient(100deg, #19425d 0%, #246e9e 100%);
        padding-top: 50px;
    }
    .bubble.voice {
        margin-bottom: 0px;
    }
}
@media screen and (max-width: 375px) {
    .MV .inner {
        padding: 15px;
    }
    .introduction ul li {
        padding-bottom: 0;
    }
}
.--bg-grada h2 .em {
    font-size: 66px;
}
.--bg-grada .txt,
.--bg-grada .lead {
    background: hsla(0, 0%, 100%, 0.3);
    padding: 30px 90px;
    text-align: left;
}
.--bg-grada .col2 .txt {
    padding: 30px;
}
.--bg-grada .col3 .txt {
    padding: 30px 20px;
}
.--bg-grada .txt p {
    font-size: 16px;
    line-height: 2;
    padding-bottom: 20px;
}
.ttl.slash {
    display: inline-block;
    font-size: 38px;
        padding-bottom: 20px;
}
.ttl.slash span {
    display: inline-block;
    font-size: 48px;
}
.slash::before,
.slash::after {
    background: #0c0c0c;
    content: " ";
    height: 2px;
    left: -50px;
    position: absolute;
    top: 42%;
    transform: rotate(65deg);
    width: 52px;
}
.slash:after {
	transform: rotate(-65deg);
	right: -50px;
	left: initial
}

.ttl.slash span::before {
    background: url(../images/icon-arrow.png) no-repeat 50% 100%;
    background-size: 80px;
    bottom: -20px;
    content: "";
    display: block;
    left: 41.5%;
    min-height: 30px;
    position: absolute;
    width: 80px;    
}
.voice-card {
    background: #fff;
    padding: 40px 90px;
    text-align: left;
}
.voice-card .ttl-wrap {
    border-bottom: 1px solid #0c0c0c;
    padding-bottom: 15px;
}
.voice-card .ttl {
    color: #18415c;
    font-size: 32px;
    padding-bottom: 10px;
}
.voice-card .ttl-wrap p {
    font-size: 16px;
}
.voice-card .voice-inner {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 30px;
    margin-top: 35px;
}
.voice-card .voice-inner .txt {
    line-height: 1.8;
}
.col2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}
.col2 .txt h3,
.col3 .txt h3 {
    font-size: 20px;
    font-weight: 700;
    letter-spacing: 0.5px;
    padding: 0 auto 30px;
    text-align: center;
}
.lead + .ttl {
    font-size: 30px;
    font-weight: 700;
    padding: 40px 0 25px;
}
ul.check {
    font-size: 16px;
    padding: 30px 0 0;
}
ul.check li { 
    background: url(../images/check.png) no-repeat 0 6px;
    background-size: 16px;
    font-weight: 500;
    letter-spacing: 0.5px;
    padding: 0 0 15px 25px;
    position: relative;
}
.results {
    font-size: 18px;
    font-weight: 700;
    line-height: 2;
    padding: 50px 0 0;
}
@media screen and (max-width: 768px) {
    .--bg-grada h2 .em {
        font-size: 40px;
    }
    .--bg-grada .txt,
    .--bg-grada .lead {
        margin-bottom: 30px;
        padding: 30px;
    }
    .lead + .ttl {
        font-size: 24px;
        padding: 0px 0 25px;
    }
    .ttl.slash {
        font-size: 22px;
    }
    .ttl.slash span {
        font-size: 30px;
        letter-spacing: 0.5px;
    }
    .slash::before,
    .slash::after {
        top: 38%;
        left: -22px;
        width: 30px;
    }
    .slash:after {
        left: initial;
        right: -22px;
    }
    .ttl.slash span::before {
        bottom: -10px;
        left: calc( 50% - 40px);
    }
    .col2 .txt h3,
    .col3 .txt h3 {
        font-size: 18px;
        padding: 0 auto 20px;
    }
    .col2 {
        display: block;
    }
    .voice-card .voice-inner {
        display: block;
        margin-top: 35px;
    }
    .voice-card {
        padding: 20px;
    }
    .voice-card .ttl {
        font-size: 18px;
    }
    .voice-card .ttl-wrap p {
        font-size: 14px;
    }
    .voice-card .image {
        display: block;
        margin: 0 auto 30px;
        width: 60%;
    }
    .voice-card .txt {
        line-height: 2;
        padding-bottom: 20px;
    }
    .results {
        font-size: 16px;
        line-height: 1.8;
        padding: 20px 0 0;
    }
}

.--bg-grada02::before {
    background: #bcd9f1;
    clip-path: polygon(100% 0, 0 0, 50% 100%);
    content: "";
    display: block;
	left: 0;
	height: 100px;
	position: absolute;
	top: 0;
	width: 100%;
    z-index: 1;
}
.--bg-grada02 h2 {
    color: #fff;
}
.ttl-border {
    border: 2px solid #fff;
    color: #fff;
    font-size: 38px;
    margin: 30px auto;
    padding: 3px 0;
}
.ttl-border span,
.--bg-grada02 h3 span {
    color: hsla(44, 93%, 64%, 1);
}
.--bg-grada02 h3 {
    color: #fff;
    font-size: 28px;
    padding-bottom: 40px;
}
.--bg-grada02 h3 span {
    font-size: 1.3em;
}
.--bg-grada02 h3 .em {
    font-size: 52px;
}
.--bg-grada02 .card {
    align-items: center;
    background: #fff;
    display: grid;
    grid-template-columns: 1fr 100px;
    padding: 50px;
}
.--bg-grada02 .card .txt .ttl {
    color: #18415c;
    font-size: 24px;
    padding-bottom: 10px;
}
.--bg-grada02 .card .txt p {
    letter-spacing: 0.5px;
    line-height: 1.8;
}
.--bg-grada02 .card .txt p img {
    display: block;
    width: 90%;
    max-width: 300px;
}
.--bg-grada02 .card ul li {
    display: flex;
    padding-bottom: 5px;
    position: relative;
}
.--bg-grada02 .card ul li::before {
    display: block;
    content: "●";
    position: relative;
}
.--bg-grada02 .image.sm {
    padding: 0 20px;
}
.btn-wrap .slash {
    display: inline-block;
    font-weight: 700;
    position: relative;
}
.btn-wrap .slash span {
    color: #18415c
}
.btn-wrap .slash::before,
.btn-wrap .slash::after {
    background: #000;
    left: -20px;
    top: 52%;
    width: 20px;
}
.btn-wrap .slash:after {
    left: initial;
	right: -20px;
}
.btn-wrap.bg .slash {
    color: #fff;
}
.btn-wrap.bg .slash span {
    color: #fdc250
}
.btn-wrap.bg a.btn {
    background: #fff;
    color: #18415c;
}

a.btn:hover,
.btn-wrap a.btn:hover,
.btn-wrap.bg a.btn:hover {
    background: #fdc250;
    color: #18415c;
}
a.btn.form:hover {
    background: #fdc250;
    color: #fff;
}
a.btn.form:hover:after {
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
}

a.btn:hover .badge {
    border: 1px solid #fff;
    top: -1px;
}
.btn-wrap.ftr .slash::before,
.btn-wrap.ftr .slash::after {
    background: #fff;
}
.btn-wrap.ftr .slash span {
    color: #fdc250;
}
@media screen and (max-width: 1080px) {
    .ttl-border {
        font-size: 30px;
    }
    .--bg-grada02 .card {
    grid-template-columns: 1fr 80px;
        padding: 40px 30px;
    }
}
@media screen and (max-width: 768px) {
    .btn-wrap {
        margin: 60px auto 50px;
    }
    .btn-wrap a.btn {
        font-size: 18px;
        max-width: 100%;
    }
}

.row {
    background: #fff;
    display: grid;
    grid-template-columns: 500px 1fr;
}
.--bg-grada02 .row {
    grid-template-columns: 1fr 683px;
    overflow: hidden;
}
.row .txt {
    padding: 40px 10px 30px 50px;
}
.--bg-grada02 .row .image {
    max-height: 360px;
}
.--bg-grada02 .row .image img {
    display: block;
    object-fit: cover;
    height: 100%;
    width: 100%;
}
.row .txt .ttl {
    font-size: 32px;
}
.row .txt .strong {
    font-size: 22px;
    margin: 20px 0 -10px;
}
.row-col3 {
    background: #fff;
    padding: 40px 20px;
}
.ttl-white {
    color: #fff;
    font-size: 28px;
    font-weight: 700;
    margin: 80px 0 20px;
}
.row-col3 .col3 > li {
    border-right: 1px solid #18415c;
    text-align: left;
}
.row-col3 .col3 > li:nth-of-type(2) {
    width: 102%;
}
.row-col3 .col3 li:last-of-type {
    border-right: none
}
.row-col3 .col3 li .ttl {
    color: #18415c;
    font-size: 22px;
    margin: 0 auto;
    text-align: center;
}
.row-col3 .col3 li ul li {
    font-size: 16px;
    margin-left: 15px;
}
.row-col3 + .strong {
    color: #fff;
    margin: 20px auto 100px;
}
@media screen and (max-width: 1200px) {
.--bg-grada02 .row {
    grid-template-columns: 1fr 1fr;
    overflow: hidden;
}
.row .txt {
    padding: 40px 10px 30px 50px;
}
}
@media screen and (max-width: 980px) {
    .row-col3 .col3 > li ul.check {
        margin-left: -16px;
    }
    .row .txt .ttl {
        font-size: 26px;
    }
}

@media screen and (max-width: 768px) {
    .row {
        display: block;
    }
    .row .txt {
        padding: 30px;
    }
    .row .txt .ttl {
        font-size: 27px;
    }
    .row .txt .strong {
        font-size: 20px;
    }
    ul.check li,
    .row-col3 .col3 li ul li {
        background: url(../images/check.png) no-repeat 0 6px;
        background-size: 12px;
        font-size: 15px;
        padding-left: 20px;
    }
    .txt-bg ul.check {
        padding: 0;
    }

    .row-col3 .col3 > li {
        border: none;
        padding-bottom: 30px;
    }
    .ttl-white {
        margin-top: 50px;
    }
    .row-col3 {
        padding-bottom: 20px;
    }

}

@media screen and (max-width: 375px) {
    .row .txt {
        padding: 30px 20px;
    }
    .row .txt .ttl {
        font-size: 24px;
    }
    .row .txt .strong {
        font-size: 18px;
    }

}
.--bg-grada02 .network {
    background: #fff;
    display: block;
    padding: 0 0 30px;
    position: relative;
}
.--bg-grada02 .network h3 {
    color: #18415c;
    font-size: 24px;
    letter-spacing: 0.5px;
    margin: 30px 20px 0;
}
.--bg-grada02 .network .ttl {
    font-size: 18px;
    margin: -10px 20px 20px;
}
.txt-bg {
    background: hsla(210, 43%, 97%, 1);
    padding: 30px 30px 20px;
    text-align: left;
}
.--bg-grada02 .network .txt-bg {
    display: grid;
    grid-template-columns: 150px 1fr;
    margin: 0 40px;
}
.--bg-grada02 .network:last-of-type::after {
    border-bottom: 1px solid #0c0c0c;
    bottom: 27%;
    content: "";
    height: 1px;
    left: 80px;
    position: absolute;
    width: 73%;
    z-index: 1;
}
.--bg-grada02 .network:last-of-type .txt-bg {
    padding-bottom: 36px;
}

.--bg-grada02 .network .txt-bg.noflex {
    display: block;
}
.--bg-grada02 .network .txt-bg.noflex ul.check {
    padding: 16px 0;
}
.--bg-grada02 .network .txt-bg + .ttl {
    margin-top: 30px;
}
.--bg-grada02 .network .card:last-of-type .txt-bg {
    margin: 0 40px;
}
.--bg-grada02 .network .card:last-of-type .txt-bg.border {
    padding-bottom: 54px;
    position: relative;
}
.--bg-grada02 .network .card:last-of-type .txt-bg.border::before {
    background: #0c0c0c;
    content: "";
    display: block;
    height: 1px;
    position: absolute;
    left: 10%;
    bottom: 10px;
    width: 80%;
}
.flag .name {
    font-size: 18px;
    font-weight: 700;
}
.flag .name span {
    display: block;
    font-size: 15px;
    font-weight: 500;
    letter-spacing: 0.5px;
}
.flag .name .image {
    margin-top: 10px;
    width: 110px;
}
.--bg-grada02 .network .txt-bg li {
   line-height: 1.2;
}
.wrap-row {
    background: #fff;
    margin-top: 20px;
    padding: 40px;
}
.wrap-row .ttl {
    color: #18415c;
    font-size: 24px;
    margin-bottom: 20px;
}
.wrap-row .row {
    gap: 20px;
    margin-top: 30px;
}
.wrap-row .txt {
    background: hsla(210, 43%, 97%, 1);
    padding: 20px 40px;
}
@media screen and (max-width: 1080px) {
    .--bg-grada02 .network:last-of-type::after {
        bottom: 31.5%;
        left: 13vw;
        width: 73%;
    }
    .--bg-grada02 .network:last-of-type .txt-bg {
        padding-bottom: 27px;
    }
}
@media screen and (max-width: 980px) {
    .--bg-grada02 .network .txt-bg {
        display: block;
        margin: 0 20px;
    }
    .wrap-row .row {
        grid-template-columns: 1fr 1fr;
    }
    .wrap-row .txt {
        padding: 15px 20px;
    }
    .--bg-grada02 .row .txt {
        padding-left: 20px;
    }
}
@media screen and (max-width: 768px) {
    .--bg-grada02::before {
        height: 50px;
        top: -1px;
    }
    .ttl-border {
        font-size: 18px;
        margin: 20px auto;
        padding: 5px 0;
    }
    .--bg-grada02 h3,
    .--bg-grada02 .network h3 {
        font-size: 20px;
    }
    .--bg-grada02 h3 .em {
        font-size: 32px;
    }
    .--bg-grada02 .card {
        background: #fff;
        gap: 20px;
        grid-template-columns: 1fr 60px;
        margin-bottom: 20px;
        padding: 30px 20px;
    }
    .--bg-grada02 .image.sm {
        padding: 0 5px;
    }
    .--bg-grada02 .card .txt .ttl {
        font-size: 20px;
    }
    .--bg-grada02 .card .txt p img {
        max-width: 230px;
    }
    .--bg-grada02 .card .txt p {
        font-size: 15px;
        line-height: 1.6;
    }
    .--bg-grada02 .network {
        margin-bottom: 20px;
    }
    .--bg-grada02 .network .txt-bg.noflex ul.check {
        padding: 0;
    }
    .wrap-row {
        margin-top: 20px;
        padding: 40px 20px;
    }
    .wrap-row .txt {
        padding: 20px;
    }
    .flag .name {
        font-size: 16px;
    }
    .flag .name span {
        display: inline;
        font-size: 14px;
    }
    .flag .name .image {
        display: block;
        margin-bottom: 15px;
    }
}
.--bg-grada .col3 {
    justify-content: center;
    width: 100%;
}
.h2wrap {
    margin-bottom: 80px;
}

.circle {
    align-items: center;
    background: hsla(0, 0%, 100%, 0.3);
    border-radius: 50vw;
    font-size: 37px;
    font-weight: 700;
    height: 370px;
    justify-content: center;
    line-height: 1.05;
    padding: 100px 0;
    width: 370px
}
.circle span {
    display: inline;
}
.circle .num {
    font-family: "Ubuntu", sans-serif;
    font-weight: 700;
    font-size: 102px;
    letter-spacing: -5px;
}
.circle .num.--02 {
    font-size: 120px;
}
.circle .sm {
    font-size: 24px;
    display: inline-block;
    padding-top: 20px;
    line-height: 1.3;
}
.strong.ttl {
    font-size: 32px;
    margin: 80px auto 30px;
}
.col4 {
    display: grid;
    gap: 20px;
    grid-template-columns: repeat(4,1fr);
    margin-bottom: 30px;
}
.col4 .card {
    padding: 20px;
}
.--bg-grada .col4 .card {
    background: hsla(0, 0%, 100%, 0.3);
    padding: 30px;
}
.col4 .card .icon {
    display: block;
    max-height: 130px;
}
.col4 .card .name {
    font-weight: 700;
    padding-bottom: 30px;
}
.col4 .icon + .ttl {
    font-size: 18px;
}
.col4 .card .strong {
    color: #18415c;
    font-size: 25px;
}
.col4 li {
    border: 1px solid hsla(210, 67%, 87%, 1);
    display: grid;
    gap: 10px;
    grid-template-rows: subgrid;
    grid-row: span 3;
    padding: 20px;
}
.col4 .en {
    color: #6c8799;
    font-family: "Ubuntu", sans-serif;
    font-size: 12px;
}
h2 + .ttl {
    color: #18415c;
    font-size: 30px;
    font-weight: 700;
    padding: 40px 0 25px;
}

.col4 + .txt-bg {
    align-items: center;
    display: grid;
    grid-template-columns: 200px 1fr;
}
.col4 + .txt-bg .ttl {
    font-size: 32px;
    text-align: center;
}
@media screen and (max-width: 1200px) {
.circle {
    height: 30vw;
    width: 30vw;
}
}
@media screen and (max-width: 1050px) {
    .circle {
        font-size: 29px;
        padding: 75px 0;
    }
    .circle .num {
        font-size: 80px;
    }
    .circle .sm {
        font-size: 20px;
    }
    .circle .num.--02 {
        font-size: 80px;
    }
}
@media screen and (max-width: 820px) {
    .circle {
        font-size: 15px;
        padding: 40px 0;
    }
    .circle .num {
        font-size: 60px;
        margin-top: 20px;
    }
    .circle .sm {
        font-size: 20px;
    }
    .circle .num.--02 {
        font-size: 60px;
    }
    .--bg-grada .col4 .card {
        padding: 30px 5px;
    }
    .col4 .card .strong {
        font-size: 22px;
        padding-top: 10px;
    }
}
@media screen and (max-width: 768px) {
    h2 + .ttl {
        font-size: 22px;
    }
    .col4 {
        gap: 10px;
        grid-template-columns: repeat(2,1fr);
        margin-bottom: 0;
    }
    .col4 .card {
        font-size: 15px;
        padding: 10px 20px;
    }
    .col4 + .txt-bg {
        display: block;
        margin-top: 50px;
    }
    .card {
        margin-bottom: 0;
    }
    .--bg-grada .col4 .card {
        padding: 30px 10px;
    }
    .card .icon {
        padding: 10px 40px 0;
    }
    .card .ttl {
       margin-top: -25px;
    }
    .col4 .card .strong {
        font-size: 18px;
    }
    .col4 .en {
        font-size: 11px;
    }
    .--bg-grada .col3 {
        display: flex;
        flex-wrap: wrap;
        gap: 10px;
        justify-content: center;
    }
    .circle {
        font-size: 15px;
        height: 170px;
        padding: 40px 0;
        width: 170px;
    }

    .col3 .circle:last-of-type {
        margin-top: -15px;
    }
    .circle .num {
        display: inline-block;
        font-size: 40px;
        letter-spacing: 0;
        margin-top: 20px;
    }
    .circle .num.--02 {
        font-size: 50px;
    }
    .circle .sm {
        font-size: 12px;
        padding-top: 10px;
        line-height: 1.3;
    }
    .strong.ttl {
        font-size: 22px;
        margin: 50px auto 30px;
    }
    .col4 .card .name {
        padding-bottom: 20px;
    }
}

@media screen and (max-width: 375px) {
    .card .ttl {
        font-size: 15px;
        margin-top: -10px;
    }
}
.consult {
    margin-top: 50px;
}
.consult ul > li {
    border: 3px solid #bcd9f1;
    display: grid;
    gap: 10px;
    grid-template-rows: subgrid;
    grid-row: span 6;
    margin-top: 50px;
    padding: 15px;
    text-align: left;
}
.consult ul li .name {
    color: #18415c;
    font-size: 24px;
    font-weight: 700;
    margin: 10px auto;
    text-align: center
}
.consult ol li {
    list-style-type: disc;
    margin-left: 30px;
}
.consult ul dl {
    display:  grid;
    grid-template-columns: 95px 1fr;
    gap: 10px;
    margin: 10px 0;
    text-align: left;
}
.consult ul dt {
    color: #18415c;
    font-weight: 700;
}
.consult .comment {
    background: url( ../images/bubble.png) no-repeat;
    background-size: 100% 100%;
    height: 23vw;
    max-height: 250px;
    margin-top: 10px;
    padding: 50px 20px 0;
    text-align: left;
}
.consult .comment .ttl {
    color: #18415c;
    margin-bottom: 15px;
    text-decoration: underline;
}
.consult .comment .ttl {
    color: #18415c;
    margin-bottom: 15px;
    text-align: center;
    text-decoration: underline;
}
.consult .comment .t-center {
    padding-top: 30px;
    text-align: center;
}
@media screen and (max-width: 1050px) {
    .consult .comment {
        height: 40vw;
        margin-top: 5px;
    max-height: 280px;
        padding: 50px 20px 0;
    }
    .consult .comment p {
        font-size: 15px;
    }
}
@media screen and (max-width: 768px) {
    .consult .comment {
        font-size: 15px;
        height: 235px;
        margin-top: 5px;
        padding: 50px 20px 0;
    }
    .consult .comment .ttl {
        margin-bottom: 25px;
    }
    .consult ul > li {
        padding: 20px;
    }
}

.voice {
    margin-bottom: 80px;
}

.voice li {
    align-items: center;
    display: grid;
    gap: 60px;
    grid-template-columns: 1fr 5fr;
    margin-top: 35px;
}
.voice li .image {
    margin-left: 20px;
    max-width: 162px;
    text-align: center;
}
.voice li .txt {
    border: 3px solid #bcd9f1;
    font-size: 22px;
    padding: 40px 20px;
}
.voice li .txt span {
    color: #18415c;
}
@media screen and (max-width: 768px) {
    ul.voice {
        margin: 40px 0;
    }
    .voice li {
        align-items: start;
        gap: 10px;
        grid-template-columns: 1fr 4fr;
        height: 150px;
        margin-top: 10px;
        padding: 10px;
        position: relative;
        width: 100%;
    }
    .voice li:first-of-type {
        margin-bottom: 50px;
    }
    .voice li .image {
        margin: 10px 0 0 8px;
        max-width: initial;
        text-align: center;
    }
    .voice li .txt {
        font-size: 16px;
        padding: 20px 20px 50px 100px;
        position: absolute;
        top:  0;
    }
}

@media screen and (max-width: 768px) {
    .voice li:first-of-type {
        margin-bottom: 65px;
    }
    .voice li .txt {
        padding: 20px 20px 35px 100px;
    }
}
.row-border,
.row-border + .col3 .card { 
    border: 3px solid #bcd9f1;
    margin-top: 40px;
    padding: 35px 20px;
}
.row-border {
    padding-bottom: 10px;
}
.row-border h3 {
    color: #18415c;
    font-size: 30px;
    margin-bottom: 50px;
}
.row-border .col2 .card {
    display: grid;
    gap: 30px;
    grid-template-columns: 210px 1fr;
}
.row-border .card .name {
    font-size: 28px;
    font-weight: 700;
    margin: 20px 0 10px;
}
.row-border .card .txt {
    letter-spacing: 0.5px;
    margin-bottom: 10px;
}
.row-border .card p {
    font-size: 19px;
    margin: 20px 0;
}
.row-border .card span {
    font-weight: 500;
}
.row-border .card i {
    color: #18415c;
    font-style: normal;
}

.row-border + .col3 {
    gap: 40px;
    margin: 0 0 100px;
}
.row-border + .col3 .ttl {
    color: #18415c;
    font-size: 30px;
    margin: 0 auto 30px;
    text-align: center;
}
@media screen and (max-width: 1050px) {
    .row-border .col2 .card {
        gap: 20px;
        grid-template-columns: 130px 1fr;
    }
}
@media screen and (max-width: 768px) {
    .row-border {
        padding-bottom: 10px;
    }
    .row-border .col2 .card {
        gap: 15px;
        grid-template-columns: 80px 1fr;
    }
    .row-border h3 {
        font-size: 20px;
        margin-bottom: -10px;
    }
    .row-border .card {
        font-size: 15px;
        margin-top: 40px;
    }
    .row-border .card p {
        font-size: 16px
    }
    .row-border .card .name {
        font-size: 18px;
        margin: 0 0 5px;
    }
    .row-border + .col3 { 
        display: grid;
        gap: 10px;
    }
    .row-border + .col3 .card { 
        padding: 10px 0 0;
    }
    .row-border + .col3 .ttl {
        margin: 0 auto;
        font-size: 16px;
    }
    .col3 .card .image {
        padding: 10px 0 0;
    }
}
@media screen and (max-width: 375px) {
    .row-border .col2 .card {
        grid-template-columns: 75px 1fr;
    }
    .row-border .card p {
        font-size: 14px
    }
}
.col5 {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
    gap: 20px;
    margin: 35px 0 150px;
    position: relative;
}
.col5 .card {
    align-items: center;
    border: 3px solid #bcd9f1;
    display: grid;
    grid-template-rows: subgrid;
    grid-row: span 3;
    gap: 0;
    padding: 20px;
    position: relative;
}
.col5 .card a {
    text-decoration: underline;
}
.col5 .card::before,
.col5 .card::after {
	border-style: solid;
	border-width: 18px 18px 0 18px;
	border-color: #fff transparent transparent transparent;
	content: " ";
	left: calc( 50% - 18px);
	height: 0;
	position: absolute;
	bottom: -16px;
	width: 0;
    z-index: 1;
}
.col5 .card::after {
	border-color: #bcd9f1 transparent transparent transparent;
	left: calc( 50% - 18px);
	bottom: -20px;
    z-index: 0;
}
.col5 .card .en {
    color: #829aa9;
}
.col5 .card .ttl {
    color: #18415c;
    font-size: 24px;
    letter-spacing: 0.5px;
    margin: 0 auto;
}
.col5 .card p {
    font-weight: 500;
    text-align: left;
}
.col5 .card p::before {
    border-bottom: 1px solid #dbeafd;
    bottom: -40px;
    content: "";
    display: block;
    left: 55%;
    position: absolute;
    width: 102%;
}
.col5 .card p::after {
    background: #dbeafd;
    border-radius: 50vw;
    bottom: -50px;
    content: "";
    display: block;
    height: 24px;
    left: calc( 50% - 12px);
    position: absolute;
    width: 24px;
}
.col5 .card:last-of-type p::before {
    border-bottom: none
}
@media screen and (max-width: 980px) {
    .col5 .card {
        padding: 20px 10px;
    }
    .col5 .card .ttl {
        font-size: 20px;
    }
}
@media screen and (max-width: 768px) {
    .col5 {
        display: block;
        gap: 20px;
        margin: 35px 10px 80px 50px;
    }
    .col5 .card {
        margin-bottom: 30px;
        padding: 20px;
    }
    .col5 .card p {
        text-align: center;
    }
    .col5 .card .ttl {
        letter-spacing: initial;
        margin-bottom: 20px;
    }
    .col5 .card p::before {
        border-bottom: none;
        border-left: 1px solid #bcd9f1;
        bottom: initial;
        height: 130%;
        left: -34px;
        top: 50%;
    }
    .col5 .card p::after {
        bottom: 40%;
        height: 24px;
        left: -45px;
        width: 24px;
    }
    .col5 .card:last-of-type p::before {
        border-left: none;
    }
    .col5 .card:last-of-type::before,
    .col5 .card:last-of-type:after {
        display: none;
    }
}
.faq-wrap {
    margin: 40px 0;
}
.faq-wrap dl {
    border-bottom: 1px solid #e4e4e4;
    padding: 20px 40px;
    text-align: left;
}
.faq-wrap dl dt {
    align-items: baseline;
    display: flex;
    font-weight: 700;
    padding: 0 0 10px 50px;
}
.faq-wrap dl dt::before,
.faq-wrap dl dd::before {
    content: "Q";
    color: #18415c;
    display: block;
    font-family: "Ubuntu", sans-serif;
    font-size: 28px;
    font-weight: 700;
    left: -20px;
    position: relative;
    top: 5px;
}
.faq-wrap dl dd {
    align-items: baseline;
    display: flex;
    padding: 0 0 10px 50px;
}
.faq-wrap dl dd::before {
    content: "A";
    color: #bcd9f1;
}
.faq-wrap ul li {
    font-size: 14px;
    list-style-type: disc;
    padding-bottom: 10px;
    text-align: left;
}
.faq-border {
    background: #f6f6f6;
    border: 1px solid #e4e4e4;
    margin-top: 40px;
    padding: 40px 60px;
}
.btn.form,
.btn.sm {
    background: #fff;
    border-radius: 7px;
    border: 2px solid #18415c;
    color: #18415c;
    font-size: 14px;
    font-weight: 700;
    margin: 30px auto 0;
    padding: 20px 0;
    justify-content: center;
}
.btn.form::after,
.btn.sm::after  {
	border-top: 2px solid #18415c;
	border-right: 2px solid #18415c;
}


.btn.sm {
    border-radius: 50vw;
    margin: 10px auto 0;
    padding: 20px 40px;
}
.btn.sm::after {
	border-top: 2px solid #18415c;
	border-right: 2px solid #18415c;
}

@media screen and (max-width: 768px) {
    .faq-wrap {
        margin: 10px 0 40px;
    }
    .faq-wrap dl {
        padding: 20px 20px 20px 0;
    }
    .faq-border {
        padding: 40px 20px 40px 40px;
    }
    .btn.form {
        margin: 30px 0 0 5%;
        width: 85%;
    }
    .btn.sm {
        max-width: 300px;
    }
}
footer {
	background: #19425d;
	background: linear-gradient(130deg, #19425d 0%, #246e9e 100%);
	color: #fff;
    padding: 60px 0 0;
    position: relative;
}
footer .row {
    background: none;
    margin: 60px auto 0;
    gap: 50px;
    max-width: 1300px;
}
.left-col {
	text-align: left;
}
.left-col .strong {
	font-size: 30px;
}
.left-col p {
	margin: 30px 0 50px;
}
.left-col .btn-wrap a.btn {
    background: hsla(206, 51%, 27%, 1);
    border: 1px solid #fff;
    color: #fff;
    margin: 10px 0;
}
.left-col .btn-wrap {
    margin: 10px 0;
	width: 90%;
}
.left-col .badge {
    margin-right: 45px;
}
.right-col {
	display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}
.right-col .card {
	background: #e8f8d7;
	background: linear-gradient(130deg, rgba(219, 234, 235, 0.2) 0%, rgba(243, 243, 213, 0.2) 50%, rgba(232, 248, 215, 0.2) 100%);
    padding: 30px 0 30px 20px;
}
.right-col .card .ttl {
	font-size: 26px;
}
footer .phonenumber {
    margin-top: 80px;
}
footer .phonenumber a {
    background: url(../images/icon-phone.png) no-repeat left;
    background-size: 30px;
    color: #fff;
    display: block;
    font-family: "Ubuntu", sans-serif;
	font-size: 38px;
    font-weight: 700;
    letter-spacing: 0.2px;
    padding-left: 25px;
}
.right-col .card > p {
	font-size: 24px;
    font-weight: 700;
}
.right-col .card .name {
    font-size: 18px;
    margin: 30px 0 15px;
    text-align: left;
}
.right-col .card .name p {
    margin-bottom: 10px;
}
.right-col .lead {
    font-size: 15px;
	text-align: left;
}
.right-col .lead p {
	padding-bottom: 15px;
}
footer .navi {
    background: #0c0c0c;
    margin-top: 150px;
    padding: 40px 0 10px;
}
footer .navi a {
    color: #fff;
}
footer .navi ul {
    display: flex;
    justify-content: center;
    gap: 30px;
}

footer .navi p a {
    display: block;
    padding: 30px 0;
    text-decoration: underline;
}
footer .navi small {
    font-size: 14px;
}
@media screen and (max-width: 1320px) {
    footer .row {
        gap: 25px;
        grid-template-columns: 1fr 2fr;
        padding: 0 20px;
    }
    footer .phonenumber a {
        background: url(../images/icon-phone.png) no-repeat left;
        background-size: 22px;
        display: inline-block;
        font-size: 26px;
        padding-left: 25px;
    }
    .right-col .card > p {
        font-size: 20px;
    }
    .left-col .strong {
        font-size: 26px;
    }
    .right-col .card .ttl {
        font-size: 22px;
    }
    .right-col .card {
        margin-bottom: 20px;
        padding: 30px 20px;
    }
    .left-col p {
        letter-spacing: 0.5px;
    }
    .right-col .lead {
        font-size: 14px;
    }
}
@media screen and (max-width: 1050px) {
    footer h2 {
        font-size: 30px;
    }
    .right-col {
        display: block;
    }
    footer .navi {
        margin-top: 80px;
    }
    .left-col .btn-wrap {
        margin-bottom: 60px;
        width: 100%;
    }
    .left-col .btn-wrap a.btn {
        margin: 10px auto;
    }
    footer .phonenumber {
        margin-top: 30px;
    }
}
@media screen and (max-width: 768px) {
    footer .row {
        margin-bottom: -50px;
        padding: 0 20px;
    }
    .left-col .strong {
        font-size: 20px;
    }
    .left-col p {
        margin: 30px 0 80px;
    }
    .left-col .badge {
        margin-right: 25px;
    }
    .right-col .card {
        margin-bottom: 30px;
        padding: 30px;
    }
    .right-col .card .ttl {
        font-size: 22px;
    }

    footer .card .ttl {
        margin-top: initial;
    }
    footer .phonenumber {
        margin-top: 30px;
    }
    footer .phonenumber a {
        background: url(../images/icon-phone.png) no-repeat 0 3px;
        background-size: 22px;
        font-size: 24px;
        padding-left: 25px;
    }
    .right-col .card > p {
        font-size: 16px;
    }
    .right-col .card .name {
        margin-top: 30px;
    }
    footer .navi {
        margin-top: 130px;
    }
    footer .navi ul {
        flex-wrap: wrap;
        padding: 0 20px;
        gap: 10px 20px;
    }
    footer .navi ul li {
        font-size: 15px;
    }
    footer .navi small {
        font-size: 10px;
        padding: 0 20px;
    }
}