@charset "UTF-8";

/* ==========================================================================
   Foundation
   ========================================================================== */

/* Reset
   ----------------------------------------------------------------- */

/**
 * Margin & Padding
 *
 */
html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
}

/**
 * html5 New Elements
 *
 */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, main {
	display: block;
}

/**
 * Anchor
 *
 */
a {
	margin: 0;
	padding: 0;
	vertical-align: baseline;
	background: transparent;
}

/**
 * Emphasis
 *
 */
em {
	font-style: normal;
}

/**
 * List
 *
 */
nav, ol, ul {
	list-style: none;
}

/**
 * Table
 *
 */
table {
	border-collapse: collapse;
	border-spacing: 0;
}
th {
	font-weight: normal;
	text-align: left;
}

/**
 * Form Elements
 *
 */
input, select, textarea, button {
	vertical-align: middle;
	outline: none;
}
fieldset {
	border: none;
}
input,
button,
select,
textarea {
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background-color: transparent;
	box-shadow: none;
	outline: none;
	-moz-appearance: none;
	-webkit-appearance: none;
			appearance: none;
}
input::-webkit-input-placeholder,
textarea::-webkit-input-placeholder {
	color: #A5A0A0;
}
input:-ms-input-placeholder,
textarea:-ms-input-placeholder {
	color: #A5A0A0;
}
input::placeholder,
textarea::placeholder {
	color: #A5A0A0;
}
input:-webkit-autofill {
	box-shadow: 0 0 0 1000px #F6F3F3 inset;
}


/* Base
   ----------------------------------------------------------------- */

html, body {
	height: 100%;
}
html {
	font-size: 62.5%;
	-webkit-tap-highlight-color: rgba(0, 0, 0, 0.4);
}
body {
	-webkit-font-smoothing: antialiased;
	color: #121212;
}
*,
*::before,
*::after {
	box-sizing: border-box;
}
body,
button,
input,
optgroup,
select,
textarea {
	font-family: fot-tsukuardgothic-std, "メイリオ", Meiryo, sans-serif;
	font-weight: 400;
	font-style: normal;
}
body, h1, h2, h3, h4, h5, h6 {
	font-size: 1.8rem;
}
h1, h2, h3, h4, h5, h6 {
	line-height: 1.3;
}
p {
	line-height: 1.5;
}
button, input, optgroup, select, textarea {
	font-size: 1.8rem;
}
a, a:hover {
	word-break: break-all;
}
a {
	color: #54950A;
	text-decoration: underline;
}
a:hover {
	text-decoration: none;
}
em {
	color: #DD4444;
}
small {
	color: #8C8C8C;
}
@media screen and (min-width: 750px) {
	body, h1, h2, h3, h4, h5, h6 {
		font-size: 2rem;
	}
}


/* ==========================================================================
   Layout
   ========================================================================== */


/* Header
   ----------------------------------------------------------------- */

.l-header {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 100;
	width: 100%;
	background-color: #ffffff;
	border-bottom: 0.1rem solid #EBEBEB;
}
.l-header__inner {
	position: relative;
	display: flex;
	justify-content: flex-start;
	align-items: center;
	gap: 0.8rem;
	max-width: 110rem; /*  980px */
	height: 4.8rem;
	margin: 0 auto;
	padding: 0 7.2%;
}
.l-header a {
	color: #121212;
	text-decoration: none;
}

@media screen and (min-width: 1100px) {
	.l-header__inner {
		padding: 0 6rem;
	}
}


/* Navigation
   ----------------------------------------------------------------- */

.l-navi {
	position: fixed;
	top: 4.9rem;
	left: 0;
	z-index: 100;
	width: 100%;
	background-color: #ffffff;
}
.l-navi__inner {
	position: relative;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1.2rem;
	max-width: 110rem; /*  980px */
	height: 6.4rem;
	margin: 0 auto;
	padding: 0 7.2%;
}
.l-navi__inner li {
	width: 100%;
}

