/* =========================================
   Reset CSS
========================================= */

/* Box sizing */
*,
*::before,
*::after {
  box-sizing: border-box;
}

/* Base body */
body {
  min-height: 100vh;
  line-height: 1.5;
  text-rendering: optimizeSpeed;
  -webkit-text-size-adjust: 100%;
}

/* Media elements */
img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
}

/* Form elements */
input,
button,
textarea,
select {
  font: inherit;
  color: inherit;
  background: transparent;
  border: none;
  outline: none;
}

/* Buttons */
button {
  cursor: pointer;
}

/* hr reset */
hr {
  border: none;
  height: 1px;
  background: currentColor;
  opacity: 0.2;
}

/* Anchor */
a {
  color: inherit;
  text-decoration: none;
}

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

/* Tables */
table {
  border-collapse: collapse;
  border-spacing: 0;
}

/* Text overflow */
p,
h1,
h2,
h3,
h4,
h5,
h6 {
  overflow-wrap: break-word;
}

/* Textarea resize */
textarea {
  resize: vertical;
}

/* Remove animations for accessibility */
@media (prefers-reduced-motion: reduce) {
  html:focus-within {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}


/* =========================================
    CSS
========================================= */

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  color: #111;
  background: #fff;
  line-height: 1.8;
  font-family: "Zen Old Mincho", serif;
  font-style: normal;
  font-weight: bold;
}
@media (max-width: 768px) {
  body{
    line-height:1.4;
  }
}


img {
  width: 100%;
  display: block;
}

a {
  text-decoration: none;
}

p, li{
  font-weight:500;
}

.sp{
  display:none;
}
@media screen and (max-width: 768px) {
  .sp{
    display:block;
  }
}

.pc{
  display:block;
}
@media screen and (max-width: 768px) {
  .pc{
    display:none;
  }
}

 hr{
  width:100%;
  max-width: 1080px;
  margin:auto;
  height:1px;
  background: #C49700;
 }

.inner {
  width: 100%;
  max-width: 1080px;
  margin: 0 auto;
  padding: 0 20px;
}
@media (max-width: 768px) {
  .inner {
    padding: 0 16px;
  }
}

.border{
  border-radius:5px;
  border:1px solid #C49700;
  padding:20px;
}

.section {
  padding: 50px 0;
}

.gray-bg {
  background: #f3f3f3;
}

.section-heading {
  margin-bottom: 40px;
}

.section-heading__sub {
  font-size: 16px;
  font-weight:400;
  letter-spacing: -0.05em;
  color: #b08b33;
  margin-bottom: 10px;
}

.section-heading h2 {
  font-size: 34px;
  line-height: 1.5;
  font-weight: 700;
}

@media screen and (max-width: 768px) {
  .section-heading {
    margin-bottom: 20px;
  }
  .section-heading h1{
    font-size: 24px;
    text-align:center;
  }
  .section-heading h2 {
    font-size: 24px;
    text-align:center;
  }
  .section-heading__sub {
    text-align:center;
  }
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 260px;
  height: 60px;
  padding: 0 32px;
  font-size: 14px;
  letter-spacing: 0.08em;
  transition: 0.3s;
}
@media screen and (max-width: 768px) {
  .btn {
    font-size:12px;
    height: inherit;
    padding: 12px 32px;
  }
}

.arrow {
  position: relative;
  display: inline-block;
  width: 9.7px;
  height: 15.3px;
}

.arrow::before,
.arrow::after {
  content: "";
  position: absolute;
  top: calc(50% - 1px);
  right: 0;
  width: 12px;
  height: 2px;
  border-radius: 9999px;
  background-color: #000000;
  transform-origin: calc(100% - 1px) 50%;
}

.arrow::before {
  transform: rotate(45deg);
}

.arrow::after {
  transform: rotate(-45deg);
}

.c-gold {
  color: #C49700;
}

.txt-small{
  font-size:12px;
  line-height:1.4;
}

.txt-normal{
  font-size:16px;
}

.btn--gold {
  color: #C49700;
  border: 1px solid #C49700;
  background: #000;
}

.btn:hover {
  opacity: 0.85;
}

