@charset "utf-8";



/* --------------------------------------------------------------------------------
essential
-------------------------------------------------------------------------------- */

body {
	letter-spacing: 0.025em;
}



/* --------------------------------------------------------------------------------
misc
-------------------------------------------------------------------------------- */

br.large,
br.medium {
	display: none;
}
br.small {
	display: inline;
}
*.no-large,
*.no-medium {
	display: inline;
}
*.no-small {
	display: none;
}



/* --------------------------------------------------------------------------------
header
-------------------------------------------------------------------------------- */

header#header {
	position: relative;
	width: auto;
	height: auto;
	left: auto;
	top: auto;
}
div.scroll header#header {
	background-color: transparent;
}
div.scroll header#header p#logo,
div.scroll header#header p#button-menu {
	transform: translateY(-70px);
}
div.scroll header#header.menu p#logo,
div.scroll header#header.menu p#button-menu,
div.scroll-up header#header p#logo,
div.scroll-up header#header p#button-menu {
  transform: translateY(0px);
}
header#header p#logo {
  box-sizing: border-box;
  position: fixed;
  width: 100%;
  height: 70px;
	left: 0px;
  top: 0px;
	z-index: 20;
  padding: 27px 0px 0px 20px;
  transition: 0.25s background-color ease, 0.25s transform ease;
}
div.scroll header#header p#logo {
	background-color: rgba(255, 255, 255, 0.875);
}
div.scroll header#header.menu p#logo {
	background-color: transparent;
}
header#header p#logo a {
	width: 166px;
	height: 16px;
}
header#header p#logo img {
	height: 16px;
}
header#header p#button-menu {
  display: block;
  position: fixed;
  width: 30px;
  height: 30px;
  right: 20px;
  top: 20px;
  cursor: pointer;
  z-index: 30;
  transition: 0.25s transform ease;
}
header#header p#button-menu i {
  display: block;
  position: absolute;
  background-color: #ffffff;
  width: 28px;
  height: 2px;
  left: 1px;
  top: 14px;
  transform-origin: 50% 50%;
  transition: 0.25s background-color ease;
}
div.scroll header#header p#button-menu i {
  background-color: #666666;
}
div.scroll header#header.menu p#button-menu i {
  background-color: #ffffff;
}
header#header p#button-menu i:nth-child(1) {
	transform: translateY(-10px) rotate(0deg);
}
header#header p#button-menu i:nth-child(2) {
	transform: translateY(0px) rotate(0deg);
}
header#header p#button-menu i:nth-child(3) {
	transform: translateY(10px) rotate(0deg);
}
header#header.menu p#button-menu i:nth-child(1) {
  animation: button-menu-row-01 0.25s 1 forwards;
}
header#header.close p#button-menu i:nth-child(1) {
  animation: button-menu-row-01-close 0.25s 1 forwards;
}
header#header.menu p#button-menu i:nth-child(2) {
  animation: button-menu-row-02 0.25s 1 forwards;
}
header#header.close p#button-menu i:nth-child(2) {
  animation: button-menu-row-02-close 0.25s 1 forwards;
}
header#header.menu p#button-menu i:nth-child(3) {
  animation: button-menu-row-03 0.25s 1 forwards;
}
header#header.close p#button-menu i:nth-child(3) {
  animation: button-menu-row-03-close 0.25s 1 forwards;
}
@keyframes button-menu-row-01 {
	0% { transform: translateY(-10px) rotate(0deg); }
	50% { transform: translateY(0px) rotate(0deg); }
	100% { transform: translateY(0px) rotate(-45deg); }
}
@keyframes button-menu-row-01-close {
	0% { transform: translateY(0px) rotate(-45deg); }
	50% { transform: translateY(0px) rotate(0deg); }
	100% { transform: translateY(-10px) rotate(0deg); }
}
@keyframes button-menu-row-02 {
	0% { opacity: 1; }
	100% { opacity: 0; }
}
@keyframes button-menu-row-02-close {
	0% { opacity: 0; }
	100% { opacity: 1; }
}
@keyframes button-menu-row-03 {
	0% { transform: translateY(10px) rotate(0deg); }
	50% { transform: translateY(0px) rotate(0deg); }
	100% { transform: translateY(0px) rotate(45deg); }
}
@keyframes button-menu-row-03-close {
	0% { transform: translateY(0px) rotate(45deg); }
	50% { transform: translateY(0px) rotate(0deg); }
	100% { transform: translateY(10px) rotate(0deg); }
}
header#header div#menu {
  box-sizing: border-box;
	position: fixed;
  width: 100%;
  height: 100%;
	right: 0px;
	top: 0px;
  overflow: auto;
	z-index: 10;
	background-color: #3a3a3a;
	transform: translateX(100%);
	transition: 0.25s transform ease;
	-webkit-overflow-scrolling: touch;
}
header#header.menu div#menu {
	transform: translateX(0%);
}
header#header nav#navi {
  position: static;
	width: auto;
	right: auto;
  padding-top: 70px;
  background-color: #3a3a3a;
}
header#header nav#navi ul {
	display: block;
	padding-right: 0px;
}
header#header nav#navi ul li {
  text-indent: 0.1em;
  font-size: 20px;
  letter-spacing: 0.1em;
  border-bottom: 1px solid #707070;
	margin-right: 0px;
  padding: 20px 0px;
}
header#header nav#navi > ul > li:last-child {
  border-bottom: none;
}
header#header nav#navi ul li a {
	width: auto;
	height: auto;
	color: #ffffff;
	background-color: transparent;
}
header#header nav#navi ul li a:hover {
	color: #ffffff;
	background-color: transparent;
}
header#header nav#navi ul li.quatro-boom a {
	width: 130px;
	height: 35px;
	margin: auto;
	background-image: none;
}
header#header nav#navi ul li.quatro-boom img {
	transform: translateY(3px);
}
header#header nav#navi ul li.quatro-boom a:hover {
	background-color: #ffffff;
}
header#header nav#navi ul li.quatro-boom a:hover img {
	opacity: 1;
}



