:root {
    --color-Background-Primary: #FFFFFF;
    --color-Background-Secondary: #FFFBF2;
    --color-Text-Primary: #1a1a1a;
    --color-Text-White: #FFFFFF;
    --color-Theme: #FC760F;
    --color-Theme-hover: #ef700f;
    --color-Accent: #FC760F;
    --color-Gray-Light: #EDEEEE;
    --color-Gray-Medium: #BFBFBF;
    --color-Gray-Dark: #666666;

    --side-margin: 24px;
    --section-padding: 48px;
    --header-height: 64px;
    @media (min-width: 768px) {
        --side-margin: 40px;
        --section-padding: 80px;
        --header-height: 80px;
    }
}

body {
	background: var(--color-Background-Primary); 
    color: var(--color-Text-Primary); 
	font-family: 'Noto Sans JP', sans-serif; 
    font-size: 16px;
} 
body * {
    font-feature-settings: "palt";
} 
img {
    vertical-align: middle;
}
main {
	position: relative;
}
.section {
    position: relative;
    padding: var(--section-padding) 0;
}
.container {
    position: relative;
	width: calc(100% - var(--side-margin)* 2);
	max-width: 1200px;
	margin-inline: auto;
}
.content {
	margin-inline: auto;
}
.content.medium {
    max-width: 960px;
}
@media (min-width: 768px) {
    .hide_pc {
        display: none;
    }
}
@media (max-width: 767px) {
    .hide_sp {
        display: none;
    }
}      
/* section heading */  
.section_heading {
    margin-bottom: 48px;
    text-align: center;
}
.section_heading h2 {
    font-size: clamp(24px, 4.0vw, 40px);
    font-weight: 700;
    letter-spacing: 0.1em;
    text-align: center;
}
@media (min-width: 768px) {
    .section_heading {
        margin-bottom: 64px;
    }
}

/* font */
.font_bold {
    font-weight: bold;
}
.font_accent {
    color: var(--color-Accent);
}
/* list_style */
.list_style {
    padding-left: 1.5em;
}
.list_style li {
    line-height: 1.5;
}
.list_style li + li {
    margin-top: .5em;
}
.list_style.disc {
    list-style-type: disc;
}

/* list-style:base */	    
.list_base {
	display: table;
	padding-left: 0;
	list-style-type: none;
}
.list_base > li {
	display: table-row;
}
.list_base li:not(:last-child)::after {
  content: "";
  display: block;
  margin-bottom: 0.5em;
}
.list_base > li::before,
.list_base > li > span::before {
    display: table-cell;
	padding-right: 0.5em; 
}     
/* list-style:note */	    
.list_style_note > li::before {
  content: "-";
} 	
.dot {
    padding-top: 0.25em;
    background-repeat: repeat-x;
    background-position: left top; 
    background-size: 1.0em .25em; 
    background-image: radial-gradient(circle at center, var(--color-Accent) 20%, transparent 20%);
    font-weight: 700;
  }
 /* header */	
header {
	position: fixed;
	top: 0;
    left: 0;
	width: 100%;
	height: var(--header-height);
	padding-left: var(--side-margin);
	padding-right: 0;
	background-color: var(--color-Background-Primary);
	display: flex;
	justify-content: space-between;
	align-items: center;
	transition: .8s;
	z-index: 999;
}
header a {
    transition: .3s;
}
.header_logo {
    display: flex;
    align-items: flex-end;
    gap: 12px;
    flex-shrink: 0;
}
.header_logo img {
    width: clamp(240px, 30vw, 320px);
}
.header_logo_text {
    font-size: 10px;
    font-weight: 500;
    line-height: 1.25;
    letter-spacing: .05em;
}
.header_logo a:hover {
    opacity: .6;
}	 	
#gnav {
	display: flex;
	align-items: center; 
	height: 100%;
}
#gnav.is-visible {
	display: flex;
    justify-content: center;
	padding-top: 48px;
	animation-name: fadein;
	animation-duration: 0.3s;
	opacity: 1;
}
@keyframes fadein {
	0% {
	opacity: 0;
	}
	100% {
	opacity: 1;
	}
}
#gnav ul {
    display: flex;
    flex-direction: column;
    gap: 32px;
    text-align: center;
}
#gnav ul li a {
    position: relative;
	color: var(--color-Text-White) ;
	font-weight: 500;
    letter-spacing: .1em;
}
#gnav ul li a:not(.btn_nav)::after {
    position: absolute;
    content: '';
    bottom: -8px;
    left: 0;
    width: 100%;
    height: 2px;
    background: var(--color-Accent);
    transform: scale(0, 1);
    transform-origin: right top;
    transition: transform 0.3s;
}
#gnav ul li a:not(.btn_nav):hover::after {
  transform: scale(1, 1);
  transform-origin: left top;
}
.btn_nav {
    position: relative;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 16px;
    width: 100%;
    height: 100%;
    border-radius: 4px;
	border: 2px solid var(--color-Text-White) ;
    overflow-wrap: break-word;
    &::before{
        content: "";
        display: block;
        width: 100%;
        height: 100%;
        position: absolute;
        right: 0;
        bottom: 0;
        z-index: -2;
        background: var(--color-Theme);
    }
    &::after{
        content: "";
        display: block;
        width: 0%;
        height: 100%;
        position: absolute;
        right: 0;
        bottom: 0;
        z-index: -1;
        background: var(--color-Theme-hover);
        transition: all .3s ease-in-out;
    }
    .btn_icon {
        flex-shrink: 0;
        width: 24px;
        height: 24px;
        background-size: contain;
        background-position: center;
        background-repeat: no-repeat;
        &.contact {
            background-image: url("../images/icon_mail.svg");
        }   
    }
    .btn_text {
        min-width: 0;
        color: var(--color-Text-White);
    }
}
#gnav ul li a:hover.btn_nav::after{
    width: 100%;
    left: 0;
    right: unset;
    opacity: 1;
}
#toggle {
	position: relative;
    width: 64px;
    height: 64px;
    background-color: var(--color-Accent);
    cursor: pointer;
    color: #fff;
    flex-shrink: 0;
} 
.toggle_line {
    position: absolute;
    left: 0;
    right: 0;
    width: 32px;
    height: 2px;
    border-radius: 10px;
    background: var(--color-Text-White);
    content: "";
    transition: transform .6s ease;
    margin: auto
}
.toggle_line:nth-child(1) {
    top: 22px
}
.toggle_line:nth-child(2) {
    top: 0;
    bottom: 0
}
.toggle_line:nth-child(3) {
    bottom: 22px
}
#toggle.is-active .toggle_line:nth-child(1) {
    top: 31px;
    transform: rotate(-45deg)
}
#toggle.is-active .toggle_line:nth-child(2) {
    opacity: 0
}
#toggle.is-active .toggle_line:nth-child(3) {
    bottom: 31px;
    transform: rotate(45deg)
}
@media (min-width: 768px) {
    .header_logo_text {
        font-size: 11px;
    }
    #toggle {
	    display: none;
    }
    #gnav ul {
        flex-direction: row;
        gap: 24px;
        height: 100%;
    }
    #gnav ul li {
        display: flex;
        align-items: center;
        width: auto;
    }
    #gnav ul li a {
        color: var(--color-Text-Primary) ;
    }
    .btn_nav {
        height: 100%;
        padding-top: 0;
        padding-bottom: 0;
        border-radius: 0;
		border: none;
    }
}
@media (min-width: 1200px) {
    header {
        padding-left: calc(10% - var(--side-margin));
    }
} 	
@media (max-width: 767px) {
    #gnav {
        display: none;
        width: 100%;
        height: 100%;
        position: fixed;
        top: var(--header-height);
        left: 0;
        align-items: flex-start;
        background-color: rgba(0,0,0,80%);
        overflow-y: scroll;
    }
}