.elite__note li:before{
  content: "";
  display:inline-block;
  width:14px;
  height:14px;
  background:url(./../images/plan04.svg) no-repeat;
  margin-right:10px;
}
/* ======================
header
====================== */

.header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 100;
  padding: 24px 0;
  border-bottom: 1px solid #DBDBDB;
  background: #FFF;
}

.header__inner {
  width: 90%;
  max-width:1200px;
  margin: 0 auto;
  padding: 0;

  display: flex;
  align-items: center;
  justify-content: space-between;
}

.logo {
  width: 220px;
}

.logo img {
  width: 100%;
  display: block;
}

.header__right {
  display: flex;
  align-items: center;
  gap: 24px;
}

.header__tel {
  color: #111;
  font-size: 28px;
  font-weight: 500;
}

.header__tel span{
  font-size:14px;
}

/* ======================
hamburger
====================== */

.hamburger {
  display: none;

  position: relative;
  width: 52px;
  height: 52px;

  border-radius: 50%;
  background: #000;
  border: none;
  cursor: pointer;

  flex-shrink: 0;
  z-index: 120;
}

.hamburger span {
  position: absolute;
  left: 50%;

  width: 28px;
  height: 2px;

  background: #FFF;

  transform: translateX(-50%);
  transition: all .4s ease;
}

.hamburger span:nth-child(1) {
  top: 16px;
}

.hamburger span:nth-child(2) {
  top: 25.5px;
}

.hamburger span:nth-child(3) {
  top: 35px;
}

/* active */

.hamburger.active {
  background: #FFF;
  border: 1px solid #111;
}

.hamburger.active span {
  background: #111;
}

.hamburger.active span:nth-child(1) {
  top: 25.5px;
  transform: translateX(-50%) rotate(45deg);
}

.hamburger.active span:nth-child(2) {
  opacity: 0;
}

.hamburger.active span:nth-child(3) {
  top: 25.5px;
  transform: translateX(-50%) rotate(-45deg);
}

/* ======================
SP navigation
====================== */

.sp-nav {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100vh;
  background: #fff;
  opacity: 0;
  visibility: hidden;
  transition:
    opacity .4s ease,
    visibility .4s ease;

  z-index: 90;

  overflow-y: auto;
}

.sp-nav.active {
  opacity: 1;
  visibility: visible;
}

.sp-nav__inner {
  width: 100%;
  padding:80px 24px 60px;
}

.sp-nav__logo {
  width: 220px;
  margin: 0 auto 24px;
}

.sp-nav__logo img {
  width: 100%;
  display: block;
}

.sp-nav__lead {
  text-align: center;
  font-size: 16px;
  letter-spacing: .08em;
  margin-bottom: 40px;
}

.sp-nav__contact {
  text-align: center;
}

.sp-nav__btn {
  margin-bottom: 32px;
}

.sp-nav__tel {
  display: block;
  color: #111;
  text-decoration: none;
  font-size: 36px;
  font-weight: 500;
  line-height: 1.2;
  margin: 10px auto 32px;
}

.sp-nav__tel span {
  font-size: 24px;
  color: #C79A00;
  margin-right: 12px;
}

.sp-nav__trial {
  width: 100%;
  max-width: 100%;
  margin-bottom: 48px;
}

.sp-nav__info {
  margin-bottom: 40px;
}

.sp-nav__info p {
  font-size: 15px;
  line-height: 2;
}

.sp-nav__links {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.sp-nav__links li {
  list-style: none;
}

.sp-nav__links a {
  display: flex;
  align-items: center;
  gap: 16px;
  color: #111;
  text-decoration: none;
  font-size: 16px;
  border-bottom: 1px solid #DDD;
  padding-bottom: 12px;
}

@media screen and (max-width: 768px) {
  .sp-nav__links a {
    border-bottom:none;
    padding-bottom: 0;
  }
}

.sp-nav__links img {
  width: 24px;
}

.btn--gold {
  color: #C49700;
  background: #FFF;
  border-radius: 8px;
  border: 1px solid #C49700;
  padding: 4px 12px;
  margin:auto 0;
}

.btn--black {
  background: #000;
  color: #C79A00;
}

.master-btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 25px;
  text-decoration: none;
  letter-spacing: 1.6px;
  font-size: 16px;
  transition:
  background-color .35s ease,
  box-shadow .35s ease;
}

