@charset "UTF-8";

/*-----------------------------------------------------------------------

contents

-----------------------------------------------------------------------*/
.inner {
	width: 92%;
	max-width: 1024px;
	margin-right: auto;
	margin-left: auto;
}

h2.section_ttl {
	font-size: 22px;
	font-weight: bold;
	text-align: center;
	margin-bottom: 20px;
	padding-top: 35px;
	padding-bottom: 15px;
	position: relative;
}
h2.section_ttl::after {
	content: "";
	display: inline-block;
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translate(-50%, 0);
	width: 50px;
	height: 3px;
	background-color: #ffe100;
}
@media screen and (min-width: 768px) {
	h2.section_ttl {
		font-size: 36px;
		margin-bottom: 60px;
		padding: 100px 0 20px;
		position: relative;
	}
	h2.section_ttl::after {
		width: 80px;
		height: 4px;
	}
}


/*-----------------------------------------------------------------------

kv

-----------------------------------------------------------------------*/
.kv {
	background-image: url( "../img/kv_bg_sp.jpg");
	background-repeat: no-repeat;
	background-size: 100% auto;
  margin-top: -40px;
	padding-top: calc(640/750*100%);
	position: relative;
}
.kv::after {
	content: "";
	display: inline-block;
	position: absolute;
	top: calc(168/640*100%);
	left: 0%;
	width: 100%;
	height: 268px;
	background-image: url("../img/kv_icon_sp.png");
	background-position: 0 0;
	background-repeat: no-repeat;
	background-size: 100% auto;
}
.kv_container {
	position: absolute;
	top: 0;
	left: 0;
}
.kv_eodenki {
  display: flex;
  align-items: flex-start;
	width: calc(124/750*100%);
	margin: 2.8% 2.8% 0 auto;
}
.kv h1 {
	width: calc(650/750*100%);
	margin: -1% auto 3.2%;
}
.kv_entry {
  font-size: clamp(15.3594px, calc(100vw * 18 / 375), 23.9994px);
  font-weight: bold;
  text-align: center;
  color: #FFFFFF;
  line-height: 1;
  width: calc(620/750*100%);
  background-color: #0698f4;
  border-radius: 50px;
	margin: 1.5% auto 1.0%;
  padding: 5px 0 3px;
}
.kv_entry span {
  font-size: 70%;
}
.kv_date {
  font-size: clamp(11.9462px, calc(100vw * 14 / 375), 18.6662px);
  text-align: center;
}
.kv_date span {
  font-size: 80%;
}
@media screen and (min-width: 768px) {
	.kv {
		height: 520px;
		background-image: url( "../img/kv_bg_pc.jpg");
		background-position: 50% 0;
		background-size: 2000px auto;
    margin-top: -60px;
		padding-top: 0;
	}
	.kv::after {
		top: 74px;
		left: 50%;
		transform: translate(-50%, 0);
		width: 942px;
		height: 300px;
		background-image: url("../img/kv_icon_pc.png");
	}
	.kv_container {
		width: 1024px;
		left: 50%;
		transform: translate(-50%, 0);
	}
	.kv_eodenki {
		width: 108px;
		margin: 30px 45px 0 auto;
	}
	.kv h1 {
		width: 650px;
		margin: -27px auto 12px;
	}
	.kv_present {
		width: 668px;
		margin-right: auto;
		margin-left: auto;
	}
  .kv_entry {
    font-size: 24px;
    max-width: 494px;
    margin: 13px auto 5px;
    padding: 8px 0 5px;
  }
  .kv_entry span {
    font-size: 80%;
  }
  .kv_date {
    font-size: 20px;
  }
}
@media screen and (min-width: 2000px) {
	.kv {
		background-position: 50% 100%;
		background-size: 100% auto;
	}
}