@media screen and (min-width: 1100px) {
	.l-navi__inner {
		padding: 0 6rem;
	}
}


/* Wrapper
   ----------------------------------------------------------------- */

.l-wrapper {
	padding: 11.3rem 0 6rem;
}


/* Main Contents
   ----------------------------------------------------------------- */

.l-contents {
	width: 100%;
	max-width: 110rem; /*  980px */
	margin: 0 auto;
	padding: 0 7.2%;
}

@media screen and (min-width: 1100px) {
	.l-contents {
		padding: 0 6rem;
	}
}


/* Headline
   ----------------------------------------------------------------- */

.l-headline {
	padding: 3rem 0 2rem;
}
.l-headline p {
	margin-top: 0.8rem;
	line-height: 1.3;
}


/* Footert
   ----------------------------------------------------------------- */

.l-footer {
	position: fixed;
	bottom: 0;
	left: 0;
	z-index: 100;
	width: 100%;
	background-color: #ffffff;
}
.l-footer__inner {
	position: relative;
	display: flex;
	justify-content: flex-start;
	align-items: center;
	gap: 0.8rem;
	max-width: 110rem; /*  980px */
	height: 6rem;
	margin: 0 auto;
	padding: 0 7.2%;
}

@media screen and (min-width: 1100px) {
	.l-footer__inner {
		padding: 0 6rem;
	}
}


/* Button
   ----------------------------------------------------------------- */

.l-btn {
	padding: 4rem 0;
}


/* ==========================================================================
   Object
   ========================================================================== */

/* Component
   ----------------------------------------------------------------- */

/**
 * Button
 *
 */
.c-btn {
	display: flex;
	justify-content: center;
	align-items: center;
	align-content: center;
	margin: 0;
	padding: 0 2.4rem;
	border: 0.2rem solid;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	cursor: pointer;
}
.c-btn.is-over,
.c-btn:hover {
	text-decoration: none;
}

/* ----- Button Color Default ----- */

.c-btn--default {
	background-color: #FFFFFF;
	border-color: #161616;
	color: #161616;
	transition: border-color .2s ease-in-out, color .2s ease-in-out;
}
.c-btn--default.is-over {
	background-color: #161616;
	border-color: #161616;
	color: #FFFFFF;
}
.c-btn--default.is-active,
.c-btn--default.is-active.is-over {
	background-color: #161616;
	border-color: #161616;
	color: #FFFFFF;
}

/* ----- Button Color Primary ----- */

.c-btn--primary {
	background-color: #54950A;
	border-color: #54950A;
	color: #FFFFFF;
	transition: background-color .2s ease-in-out, border-color .2s ease-in-out;
}
.c-btn--primary.is-over {
	background-color: #161616;
	border-color: #161616;
	color: #FFFFFF;
}
.c-btn--primary.is-active,
.c-btn--primary.is-active.is-over  {
	background-color: #161616;
	border-color: #161616;
	color: #FFFFFF;
}

/* ----- Button Size Rounded Rectangle [Small] ----- */

.c-btn--rectangle-sm {
	width: 100%;
	height: 4rem;
	border-radius: 1.6rem;
	font-size: 1.6rem;
}

/* ----- Button Size Rounded Rectangle [Large] ----- */

.c-btn--rectangle-lg {
	width: 100%;
	height: 6rem;
	border-radius: 2.6rem;
	font-size: 2rem;
}

/**
 * Bubble
 *
 */
.c-bubble {
	position: fixed;
	bottom: 8rem;
	right: 7.2%;
	z-index: 200;
	display: inline-block;
	padding: 1.6rem 1.6rem;
	border: 0.4rem solid #000000;
	border-radius: 3rem;
	background-color: #f26d6d;
	text-align: center;
	font-size: 1.8rem;
	font-weight: 700;
	line-height: 1.25;
	color: #000000;
}

.c-bubble::before {
	content: "";
	position: absolute;
	bottom: 0;
	left: 50%;
	border-style: solid;
	border-width: 20px 10px 0 10px;
	border-color: #000000 transparent transparent;
	translate: -50% 100%;
}

