@charset "utf-8";

html { scroll-behavior: smooth; }
#globalMain, #globalContents{ overflow: visible; }
#globalWrapper { box-sizing: border-box; }


/* Variables & Setup -------------------- */
:root {
  scroll-padding: 100px;
}

.tamadrum-container-wrapper {
  container-type: inline-size;
  container-name: tamadrum-container-wrapper;
}

.tamadrum-container * { box-sizing: border-box; }

:root .tamadrum-container {
  --color-black-alfa: #00000099;
  --color-black: #000;
  --color-lightgray: #ddd;
  --color-offwhite: #efefef;
  --color-white: #fff;
  --color-red: #d80c18;
  --color-link: #795284;
  --color-accent: #ffbb00;
  --hover-opacity: 0.5;
  --padding-inline: 1.5rem;
  --float: translateY(-5px);
  --transition-all: all .2s ease;
}


/* common -------------------- */ 
.tamadrum-container {
  background-color: var(--color-offwhite);
  color: var(--color-black);
  font-size: 16px;
  line-height: 1.4;
@container tamadrum-container-wrapper (max-width: 768px) {
  font-size: 14px;  
}

@container tamadrum-container-wrapper (max-width: 350px) {
  font-size: 13px;  
}

  & section + section{
    margin-top: 5rem;
  }

  & .inner{
    padding-inline: 1.5rem;
  }

  & figure{ 
    text-align: center;
    overflow: hidden;
  }

  & img{
    max-width: 100%;
    height: auto;
    vertical-align: bottom;
  }

  & a{
    color: inherit;
    text-decoration: none;
  }

  & span{
    color: inherit;
    font-weight: inherit;
  }

  & fieldset {
    border: 0;
    padding: 0;
    margin: 0;
    min-inline-size: 0;
  }

  & legend {
    padding: 0;
    margin: 0;
  }

  & input[type="radio"] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
  }
}


/* PC用
#globalContents  */

/* スマホ用
#wrapper */

/* element -------------------- */
/* アクセントフォント */
.tamadrum-container .accent-font{
  font-family: "Montserrat", serif;
}

/* 見出し */
.tamadrum-container .el-heading-g{
  position: relative;
  margin-inline: auto;
  margin-bottom: 1.5rem;
  padding-top: 2rem;
  text-align: center;
  & >  h2{   
    font-size: 200%;
    font-weight: bold;
  }
  & > p{
    position: absolute;
    bottom: 0;
    left: calc(50% + 1rem);
    transform: translateX(-50%);
    width: 100%;
    font-size: 400%;
    font-style: italic;
    font-weight: 100;
    text-transform: uppercase;
    letter-spacing: .5rem;
    opacity: 0.2;
  }
}

/* 小見出し */
.tamadrum-container .el-sub-heading{
  margin-bottom: .5rem;
  padding-inline: .5rem;
  border: 0 solid var(--color-red);
  border-left-width: .5rem;
  border-bottom-width: 1px;
  color: var(--color-red);
  font-size: 150%;
  font-weight: bold;
}

/* CTAボタン */
.tamadrum-container .el-btn-cta{
	display: block;
	width: fit-content;
  min-width: 50%;
	margin: auto;
	margin-top: 1rem;
	padding-block: .5rem .25rem;
  padding-inline: 1rem;
	background-color: var(--color-red);
	color: var(--color-white);
  border: 2px solid var(--color-red);
	text-align: center;
  font-weight: bold;
  transition: var(--transition-all);
  &:hover {
    transform: var(--float);
  }
}

/* img：祖先要素ホバーで拡大 */
.tamadrum-container .el-expansion{  
  & img {
    transition: transform 0.3s ease;
  }

  &:hover img {
    transform: scale(1.03);
  }
} 

/* ホバーでフロート（ボタン系） */
.tamadrum-container .el-float{
  transition: var(--transition-all);
  &:hover {
    transform: var(--float);
  }
}

/* 文章 */
.tamadrum-container .paragraph{
  line-height: 1.7;
  /* text-align: justify; */

  & + .paragraph{
    margin-top: .5rem;
  }
}

/* 2行以上で... */
.tamadrum-container .textellipsis-2{
	display: -webkit-box;
	-webkit-box-orient: vertical;
	overflow: hidden;
	text-overflow: ellipsis;
  line-clamp: 2;
	-webkit-line-clamp: 2;
}

