@charset "UTF-8";

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@200..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100..900;1,100..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap');

:root {
  --blk: #000000;
  --wht: #ffffff;
  --sepia: #bc9a6a;
  --red: #e50012;
  --blk-rgb: 0,0,0;
  --wht-rgb: 255,255,255;
  --sepia-rgb: 188,154,106;
  --red-rgb: 229,0,18;
}

/* ===============================================================================

  FIRON Common PC Styles

=============================================================================== */
body {
  min-width: 1200px;
  font-family: "Noto Sans JP", sans-serif;
}
a, a img { transition: all .3s; }
.l-container {
  position: relative;
  width: 100%;
  overflow: hidden;
}
.inner {
  max-width: 960px;
  width: 90%;
  margin: auto;
}
.sp { display: none; }

/*
  Header
=============================================================================== */
.l-header {
  position: fixed;
  z-index: 2;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  padding: calc(3.75% / 2) 3.75%;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
}
.l-header.is-scrolled { background: rgba(var(--wht-rgb), .9); }
/*
.l-header h1 {
  font-family: "Roboto", sans-serif;
  font-size: 56px;
  font-size: 5.6rem;
  font-weight: 700;
  letter-spacing: .05em;
  line-height: 1.0;
}
*/
.l-header h1 a {
  color: var(--blk);
  text-decoration: none;
}
.l-header h1 a:hover { opacity: .6; }
.l-header h1 img {
  width: 200px;
  height: auto;
}
.menu-trigger { display: none; }

/* Global Navi
------------------------------------------------------------------------------- */
.gnav ul {
  display: flex;
  align-items: center;
  justify-content: flex-end;
}
.gnav ul li {
  font-size: 20px;
  font-size: 2.0rem;
  font-weight: 500;
  letter-spacing: .05em;
  white-space: nowrap;
  margin: 0 0 0 85px;
}
.gnav ul li a {
  position: relative;
  color: var(--blk);
  text-decoration: none;
  display: inline-block;
}
.gnav ul li a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -3px;
  width: 100%;
  height: 2px;
  background-color: var(--blk);
  transform: scale(0, 1);
  transform-origin: right top;
  transition: transform .3s;
}
.gnav ul li a:hover::after {
  transform: scale(1, 1);
  transform-origin: left top;
}

/*
  Footer
=============================================================================== */
.l-footer {
  position: relative;
  color: var(--wht);
  background-color: var(--blk);
  padding: 45px 0 20px;
}
.copy {
  font-size: 15px;
  font-size: 1.5rem;
  letter-spacing: .05em;
  text-align: center;
}

/* SNS
------------------------------------------------------------------------------- */
.sns p {
  font-size: 20px;
  font-size: 2.0rem;
  font-weight: 500;
  letter-spacing: .05em;
  text-align: center;
  margin: 0 0 25px;
}
.sns ul {
  display: flex;
  align-items: center;
  justify-content: center;
}
.sns ul li a {
  color: var(--wht);
  text-decoration: none;
  display: inline-block;
  margin: 0 10px;
}
.sns ul li a:hover { opacity: .7; }

/* Footer Navi
------------------------------------------------------------------------------- */
.fnav { margin: 35px 0; }
.fnav ul {
  display: flex;
  align-items: center;
  justify-content: center;
}
.fnav ul li {
  font-size: 20px;
  font-size: 2.0rem;
  letter-spacing: .05em;
}
.fnav ul li:not(:last-of-type)::after { content: "｜"; }
.fnav ul li a {
  color: var(--wht);
  text-decoration: none;
  padding: 0 1em;
}
.fnav ul li a:hover { opacity: .7; }

/*
  Main
=============================================================================== */
.l-main { position: relative; }
.l-main > figure {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 0;
  padding: 0 0 calc(846 / 1920 * 100%);
  background: url(../../common/images/firon_bg.png);
  background-repeat: no-repeat;
  background-position: 50% 100%;
  background-size: cover;
}