/*-----------------------------------------------------------------------

エントリーはこちら

-----------------------------------------------------------------------*/
#entry {
  margin-top: -60px;
  padding-top: 60px;
}
.btn_entry {
	text-align: center;
	padding-top: 20px;
}
.btn_entry a {
	display: block;
	font-size: 22px;
	font-weight: bold;
	color: #000000;
	text-decoration: none;
	width: 90%;
	background-color: #ffe100;
	box-shadow: 0 3px 0 0 rgb(194, 172, 0);
	border-radius: 30px;
	margin-right: auto;
	margin-bottom: .5em;
	margin-left: auto;
	padding-top: .4em;
	padding-bottom: .4em;
	position: relative;
}
.btn_entry a::before {
	content: "";
	position: absolute;
	top: 50%;
	right: 13px;
	width: 20px;
	height: 20px;
	background-color: #FFFFFF;
	border-radius: 50%;
	-webkit-transform: translate(0, -50%);
	transform: translate(0, -50%);
}
.btn_entry a::after {
	content: "";
	position: absolute;
	top: calc(50% - 3.5px);
	right: 20px;
	width: 5px;
	height: 5px;
	border-top: 2px solid #000000;
	border-right: 2px solid #000000;
	-webkit-transform: rotate(45deg);
	transform: rotate(45deg);
}
.btn_entry a:hover {
	-webkit-transform: translateY(3px);
	transform: translateY(3px);
	box-shadow: 0 0 0 0 rgb(194, 172, 0);
}
.btn_entry p {
	font-size: 18px;
	font-weight: bold;
	padding: 10px;
}
@media screen and (min-width: 768px) {
  #entry {
    margin-top: -80px;
    padding-top: 80px;
  }
	.btn_entry {
		margin-top: 20px;
	}
	.btn_entry a {
		font-size: 28px;
		width: 540px;
		box-shadow: 0 5px 0 0 rgb(194, 172, 0);
		border-radius: 80px;
		margin-bottom: .5em;
		padding-top: .8em;
		padding-bottom: .6em;
		position: relative;
	}
	.btn_entry a::before {
		right: 25px;
		width: 34px;
		height: 34px;
	}
	.btn_entry a::after {
		top: calc(50% - 5px);
		right: 38px;
		width: 8px;
		height: 8px;
		border-top: 2px solid #000000;
		border-right: 2px solid #000000;
		-webkit-transform: rotate(45deg);
		transform: rotate(45deg);
	}
	.btn_entry a:hover {
		-webkit-transform: translateY(5px);
		transform: translateY(5px);
		box-shadow: 0 0 0 0 rgb(194, 172, 0);
	}
	.btn_entry p {
		font-size: 20px;
	}
}


/*-----------------------------------------------------------------------

anchor

-----------------------------------------------------------------------*/
.btn_anchor-wrap {
  margin: 20px 0;
}
.btn_anchor {
	display: flex;
	align-items: center;
	justify-content: center;
  flex-wrap: wrap;
  gap: 10px 3.5%;
}
.btn_anchor li {
	flex-basis: 31%;
	max-width: 31%;
  height: 65px;
  border: 2px solid #0698f4;
  border-radius: 4px;
}
.btn_anchor li a {
  display: block;
	min-height: 65px;
	font-size: clamp(11.0929px, calc(100vw * 13 / 375), 17.3329px);
	font-weight: bold;
	line-height: 1.3;
	color: #0698f4;
	text-align: center;
	text-decoration: none;
	border-radius: 4px;
	padding: 7px 0 0 0;
	position: relative;
}
.btn_anchor li a::before {
	content: "";
	position: absolute;
	bottom: 4px;
	left: 50%;
  transform: translate(-50%, 0);
	width: 100%;
	height: 6px;
	border-bottom: 5px solid #e6f6fd;
  border-radius: 0 0 4px 4px;
}
.btn_anchor li a::after {
	content: "";
	position: absolute;
	bottom: 12px;
	right: 50%;
	width: 10px;
	height: 10px;
	border-top: 2px solid #0698f4;
	border-right: 2px solid #0698f4;
	-webkit-transform: rotate(135deg) translate(-50%, 0);
	transform: rotate(135deg) translate(-50%, 0);
}
.btn_anchor li:nth-child(5) a::after {
  right: calc(50% - 5px);
	-webkit-transform: rotate(45deg) translate(-50%, 0);
	transform: rotate(45deg) translate(-50%, 0);
}
.btn_anchor li:nth-child(n+4) a {
	padding-top: 16px;
}