/* Footer */
footer {
    padding: 24px 0;
    background-color: var(--color-Text-Primary);
    color: #fff;
    .footer_logo {
        text-align: center;
        a:hover {
            opacity: 0.7;
            img {
                width: 240px;
            }
        }
    }
    .footer_list {
        display: flex;
        flex-flow: row wrap;
        gap: 12px;
        margin-top: 24px;
        li {
            width: 100%;
            font-size: 14px;
            line-height: 1.75;
            letter-spacing: .05em;
            a {
                color: inherit;
                text-decoration: none;
            }
            &:hover {
                color :var(--color-Accent);
                opacity: 1;
            }
        }
    }
    .copyright {
        margin-top: 24px;
        font-size:  14px;
        text-align: center;        
    }
    a {
        transition: 0.3s linear;
    }
}
@media (min-width: 768px) {
    footer {
        padding: 48px 0 24px;
        .footer_list {
            flex-flow: row wrap;
            justify-content: center;
            gap: 32px;
            li {
                width: auto;
                line-height: 1.5;
            }
        }  
    } 
}
/* page top */
.pagetop {
	position: fixed;
	right: 10px;
	bottom: 10px; 
	z-index: 999;
	a {
		position: relative;
		display: grid;
		place-content: center;
		width: 48px;
		aspect-ratio: 1;
		background-color: var(--color-Text-White);
		border: 1px solid var(--color-Theme);
		border-radius: 50%;
		transition: .3s; 
		z-index: 1;
		&::before {
			content: '';
			width: 12px;
			height: 12px;
			border-style: solid;
			border-color: var(--color-Theme);
			border-width: 1px 1px 0 0;
			margin-top: .5em;
			transform: rotate(-45deg);
			transition: .3s;
			}
		&:hover::before {
			margin-top: 0;
		}
	}
}
/* cta */
.float_btn {
    display: none;
}
@media (min-width: 768px) {
	.float_btn {
		position: fixed; 
		left: inherit;
		bottom: inherit;
		right: 0;
		top: 50%;
		transform: translatey(-50%);
		width: 56px;
		z-index: 100;
		transition: opacity 0.3s linear; 
		.btn {
			position: relative;
			display: block;
			width: 100%;
			padding-top: 40px;
			padding-right: 18px;
			padding-bottom: 12px;
			color: var(--color-Text-White);
			background-color: var(--color-Theme);
			border-style: solid;
			border-color: var(--color-Text-White);
			border-width: 2px 0 2px 2px;
			border-radius: 4px 0 0 4px;
			writing-mode: vertical-rl;
			font-size: 16px;
			font-weight: 500;
			line-height: 1.0;
			text-align: center;
			letter-spacing: 0.2em;
			transition: .3s;
			&::before {
				content: '';
				display: block;
				width: 20px;
				height: 20px;
				background-image: url(../images/icon_mail.svg);
				background-position: center;
				background-size: 20px auto;
				position: absolute;
				left: 18px;
				top: 12px;
			}
		}
		:hover.btn {
			background-color: var(--color-Theme-hover);
		}
	}
}