/* --------------------------------------------------------------------------------
cover
-------------------------------------------------------------------------------- */

div#cover h1 {
	width: 252px;
	height: 70px;
	left: calc(50% - 126px);
	top: calc(50% - 75px);
	z-index: 10;
}
div#cover div.navi {
	bottom: 100px;
}
div#cover p.button-scroll {
	width: 39px;
	height: 21px;
	left: calc(50% - 19.5px);
	bottom: 20px;
}
div#cover p.button-scroll a {
	background-image: url(../../images/cover-arrow-scroll-small.svg);
	background-size: auto 21px;
}
@media screen and (orientation: portrait) {
div#cover div.image p.row-01 {
	background-image: url(../../images/cover-image-01-small.jpg);
}
}



/* --------------------------------------------------------------------------------
content
-------------------------------------------------------------------------------- */

div#content {
	padding-top: 40px;
}
div#content div.inner-content {
	width: calc(100% - 40px);
}
div#content section h2 {
	width: calc(100% - 40px);
	font-size: 30px;
	padding: 60px 0px 40px 0px;
}
div#content section h2::before {
	height: 48px;
	background-size: auto 48px;
}
div#content section h3.headline {
	font-size: 26px;
	margin-bottom: 60px;
}
div#content section h3.headline::before,
div#content section h3.headline::after {
	width: 5px;
	height: 24px;
	vertical-align: -3px;
}
div#content section div.block div.inner-block {
	width: calc(100% - 40px);
	padding: 60px 0px;
}
div#content section#vision div.block-summary p.sub,
div#content section#vision div.block-summary p.headline {
	font-size: 20px;
}
div#content section#vision div.block-summary div.inner-block {
  width: auto;
}
div#content section#vision div.block-summary h3 {
	font-size: 40px;
}
div#content section#vision div.block-summary h3 span:first-child {
	padding-right: 4px;
	transform: translateY(-4px);
}
div#content section#vision div.block-summary h3 span:last-child {
	padding-left: 4px;
	transform: translateY(4px);
}
div#content section#vision div.block-detail div.list div.row {
	padding: 40px 20px;
}
div#content section#vision div.block-detail div.list div.row div.label {
	position: static;
	top: auto;
  margin-bottom: 40px;
}
div#content section#vision div.block-detail div.list div.row:nth-child(2n+1) div.label {
	left: auto;
}
div#content section#vision div.block-detail div.list div.row:nth-child(2n) div.label {
	right: auto;
}
div#content section#vision div.block-detail div.list div.row div.label p.sub {
	font-size: 11px;
}
div#content section#vision div.block-detail div.list div.row div.label p.num {
	font-size: 42px;
}
div#content section#vision div.block-detail div.list div.row h4 {
	font-size: 30px;
	margin-bottom: 30px;
	padding-bottom: 30px;
}
div#content section#vision div.block-brand-name p.logo {
	margin-bottom: 60px;
}
div#content section#vision div.block-brand-name p.logo img {
	height: 70px;
}
div#content section#vision div.block-brand-name p.description {
	text-align: justify;
}
div#content section#vision div.block-brand-name p.description br {
	display: none;
}
div#content section#vision div.block-brand-character div.column {
	display: block;
	width: auto;
}
div#content section#vision div.block-brand-character p.image {
	width: 160px;
  margin: 0px auto 40px auto;
}
div#content section#vision div.block-brand-character div.text {
	width: auto;
	padding-top: 0px;
}
div#content section#vision div.block-brand-character div.text h4 {
	font-size: 20px;
}
div#content section#about div.block div.list div.row {
	display: block;
	padding: 40px 0px;
}
div#content section#about div.block div.list div.row p.label {
	width: auto;
  margin-bottom: 10px;
}
div#content section#about div.block div.list div.row div.body {
	width: auto;
  margin-right: -20px;
}
div#content section#stores h3.headline {
	font-size: 22px;
	margin-bottom: 40px;
}
div#content section#stores h3.headline::before,
div#content section#stores h3.headline::after {
	vertical-align: -4px;
}
div#content section#stores div.block div.list {
	display: block;
	margin: 0px auto 80px auto;
}
div#content section#stores div.block div.list:last-child {
	margin-bottom: 0px;
}
div#content section#stores div.block div.list div.row {
	display: block;
	width: auto;
	margin: 0px 0px 15px 0px;
}
div#content section#stores div.block div.list div.row:last-child {
  margin-bottom: 0px;
}
div#content section#stores div.block div.list div.row p.image {
  position: relative;
	width: auto;
  overflow: hidden;
	margin: 0px 0px 10px 0px;
  padding-bottom: 50%;
}
div#content section#stores div.block div.list div.row p.image img {
  position: absolute;
  left: 0px;
  top: -11.53%;
}
div#content section#stores div.block div.list div.row div.text {
	width: auto;
	text-align: center;
}
div#content section#stores div.block div.list div.row div.text p {
	margin-right: 0px;
}
div#content section#stores div.block div.list div.row div.text div.links ul {
	justify-content: center;
}



/* --------------------------------------------------------------------------------
footer
-------------------------------------------------------------------------------- */

footer#footer {
	padding-bottom: 20px;
}
footer#footer div.banner {
	margin-bottom: 20px;
	padding: 40px 0px;
}
footer#footer div.banner ul {
	display: block;
}
footer#footer div.banner ul li {
	margin: 0px 0px 10px 0px;
}
footer#footer div.banner ul li:last-child {
	margin-bottom: 0px;
}
footer#footer div.banner ul li img {
	height: 80px;
  margin: auto;
}
footer#footer div.information {
	display: block;
  text-align: center;
	margin-bottom: 10px;
}
footer#footer div.information h3 {
	margin-right: 0px;
}