.c-bubble::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 50%;
	border-style: solid;
	border-width: 13.3px 6.6px 0 6.6px;
	border-color: #f26d6d transparent transparent;
	translate: -50% 100%;
}

@media screen and (min-width: 1100px) {
	.c-bubble {
		right: calc( (100% - 98rem) / 2 );
	}
}


/* Project
   ----------------------------------------------------------------- */

.p-plan,
.p-plan__item {
	position: relative;
}
.p-plan {
	padding: 4rem 0;
}
.p-plan__item {
	padding: 0 0 0 4.5rem;
}
.p-plan__item + .p-plan__item {
	margin-top: 4rem;
}
.p-plan::before {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 1.2rem;
	z-index: 1;
	width: 0.8rem;
	height: 100%;
	background-color: #e1dcd2;
	border-radius: 0.4rem;
}
.p-plan__itemCounter {
	display: flex;
	justify-content: center;
	align-items: center;
	align-content: center;
	position: absolute;
	top: 0.2rem;
	left: 0;
	z-index: 2;
	width: 3.2rem;
	height: 3.2rem;
	border: 0.2rem solid #000000;
	border-radius: 50%;
	background-color: #f26d6d;
	box-shadow: 0 0.2rem 0 rgba(0, 0, 0, 1);
	font-size: 1.4rem;
	font-weight: 700;
}
.p-plan__separate + .p-plan__separate {
	margin-top: 2rem;
}
.p-plan__enmoku {
	padding: 0.8rem 1rem;
	background-color: #faf9f7;
	border-radius: 0.4rem;
	border: 0.1rem solid #e1dcd2;
	box-shadow: 0 0.2rem 0 #e1dcd2;
}

@media screen and (min-width: 750px) {
	.p-plan__item {
		padding: 0 0 0 6rem;
	}
}


/* Utitlity
   ----------------------------------------------------------------- */

/**
 * Text Size - Fixed
 *
 */
.u-txs--1fixed {
	font-size: 2.4rem;
}
.u-txs--2fixed {
	font-size: 2.0rem;
}
.u-txs--3fixed {
	font-size: 1.8rem;
}
.u-txs--4fixed {
	font-size: 1.6rem;
}
.u-txs--5fixed {
	font-size: 1.0rem;
}

/**
 * Text Size - Variable
 *
 */
.u-txs--1 {
	font-size: 2.4rem;
}
.u-txs--2 {
	font-size: 2.0rem;
}
.u-txs--3 {
	font-size: 1.8rem;
}
.u-txs--4 {
	font-size: 1.6rem;
}
.u-txs--5 {
	font-size: 1.0rem;
}

@media screen and (min-width: 750px) {
	.u-txs--1 {
		font-size: 2.8rem;
	}
	.u-txs--2 {
		font-size: 2.4rem;
	}
	.u-txs--3 {
		font-size: 2.0rem;
	}
	.u-txs--4 {
		font-size: 1.8rem;
	}
	.u-txs--5 {
		font-size: 1.2rem;
	}
}

/**
 * Text Weight
 *
 */
.u-txw--regular {
	font-weight: 400;
}
.u-txw--heavy {
	font-weight: 700;
}

/**
 * Text Position
 *
 */
.u-txp--center {
	text-align: center;
}

/**
 * Image
 *
 */
.u-img--responsive {
	width: 100%;
	height: auto;
}

/**
 * Post Content / other
 *
 */
.u-underline,
.u-post .wp-block-underline {
	display: inline;
	background: linear-gradient(to bottom, rgba(255,255,255,0) 60%, rgba(255,240,0,1) 60%);
	font-weight: 700;
	color: #000000;
}
.u-post .wp-block-underline::after {
	content: '';
	display: block;
	width: 100%;
	height: 4rem;
}

@media screen and (min-width: 750px) {
	.u-post .wp-block-heading.wp-block-underline::before {
		content: '';
		display: block;
		width: 100%;
		height: 4rem;
	}
}