/*全体ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー*/

/*** The new CSS reset - version 1.11.1 (last updated 24.10.2023) ***/

*:where(:not(html,iframe,canvas,img,svg,video,audio):not(svg*,symbol*)){all:unset;display:revert}
html{-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none}
a,button{cursor:revert}
ol,ul,menu,summary{list-style:none;margin:0;padding:0}
img{max-inline-size:100%;max-block-size:100%;width: 100%;height: auto;}
table{border-collapse:collapse}
input,textarea{-webkit-user-select:auto}
textarea{white-space:revert}
meter{-webkit-appearance:revert;appearance:revert}:where(pre){all:revert;box-sizing:border-box}::placeholder{color:unset}:where([hidden]){display:none}:where([contenteditable]:not([contenteditable="false"])){-moz-user-modify:read-write;-webkit-user-modify:read-write;overflow-wrap:break-word;-webkit-line-break:after-white-space;-webkit-user-select:auto}:where([draggable="true"]){-webkit-user-drag:element}:where(dialog:modal){all:revert;box-sizing:border-box}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}

a {text-decoration: none;color: inherit;transition: opacity 0.3s;}.text-block{display: inline-block;}

.visually-hidden {
    position: absolute;
    white-space: nowrap;
    width: 1px;
    height: 1px;
    overflow: hidden;
    border: 0;
    padding: 0;
    clip: rect(0, 0, 0, 0);
    clip-path: inset(50%);
    margin: -1px;
}

/***********************
共通スタイル
***********************/
:root{
    --base-font: "Noto Sans JP", sans-serif;
    --mincho: "Noto Serif JP", serif;
    --en: "Cormorant", serif;
    --black: #040404;
    --black: #000;
    --green-fv: #218054;
    --green01: #00783f;
    --green02: #03743e;
    --green-subtitle: #4db39d;
    --line: #00c300;
    --yellow: #fffd6d;
    --beige: #cfad5f;
    --orange: #fc7406;
    --pink: #f15a5a;
}

body {
    color: var(--base-color);
    font-family: var(--base-font);
    font-style: normal;
    font-optical-sizing: auto;
    font-feature-settings: "palt";
    position: relative;
}

img{
    vertical-align: bottom;
}

a{
    transition: 0.3s;
}
a:hover,a:focus{
    opacity: 0.7;
    transition: 0.3s;
}

a[href^="tel:"] {
    pointer-events: none;
}

a.tel {
    pointer-events: none !important;
}

.inbl{
    display: inline-block;
}

.block{
    display: block;
}

.text-yellow{
    color: var(--yellow);
}

.text-orange{
    color: var(--orange);
}

.text-green{
    color: var(--green02);
}

.inner{
    max-width: 1300px;
    padding-left: 50px;
    padding-right: 50px;
    margin-inline: auto;
}

.inner.--narrow{
    max-width: 1100px;
}

.inner.--footer{
    max-width: 1400px;
}

.gra-orange-btn{
    background: rgb(254,126,27);
    background: linear-gradient(90deg, rgba(254,126,27,1) 0%, rgba(254,217,2,1) 100%);
}

.gra-orange{
    background: rgb(254, 217, 2);
    background: linear-gradient(225deg, rgba(254, 217, 2, 1) 0%, rgba(254, 217, 2, 1) 25%, rgba(253, 167, 19, 1) 50%, rgba(254, 126, 27, 1) 75%, rgba(254, 126, 27, 1) 100%);
}

.gra-green{
    background: rgb(12,154,123);
    background: linear-gradient(90deg, rgba(12,154,123,1) 0%, rgba(68,220,121,1) 100%);
}

.gra-green_thin{
    background: rgb(143,210,143);
    background: linear-gradient(90deg, rgba(143,210,143,1) 0%, rgba(128,196,210,1) 100%);
}

.gra-green-btn{
    background: rgb(69,221,122);
    background: linear-gradient(273deg, rgba(69,221,122,1) 0%, rgba(20,184,105,1) 50%, rgba(12,154,124,1) 100%);
}