.btn_anchor li:hover {
	-webkit-transform: translateY(4px);
	transform: translateY(4px);
}
.btn_anchor li:hover a::before {
	border-bottom: none;
}
@media screen and (min-width: 768px) {
  .btn_anchor-wrap {
    margin: 40px 0;
  }
	.btn_anchor {
		max-width: 1024px;
		margin: 0 auto;
    gap: 0 1.4%;
	}
	.btn_anchor li {
		flex-basis: 18.6%;
		max-width: 19%;
    height: 70px;
		font-size: 18px;
		border-radius: 6px;
	}
	.btn_anchor li a {
		line-height: 1;
    height: 70px;
		border-radius: 6px;
		padding: 0;
	}
  .btn_anchor li:nth-child(n+1) a {
    padding-top: 18px;
  }
}


/*-----------------------------------------------------------------------

目標達成のイメージ

-----------------------------------------------------------------------*/
#challenge {
  margin-top: -40px;
  padding-top: 40px;
}
.challenge {
	background-color: #e6f6fd;
	padding: 30px 0 40px;
}
.challenge h2 {
	font-size: 27px;
	font-weight: bold;
	text-align: center;
	color: #0698f4;
  margin: 0 0 10px;
}
.challenge_container {
	background-color: #FFFFFF;
  box-shadow: 0px 0px 8px 0px rgba(0, 0, 0, 0.1);
	border-radius: 8px;
  margin: 0 0 45px 0;
	padding: 22px 15px 26px;
  position: relative
}
.challenge_container::after {
  content: "";
	display: inline-block;
	position: absolute;
	top: calc(100% + 15px);
	left: 50%;
  transform: translate(-50%, 0);
	width: 36px;
	height: 16px;
	background-color: #0698f4;
	clip-path: polygon(0 0, 100% 0, 50% 100%);
}
.challenge_container:nth-child(5)::after {
  display: none;
}
.challenge_wrap {
  padding-left: 52px;
  position: relative;
}
.challenge_container .challenge_wrap::before {
  content: "1";
	display: inline-block;
	position: absolute;
	top: 0;
	left: 0;
	width: 36px;
	height: 36px;
  background-color: #0698f4;
  border-radius: 50%;
  font-size: 22px;
  font-weight: bold;
  text-align: center;
  line-height: 36px;
  color: #FFFFFF;
}
.challenge_container:nth-child(3) .challenge_wrap::before {
  content: "2";
}
.challenge_container:nth-child(4) .challenge_wrap::before {
  content: "3";
}
.challenge_container:nth-child(5) .challenge_wrap::before {
  content: "4";
}
@media screen and (min-width: 768px) {
  #challenge {
    margin-top: -60px;
    padding-top: 60px;
  }
	.challenge {
		padding: 60px 0 80px;
	}
	.challenge h2 {
		font-size: 36px;
	}
	.challenge_container {
    display: flex;
		border-radius: 10px;
		margin: 24px 0 68px;
		padding: 35px 40px;
	}
  .challenge .inner .challenge_container:nth-child(5) {
    display: block;
  }
  .challenge_container::after {
    top: calc(100% + 25px);
    width: 44px;
    height: 20px;
  }
  .challenge_wrap {
  	flex-basis: 72%;
	  max-width: 72%;
    padding-left: 68px;
    position: relative;
  }
  .challenge .inner .challenge_container:nth-child(5) .challenge_wrap {
  	flex-basis: 100%;
	  max-width: 100%;
  }
  .challenge_container .challenge_wrap::before {
    width: 46px;
    height: 46px;
    font-size: 28px;
    line-height: 50px;
    color: #FFFFFF;
  }
  .challenge_wrap p {
    font-size: 20px;
  }
}

