@charset "utf-8";

.wrapper {
  line-height: 25px;
  font-size: 1.6rem;
}
.mail-magazine-column-outer {
  padding: 70px 0;
}
.btn {
  text-align: center;
  margin: 40px 0;
}
.btn a {
  --hover-opacity: 0.5;
  box-shadow: none;
  border: none;
  background: #fff;
  color: var(--color-primary);
  border: solid 1px var(--color-primary);
}
.btn a:focus-visible {
  opacity: var(--hover-opacity);
}
@media (any-hover: hover) {
  .btn a:hover {
    opacity: var(--hover-opacity);
  }
}
.btn a::after {
  content: '';
  width: 13px;
  height: 13px;
  position: absolute;
  top: 1px;
  bottom: 0;
  right: 26px;
  margin: auto;
  transform: rotate(-45deg);
  border-top: medium none;
  border-left: medium none;
  border: 2px solid var(--color-primary);
  border-top: medium none;
  border-left: medium none;
}

/* ---- headliner ---- */
.headliner .image {
  line-height: 0;
}
.headliner .image img {
  width: 100%;
}
.headliner-content {
  padding-top: 50px;
}
.headliner-content .newsletter-form {
  margin: 40px 0;
}

/* ---- sample ---- */
.sample {
  background: #fff;
}
.sample .flex {
  flex-wrap: nowrap;
  justify-content: space-between;
}
.sample .flex .item {
  width: 245px;
  height: 360px;
  position: relative;
}
.sample .flex .item img {
  box-shadow: 0 3px 6px 0 rgb(0 0 0 / 20%);
}
.sample .flex .item p {
  margin: 15px 0 10px;
  display: flex;
  flex-wrap: wrap;
  align-content: space-between;
  height: 140px;
}
.sample small {
  display: block;
}
.sample .flex a {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  color: #2379ca;
  border-bottom: 1px dashed #2379ca;
  padding-bottom: 1px;
}
.sample .text {
  text-align: center;
  margin-top: 60px;
  font-size: 2rem;
}

/* ---- register ---- */
.register {
  text-align: center;
  background-color: #f9f8f8;
}
.register_link {
  color: #2379ca;
  border-bottom: 1px dashed;
}
.register .title {
  position: relative;
  display: inline-block;
  font-size: 2.3rem;
}
.register .title::before {
  content: '';
  position: absolute;
  bottom: -3px;
  left: 0;
  display: block;
  width: 100%;
  height: 6px;
  background-color: rgba(0, 64, 152, 0.3);
}
.register .newsletter-form {
  margin: 30px 0 40px;
}

/* ---- modal ---- */
.modal {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  height: 100vh;
  width: 100%;
  z-index: 50;
}
.modal-bg {
  position: absolute;
  height: 100vh;
  width: 100%;
  background: rgba(0, 0, 0, 0.8);
}
.modal-content {
  position: absolute;
  top: 100px;
  left: 50%;
  transform: translateX(-50%);
  overflow-y: scroll;
  overflow-x: hidden;
  height: 80%;
  width: auto;
  background: white;
  padding-bottom: 30px;
}
.sample .modal-content .image img {
  box-shadow: unset;
}
.sample .modal-content a {
  left: 47%;
}
body.fixed {
  position: fixed;
  width: 100%;
  height: 100%;
  left: 0;
}
.sample .flex .js-modal-close {
  position: relative;
}