.gra-bg{
    background: rgb(255,255,255);
    background: linear-gradient(90deg, rgba(255,255,255,0.56) 0%, rgba(248,239,224,0.56) 100%);
}

@media screen and (max-width: 767px){
    a[href^="tel:"] {
        pointer-events:all;
    }
    a.tel {
        pointer-events: all !important;
    }

    .inner{
        padding-left: 5vw;
        padding-right: 5vw;
    }

    .sp-block{
        display: block;
    }
}

/*------------------------------------
h1
------------------------------------*/

.main-title{
    color: #01763f;
    font-family: var(--mincho);
    font-size: 26px;
    font-weight: bold;
    letter-spacing: 0.03em;
    text-align: center;
    position: absolute;
    bottom: 110px;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
}

@media screen and (max-width: 1194px){
    .main-title {
        font-size: 22px;
    }
}

@media screen and (max-width: 767px){
    .main-title {
        bottom: 240px;
        font-size: 20px;
    }

    .main-title {
        bottom: 33vw;
    }
}

@media screen and (max-width: 499px){
    .main-title {
        font-size: 16px;
    }
}

@media screen and (max-width: 399px){
    .main-title .inbl{
        display: block;
    }

    .main-title {
        bottom: 37vw;
    }
}

/*------------------------------------
右固定リンクバナー
------------------------------------*/
.fixed-cv{
    display: flex;
    flex-direction: column;
    gap: 15px;
    position: fixed;
    top: 90px;
    right: 0;
    z-index: 100;
}

.fixed-cv a{
    display: flex;
    align-items: center;
    gap: 10px;
    border: 5px solid #fff;
    border-right: none;
    border-radius: 0.625em 0 0 0.625em;
    color: #fff;
    font-size: 24px;
    font-weight: 900;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    text-orientation: upright;
    -webkit-text-orientation: upright;
}

.fixed-cv a:hover,.fixed-cv a:focus{
    filter: brightness(1.1);
    opacity: 1;
}

.fixed-cv a::before{
    content: "";
    display: block;
    background-repeat: no-repeat;
}

.fixed-cv a::after{
    content: "";
    display: block;
    background-image: url(../img/common/icon_arrow.svg);
    background-repeat: no-repeat;
    width: 10px;
    aspect-ratio: 10/15;
}

.fixed-cv .--mail{
    background-color: var(--beige);
    padding: 1em 0.7em 0.8em 0.7em;
}

.fixed-cv .--mail::before{
    background: url(../img/common/icon_mail.svg)center/contain no-repeat;
    width: 23px;
    aspect-ratio: 23/19;
}

.fixed-cv .--line{
    background-color: var(--line);
    padding: 0.4em 0.5em 0.8em 0.5em;
}

.fixed-cv .--line::before{
    background: url(../img/common/icon_line.svg)center/contain no-repeat;
    width: 32px;
    aspect-ratio: 1/1;
    margin-bottom: -.2em;
	margin-top: .2em;
}

.fixed-cv .--line .--en{
    letter-spacing: -0.09em;
}