/*  アコーディオン  --------------------------------------------------*/
#electricityusage {
  margin-top: -80px;
  padding-top: 80px;
}
.accordion_txt {
	font-size: 16px;
	font-weight: bold;
	text-align: center;
	margin: 0 0 20px;
}
.accordion_list {
	background-color: #39B383;
	border-radius: 5px;
}
.accordion_list-head {
	font-size: 18px;
	font-weight: bold;
	line-height: 1.5;
	color: #FFFFFF;
	text-align: center;
	position: relative;
  background-color: #39b383;
	border-radius: 5px 5px 0 0;
	cursor: pointer;
}
.accordion-table > dl > dt.accordion_list-head {
  min-height: 40px;
  background-image: none;
}
.accordion_list-head::before,
.accordion_list-head::after {
	content: "";
	display: inline-block;
	position: absolute;
	top: 50%;
	right: 0;
	transform: translate(-10px, -50%);
	width: 20px;
	height: 2px;
	background-color: #ffffff;
}
.accordion_list-head::after {
	right: 9px;
	width: 2px;
	height: 20px;
}
.accordion-table.on .accordion_list-head::after {
	display: none;
}
.accordion_list-body {
	display: none;
	background-color: #FFFFFF;
	border-radius: 0 0 5px 5px;
	margin: 0;
	padding-right: 15px;
	padding-left: 15px;
}
.accordion_list-body ul {
	padding-bottom: 30px;
}
.accordion_list-body li {
	padding-top: 20px;
}
.accordion_list-body p {
	font-size: 15px;
}
.accordion_list-body li p:nth-child(1) {
	font-size: 14px;
	font-weight: bold;
	color: #39B383;
	text-align: center;
	background-color: #e1f4ed;
	margin-bottom: 10px;
	padding-top: .3em;
}
.accordion_list-img {
	width: calc(560/630*100%);
	margin-right: auto;
	margin-left: auto;
}
p.step_note {
	font-size: 14px;
	margin-top: 1.0em;
	padding-left: 1em;
	text-indent: -1em;
}
@media screen and (min-width: 768px) {
  #electricityusage {
    margin-top: -120px;
    padding-top: 120px;
  }
	.accordion_txt {
		font-size: 20px;
	}
	.accordion_list {
		border: 2px solid #39B383;
		border-radius: 10px;
	}
	.accordion_list-head {
		font-size: 28px;
		text-align: center;
		border-radius: 10px 10px 0 0;
		padding-top: .8em;
		padding-bottom: .8em;
		padding-left: 0;
	}
  .accordion-table > dl > dt.accordion_list-head {
    justify-content: center;
  }
	.accordion_list-head::before,
	.accordion_list-head::after {
		content: "";
		display: inline-block;
		position: absolute;
		top: 50%;
		right: 0;
		transform: translate(-25px, -50%);
		width: 30px;
		height: 3px;
	}
	.accordion_list-head::after {
		right: 13px;
		width: 3px;
		height: 30px;
	}
	.accordion_list-body {
		border-radius: 0 0 10px 10px;
		padding-right: 40px;
		padding-left: 40px;
	}
	.accordion_list-body ul {
		padding-bottom: 50px;
	}
	.accordion_list-body li {
		padding-top: 34px;
	}
	.accordion_list-body p {
		font-size: 16px;
	}
	.accordion_list-body li p:nth-child(1) {
		font-size: 20px;
		margin-bottom: 15px;
		padding-bottom: .1em;
	}
	.accordion_list-img {
		text-align: center;
		padding-top: 10px;
	}
	p.step_note {
		font-size: 14px;
		margin-top: 1.0em;
	}
}