@media screen and (min-width: 769px) {
  .master-btn{
    min-width:210px;
  }
}

.master-btn.-wh{
  background: #FFF;
  color: #000;
  border: 1px solid #C49700;
}

.master-btn.-gold{
  border: 0.748px solid #C49700;
  background: #000;
  color:#C49700;
  font-weight:500;
}

.master-btn.-back{
  border: 1px solid #C49700;
  background: #E7E7E7;
}

.master-btn.-ad{
  border: 1px solid #C49700;
  background: linear-gradient(
    180deg,
    #FFF 0%,
    #C2B090 100%
  );
  color:#000;
  font-weight:500;
  padding: 3px;
}

.master-btn.-ad .ad-inner{
  padding: 16px;
  display:flex;
  justify-content:center;
  content:"";
  border: 1px solid #C49700;
  width:100%;
}

.master-btn__text {
  font-size: 16px;
  line-height: 1.6;
}

.master-btn__arrow {
  display: flex;
  align-items: center;
  transition: transform .35s ease;
}

/* hover */

.master-btn:hover {
  background: #FAF5EC;
}

.master-btn:hover .master-btn__arrow {
  transform: translateX(8px);
}

/* click */

.master-btn:active {
  transform: translateY(1px);
}

/* ======================
responsive
====================== */

@media screen and (max-width: 768px) {

  .header {
    padding: 10px 0;
  }

  .header__inner {
    width: 100%;
    padding: 0 8px;
  }

  .logo {
    width: 180px;
  }

  /* hide PC area */
  .header__right {
    display: none;
  }

  /* show hamburger */
  .hamburger {
    display: block;
  }
}

body.is-fixed {
  overflow: hidden;
}

/* ======================
footer
====================== */


.footer {
  background: #fff;
  padding: 50px 20px 30px;
  border-top: 1px solid #C49700;
}

.footer-container {
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 40px;
  flex-wrap: wrap;
}

.footer-box {
  flex: 1;
  min-width: 250px;
  position: relative;
  padding-right: 20px;
}

.footer-box:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 1px;
  height: 110px;
  background: #C49700;
}

/* Left */
.logo-box .logo {
  width: 100%;
  margin-bottom: 15px;
}

.logo-box p {
  font-size: 14px;
  letter-spacing: 1px;
}

/* Center */
.info-box {
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 100%;
}

.info-box p {
  font-size: 16px;
  line-height: 2;
  font-weight: 600;
}

/* Right */
.contact-box {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.contact-box a {
  text-decoration: none;
  display:flex;
  align-items:center;
  gap:10px;
  font-size: 14px;
  transition: 0.3s;
}

.contact-box a:hover {
  color: #c9a227;
}

.contact-box a::before{
  content:"";
  display: inline-block;
  width:16px;
  height:16px;
}

.contact-box a.-tel::before{
  background:url(./../images/menu_tel.svg) center /contain no-repeat;
}

.contact-box a.-mail::before{
  background:url(./../images/menu_mail.svg) center /contain no-repeat;
}

.contact-box a.-web::before{
  background:url(./../images/menu_web.svg) center /contain no-repeat;
}

/* Copyright */
.footer-copy {
  text-align: center;
  margin-top: 30px;
  padding-top: 10px;
  border-top: 1px solid #D9D9D9;
  font-size: 14px;
  color: #C49700;
}

/* Responsive */
@media (max-width: 768px) {
  .footer-container {
    flex-direction: column;
    gap: 30px;
  }

  .footer-box {
    padding: 0;
  }

  .footer-box:not(:last-child)::after {
    display: none;
  }

  .logo-box h2 {
    font-size: 28px;
  }

  .info-box p,
  .contact-box a {
    font-size: 18px;
  }
  .footer-box.info-box, .footer-box.contact-box{
    display:none;
  }
  .footer-copy {
    font-size:10px;
  }
}