/* 動画のabsoアイコン（aにクラス名つける）*/
.tamadrum-container .icon-movie{
	display: block;
	width: 100%;
	position: relative;

  &::after { position: absolute; display: block;	content: ""; width: 100%; height: 0; padding-top: 56.25%;top: 0;	left: 0;	background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" height="100%" version="1.1" viewBox="0 0 68 48" width="100%" fill="%23ffffff"><path d="M66.52,7.74c-0.78-2.93-2.49-5.41-5.42-6.19C55.79,.13,34,0,34,0S12.21,.13,6.9,1.55 C3.97,2.33,2.27,4.81,1.48,7.74C0.06,13.05,0,24,0,24s0.06,10.95,1.48,16.26c0.78,2.93,2.49,5.41,5.42,6.19 C12.21,47.87,34,48,34,48s21.79-0.13,27.1-1.55c2.93-0.78,4.64-3.26,5.42-6.19C67.94,34.95,68,24,68,24S67.94,13.05,66.52,7.74z" fill="%23f00"></path><path d="M 45,24 27,14 27,34" fill="%23fff"></path></svg>') no-repeat center center;	background-size: 20%; }
}


/* swiper -------------------- */
:root .tamadrum-container{
  --swiper-theme-color: #d80c18;
  --swiper-pagination-bullet-size: 1rem;
  --swiper-navigation-size: 2rem;
}

.tamadrum-container .swiper-button-next,
.tamadrum-container .swiper-button-prev{
  background-size: contain; 
  background-repeat: no-repeat; 
  width: 50px;
  height: 50px;
  top: 50%;
  z-index: 99;
  transform: translateY(-100%);
@container tamadrum-container-wrapper (max-width: 600px) {
  width: 40px;
  height: 40px;
}
}

.tamadrum-container .swiper-button-next {
  background-image: url("../img/assets/ico-next.png");
}
.tamadrum-container .swiper-button-prev {
  background-image: url("../img/assets/ico-prev.png"); 
}

.tamadrum-container .swiper-button-prev::after,
.tamadrum-container .swiper-button-next::after{
  display: none;
}

/* gLightbox -------------------- */
:root {
  --plyr-color-main: #ff0000;
}

.goverlay {
	background: rgba(0, 0, 0, .7);
}

/* Section-by-section -------------------- */
/* FV --------------------*/
.sec-fv .catch-box{
  aspect-ratio: 1120/500;
  display: grid;
  place-items: center;
  background: url("../img/fv-image.jpg") no-repeat center / cover;
 
  & > .catch{
    width: 100%;
    padding-block: 1rem;
    padding-inline: var(--padding-inline);
    background-color: var(--color-black-alfa);
    color: var(--color-white);
    text-align: center;
    font-size: clamp(1rem, 350%, 7.5cqw);
    font-weight: bold;
    text-shadow: 0 0 1rem var(--color-black);
  }
}

/* ピックアップ --------------------*/
.sec-pickup .movie-list{
  padding-bottom: 3rem;
  & > li{
    width: 80%;
    max-width: 320px;
  }
}

.sec-pickup .ttl{
  margin-top: .5rem;
}

/* ラインナップ-------------------- */
/* 目次 */
.sec-lineup .lineuplink-list{
  margin-top: 2rem;
  & > ul{
    display: grid;
    grid-template-columns: repeat(5 ,1fr);
    gap: 1rem;
    width: fit-content;
    margin-inline: auto;
    & > li{
      display: grid;
      place-items: center;
      min-height: 50px;
      background-color: var(--color-red);
      color: var(--color-white);
      text-align: center;
      & > a{
        display: block;
        padding-block: .25rem;
        padding-inline: 1rem;
        font-size: 112%;
      }
    }
  }
@container tamadrum-container-wrapper (max-width: 768px) {
  & > ul{
    grid-template-columns: repeat(3, 1fr);
  }
}
@container tamadrum-container-wrapper (max-width: 480px) {
  & > ul{
    grid-template-columns: repeat(2, 1fr);
  }
}
}

/* 製品リスト */
.sec-lineup .lineup-container{
  margin-top: 3rem;
  & + .lineup-container{
    margin-top: 5rem;
  }
}

.sec-lineup .el-sub-heading{
  text-transform: uppercase;
}

.sec-lineup .product-container{
  display: flex;
  flex-direction: row-reverse;
  gap: 1.5rem;
  margin-block: 2rem;
@container tamadrum-container-wrapper (max-width: 600px) {
  flex-direction: column;
}
}

.sec-lineup .image-box{
  display: flex;
  width: 300px;
  aspect-ratio: 1/1;
  background-color: var(--color-white);
  & a{
    display: flex;
    height: 100%;
  }

  & figure{
    display: grid;
    place-items: center;
  }
@container tamadrum-container-wrapper (max-width: 768px) {
  width: 220px;
}
}

.sec-lineup .text-block{
  flex: 1;
}

.sec-lineup .ttl-product{
  padding-top: 3px;
  padding-inline: .5rem;
  margin-bottom: 1rem;
  background-color: var(--color-black);
  color: var(--color-white);
  font-size: 125%;
  font-weight: bold;
}

.sec-lineup .desc{
  font-size: 85%;
}

.sec-lineup .color-selector{
  margin-top: 1rem;
  & legend{
    & span{
      font-size: 125%;
      &::before{
        content: "：";
        font-size: 85%;
      }
    }
  }

  & .label-list{
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-top: .5rem;
  }

  & label{
    width: 64px;
    cursor: pointer;
    display: flex;
    flex-direction: column-reverse;
    align-items: center;
    gap: .25rem; 
@container tamadrum-container-wrapper (max-width: 768px) {
  width: 50px;
}
  }

  & label:has(input:focus-within) {
    outline: 2px solid var(--color-black);
  }

  & img{
    display: block;
    width: 100%;
    aspect-ratio: 1/1;
    border-radius: .25rem;
    object-fit: cover;
  }

  & label.is-checked img{
    border: 3px solid var(--color-red);
  }

  & p{
    font-size: 85%;
  }
}

.sec-lineup .is-disabled{
  opacity: var(--hover-opacity);
  
  & a{
    pointer-events: none;
    cursor: default;
  }
}

/* CTA --------------------*/
.tamadrum-container .sec-cta{
  padding-bottom: 3rem;
}