/*-----------------------------------------------------------------------

目標達成のための節電方法

-----------------------------------------------------------------------*/
#method {
	margin-top: -30px;
	padding-top: 30px;
}
.method {
	padding-bottom: 30px;
}
.method h3 {
	display: flex;
	align-items: center;
	font-size: 2.2rem;
	color: #000000;
	line-height: 1.0;
	text-align: center;
	background-color: #e6f6fd;
	margin-top: 30px;
	padding-top: .5em;
	padding-bottom: .5em;
}
.method h3 span {
	display: block;
	text-align: center;
	width: 4.2em;
	margin-right: auto;
	margin-left: auto;
	position: relative;
}
.method h3 span::before {
	content: "";
	display: inline-block;
	position: absolute;
	top: 50%;
	left: calc(-136px/2 - 7px);
	transform: translate(0, -50%);
	width: calc(136px/2);
	height: calc(118px/2);
	background-image: url("../img/method_icon01_sp.png");
	background-position: 0 0;
	background-repeat: no-repeat;
	background-size: contain;
}
.method h3:nth-of-type(2) span::before {
	background-image: url("../img/method_icon02_sp.png");
}
.method h3:nth-of-type(3) span::before {
	background-image: url("../img/method_icon03_sp.png");
}
.method h3:nth-of-type(4) span::before {
	background-image: url("../img/method_icon04_sp.png");
}
.method_wrap {
	padding-top: 25px;
	padding-bottom: 20px;
}
.method_wrap:nth-of-type(2),
.method_wrap:nth-of-type(4) {
	border-top: 1px dotted #cccccc;
}
.method_icon {
	width: 52%;
	margin-bottom: 15px;
}
.method_note01 {
	font-size: 14px;
}
.method_note02 {
	font-size: 14px;
	padding-left: 1em;
	text-indent: -1em;
	word-wrap: break-word;
	overflow-wrap: break-word;
}
.method_note03 {
	color: #e60012;
}
.bnr_sumica {
	margin-top: 20px;
	margin-right: 4px;
	margin-left: 4px;
}
@media screen and (min-width: 768px) {
	#method {
		margin-top: -50px;
		padding-top: 50px;
	}
	.method {
		padding-bottom: 60px;
	}
	.method h3 {
		font-size: 28px;
		border-radius: 6px;
		margin-top: 30px;
		padding-top: .7em;
		padding-bottom: .6em;
	}
	.method h3 span::before {
		top: 40%;
		left: calc(-104px - 10px);
		width: 104px;
		height: 90px;
	}
	.method_wrap {
    max-width: 942px;
		display: flex;
		align-items: center;
    margin: 0 auto;
		padding: 30px 0;
	}
	.method_icon {
		width: 28%;
		margin: 0 2% 0 0;
	}
	.method_txt {
		width: 70%;
	}
	.method_wrap p {
		margin-top: 0;
	}
	.method_note02 {
		font-size: 14px;
		padding-left: 1em;
		text-indent: -1em;
	}
	.bnr_sumica {
		width: 900px;
		margin-top: 30px;
		margin-right: auto;
		margin-left: auto;
	}
}


/*-----------------------------------------------------------------------

キャンペーン概要

-----------------------------------------------------------------------*/
#campaign {
	margin-top: -30px;
	padding-top: 30px;
}
.campaign_container {
	margin-top: 20px;
	border-bottom: 1px solid #cccccc;
}
.campaign_item-ttl {
	font-weight: bold;
	background-color: #f8f8f8;
	border: 1px solid #cccccc;
	padding-top: .5em;
	padding-right: .8em;
	padding-bottom: .4em;
	padding-left: .8em;
}
.campaign_item-txt {
	border-right: 1px solid #cccccc;
	border-left: 1px solid #cccccc;
	padding-top: .5em;
	padding-right: .8em;
	padding-bottom: .4em;
	padding-left: .8em;
}
.campaign_item-txt a {
  position: relative;
  z-index: 1;
}

@media screen and (min-width: 768px) {
	#campaign {
		margin-top: -50px;
		padding-top: 50px;
	}
	.campaign_container {
		border-bottom: none;
		margin-top: 25px;
		padding-bottom: 20px;
	}
	.campaign_item {
		display: flex;
		width: 100%;
	}
	.campaign_item-ttl {
		display: flex;
		align-items: center;
		width: 22%;
		border-top: 1px solid #cccccc;
		border-right: 1px solid #cccccc;
		border-bottom: none;
		border-left: 1px solid #cccccc;
		padding-top: .8em;
		padding-right: 1.0em;
		padding-bottom: .8em;
		padding-left: 1.0em;
	}
	.campaign_item-txt {
		width: 78%;
		border-top: 1px solid #cccccc;
		border-right: 1px solid #cccccc;
		border-left: none;
		padding-top: .8em;
		padding-right: 1.0em;
		padding-bottom: .8em;
		padding-left: 1.0em;
	}
	.campaign_container .campaign_item:last-of-type .campaign_item-ttl {
		border-bottom: 1px solid #cccccc;
	}
	.campaign_container .campaign_item:last-of-type .campaign_item-txt {
		border-bottom: 1px solid #cccccc;
	}
	.campaign_item-txt li span {
		font-size: 100%;
		vertical-align: 0px;
	}
}


