@charset "UTF-8";
/* CSS Document */
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap");
.fs10 {
  font-size: 1rem; }

.fs13 {
  font-size: 1.3rem; }

.fs18 {
  font-size: 1.8rem; }

.fs20 {
  font-size: 2rem; }

.fs24 {
  font-size: 2.4rem; }

.fs30 {
  font-size: 3rem;
  line-height: 1; }

.fs36 {
  font-size: 3.6rem; }

.fs48 {
  font-size: 4.8rem; }

.fs72 {
  font-size: 7.2rem; }

.fs96 {
  font-size: 9.6rem; }

@media (max-width: 600px) {
  .fs10 {
    font-size: 0.8rem; }

  .fs13 {
    font-size: 1.04rem; }

  /* 1.3 × 0.8 */
  .fs18 {
    font-size: 1.44rem; }

  .fs20 {
    font-size: 1.6rem; }

  .fs24 {
    font-size: 1.92rem; }

  .fs30 {
    font-size: 2.4rem; }

  .fs36 {
    font-size: 2.88rem; }

  .fs48 {
    font-size: 3.84rem; }

  .fs72 {
    font-size: 5.76rem; }

  .fs96 {
    font-size: 7.68rem; } }
@media (max-width: 1024px) {
  .pc-only {
    display: none; } }
.fw0 {
  font-weight: normal; }

.fw5 {
  font-weight: 500; }

.fwb {
  font-weight: bold; }

.tac {
  text-align: center; }

.tal {
  text-align: left; }

.ps-r {
  position: relative; }

.ps-a {
  position: absolute; }

.flex {
  display: flex;
  display: -webkit-flex;
  display: -ms-flex; }

.align-items {
  align-items: center; }

.jc-center {
  justify-content: center; }

.jc-btw {
  justify-content: space-between; }

.m10 {
  margin: 10px 0; }

.m20 {
  margin: 20px 0; }

.m30 {
  margin: 30px 0; }

sub {
  font-size: 1.3rem; }

a {
  text-decoration: none; }

img {
  width: 100%; }

html {
  font-size: 62.5%; }

body {
  margin: 0; }

main {
  color: #4c4c4c;
  max-width: 1920px;
  margin: 0 auto;
  font-family: 'Noto Sans JP';
  background: #fff;
  line-height: 1.6; }

