@charset "UTF-8";

#container {
    background-color: var(--main-bg-color);
    margin: 0 auto;
    max-width: 390px;
    overflow: hidden;
}

/* -------header-------- */
#header {
    position: fixed;
    width: 390px;
    top: 0;
    height: 80px; 
    background-color: var(--main-bg-color);  
    z-index: 1;
}
#logo {
    margin: auto 10px auto 20px;
}
#logo a{
    height: 60px;
    width: 65px;
    border-radius: 2px;
    background-color: var(--main-bg-color);
    background-image: url(images/brandlogo.svg);   
    background-size: 92%; 
    background-position: center;
    box-shadow: var(--shadow);
}
#header_title {
    margin: auto 10px;
}
#header_title a{
    height: 16px;
    width: 150px;
    background-image: url(images/headertitle.svg);
    background-position: center;
    background-size: cover;
}
#header_line {
    margin: auto 5px;
    height: 60px;
}
#menu_icon {
    margin: auto;
    height: 50px;
    width: 75px;
    padding-top: 7px;
    margin-right: 20px;
}
#nav_button {
    position: absolute;
    z-index: 3;
}
#nav_button span {
    border-radius: 2px;
    width: 65px;
    transition: all 0.3s;
}
#nav_button > span {
    margin-bottom: 8px;
}
#nav_button :last-child {
    width: 75px;
}
#nav_button div > div {
    margin-top: -10px;
    margin-left: 10px;
}
#menu {
    /* display: none; */
    position: fixed;
    top: -100%;
    right: 0;
    background-color: var(--main-red);
    width: 200px;
    border-radius: 30px 0 30px 30px;
    width: 300px;
    height: 80px;
    padding: 15px;
    padding-top: 100px;
    text-align: center;
    overflow: hidden;
    transition: top .5s ease, visibility 0.5s ease, height .5s ease;
    visibility: hidden; 
  }

  #menu.open {
    top: 0;
    visibility: visible;
    height: 800px;
  }

  .menu.open {
    display: block;
    
  }
  .menulink p{
    width: 100px;
    margin: auto;
    margin-left: 5px;
  }
  .menulink .arrow_img {
    margin: auto;
    height: fit-content;
  }
  #menulist_lower li{
    font-weight: 200;
    margin-top: 0;
  }
  .underline {
    border-bottom: 1px white solid;
    margin: auto 10px;
  }
  .side_line {
    border-right: 1px white solid;
    border-left: 1px white solid;
    margin: auto 5px;
    height: 100%;
  }
#product_img {
    margin: 20px auto;
    height: 100px;
    width: 200px;
    background-color: var(--sub-gray);
}
#menu span {
    background-color: var(--main-bg-color);
   width: 90%;
   margin: auto;
}
.twenty {
    font-size: 1.25rem;
}
#menu li{
    margin-top: .8rem;
}
#menu_links {
    border: 1px var(--main-bg-color) dotted;
    border-width: 2px 0 2px 0;
    margin: 20px 15px;
}
#menu .menulink {
    border: 1px var(--main-bg-color) solid;
    border-radius: 15px 15px 15px 0;
    height: 50px;
    margin: 20px;
}

/* #menu.open {
    display: block;
} */
#menu_icon.open span {
    background-color: var(--main-bg-color);
}
#menu_icon.open span:nth-child(1) {
    transform: 0 -30px;
    position: absolute;
    rotate: 10deg;
}
#menu_icon.open span:nth-child(2) {
    position: absolute;
    transform: translate(0, 10px);
    transform: rotate(-10deg);
}
#menu_icon.open #menu_icon_text{
    color: var(--main-bg-color);
    transform: translate(-10px, 20px);
}
#icon_text_open {
    color: var(--main-red);
    position: absolute;

}

/* -------流れるお知らせ-------- */
#notice {
    margin-top: 80px;
    height: 60px; 
    width: 100%; 
}

#info_text{
    position: relative;
    overflow: hidden;
    width: 100%;
    height: 48px;
    display: flex;
    align-items: center;
   
}
#news_txt{
    display: flex;
    gap: 50px; /* お知らせ間の間隔 */
    animation: scroll 30s linear infinite;
    white-space: nowrap; /* 改行を防ぐ */
    font-weight: bolder;
}
#news_txt span{
    display: inline-block;
}