@media screen and (min-width:767px){
	.fixed-cv_sp {
		display: none;
	}
}
@media screen and (max-width: 767px){
	.fixed-cv_pc {
		display: none;
	}
    .fixed-cv {
        background: rgb(248,239,224);
        background: linear-gradient(90deg, rgba(248,239,224,1) 0%, rgba(255,255,255,1) 100%);
        padding: 3vw;
        bottom: 0;
        top: auto;
        width: 100%;
		gap:2%;
    }
	.fixed-cv_sp {
		display: flex;
		justify-content: center;
		align-items: center;
	}
	.fixed-cv_sp_inner {
		max-width: 650px;
		width: 100%;
		display: flex;
		justify-content: space-between;
		align-items: center;
        flex-direction: row;
	}

    .fixed-cv a {
        writing-mode: horizontal-tb;
        /*flex-basis: 50%;*/
        border-radius: 0.625em;
        border: 0.7vw solid #fff;
        font-size: 4vw;
        height: 12vw;
    }
	.fixed-cv a.telcv {
		border:none;
		color: #000;
		font-size: clamp(28px,8.5vw,56px);
		font-weight: 700;
		white-space: nowrap;
	}

	.fixed-cv .--line{
    	background-color: var(--line);
    	padding: 0;
		display: flex;
		justify-content: center;
		align-content: center;
		width: 14vw;
	}
	
    .fixed-cv .--line .--en {
        letter-spacing: 0;
    }

    .fixed-cv .--line::before {
        width: 7vw;
        margin-bottom: -0.1em;
		margin-top: 0;
        background-size: contain;
    }
	
	.fixed-cv .--mail{
		background-color: #e59758;
    	padding: 0;
		display: flex;
		justify-content: center;
		align-content: center;
		width: 14vw;
	}
	
    .fixed-cv .--mail::before {
        width: 5.5vw;
        background-size: contain;
        position: relative;
    }

    .fixed-cv a::before {
        background-position: center;
    }

    .fixed-cv a::after {
        content: none;
    }
}

/*------------------------------------
パンくずリスト
------------------------------------*/
.breadcrumb__area{
    box-shadow: 0 0 30px rgba(0,0,0,0.10);
}

.breadcrumbs{
    font-weight: 500;
    letter-spacing: 0.05em;
    padding: 1.1em 0;
    font-feature-settings: normal;
}

.breadcrumbs > span:not(:last-of-type){
    margin-right: 2.9em;
    position: relative;
}

.breadcrumbs > span:first-of-type{
    position: relative;
    padding-left: 1.125em;
}

.breadcrumbs > span:first-of-type::after{
    content: "";
    display: inline-block;
    background-image: url(../img/common/icon-house.svg);
    background-repeat: no-repeat;
    background-size: contain;
    width: 0.875em;
    aspect-ratio: 1/1;
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
}

.breadcrumbs > span:last-of-type{
    color: #01763f;
}

.breadcrumbs > span:not(:last-of-type)::before {
    content: '';
    display: inline-block;
    width: 8px;
    height: 8px;
    border-left: 2px solid #c1c1c1;
    border-bottom: 2px solid #c1c1c1;
    transform: rotate(-135deg) translateY(-50%);
    position: absolute;
    right: -1.7em;
    top: 27%;
}

@media screen and (max-width: 767px){
    .breadcrumbs {
        font-size: 14px;
    }
}

/*------------------------------------
フッター
------------------------------------*/
.footer{
    padding-top: 100px;
}

.footer__contents{
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom:  2px solid #d8dddd;
    padding: 50px 0;
}

.footer__logo{
    font-family: var(--mincho);
    font-size: 39px;
    font-weight: bold;
    letter-spacing: 0.05em;
    width: fit-content;
    position: relative;
    margin-top: -20px;
}

.footer__logo::before{
    content: "";
    display: block;
    background-image: url(../img/common/footer-logo.svg);
    background-repeat: no-repeat;
    background-size: contain;
    width: 1.95em;
    aspect-ratio: 76/97;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: -1;
}

.footer__nav{
    flex-basis: 690px;
}

.footer__nav-items{
    display: flex;
    flex-wrap: wrap;
    gap:  35px 45px;
}

.footer__nav-item{
    font-size: 22px;
    font-weight: bold;
    text-shadow: 0px 0px 7px #e3e4e6;
}

.footer__nav-item:first-of-type{
    flex-basis: 100%;
}

.footer__nav-item a{
    letter-spacing: 0.03em;
    padding-right: 1.3em;
    position: relative;
}

.footer__nav-item a::before{
    content: "";
    display: inline-block;
    background-image: url(../img/common/icon_footer-arrow.svg);
    width: 0.73em;
    aspect-ratio: 1/1;
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
}

