@charset "utf-8";

:root {
  --navy-950:#020611;
  --navy-900:#061024;
  --navy-800:#0a1933;
  --navy-700:#102747;
  --navy-gradient:linear-gradient(135deg,#020611 0%,#061024 52%,#0d1d38 100%);
  --gold:#c39a55;
  --gold-light:#e2c27f;
  --gold-deep:#8e6b35;
  --gold-gradient-bright:linear-gradient(90deg,#8a663b 0%,#e0bf82 24%,#9a7746 47%,#d7b376 70%,#8a6a3f 100%);
  --gold-gradient-accent:linear-gradient(90deg,#b08e5a 0%,#e0bf82 50%,#b3905c 100%);
  --gold-gradient-fade:linear-gradient(90deg,transparent 0%,#d8b67b 50%,transparent 100%);
  --gold-gradient-text:linear-gradient(105deg,#f0d292 0%,#ad8148 30%,#e7c681 55%,#986d3c 76%,#f2d79a 100%);
  --cta-deep-blue:#0b2a55;
  --cta-section-gradient:
    radial-gradient(circle at center,rgba(240,220,176,0.13) 0,rgba(240,220,176,0.13) 0.5px,transparent 0.65px) 0 0 / 8px 8px,
    linear-gradient(180deg,rgba(255,255,255,0.045) 0%,transparent 42%),
    linear-gradient(135deg,var(--cta-deep-blue) 0%,#123f73 42%,#1a5287 68%,#0d315e 100%);
  --outline-section-gradient:linear-gradient(180deg,#10325f 0%,var(--cta-deep-blue) 50%,#081f45 100%);
  --logo-red:#e9314b;
  --light:#f3f0e9;
  --light-blue:#e7e4dc;
  --line:#d9d4ca;
  --text:#0b1628;
  --subtext:#565d68;
  --white:#fff;
  --font-jp:'Noto Serif JP','Hiragino Mincho ProN','Yu Mincho','YuMincho',serif;
  --font-en:'Libre Baskerville','Noto Serif JP','Hiragino Mincho ProN','Yu Mincho','YuMincho',serif;
}

html {
  min-height:100%;
  background:linear-gradient(180deg,#141e3c 0%,#0a1432 100%);
  scroll-behavior:smooth;
}

body {
  margin:0;
  padding:0;
  background:transparent;
  overflow-x:hidden;
}

body,div,p,a,article,section,aside,figure,main,nav,ul,li,dl,dt,dd,header,footer,iframe,h1,h2,h3,h4,h5,strong,time {
  color:var(--text);
  font-family:var(--font-jp);
  font-size:1em;
  font-weight:400;
  letter-spacing:0.035em;
  line-height:1.8;
  word-wrap:break-word;
}

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

img {
  width:100%;
  height:auto;
  margin:0;
  padding:0;
  vertical-align:bottom;
  border-style:none;
}

li {
  list-style:none;
}

a {
  text-decoration:none;
}

.wrap {
  overflow:hidden;
}

.preview-top-only #top_benefit,
.preview-top-only #top_profile,
.preview-top-only #top_outline,
.preview-top-only #application,
.preview-top-only footer {
  display:none;
}

.cts {
  width:min(1000px, calc(100% - 48px));
  margin:auto;
}

.section_heading .number {
  display:flex;
  align-items:center;
  gap:13px;
  color:var(--gold);
  font-size:0.95rem;
  font-weight:900;
  letter-spacing:0.12em;
  line-height:1;
}

.section_heading .number:after {
  content:"";
  width:48px;
  height:2px;
  background:var(--gold);
}

.section_heading .number span {
  order:2;
  color:#737d89;
  font-size:0.65rem;
  font-weight:800;
  letter-spacing:0.2em;
}

.section_heading h2 {
  margin-top:22px;
  color:var(--navy-900);
  font-size:clamp(2rem, 4vw, 3.45rem);
  font-weight:900;
  letter-spacing:0.025em;
  line-height:1.35;
}

#top_worry .worry_emphasis {
  color:#d2be96;
  font-weight:900;
}

.section_heading_light h2,
.section_heading_light .number span {
  color:var(--white);
}

.section_heading_light .number span {
  opacity:0.58;
}

.cta_btn {
  width:min(520px, 100%);
}

.cta_btn a {
  width:100%;
  min-height:82px;
  padding:17px 20px 17px 32px;
  border:1px solid rgba(117,88,31,0.34);
  background:linear-gradient(105deg,#eee5d0 0%,#c3ad79 52%,#ded1ae 100%);
  box-shadow:0 18px 38px rgba(5,20,38,0.18);
  display:flex;
  justify-content:space-between;
  align-items:center;
  position:relative;
  overflow:hidden;
  transition:transform 0.3s ease, box-shadow 0.3s ease;
}

.cta_btn a:before {
  content:"";
  width:48px;
  height:170%;
  background:rgba(255,255,255,0.24);
  position:absolute;
  top:-35%;
  left:-80px;
  transform:skewX(-18deg);
  transition:left 0.55s ease;
}

.cta_btn a:hover,
.cta_btn a:focus-visible {
  box-shadow:0 22px 45px rgba(5,20,38,0.25);
  transform:translateY(-3px);
}

.cta_btn a:hover:before,
.cta_btn a:focus-visible:before {
  left:calc(100% + 30px);
}

.cta_btn .label {
  color:var(--navy-950);
  font-size:1.08rem;
  font-weight:900;
  letter-spacing:0.07em;
}

.cta_btn .arrow {
  width:42px;
  height:42px;
  border:1px solid rgba(6,20,38,0.44);
  border-radius:50%;
  display:block;
  position:relative;
  flex:0 0 auto;
}

.cta_btn .arrow:before {
  content:"";
  width:9px;
  height:9px;
  border-top:2px solid var(--navy-950);
  border-right:2px solid var(--navy-950);
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-65%, -50%) rotate(45deg);
}

.js-enabled [data-reveal] {
  opacity:0;
  transform:translateY(22px);
  transition:opacity 0.7s ease, transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}

.js-enabled [data-reveal].is-visible {
  opacity:1;
  transform:translateY(0);
}

@keyframes cta-pulse {
  from {
    transform:scale(1);
  }

  to {
    transform:scale(1.03);
  }
}

#top_movie .cta_btn_image a {
  transform-origin:center;
  animation:cta-pulse 1.5s ease-in-out infinite alternate;
  transition:opacity 0.25s ease;
  will-change:transform;
}

#top_movie .cta_btn_image a:hover,
#top_movie .cta_btn_image a:focus-visible {
  opacity:0.82;
}

@keyframes service-logo-shine {
  0%, 72% {
    opacity:0;
    background-position:200% 0;
  }

  73% {
    opacity:1;
    background-position:200% 0;
  }

  95% {
    opacity:1;
    background-position:-100% 0;
  }

  96%, 100% {
    opacity:0;
    background-position:-100% 0;
  }
}

#top_mv .service_logo {
  position:relative;
}

#top_mv .service_logo:after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(110deg,transparent 38%,rgba(255,255,255,0.15) 46%,rgba(255,255,255,0.88) 50%,rgba(255,255,255,0.15) 54%,transparent 62%);
  background-size:250% 100%;
  background-repeat:no-repeat;
  background-position:200% 0;
  -webkit-mask:url('../img/service-logo-attached-v6.png') center / 100% 100% no-repeat;
  mask:url('../img/service-logo-attached-v6.png') center / 100% 100% no-repeat;
  mix-blend-mode:screen;
  opacity:0;
  pointer-events:none;
  animation:service-logo-shine 5.2s linear infinite;
}

#top_movie .cta_btn_image a:after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(110deg,transparent 38%,rgba(255,255,255,0.12) 46%,rgba(255,255,255,0.72) 50%,rgba(255,255,255,0.12) 54%,transparent 62%);
  background-size:250% 100%;
  background-repeat:no-repeat;
  background-position:200% 0;
  -webkit-mask:url('../img/cta_btn.png') center / 100% 100% no-repeat;
  mask:url('../img/cta_btn.png') center / 100% 100% no-repeat;
  mix-blend-mode:screen;
  opacity:0;
  pointer-events:none;
  animation:service-logo-shine 5.2s linear infinite;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior:auto;
  }

  .js-enabled [data-reveal] {
    opacity:1;
    transform:none;
    transition:none;
  }

  .cta_btn a {
    transition:none;
  }

  #top_movie .cta_btn_image a {
    animation:none;
  }

  #top_mv .service_logo:after,
  #top_movie .cta_btn_image a:after {
    display:none;
  }

}