#span1{
    /* margin-top: 3px; */
    height: 5px;
}
#span2{
    margin-top: 1px;
}
#span3{
    margin-top: -3px;
}
#span4{
    margin-top: 1px;
    height: 2px;
}
.red_white {
    background-image: url(images/linegraphic.svg);
    background-repeat: repeat-x;
    height: 8px;
    width: 100%;
}

/* ------メインビジュアル------- */
#main_visual {
    margin-top: 3px;
    max-width: 390px;
    overflow: hidden;
}
#relative_container{
    height: 480px;
}
#main_img {
    /* background-color: var(--sub-gray); */
    position: relative;
    height: 480px;
    width: 100%;
    background-size: cover;
    background-position: center;
    animation: fade 12s infinite;
}
#frame {
    position: relative;
    width: 100vw - 60px;
    top: -450px;
    left: 30px;
}
#main_links {
    position: relative;
    display: flex;
    rotate: 90deg;
    top: -645px;
    left: -160px;
}
#main_links a {
    margin: auto 10px;
    border-bottom: 2px solid var(--main-red) ;
}
#main_name {
    position: relative;
    background-image: url(images/flag.svg);
    width: 42px;
    height: 250px;
    text-align: center;
    padding: auto;
    padding-right: 10px;
    top: -910px;
    left: 300px;
}
#house_name {
    position: relative;
    top: -746px;
    left: 227px;
}
#main_logo {
    margin: auto auto;
    text-align: center;
}
#scroll {
    height: 60px;
    text-align: center;
    margin: auto;
}
#scroll > span {
    width: 1px;
    animation: heightAnimation 3s ease-in-out infinite;
    margin: auto;
}
@keyframes heightAnimation {
    0% {
        height: 10px; /* 初期の高さ */
    }
    30% {
        height: 40px; /* 中間の高さ */
    }
    100% {
        height: 10px; /* 最終的な高さ（ループするため初期と同じ高さ） */
    }
}


#about {
    background-image: url(images/aboutback.svg);
    width: 100%;
}

@keyframes scroll {
    from {
        transform: translateX(100%);
    }
    to {
        transform: translateX(-100%);
    }
}
/* フェードアニメーション */
@keyframes fade {
    0% { opacity: 0; }
    5% { opacity: 0; }
    20% { opacity: 1; }
    90% { opacity: 1; }
    100% { opacity: 0; }
}

h2 {
    font-size: 6rem;  
    height: 180px;
    padding-top: 120px;
    margin-left: -10px;
}
h2.lower {
    rotate: 180deg;
}

#about_content {
    margin: auto 45px;
    text-align: center;
    padding-bottom: 30px;
    background-position: 20px 30px;
}
#how_to_content {
    text-align: center;
    padding-bottom: 30px;
}
#about_content p {
    margin: 2.5rem auto;
    line-height: 2rem;
    font-size: 1.2rem;
    font-weight: 700;
}

.link_area {
    height: 350px;
    width: 100%;
    background-image: url(images/design.jpg);
    background-size: cover;
    background-position: center;
    text-align: center;
}

.content {
    padding-top: 70px;
    height: 200px;
    font-size: 20px;
}
.link_button {
    background-color: var(--main-bg-color);
    box-shadow: var(--shadow);
    margin: auto;
    height: 50px;
    width: 210px;
    gap: 5px;
}

.comment {
    background-image: url(images/ashirai.svg);
    background-size: cover;
    background-position: center;
    height: 105px;
    width: 200px;
    margin: auto;
    margin-bottom: 20px;
    padding-top: 25px;
   
}
.link_button span {
    margin: auto 0 auto 1.5rem;
}
.link_button img {
    margin: auto 1.5rem auto auto;
    width: 30px;
}

#gallary div.slider{
    height: 200px;
    margin: 15px auto;
}
#gallary span.line{
    margin: 10px auto;
}
.slider {
    gap: 15px;
}
.slider.upper {
    animation: marquee 10s linear infinite;
}
.slider.lower {
    animation: marquee-reverse 10s linear infinite;
}
.slider_img {
    height: 180px;
    width: 180px;
    background-color: var(--sub-gray);
    margin: auto;
    box-shadow: var(--shadow);
}