.footer_copy{
    color: #fff;
    font-family: var(--mincho);
    font-size: 18px;
    font-weight: 600;
    letter-spacing: 0.03em;
    margin-top: 135px;
    text-align: center;
    padding: 1em 0;
}

@media screen and (max-width: 1194px){
    .footer {
        padding-top: 50px;
    }

    .footer__nav {
        flex-basis: 600px;
    }

    .footer__nav-item {
        font-size: 18px;
    }
}

@media screen and (max-width: 1023px){
    .footer__logo {
        font-size: 30px;
    }

    .footer__nav {
        flex-basis: 60%;
    }
}

@media screen and (max-width: 767px){
    .footer__contents {
        flex-direction: column;
        gap: 60px;
    }

    .footer__nav {
        flex: auto;
    }

    .footer__nav-item {
        font-size: 16px;
    }

    .footer_copy {
        font-size: 16px;
        padding-bottom: 20vw;
        margin-top: 18vw;
    }
}

@media screen and (max-width: 499px){
    .footer_copy {
        font-size: 13px;
        padding-bottom: 19vw;
    }

    .footer__nav-items {
        gap: 30px 30px;
    }
}

@media screen and (max-width: 399px){
    .footer__nav-items {
        flex-direction: column;
        align-items: center;
        gap: 20px;
    }

    .footer {
        padding-top: 30px;
    }

    .footer__logo {
        font-size: 26px;
    }

    .footer__contents {
        gap: 40px;
        padding: 40px 0;
    }

    .footer_copy {
        font-size: 12px;
        margin-top: 23vw;
        line-height: 1.3;
    }

    .footer_copy .inbl{
        display: block;
    }
}

/*------------------------------------
CV
------------------------------------*/