/*-----------------------------------------------------------------------

よくある質問

-----------------------------------------------------------------------*/
#qanda {
	margin-top: -30px;
	padding-top: 30px;
}
.qanda {
	padding-bottom: 25px;
	margin-bottom: 20px;
}
@media screen and (min-width: 768px) {
	#qanda {
		margin-top: -50px;
		padding-top: 50px;
	}
}
/*  アコーディオン よくある質問  --------------------------------------------*/
.accordion-table > dl.accordion_qa {
	border: 1px solid #CCCCCC;
	margin-bottom: 20px;
	line-height: 1.6;
  border-radius: 0px;
}
.accordion_qa-head {
	font-size: 16px;
	font-weight: bold;
	cursor: pointer;
	min-height: 26px;
	background-color: #ffffff;
	position: relative;
}
.accordion-table > dl > dt.accordion_qa-head {
  min-height: auto;
  background-image: none;
  padding: 17px 36px 14px 50px;
}
.accordion_qa-head::before {
	content: "Q";
	position: absolute;
	top: 30px;
	left: 10px;
	transform: translate(0, -50%);
	width: 30px;
	height: 30px;
	background-color: #39b383;
	border-radius: 50%;
	font-size: 15px;
	font-weight: bold;
	color: #FFFFFF;
	line-height: 30px;
	text-align: center;
}
.accordion_qa-head::after {
	content: "";
	position: absolute;
	top: calc(50% - 10px);
	right: 18px;
	width: 7px;
	height: 7px;
	border-top: 2px solid #000000;
	border-right: 2px solid #000000;
	-webkit-transform: rotate(135deg) translate(0, -50%);
	transform: rotate(135deg) translate(0, -50%);
}
.accordion-table.on .accordion_qa-head::after {
	top: calc(50% - 0px);
	right: 11px;
	-webkit-transform: rotate(-45deg) translate(0, -50%);
	transform: rotate(-45deg) translate(0, -50%);
}
.accordion-table.on .accordion_qa-head ,
.accordion_qa-head:hover {
	background-color: #e1f4ed;
}
.accordion_qa-body {
	display: none;
	margin: 0;
	padding-top: 14px;
	padding-right: 10px;
	padding-bottom: 14px;
	padding-left: 50px;
	position: relative;
}
.accordion-table > dl > dd.accordion_qa-body {
  padding: 17px 36px 14px 50px;
}
.accordion_qa-body::before {
	content: "A";
	position: absolute;
	top: 30px;
	left: 10px;
	transform: translate(0, -50%);
	width: 30px;
	height: 30px;
	background-color: #ffe100;
	border-radius: 50%;
	font-size: 15px;
	font-weight: bold;
	line-height: 30px;
	text-align: center;
}
.accordion_qa-body p {
	font-size: 14px;
}
.accordion_qa-body.comparison {
	width: 90%;
	margin-left: auto;
	margin-right: auto;
}
.accordion_qa-body a {
	color: #0022AA;
	text-decoration: underline;
}

@media screen and (min-width: 768px) {
	.qanda {
		padding-bottom: 30px;
		margin-bottom: 50px;
	}
	.accordion_qa {
		line-height: 1.7;
		margin-bottom: 30px;
	}
	.accordion_qa-head {
		display: flex;
		align-items: center;
	}
  .accordion-table > dl > dt.accordion_qa-head {
    min-height: 80px;
    background-image: none;
    padding: 17px 36px 14px 90px;
  }
	.accordion_qa-head::before {
		top: 50%;
		left: 30px;
		width: 40px;
		height: 40px;
		font-size: 20px;
		line-height: 40px;
	}
	.accordion_qa-head::after {
		top: calc(50% - 10px);
		right: 40px;
		width: 10px;
		height: 10px;
	}
  .accordion-table.on .accordion_qa-head::after {
    right: 35px;
  }
  .accordion-table > dl > dd.accordion_qa-body {
    padding: 30px 36px 30px 90px;
  }
	.accordion_qa-body::before {
		top: 50%;
		left: 30px;
		width: 40px;
		height: 40px;
		font-size: 20px;
		line-height: 40px;
	}
	.accordion_qa-body p {
		font-size: 1.6rem;
	}
}