#divider {
    gap: 10px;
    margin-top: 60px;
}
#divider img {
    height: 50px;
}
#divider * {
    margin: auto;
}
#footer div.dot_line {
    width: 350px;
    margin: auto;
    height: 120px;
    border-bottom: var(--main-red) 4px dotted;
}
#footer_logo {
    background-image: url(images/footerlogo.svg);
    height: 150px;
    background-size: contain;
    width: 230px;
    background-position: center 50px;
    margin: auto;
    text-align: center;
    padding-top: 20px;
    padding-bottom: 20px;
}
#footer_links {
    margin-top: 50px;
}
.footer_link {
    border-bottom: var(--main-brown) 1px solid;
    width: 75%;
    margin: 20px auto;
    padding-bottom: 5px;
    margin-top: 30px;
}
.footer_link .left {
    margin-left: 20px;
}
.footer_link .right {
    margin: auto 20px auto auto;
}
#footer .link_button {
    margin: 30px auto 10px auto;
}
#footer_bottom {
    background-color: var(--sub-gray);
    height: 200px;
    width: 100%;
}
#footer ul {
    text-align: center;
    flex-wrap: wrap;
    padding: auto;
    padding-top: 20px;
    margin: auto;
   justify-content: center;
}
#footer li {
    height: 25px;
    margin: auto .5rem;
}
#footer small {
    width: 100%;
    margin-top: 60px;
    text-align: center;
}
#about h3 {
    background-image: url(images/titledecoleftw.svg), url(images/titledecorightw.svg);
    font-weight: 900;    
    background-size: 60px, 60px; /* 画像のサイズを自動調整 */
}
#how_to h3 {
    background-image: url(images/titledecoleft.svg), url(images/titledecoright.svg);
    font-weight: 900;
}
#gallary h3 {
    background-image: url(images/titledecoleft.svg), url(images/titledecoright.svg);
    font-weight: 900;
    text-align: center;
}
h3 {
    background-position: left center, right center; /* 左右中央に配置 */
    background-repeat: no-repeat, no-repeat; /* 繰り返しを無効化 */
    background-size: auto, auto; /* 画像のサイズを自動調整 */
    box-sizing: content-box; /* 幅にパディングやボーダーを含まない */
    padding: 40px 60px; /* コンテンツの周りに追加のスペースを確保 */
    width: fit-content; 
    margin: 0px auto;
    font-weight: 900;
    font-size: 1.5rem;
    line-height: 2.2rem;
}
#how_to h3 .h3s {
    font-size: 1.2rem;
}
.card-container {
    display: flex;
    overflow-x: auto; /* 横スクロールを有効化 */
    scrollbar-width: thin; /* スクロールバーの幅を細く */
    -ms-overflow-style: none; /* IE用のスクロールバー非表示 */
    margin-left: 20px;
  }
  
  #card1{
    background-image: url(images/card1.svg);
  }
  #card2{
    background-image: url(images/card2.svg);
  }
  #card3{
    background-image: url(images/card3.svg);
  }
  #card4{
    background-image: url(images/card4.svg);
  }
  #card5{
    background-image: url(images/card5.svg);
  }

  .card {
    min-width: 300px;
    height: 500px; /* 各カードの高さ */
    background: no-repeat;
    background-size: contain;
    margin: 0 10px;
  }

  .card .flex {
    display: flex;
    justify-content: start;
    height: 80px;
  }
  .card p {
    padding-top: 120px;
    display: block;
    max-width: 250px;
  }

  #how_to h4 {
    margin-left: 30px;
    margin-top: 30px;
    font-size: 1.4rem;
    margin-bottom: 120px;
  }
  
  .blank {
    height: 280px;
  }
  #how_to .cnum {
    font-size: 3.5rem;
    margin-left: 40px;
    margin-top: 20px;
  }
  .disc{
    width: 220px;
    margin-left: 20px;
    font-size: .8rem;
    text-align: left;
  }

  @keyframes marquee {
    from {
      transform: translateX(0%);
    }
    to {
      transform: translateX(-100%);
    }
  }
  @keyframes marquee-reverse {
    from {
      transform: translateX(-100%);
    }
    to {
      transform: translateX(0%);
    }
  }

  