.cv{
    background-image: url(../img/common/cv/cv-bg.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    padding: 75px 0 80px;
    background-position: right;
}

.webp .cv{
    background-image: url(../img/common/cv/cv-bg.jpg.webp);
}

.cv__contents{
    border: 4px solid #fff;
    border-radius: 10px;
}

.cv__heading{
    background-color: #01763f;
    border-radius: 10px 10px 0 0;
    padding: 22px 20px 26px;
}

.cv__title{
    color: #fff;
    font-family: var(--mincho);
    font-weight: 800;
    line-height: 1.4;
    letter-spacing: 0.05em;
    text-align: center;
}

.cv__title .--top{
    font-size: 36px;
    margin-left: 0.7em;
}

.cv__title .--top .text-yellow{
    text-decoration: underline;
    text-underline-offset: 0.3em;
    text-decoration-thickness: 1px;
}

.cv__title .--bottom{
    font-size: 30px;
    margin-top: 0.2em;
}

.cv__body{
    background-color: #fff;
    padding: 40px 10px 44px;
}

.cv__points{
    display: flex;
    justify-content: center;
    gap: 26px;
}

.cv__point{
    color: var(--green01);
    font-size: 28px;
    font-weight: bold;
    letter-spacing: 0.05em;
    padding-left: 2.4em;
    position: relative;
}

.cv__point::before{
    content: "";
    background-repeat: no-repeat;
    background-size: contain;
    width: 2em;
    aspect-ratio: 1/1;
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
}

.cv__point:nth-of-type(1):before{
    background-image: url(../img/common/cv/cv_icon1.svg);
}

.cv__point:nth-of-type(2):before{
    background-image: url(../img/common/cv/cv_icon2.svg);
}

.cv__point:nth-of-type(3):before{
    background-image: url(../img/common/cv/cv_icon3.svg);
}

.cv__links{
    display: flex;
    justify-content: center;
    gap:  20px;
    margin-top: 10px;
}

.cv__link{
    position: relative;
}

.cv__link::before{
    content: "";
    display: block;
    background-color: #e1ddd9;
    border-radius: 3px;
    width: 100%;
    height: 100%;
    position: absolute;
    bottom: -3px;
}

.cv__link a{
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    border-radius: 3px;
    color: #fff;
    font-size: 16px;
    font-weight: 900;
    width: 250px;
    height: 40px;
    position: relative;
    transition: transform 0.3s;
}

.cv__link a:hover,.cv__link a:focus{
    transform: translateY(6px);
    transition: transform 0.3s;
    opacity: 1;
}

.cv__link a.--mail{
    background-color: var(--orange);
    padding-right: 0.1em;
    padding-bottom: 1em;
}

.cv__link a.--line{
    background-color: var(--line);
}

.cv__link a::before{
    content: "";
    display: block;
    background-repeat: no-repeat;
    background-size: contain;
}

.cv__link a::after{
    content: "";
    display: block;
    background-image: url(../img/common/icon_arrow.svg);
    background-repeat: no-repeat;
    background-size: contain;
    width: 10px;
    aspect-ratio: 10/15;
}

.cv__link .--mail{
    background-color: var(--beige);
    padding: 1em 0.7em 0.8em 0.7em;
}

.cv__link .--mail::before {
    background-image: url(../img/common/cv/cv-mail.svg);
    width: 28px;
    aspect-ratio: 22/17;
    position: relative;
    right: -0.4em;
}

.cv__link .--line{
    background-color: var(--line);
}

.cv__link .--line::before{
    background-image: url(../img/common/icon_line.svg);
    width: 24px;
    aspect-ratio: 1/1;
    position: relative;
    right: -0.3em;
}

/*cv__price*/
.cv__price{
    background-color: rgb(255 255 255 / 58%);
    border-radius: 5px;
    margin-top: 28px;
}

.cv__price-heading{
    background-color: #fff;
    border-radius: 5px 5px 0 0;
    font-family: var(--mincho);
    font-weight: 900;
    letter-spacing: 0.09em;
    font-size: 36px;
    padding: 0.5em 1em 0.5em;
}

.cv__price-title{
    color: var(--orange);
    text-align: center;
    line-height: 1;
}

.cv__price-contents{
    border-top: 1px solid #01bb74;
    padding: 10px 3vw 12px;
}

.cv__price-details{
    display: flex;
    gap: 70px;
    justify-content: center;
    align-items: center;
    padding-right: 10px;
}

.cv__price-detail-title{
    display: flex;
    align-items: center;
    gap: 40px;
    position: relative;
}

.cv__price-detail-title::before {
    content: "";
    display: inline-block;
    background-color: #fff;
    width: 2px;
    height: 74%;
    position: absolute;
    top: 50%;
    right: -35px;
    transform: translateY(-50%);
}

.cv__price-circle {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    border-radius: 50%;
    color: #fff;
    font-size: 26px;
    font-weight: 800;
    line-height: calc(32.8/26);
    width: 4.27em;
    aspect-ratio: 1/1;
    padding-bottom: 0.3em;
    background: rgb(254,126,27);
    background: linear-gradient(319deg, rgba(254, 126, 27, 1) 0%, rgba(254, 217, 2, 1) 100%);
    text-shadow: 0 0 4px #d4660d,0 0 3.9em #d4660d;
}

.cv__price-text01{
    width: 250px;
    /* aspect-ratio: 243/34; */
    height: auto;
}

.cv__price-text02{
    width: 300px;
    /* aspect-ratio: 298/49; */
    height: auto;
}

@media screen and (max-width: 1023px){
    .cv__points {
        gap: 20px;
        flex-wrap: wrap;
    }

    .cv__point {
        font-size: 22px;
    }

    .cv__link {
        flex-basis: 40%;
    }

    .cv__link a {
        width: auto;
    }

    .cv__price-details {
        gap: 6.8vw;
        padding-right: 0.97vw;
    }

    .cv__price-circle {
        font-size: max(16px, 2.54vw);
    }

    .cv__price-text01 {
        width: max(140px, 24.4vw);
    }

    .cv__price-text02 {
        width: 29.3vw;
    }

    .cv__price-detail-title::before {
        right: -3.4vw;
    }

    .cv__price-detail-title {
        gap: 3.9vw;
    }
}

@media screen and (max-width: 767px){
    .cv {
        padding: 50px 0;
    }

    .cv__title .--top {
        font-size: 34px;
        margin-left: 0;
    }

    .cv__title .inbl{
        display: block;
    }

    .cv__body {
        padding: 30px 3vw 35px;
    }

    .cv__points {
        gap: 15px;
    }

    .cv__point {
        font-size: 18px;
    }

    .cv__link {
        flex-basis: calc((100% - 20px) / 2);
    }

    .cv__link a {
        gap: 12px;
        font-size: 16px;
    }

    .cv__link .--mail::before {
        width: 23px;
    }

    .cv__price-heading {
        font-size: max(26px, 4.68vw);
    }
}

@media screen and (max-width: 599px){
    .cv__title .--top {
        font-size: 32px;
    }

    .cv__title .--bottom {
        font-size: 24px;
        margin-top: 0.4em;
    }

    .cv__points {
        width: fit-content;
        margin-inline: auto;
    }

    .cv__links {
        flex-direction: column;
    }

    .cv__link {
        flex-basis: auto;
        max-width: 400px;
        width: 100%;
        margin-inline: auto;
    }
}

@media screen and (max-width: 499px){
    .cv {
        padding: 40px 0;
    }

    .cv__title .--top {
        font-size: max(22px, 6.4vw);
    }

    .cv__title .--bottom {
        font-size: max(18px, 5vw);
    }

    .cv__price-details {
        gap: 12px;
        padding-right: 0;
        flex-direction: column;
    }

    .cv__price-detail-title::before{
        content: none;
    }

    .cv__price-text01 {
        width: max(150px, 40vw);
    }

    .cv__price-text02 {
        width: max(160px, 50vw);
    }

    .cv__price-details{
        padding-left: max(80px, 20vw);
        position: relative;
    }

    .cv__price-detail-title {
        position: static;
    }

    .cv__price-circle {
        font-size: max(16px, 4.5vw);
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        left: 2vw;
    }

    .cv__price-contents {
        padding: 20px 3vw;
    }
}

@media screen and (max-width: 399px){
    .cv__points {
        flex-direction: column;
    }

    .cv__body {
        padding: 24px 3vw 24px;
    }
}

/*電話番号追加*/
.cv .tel{
	font-family: "Arimo", sans-serif;
	font-size: 80px;
	font-weight: bold;
	text-align: center;
	line-height: 1.2em;
}
.cv__tel {
	margin-top: 10px;
}
.cv .tel a{
	color: #000;
}
.cv .tel span{
	position: relative;
}
.cv .tel span:before {
		position: absolute;
		font-family: "icons";
		content: "\e91b";
		top: 50%;
		transform: translateY(-50%);
		left: -58px;
		font-size: 58px;
		font-weight: normal;
}

@media screen and (max-width:1023px){
	.cv .tel{
		padding-left: 50px;
		font-size: clamp(62px,7vw,70px);
	}
	.cv .tel span:before{
		font-size: 48px;
		left: -50px;
	}
}

@media screen and (max-width:768px){
	.cv .tel { 
		font-size: 58px;
	}
	.cv .tel span:before{
		font-size: 45px;
		left: -45px;
	}
}
@media screen and (max-width:640px){
	.cv .tel{
		font-family: "Arimo", sans-serif;
		margin: 10px auto;
		padding: 0;
		font-size: clamp(28px,8.5vw,62px);
		font-weight: bold;
		text-align: center;}

	.cv .tel span{
		padding-left: 20px;
		box-sizing: border-box;}

	.cv .tel span:before{
		transform: translateY(-50%);
		left: -5%;
		font-size: 6.5vw;
	}
}
@media screen and (max-width:440px){
	.cv .tel span:before{
		left: -3%;
	}
}