/* Hero Section */
.hero-section {
  background: #1ead4c url("../img/bg.png") no-repeat top center;
  background-size: contain;
  aspect-ratio: 100 / 99.4;
  margin: 0 auto;
  position: relative; }
  .hero-section > h1 {
    transform: translateX(5%);
    max-width: 1500px;
    width: 70%;
    display: flex;
    justify-content: center;
    margin: 0 auto;
    padding: 100px 0 50px; }
  .hero-section a.link {
    display: inline-block;
    color: #FFF100;
    font-weight: 700;
    margin: 0 0.25rem;
    text-decoration: underline #FFF100;
    text-underline-offset: 5px;
    transition: all 0.3s ease; }
    .hero-section a.link:hover {
      transform: translateY(-2px); }
  .hero-section .hero-content {
    margin: 0 auto;
    text-align: center; }
    .hero-section .hero-content .details {
      width: 60%;
      margin: 0 auto;
      display: grid;
      grid-template-columns: 150px calc(100% - 150px);
      grid-gap: 20px 10px;
      font-size: clamp(1.8rem, 1.75vw, 2.8rem); }
      .hero-section .hero-content .details .detail-label {
        width: 150px;
        color: #1a9d46; }
        .hero-section .hero-content .details .detail-label > span {
          width: 100%;
          display: inline-block;
          background: #fff;
          padding: 0.25rem 0;
          font-weight: 600;
          letter-spacing: 0.25rem; }
      .hero-section .hero-content .details .detail-content {
        width: calc(100% - 20px);
        color: #fff;
        padding-left: 20px;
        text-align: left; }
    .hero-section .hero-content .detail-image {
      position: absolute;
      left: 0;
      right: 0;
      bottom: -4px;
      transform: translateX(8%);
      max-width: 1500px;
      width: 70%;
      margin: 0 auto; }
  @media screen and (max-width: 600px) {
    .hero-section {
      background: url("../img/bg_sp.png") no-repeat;
      background-size: contain;
      aspect-ratio: 32.4 / 100; }
      .hero-section > h1 {
        transform: none;
        width: 95%;
        padding: 20px 0 50px 5%; }
      .hero-section .hero-content {
        position: relative; }
        .hero-section .hero-content .details {
          width: 95%;
          grid-template-columns: 1fr;
          font-size: 1.6rem;
          grid-gap: 0; }
          .hero-section .hero-content .details .detail-label {
            width: 100%; }
          .hero-section .hero-content .details .detail-content {
            width: 100%;
            padding-left: 0;
            margin: 5px 0 20px; }
        .hero-section .hero-content .detail-image {
          transform: none;
          position: relative;
          width: 85%;
          padding: 0 0 0 15%; } }
  @media screen and (min-width: 601px) and (max-width: 1024px) {
    .hero-section {
      background-size: cover; }
      .hero-section > h1 {
        width: 70%;
        padding: 20px 0 20px 5%;
        margin: 0 auto; }
      .hero-section .hero-content .details {
        width: 90%;
        font-size: 1.6rem; }
      .hero-section .hero-content .detail-image {
        padding: 0 0 0 10%;
        margin: 0 auto;
        width: 65%; } }
  @media screen and (min-width: 1025px) and (max-width: 1439px) {
    .hero-section > h1 {
      padding: 20px 0 20px 5%;
      margin: 0 auto;
      width: 70%; }
    .hero-section .hero-content .details {
      width: 80%; } }

/* CTA Buttons */
.cta-section {
  margin: 80px auto;
  padding: 20px 0;
  position: relative;
  z-index: 2; }
  .cta-section .deco1 {
    position: absolute;
    z-index: -1;
    top: -0.5vw;
    aspect-ratio: 100 / 11.3;
    width: 100%;
    height: auto;
    background: url("../img/deco_img01.png") no-repeat center center;
    background-size: 95%; }
  .cta-section .deco2 {
    position: absolute;
    top: -8vw;
    width: 100px;
    height: 105px;
    margin-left: 10%;
    background: url("../img/deco_img02.png") no-repeat;
    background-size: 100%; }
  .cta-section .deco3 {
    position: absolute;
    top: -4vw;
    right: 0;
    width: 100px;
    height: 105px;
    margin-right: 10%;
    background: url("../img/deco_img03.png") no-repeat;
    background-size: 100%; }
  .cta-section .cta-buttons {
    display: flex;
    justify-content: center; }
    .cta-section .cta-buttons .cta-button {
      background: #1ead4c;
      color: #fff;
      box-shadow: 0px 5px 15px 0px rgba(0, 0, 0, 0.35);
      border: none;
      margin: 0 20px;
      padding: 30px 140px;
      display: flex;
      justify-content: center;
      align-items: center;
      font-size: 1.8rem;
      font-weight: bold;
      letter-spacing: 0.25rem;
      cursor: pointer;
      transition: all 0.3s ease; }
      .cta-section .cta-buttons .cta-button:hover {
        background: #1a9d46;
        transform: translateY(-2px); }
      .cta-section .cta-buttons .cta-button::after {
        content: '';
        margin: 3px 0 0 2rem;
        background: url("../img/arrow.svg") no-repeat;
        background-size: contain;
        width: 20px;
        height: 25px; }
  @media screen and (max-width: 600px) {
    .cta-section {
      margin: 40px 0; }
      .cta-section .deco2 {
        top: -16vw;
        width: 50px;
        height: 60px;
        margin-left: 0; }
      .cta-section .deco3 {
        top: -8vw;
        width: 50px;
        height: 60px;
        margin-right: 0; }
      .cta-section .cta-buttons {
        flex-direction: column; }
        .cta-section .cta-buttons .cta-button {
          margin: 10px 5%;
          padding: 20px 0; } }
  @media screen and (min-width: 601px) and (max-width: 1024px) {
    .cta-section {
      margin: 40px auto;
      padding: 40px 0; }
      .cta-section .deco2 {
        top: -10vw;
        width: 80px;
        height: 85px;
        margin-left: 0; }
      .cta-section .deco3 {
        top: -8vw;
        width: 80px;
        height: 85px;
        margin-right: 0; }
      .cta-section .cta-buttons .cta-button {
        width: 40%;
        padding: 20px 0; } }

/* Product Cards Section */
.products-section {
  background: url("../img/p_bg.png") top center;
  background-size: 100%; }
  .products-section .item {
    position: absolute;
    right: 5%;
    top: -25%;
    z-index: 2;
    background: url("../img/p_img.png") no-repeat;
    background-size: contain;
    display: inline-block;
    aspect-ratio: 100 / 60;
    width: 330px; }
  .products-section h2.section-title {
    background: #246135;
    color: #fff;
    margin: 0;
    padding: 30px 0;
    text-align: center;
    font-size: clamp(2.2rem, 1.52vw, 3rem);
    font-weight: bold; }
    .products-section h2.section-title > p {
      display: inline-block;
      vertical-align: middle;
      margin: 0;
      padding: 0 2rem 0;
      text-align: left;
      font-size: clamp(1.4rem, 0.97vw, 1.8rem); }
  .products-section .products-grid {
    width: 80%;
    margin: 50px auto;
    display: grid;
    grid-template-columns: repeat(3, 1fr); }
    .products-section .products-grid .card-image a {
      display: block;
      aspect-ratio: 100 / 95.1;
      transition: all 0.3s ease; }
      .products-section .products-grid .card-image a > p {
        display: none; }
      .products-section .products-grid .card-image a:hover {
        transform: translateY(-4px); }
    .products-section .products-grid .card-image:nth-of-type(1) a {
      background: url("../img/img01.png") no-repeat;
      background-size: contain; }
    .products-section .products-grid .card-image:nth-of-type(2) a {
      background: url("../img/img02.png") no-repeat;
      background-size: contain; }
    .products-section .products-grid .card-image:nth-of-type(3) a {
      background: url("../img/img03.png") no-repeat;
      background-size: contain; }
    .products-section .products-grid .card-image:nth-of-type(4) a {
      background: url("../img/img04.png") no-repeat;
      background-size: contain; }
    .products-section .products-grid .card-image:nth-of-type(5) a {
      background: url("../img/img05.png") no-repeat;
      background-size: contain; }
    .products-section .products-grid .card-image:nth-of-type(6) a {
      background: url("../img/img06.png") no-repeat;
      background-size: contain; }
    .products-section .products-grid .card-image:nth-of-type(1) a:hover {
      background: url("../img/h_img01.png") no-repeat;
      background-size: contain; }
    .products-section .products-grid .card-image:nth-of-type(2) a:hover {
      background: url("../img/h_img02.png") no-repeat;
      background-size: contain; }
    .products-section .products-grid .card-image:nth-of-type(3) a:hover {
      background: url("../img/h_img03.png") no-repeat;
      background-size: contain; }
    .products-section .products-grid .card-image:nth-of-type(4) a:hover {
      background: url("../img/h_img04.png") no-repeat;
      background-size: contain; }
    .products-section .products-grid .card-image:nth-of-type(5) a:hover {
      background: url("../img/h_img05.png") no-repeat;
      background-size: contain; }
    .products-section .products-grid .card-image:nth-of-type(6) a:hover {
      background: url("../img/h_img06.png") no-repeat;
      background-size: contain; }
    @media screen and (max-width: 600px) {
      .products-section .products-grid .card-image:nth-of-type(1) a:hover {
        background: url("../img/img01.png") no-repeat;
        background-size: contain; }
      .products-section .products-grid .card-image:nth-of-type(2) a:hover {
        background: url("../img/img02.png") no-repeat;
        background-size: contain; }
      .products-section .products-grid .card-image:nth-of-type(3) a:hover {
        background: url("../img/img03.png") no-repeat;
        background-size: contain; }
      .products-section .products-grid .card-image:nth-of-type(4) a:hover {
        background: url("../img/img04.png") no-repeat;
        background-size: contain; }
      .products-section .products-grid .card-image:nth-of-type(5) a:hover {
        background: url("../img/img05.png") no-repeat;
        background-size: contain; }
      .products-section .products-grid .card-image:nth-of-type(6) a:hover {
        background: url("../img/img06.png") no-repeat;
        background-size: contain; } }
  .products-section .list-button {
    background: #246135;
    color: #fff;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    margin: 30px 0;
    padding: 1rem 4rem;
    font-size: 1.6rem;
    font-weight: 500;
    letter-spacing: 0.25rem;
    transition: all 0.3s ease; }
    .products-section .list-button::after {
      content: '';
      margin-left: 1rem;
      background: url("../img/arrow2.svg") no-repeat;
      background-size: contain;
      display: inline-block;
      width: 30px;
      height: 30px; }
    .products-section .list-button:hover {
      background: #267a4c;
      transform: translateY(-2px); }
  @media screen and (max-width: 600px) {
    .products-section {
      padding: 20px 0; }
      .products-section .item {
        position: relative;
        right: 0;
        margin: 0 auto;
        display: flex;
        justify-content: center;
        width: 250px; }
      .products-section h2.section-title {
        transform: translateY(-40px);
        margin-bottom: -40px;
        padding: 30px 0 20px;
        font-size: 2rem;
        font-weight: 500; }
        .products-section h2.section-title > p {
          display: block;
          text-align: center; }
      .products-section .products-grid {
        width: 95%;
        margin: 30px auto;
        row-gap: 20px;
        grid-template-columns: repeat(2, 1fr); }
      .products-section .list-button {
        margin: 0 0 10px; } }
  @media screen and (min-width: 601px) and (max-width: 1024px) {
    .products-section .item {
      position: relative;
      right: 0;
      margin: 0 auto;
      display: flex;
      justify-content: center; }
    .products-section h2.section-title {
      transform: translateY(-40px);
      margin-bottom: -40px;
      padding: 30px 0 20px;
      font-weight: 500; }
      .products-section h2.section-title > p {
        display: block;
        text-align: center; } }

/* Gift Section */
.gift-section {
  background: rgba(30, 172, 75, 0.3);
  max-width: 1920px;
  aspect-ratio: 100 / 35;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center; }
  .gift-section .gift-card {
    position: absolute;
    padding-top: 5%; }

/* MOVIE Section */
.movie-section {
  padding: 50px 0;
  background: url("../img/p_bg.png");
  background-size: 100%; }
  .movie-section .movie-title {
    width: 80%;
    position: relative;
    font-size: 3rem;
    text-align: center;
    color: #1a9d46;
    margin: 0 auto 2rem auto; }
    .movie-section .movie-title::before, .movie-section .movie-title::after {
      content: "";
      position: absolute;
      top: 50%;
      width: 25%;
      height: 2px;
      background: #1a9d46;
      transform: translateY(-50%); }
    .movie-section .movie-title::before {
      left: 0; }
    .movie-section .movie-title::after {
      right: 0; }
  .movie-section .movie-grid {
    width: 80%;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-gap: 20px; }
    .movie-section .movie-grid iframe {
      width: 100%;
      aspect-ratio: 16 / 9; }
  @media (max-width: 600px) {
    .movie-section .movie-title {
      width: 95%;
      font-size: 2rem; }
      .movie-section .movie-title::before, .movie-section .movie-title::after {
        width: 10%; }
    .movie-section .movie-grid {
      width: 95%;
      grid-template-columns: 1fr; } }

/* Modal */
.modal-overlay {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(26, 157, 70, 0.8);
  z-index: 1000;
  align-items: center;
  justify-content: center;
  padding: 20px;
  animation: fadeIn 0.3s ease-out; }
  .modal-overlay.active {
    display: flex; }
  .modal-overlay .modal-container {
    background: #fff url("../img/p_bg.png");
    background-size: 100%;
    font-size: 1.6rem;
    max-width: calc(1920px - 20%);
    width: 80%;
    max-height: 90vh;
    display: flex;
    flex-direction: column;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
    animation: slideUp 0.3s ease-out; }
    .modal-overlay .modal-container .modal-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 40px 40px 20px; }
      .modal-overlay .modal-container .modal-header .modal-title {
        margin: 0;
        color: #1a9d46;
        font-size: 2.2rem;
        font-weight: bold; }
      .modal-overlay .modal-container .modal-header .modal-close {
        background: url("../img/close.svg") no-repeat;
        background-size: 30px;
        border: none;
        cursor: pointer;
        width: 30px;
        height: 30px;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: all 0.2s ease; }
    .modal-overlay .modal-container .modal-content {
      display: grid;
      grid-gap: 20px;
      grid-template-columns: 170px auto;
      padding: 0 40px 40px;
      overflow-y: auto;
      flex: 1; }
      .modal-overlay .modal-container .modal-content h3, .modal-overlay .modal-container .modal-content p, .modal-overlay .modal-container .modal-content ul, .modal-overlay .modal-container .modal-content li {
        margin: 0;
        list-style: none; }
      .modal-overlay .modal-container .modal-content a:link {
        font-size: 1.3rem;
        color: #4c4c4c;
        text-decoration: underline;
        margin: 0 0.5rem;
        text-decoration-color: #333;
        overflow-wrap: anywhere; }
      .modal-overlay .modal-container .modal-content ul.ex {
        padding-left: 1rem;
        margin: 0.5rem 0; }
        .modal-overlay .modal-container .modal-content ul.ex > li {
          font-size: 1.3rem;
          text-indent: -2.3rem;
          margin-left: 2.2rem; }
          .modal-overlay .modal-container .modal-content ul.ex > li::before {
            content: '※';
            margin-right: 1rem; }
      .modal-overlay .modal-container .modal-content ul.l_ex {
        padding-left: 0; }
        .modal-overlay .modal-container .modal-content ul.l_ex > li {
          text-indent: -2.6rem;
          margin-left: 2.6rem; }
          .modal-overlay .modal-container .modal-content ul.l_ex > li::before {
            content: '※';
            margin-right: 1rem; }
      .modal-overlay .modal-container .modal-content ul.disc {
        padding-left: 0; }
        .modal-overlay .modal-container .modal-content ul.disc > li {
          text-indent: -1.8rem;
          margin-left: 1.8rem; }
          .modal-overlay .modal-container .modal-content ul.disc > li::before {
            content: '・';
            margin-right: 0.25rem; }
      .modal-overlay .modal-container .modal-content ol.num {
        padding-left: 0.5rem; }
        .modal-overlay .modal-container .modal-content ol.num > li {
          counter-increment: cnt;
          text-indent: -2.8rem;
          margin-left: 2.8rem; }
          .modal-overlay .modal-container .modal-content ol.num > li::before {
            display: marker;
            content: "(" counter(cnt) ") ";
            margin-right: 0.5rem; }
      .modal-overlay .modal-container .modal-content::-webkit-scrollbar {
        width: 8px; }
      .modal-overlay .modal-container .modal-content::-webkit-scrollbar-track {
        background: #f1f1f1;
        border-radius: 10px; }
      .modal-overlay .modal-container .modal-content::-webkit-scrollbar-thumb {
        background: #2d9a5f;
        border-radius: 10px; }
      .modal-overlay .modal-container .modal-content .modal-section-title {
        background: #1ead4c;
        color: #fff;
        font-size: 1.6rem;
        font-weight: normal;
        padding: 0.5rem 1rem;
        text-align: center; }
  @media screen and (max-width: 600px) {
    .modal-overlay .modal-container {
      width: 95%;
      max-height: 95vh; }
      .modal-overlay .modal-container .modal-header {
        padding: 20px; }
      .modal-overlay .modal-container .modal-content {
        overflow-x: hidden;
        padding: 0 10px;
        grid-template-columns: 100%;
        font-size: 1.4rem; } }

/* Scroll to Top Button */
.scroll-top {
  display: none;
  position: fixed;
  bottom: 2rem;
  right: 2rem;
  background: #fff url("../img/top.svg");
  background-size: 45px;
  border: 2px solid rgba(36, 97, 53, 0.6);
  border-radius: 10px;
  width: 45px;
  height: 45px;
  cursor: pointer;
  transition: all 0.3s ease;
  z-index: 100; }
  .scroll-top.visible {
    display: flex;
    align-items: center;
    justify-content: center; }
  .scroll-top:hover {
    box-shadow: 0 4px 6px rgba(36, 97, 53, 0.4);
    transform: translateY(-1px); }
  @media screen and (max-width: 600px) {
    .scroll-top:hover {
      box-shadow: none; } }

@keyframes fadeIn {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }
@keyframes slideUp {
  from {
    opacity: 0;
    transform: translateY(50px); }
  to {
    opacity: 1;
    transform: translateY(0); } }
/* Responsive */
