/* Webフォントは index.html の <link>（非同期読み込み）で読み込む */

/* ========================================
   Variables
======================================== */
:root {
  --color-primary:   #FEACA6;
  --color-primary-light: #FFE2E7;
  --color-primary-dark:  #B8807A;
  --color-primary-pinks:  #FF86A1;
  --color-accent:    #F97895;
  --color-white:     #FFFFFF;
  --color-third:#F97895;


  --font-en:   'Poppins', sans-serif;
  --font-ja:   'Noto Sans JP', sans-serif;
  --font-serif: 'Noto Serif JP', serif;


   
}

/* ========================================
   Reset & Base
======================================== */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  font-size: 1rem;
  scroll-behavior: smooth;
}

@media (max-width: 767px) {
  html {
    font-size: 3.2vw;
  }
  body{
    /* padding-bottom: calc(100vh - 100svh); */
  }
}

body {
  font-family: var(--font-ja);
  font-size: 1rem;
  line-height: 1.7;
  color: #3E3A39;
  background-color: #fff;
  overflow-x: hidden;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  color: inherit;
  text-decoration: none;
}

/* ========================================
   Layout
======================================== */
.container {
  width: 31.25rem;
  margin: 0 auto;
  padding: 0 1.25rem;
}

@media (max-width: 767px) {
  .container {
    width: 100%;
    padding: 0 2rem;
  }
}

/* ========================================
   Header
======================================== */
.header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 100;
  background-color: var(--color-primary);
  padding: 0.875rem 1.5rem;
}

/* カウントダウン期間はイントロ完了までヘッダーを隠してちらつき防止
   （GSAPがautoAlphaで上書きしてフェードインする） */
html.is-countdown .header {
  visibility: hidden;
  opacity: 0;
}

.header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
  z-index: 2;
}

.header__logo img {
  display: block;
  width: 5.4375rem;
  height: auto;
}

.header__menu-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  background: #B8807A;;
  overflow: hidden;
  border-radius: 1.875rem;;
  max-height: 1.625rem;
  transition: .3s ease;
}

.header__menu-icon {
  display: block;
  width: 1.375rem;
  height: 1px;
  background-color: var(--color-white);
  box-shadow: 0 0.375rem 0 var(--color-white), 0 0.75rem 0 var(--color-white);
  margin-bottom: 0.625rem;
  
}

.header__menu-label {
  display: flex;
  font-family: var(--font-en);
  font-size: 0.875rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  color: var(--color-white);
  padding:0.1875rem 1.25rem;
  align-items: center;
  justify-content: center;
}
@media (any-hover: hover) {
.header__menu-btn:hover{
  background: #FFF;
}
.header__menu-btn:hover .header__menu-label {
  color:#B8807A;
}
}


.header__menu-label--close {
  display: none;
  padding: 0.5rem 1.875rem;
}

.header__menu-label--close img {
  display: block;
  width: 1.375rem;
  height: auto;
}

.header__menu-btn.is-open{
  background: none;
}

.header__menu-btn.is-open .header__menu-label--open {
  display: none;
}

.header__menu-btn.is-open .header__menu-label--close {
  display: flex;

}

/* Fullscreen Nav */
.header__nav {
  position: fixed;
  inset: 0;
  background-color: var(--color-primary);
  display: flex;
  align-items: safe center;
  justify-content: safe center;
  overflow-y: auto;
  overscroll-behavior: contain;
  z-index: 1;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.3s ease, visibility 0s linear 0.3s;
}

.header__nav .ttl{
  font-family: var(--font-en);
  text-align: center;
  font-size: 2.5rem;
  color:#FFF;
}

.header__nav .at{
  width: 11.375rem;
  color:#FFF;
  font-size: 1.125rem;
  text-align: center;
  display: block;
  margin-inline: auto;
  transform: translateX(-0.4375rem);
}

html.is-nav-locked,
html.is-nav-locked body {
  overflow: hidden;
}

.header.is-nav-open .header__nav {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition: opacity 0.3s ease, visibility 0s linear 0s;
}

.header__nav-list {
  list-style: none;
  margin: 2rem auto;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
  /* text-align: center; */
}

.header__nav .inner{
  margin:2rem auto;
  position: relative;
  padding-bottom: 13.75rem;
}

.header__nav .inner:before{
  content: '';
  position: absolute;
  bottom: 1.875rem;
  left:50%;
  transform: translateX(-50%);
  right: 0;
  margin:auto;
  background: url(../img/logo_nav.png) no-repeat center top;
  /* background-image: image-set(url(../img/logo_nav.avif) type('image/avif'), url(../img/logo_nav.png) type('image/png')); */
  background-size: contain;
  width: 16.875rem;
  height: 7.5rem;
 
}

.header__nav-list li{
  width: 100%;
}

.header__nav-link {
  display: inline-block;
  font-family: var(--font-en);
  font-size: 1.5rem;
  position: relative;
  letter-spacing: 0.12em;
  color: var(--color-white);
  line-height: 1;
  /* padding: 4px 8px; */
}

.header__nav-link:before{
  content:'';
  position: absolute;
  left:-0.625rem;
  top:50%;
  width: 0.1875rem;
  height: 0.1875rem;
  border-radius: 50%;
  background: #D9D9D9;
}

.header__nav-link p{
  font-size:0.75rem;
  letter-spacing: 0;
  margin-top: 0.3125rem;

}

.header__nav-link:hover {
  opacity: 0.7;
}

@media (max-width: 767px) {
  .header__nav-list {
    gap: 1.375rem;
  }
  .header__nav-link {
    font-size: 1.5rem;
  }

  .header__menu-btn {
    height: 1.625rem;;
    max-height: 100%;
  }

  .header__menu-label{
      height: 1.625rem;;
  }


}

@media (max-width: 767px) {
  .header {
    padding: 0.75rem 5%;
  }
  .header__logo img {
    width: 7.125rem;
  }
}

/* ========================================
   MV
======================================== */
.mv {
  position: relative;
  height: 100svh;
  min-height: 31.25rem;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
  background-color: var(--color-primary);
}

.mv__bg {
  position: absolute;
  inset: 0;
  
  background-image: url('../img/mainv_pc.jpg');
  /* background-image: image-set(url('../img/mainv_pc.avif') type('image/avif'), url('../img/mainv_pc.jpg') type('image/jpeg')); */
  background-size: cover;
  background-position: center top;
  will-change: filter, transform;
}

.mv__overlay {
  position: absolute;
  inset: 0;
  background-color: #A47A82;
  opacity: 0;
  will-change: opacity;
}

.mv__intro {
  display: none;
  position: absolute;
  inset: 0;
  background-color: #FEACA6;
  z-index: 4;
}

html.is-countdown .mv__intro {
  display: block;
}

.mv__intro-canvas {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: block;
  pointer-events: none;
}

.mv__intro .ct{
  width: 80%;
  max-width: 25rem;
  position: absolute;
  left:0;
  right: 0;;
  margin: auto;
  bottom: 3.125rem;;
}
.mv__intro .ct .txt{
  width: 72%;
  margin:0 auto;
}
.mv__intro .ct .num{
  display: flex;
  justify-content: center;
  font-size: 1.5rem;
  align-items: baseline;
  color:#FFF;
}
.mv__intro .ct .num div{
  font-size: 3.5rem;
  margin:0 0.625rem 0 0.625rem;
}
.mv__intro .ct .at{
  font-size: 0.875rem;
  text-align: center;
  color:#FFF;
}
.mv__copy {
  position: relative;
  z-index: 1;
  text-align: center;
}

.mv__copy-img {
  width: clamp(16.875rem, 30vw, 26.25rem);
  height: auto;
}

.mv__concept {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: flex;
  align-items: center;
  opacity: 0;
  pointer-events: none;
}

@media (max-width: 1024px) {
  .mv {
    padding-top: var(--header-h, 60px);
  }
  .mv__bg {
    top: var(--header-h, 60px);
    background-image: url('../img/mainv.jpg');
    /* background-image: image-set(url('../img/mainv.avif') type('image/avif'), url('../img/mainv.jpg') type('image/jpeg')); */
    background-position: center center;
  }
}

/* ========================================
   Concept
======================================== */
.concept {
  position: relative;
  z-index: 2;
  background-color: var(--color-primary-light);
  padding: 6.25rem 0;
  min-height: 100vh;
  display: flex;
  align-items: center;
}

.concept__label {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 2rem;

}

.concept__label-text {
  font-family: var(--font-en);
  font-weight: 500;
  font-size:2rem; /* 14px */
  letter-spacing: 0.04em;
  color: var(--color-white);
}

/* .concept__label::after {
  content: '';
  display: block;
  flex: 1;
  height: 1px;
  background-color: var(--color-white);
  opacity: 0.4;
} */

.concept__text {
  display: flex;
  flex-direction: column;
  gap: 1.75rem;
}

.concept__text p {
  font-family: var(--font-serif);
  font-size: 1.125rem;
  letter-spacing: 0.04em;
  line-height: 2;
  color: var(--color-white);
}

@media (max-width: 767px) {
  .concept {
    padding: 5rem 0;
  }
 
 
}

/* ========================================
   Banner
======================================== */
.banner {
  /* no full-width background — image is scoped to the 500px inner */
}

.banner__inner {
  max-width: 31.25rem;
  margin: 0 auto;
  padding: 3rem 1.5rem;
  background-image: url('../img/bnr_bg.jpg');
  /* background-image: image-set(url('../img/bnr_bg.avif') type('image/avif'), url('../img/bnr_bg.jpg') type('image/jpeg')); */
  background-size: cover;
  background-position: center;
}

.banner__box {
  /* border: 1px solid rgba(255, 255, 255, 0.8); */
  padding: 1.75rem 1rem;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.625rem;
  /* background: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px); */
}

.banner__title {
  /* font-family: 'Shippori Mincho', serif; */
  font-weight: 400;
  font-size: 2rem;
  letter-spacing: 0.04em;
  line-height: 1;
  color: #3E3A39;
}

.banner__sep {
  display: block;
  width: 1.5rem;
  height: 1px;
  background-color: #3E3A39;
}

.banner__date {
  display: flex;
  align-items: baseline;
  gap: 0.375rem;
}

.banner__date-num {
  font-family: var(--font-en);
  font-weight: 500;
  font-size: 2rem;
  letter-spacing: 0.04em;
  line-height: 1;
  color: var(--color-accent);
}

.banner__date-dot {
  font-size: 1.75rem;
}

.banner__date-wed {
  font-family: var(--font-en);
  font-weight: 500;
  font-size: 1rem;
  letter-spacing: 0.04em;
  line-height: 1;
  color: var(--color-accent);
}

.banner__date-start {
  font-family: var(--font-en);
  font-weight: 600;
  font-size: 1.75rem;
  letter-spacing: 0.04em;
  line-height: 1;
  color: var(--color-accent);
}

@media (max-width: 767px) {
  .banner__inner {
    padding: 2.5rem 1rem;
    max-width: 100%;
  }
  .banner__title {
    font-size: 2rem;
  }
  .banner__date-num {
        font-size: 2rem;
  }
  .banner__date-dot {
    font-size: 1.25rem;
  }
  .banner__date-wed {
        font-size: 1.3rem;
  }
  .banner__date-start {
        font-size: 1.8rem;
  }
}

/* ========================================
   fixbg 左右の固定背景（PCのみ）
======================================== */
/* コンテンツ幅(.container = 500px)の外側、左右の余白に固定背景を敷く。
   各 side は余白を丸ごと占有するので、その中央＝「ブラウザ端〜コンテンツ端」の中央になる。
   余白幅 = (100vw - 500px) / 2 = 50vw - 250px */
.fixbg__side {
  position: fixed;
  top: 0;
  height: 100vh;
  width: calc(50vw - 16.0625rem);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  pointer-events: none;
  z-index: 1;
  opacity: 0;
  transition: opacity 0.8s ease;
}

.fixbg__side--left {
  left: 0;
  background-image: url(../img/bg_left.jpg);
  /* background-image: image-set(url(../img/bg_left.avif) type('image/avif'), url(../img/bg_left.jpg) type('image/jpeg')); */
}

.fixbg__side--right {
  right: 0;
  background-image: url(../img/bg_right.jpg);
  /* background-image: image-set(url(../img/bg_right.avif) type('image/avif'), url(../img/bg_right.jpg) type('image/jpeg')); */
}

/* fixbg が下からビューポートに入っている間だけ表示 */
.fixbg.is-bg-active .fixbg__side {
  opacity: 1;
}

@media (max-width: 767px) {
  .fixbg__side {
    display: none;
  }
}

/* ========================================
   LINE UP
======================================== */
.lineup {
  background-color: var(--color-primary-light);
  padding: 0 0 3rem;
}

.lineup__inner {
  max-width: 31.25rem;
  margin: 0 auto;
  padding-top: 3.5rem;
  position: relative;
  overflow: hidden;
}

.lineup__heading {
  font-family: var(--font-en);
  font-size: 3.5rem;
  font-weight: 500;
  letter-spacing: 0.08em;

  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  margin-bottom: 2rem;
}


/* .lineup__heading-line {
  display: block;
  flex: 1;
  height: 1px;
  background-color: var(--color-primary-dark);
  opacity: 0.5;
  max-width: 40px;
} */

.model__heading{
  color:var(--color-primary-dark);
  text-align: center;
  width:85%;
  margin-inline: auto;
  font-size: 1.5rem;
  font-weight: 500;
  position: relative;
}

.model__heading--01{
  color:#655D5D;
}
.model__heading:before{
  content:'';
  position: absolute;
  left:0;
  width: 6.25rem;
  margin-top: 1.25rem;
  height: 1px;
  background: #655D5D;
}
.model__heading:after{
  content:'';
  position: absolute;
  right:0;
  width: 6.25rem;
  margin-top: 1.25rem;
  height: 1px;
 background: #655D5D;
}
.p01__texts {
  position: relative;
  min-height: 3.5rem;
}
.p01__texts--02 {
 min-height: 5.375rem;
}
.model__text{
  text-align: center;
  font-size: 1.2rem;
}

.model__text h4:has(.only){
  display: flex;
  justify-content: center;
  align-items: center;
  font-weight: 600;
  
}

.model__text .only{
  background: var(--color-third);
  color:#FFF;
  font-size: 0.875rem;
  padding:0px 0.25rem;
  border-radius: 0.375rem;
  margin-left: 0.3125rem;
}

.p01__texts .model__text {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  opacity: 0;
}
.model__text p{
  font-size: 1.2rem;
    margin: 0.5rem 0 1rem;
  line-height: 1.5;
  font-weight: 500;
}

.model__price{
  text-align: center;
  font-size: 1rem;
  margin-top: 4%;
  
}
.model__price span{
    font-size: 1.4rem;
  font-weight: 500;
  padding-right: 0.25rem;
}

.lineup__products {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0 1.5rem;
  position: relative;
  z-index: 1;
}

.lineup__item-link {
  display: block;
  color: inherit;
}

.lineup__item--full {
  margin-bottom: 1rem;
}

.lineup__item-img-wrap {
  position: relative;
  /* overflow: hidden; */
}

.lineup__item-img {
  width: 100%;
  height: auto;
  display: block;
}

.lineup__badge {
  position: absolute;
  top: -1.875rem;
  right: 0.5rem;
  color: var(--color-white);
  font-family: var(--font-en);
  font-weight: 700;
  letter-spacing: 0.06em;
  border-radius: 50%;
  display: flex;
  background: linear-gradient(270deg, rgba(255, 226, 231, 0.5) 0%, rgba(243, 182, 184, 0.5) 100%);;
  border:0.125rem solid #FFF;
  align-items: center;
  justify-content: center;
  text-align: center;
  line-height: 1.2;
}

.lineup__badge--new {
  font-size: 1.125rem;
  width: 6rem;
  height: 6rem;
}

.lineup__badge--new-limited {
  font-size: 0.875rem ;
  width: 5rem;
  height: 5rem;
  top:-1.5625rem;
  letter-spacing: 0.04em;
}

.lineup__badge--limited {
  font-size: 0.875rem ;
  width: 5rem;
  height: 5rem;
  top:-1.5625rem;
  letter-spacing: 0.04em;
}

.lineup__item-body {
  padding: 1rem 0 1rem;
  text-align: center;
}

.lineup__item-name {
  font-family: var(--font-ja);
  font-size: 1rem;
  color: #3E3A39;
  font-weight: 500;
  letter-spacing: 0.04em;
  margin-bottom: 0.75rem;
  line-height: 1.15;
}

.lineup__item--half .lineup__item-name {
  /* min-height: calc(1.125rem * 1.15 * 2); */
  display: flex;
  align-items: center;
  justify-content: center;
}

.lineup__item-tags {
  display: flex;
  gap: 0.25rem;
  margin-bottom: 0.375rem;
  justify-content: center;
}

.lineup__tag {
  display: inline-block;
  font-family: var(--font-ja);
    font-size: 1rem;
    padding: 0px 0.75rem 0.1rem;
    border-radius: 1rem;
    font-weight: 500;
    line-height: 1.4;
}

.lineup__tag--accent {
  background-color: var(--color-accent);
  color: var(--color-white);
  border:1px solid transparent;
}

.lineup__tag--dark {
  color: var(--color-primary-pinks);
  border:1px solid var(--color-primary-pinks);
}

.lineup__item-price {
  font-family: var(--font-en);
    font-size: 1.3rem;
  font-weight: 500;
  color: #3E3A39;
  margin-bottom: 1.25rem;;
  letter-spacing: 0.02em;
}

.lineup__item-tax {
    font-size: 0.8rem;
    font-family: var(--font-ja);
    vertical-align: middle;
    margin-left: 2px;
}

.lineup__item-arrow {
  display: block;
  width: 0.625rem;
  height: 0.625rem;
  border-right: 1.5px solid var(--color-accent);
  border-bottom: 1.5px solid var(--color-accent);
  transform: rotate(45deg);
  margin: 0.375rem auto 0;
}

.lineup__row {
  display: flex;
  gap: 1rem;
}

.lineup__item--half {
  flex: 1;
  min-width: 0;
}

@media (max-width: 767px) {
  .lineup {
    padding: 0 0 2.5rem;
  }
  .lineup__inner {
    max-width: 100%;
  }
  .lineup__heading {
    font-size: 3.5rem;
  }
}

/* ========================================
   CAMPAIGN
======================================== */
.campaign {
      background-color: var(--color-primary-light);
      padding-bottom: 1.875rem;
  /* background: linear-gradient(160deg, #FFD6D0 0%, #FEACA6 60%, #F7908A 100%); */
}

.campaign__inner {
  max-width:calc(31.25rem - 3rem);
  margin: 0 auto;
  text-align: center;
  padding: 1.25rem 0 0;
  width: calc(100% - 3rem);
  margin-left: auto;
  margin-right: auto;
  border:0.125rem solid var(--color-primary);
}

.campaign__label {
  display: flex;
  text-align: center;
  justify-content: center;
  align-items: center;
  gap: 0.75rem;
  font-family: var(--font-ja);
  font-size: 1.125rem;
  color: #3E3A39;
  font-weight: 500;
  letter-spacing: 0.08em;
  margin-bottom: 0.5rem;
}

.campaign__label::before,
.campaign__label::after {
  content: '';
  flex: 1;
  height: 1px;
  background-color: var(--color-primary);
  opacity: 0.4;
  max-width: 3rem;
}

.campaign__heading {
  font-family: var(--font-en);
  font-size: 4.25rem;
  font-weight: 700;
  
  color: #3E3A39;
  margin-bottom: 0.75rem;
  line-height: 1;
}

.campaign__date {
  display: inline-block;
  font-family: var(--font-en);
  font-size: 1rem;
  font-weight: 400;
  background-color: var(--color-primary);
  color:#FFF;
  padding: 0.25rem 2.5rem;
  border-radius: 1.875rem;
  letter-spacing: 0.04em;
  margin-bottom: 1.875rem;
}

.campaign__date span {
 font-size: 1rem;
  font-weight: 500;
}

.campaign__condition {
  font-family: var(--font-ja);
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 0.04em;
  padding: 1.25rem 1.25rem 0;
  background: var(--color-primary);
 
}

.campaign__reward {
  font-family: var(--font-ja);
  font-size: 1.5rem;
  font-weight: 500;
  color: #FFF;
  background: var(--color-primary);
  letter-spacing: 0.04em;
  padding-bottom: 0.625rem;
}

.campaign__reward-num {
  font-family: var(--font-en);
  font-size: 2.5rem;
  font-weight: 700;
  padding-bottom: 0.625rem;
 
  vertical-align: baseline;
}

@media (max-width: 767px) {
  .campaign__inner {
    max-width: 100%;
  }
 
  .campaign__reward-num {
    font-size: 2.6rem;
  }
}

.sec{
  background: linear-gradient(180deg, #FFE2E7 0%, #F3B6B8 100%);
  z-index: 2;
  position: relative;

}


.sec__inner{
  max-width: 31.25rem;
  margin:0 auto;
  
}

.sec__photo{
  position: relative;
}

.sec__badge{
  width: 32%;
 
  aspect-ratio: 1 / 1;
  position: absolute;
  right:0.5rem;
  font-family: var(--font-en);
  font-size: 2.5rem;
  line-height: 1;
  font-weight: 500;
  color:#FFF;
  top:0.5rem;
  align-content: center;
  text-align: center;
  border:0.1875rem solid #FFF;
  border-radius: 50%;
}

.sec__badge--02{
  font-size: 2rem;
}

.sec__block{
  position: relative;
}

.sec__heading{
  font-family: var(--font-en);
  position: absolute;
  top:3rem;
  left:3rem;
  
  line-height:1;
}
.sec__heading h3{
  font-size: 2.5rem;;
  line-height:1;
}
.sec__txt{
  margin-top: 1rem;
  font-size: 1.125rem;
}

.sec__block02{
  position: relative;
  background: linear-gradient(180deg, #FCE5E4 0%, #F6BECB 63.94%, #FBE5EB 100%);
  padding-bottom: 1.5rem;
}

.sec__block02 .sec__heading{
  font-family: var(--font-ja);
  font-size: 1.5rem;
  text-align: center;
  line-height: 1.5;
  left:inherit;
  right: inherit;;
  display: block;
  text-align: center;
  width: 100%;
  top:3.4375rem;
  color:#655D5D;

}


.sec__block02 .sec__heading span{
  color:var(--color-third);
  font-size: 2rem;;
 
}

.sec__block02 .sec__heading sup{
  font-size: 0.625rem;
  color:#3E3A39;
  color:var(--color-third);
  position: relative;
  font-weight: normal;
  top:-0.375rem;

}

.sec__block02 .sec__txt{
  position: absolute;
  bottom: 4.375rem;
  left:0;
  width: fit-content;
  right:0;
  font-size: 1.5rem;
  margin:auto;
  line-height: 1.5;
  font-weight: 500;
  color:#655D5D;
  text-align: center;
}
/* .sec__block02 .sec__txt:before{
  content:'';
  position: absolute;
  left:-20px;
  top:0;
  bottom: 0;
  margin: auto;
  width: 5px;
  height: 42px;
  background: url(../img/kakko.svg) no-repeat left center;
  background-size: contain;
}
.sec__block02 .sec__txt:after{
  content:'';
  position: absolute;
  right:-20px;
  top:0;
  bottom: 0;
  margin: auto;
  width: 5px;
  height: 42px;
  transform: scaleX(-1);
  background: url(../img/kakko.svg) no-repeat left center;
  background-size: contain;
} */
.sec__block02 .sec__txt sup{
  font-size: 0.75rem;
  top:1px;;
  position: relative;
}

.sec__block02 .sec__at{
  font-size: 0.75rem;
  position: absolute;
  left:1.875rem;
  bottom: 0.3125rem;
}
.sec__block02 .baloon{
  width: 8.2rem;
  height: 8.2rem;
  background: rgba(254, 172, 166, 0.5);
  border-radius: 50%;
  position: absolute;
  align-items: center;
  font-size: 1.125rem;
  color:#FFF;
  display: flex;
  justify-content: center;
  z-index: 2;
  /* Y浮遊 + X微揺れ + 傾き を異なる周期で合成 → 有機的な動き */
  animation:
    baloon-y 3.3s cubic-bezier(0.37, 0, 0.63, 1) infinite alternate,
    baloon-x 4.7s ease-in-out                     infinite alternate,
    baloon-r 6.1s ease-in-out                     infinite alternate;
}
.sec__block02 .baloon01{
  position: absolute;
  top:8.75rem;
  right:1.875rem;
  animation-delay: 0s, 0.9s, 1.7s;
}
.sec__block02 .baloon02{
  position: absolute;
  bottom:9.375rem;
  text-align: center;
  display: block;
  align-content: center;
  left:1.875rem;
  white-space: nowrap;
  letter-spacing: -0.04em;
  animation-delay: 1.2s, 0.3s, 2.4s;
}
.sec__block02 .baloon02 sub{
  font-size: 0.75rem;
  position: relative;
  bottom: 0.1875rem;
    vertical-align: middle;
}

.look{
  position: relative;
}
.look .bg{
  height: 100vh;
  /* iOS Safari: 100vhは下部ツールバーの裏まで含むため、見えている高さ=dvhで中央揃え */
  height: 100dvh;
  background: url(../img/bg_look.jpg) no-repeat center center;
  /* background-image: image-set(url(../img/bg_look.avif) type('image/avif'), url(../img/bg_look.jpg) type('image/jpeg')); */
  background-size: cover;
  /* align-content:center はブロック要素ではiOS Safari 17.6+でしか効かないため、
     全環境で確実に縦横中央へ揃うflexに変更（pinでfixed化されても維持される） */
  display: flex;
  align-items: center;
  justify-content: center;
}
.look .ttl{
  width: 17.4375rem;
  margin-inline: auto;
}

.look .inner{
  --bg-opacity: 0;
  position: relative;
  z-index: 1;
  padding-bottom: 5.5rem;
}
.look .inner::before{
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #FCE5E4 0%, #F6BECB 63.94%, #FBE5EB 100%);
  opacity: var(--bg-opacity);
  z-index: -1;
  pointer-events: none;
}

.look .sec__inner{
  padding-top: 7rem;;
}

.look .photo{
  width: 100%;
  position: relative;
  margin:0 auto;
}
.look .photo .num{
  position: absolute;
  left:-1.25rem;
  top:-2.5rem;
  color:#FFF;
  font-family: var(--font-en);
  line-height: 1;
  text-align: center;
}
.look .photo .num div{
  font-size: 4rem;
  margin-top: -0.3125rem;
}

.look .photo .txt{
  font-size: 1.5rem;
  font-weight: 500;
  position: absolute;
  bottom: -6.875rem;
  color:#FFF;
  left:-1.25rem;
}
.look .photo .txt div{
  width: fit-content;;
  padding:1rem;
  line-height: 1;
  background: var(--color-primary);
  margin-bottom: 1.25rem;;
}

@media (max-width: 767px) {
  .look .photo{
    width: 80%;
  }
}

.look .product{
  display: grid;
  width: 90%;
  margin:8.75rem auto 2.5rem;
  grid-template-columns: 1fr 1fr 1fr;
}
.look .product--02{
  grid-template-columns: 1fr 1fr;
}

.look .product div,
.look .product a{
  position: relative;
  display: block;
}

.look .product p{
  position: absolute;
  bottom: 0;
  text-align: center;
  font-size: 0.75rem;
  width: 100%;
  font-weight: 500;
}

.look .product--02 p{
  width: 60%;
}

.look .product--01 > div:nth-child(2) p,
.look .product--01 > a:nth-child(2) p{
  bottom: 0.625rem;;
}

.look .product--02 > div:nth-child(1) p,
.look .product--02 > a:nth-child(1) p{
  bottom: 0.625rem;
  margin-left: 38%;
}


.look .howtobtn{
  border:0.125rem solid #655D5D;
  color:#655D5D;
  font-size:1.5rem;
  font-family: var(--font-en);
  padding:0.5rem;
  font-weight: 500;
  border-radius: 4.1875rem;
  text-align: center;
  width: 90%;
  margin-inline: auto;
  cursor: pointer;
  position: relative;
  margin-bottom: 1.5rem;
  transition: .3s ease;
}

.look .howtobtn:after{
  content:'';
  position: absolute;
  right:2rem;
  top:1.8125rem;
  width: 1.5rem;
  height: 0.125rem;
  background: #655D5D;
  transition:background-color .3s ease;;
}
/* 縦棒：閉じている時だけ表示して「＋」、開くと消えて「−」 */
.look .howtobtn:before{
  content:'';
  position: absolute;
  right:2.6875rem;
  top:1.125rem;
  width: 0.125rem;
  height: 1.5rem;
  background: #655D5D;
  transition: opacity .3s ease, transform .3s ease, background-color .3s ease;
}
.look .howtobtn.is-open:before{
  opacity: 0;
  transform: rotate(90deg);
}

.look .howtobtn:hover{
  background: #655D5D;
  color:#FFF;
}
.look .howtobtn:hover:before,
.look .howtobtn:hover:after{
  background: #FFF;
}





@keyframes baloon-y {
  from { transform: translateY(0); }
  to   { transform: translateY(-0.6875rem); }
}
@keyframes baloon-x {
  from { translate:  0px 0; }
  to   { translate:  0.375rem 0; }
}
@keyframes baloon-r {
  from { rotate: -2.5deg; }
  to   { rotate:  2deg; }
}

.sec__block02 .base{
  position: relative;
  z-index: 1;
  padding-bottom: 1.25rem;
}

/* ========================================
   Awa bubbles
======================================== */
.sec__block02 .awa,
.lineup__inner .awa {
  position: absolute;
  bottom: -2rem;
  /* mix-blend-mode: color-burn; */
  pointer-events: none;
  opacity: 0;
}
.sec__block02 .awa  img,
.lineup__inner .awa img{
  width: 50%;
}
/* translateY（上昇）と translate X（左右ゆらぎ）を別アニメーションで合成 */
.sec__block02 .awa01,
.lineup__inner .awa01 { left:  8%; animation: awa-rise 6.3s 0.0s linear    infinite, awa-sway-a 2.9s 0.0s ease-in-out infinite alternate; }
.sec__block02 .awa02,
.lineup__inner .awa02 { left: 22%; animation: awa-rise 9.0s 2.2s linear    infinite, awa-sway-b 3.8s 0.4s ease-in-out infinite alternate; }
.sec__block02 .awa03,
.lineup__inner .awa03 { left: 42%; animation: awa-rise 7.5s 0.9s linear    infinite, awa-sway-c 2.4s 1.1s ease-in-out infinite alternate; }
.sec__block02 .awa04,
.lineup__inner .awa04 { left: 58%; animation: awa-rise 5.7s 3.5s linear    infinite, awa-sway-a 3.2s 0.7s ease-in-out infinite alternate; }
.sec__block02 .awa05,
.lineup__inner .awa05 { left: 70%; animation: awa-rise 7.2s 1.5s linear    infinite, awa-sway-b 2.7s 1.3s ease-in-out infinite alternate; }
.sec__block02 .awa06,
.lineup__inner .awa06 { left: 18%; animation: awa-rise 5.9s 4.3s linear    infinite, awa-sway-c 3.5s 0.2s ease-in-out infinite alternate; }
.sec__block02 .awa07,
.lineup__inner .awa07 { left: 85%; animation: awa-rise 8.0s 2.8s linear    infinite, awa-sway-a 2.3s 0.9s ease-in-out infinite alternate; }

/* PCのみ上昇アニメーションを全体的に少しゆっくりに（約1.4倍） */
@media (min-width: 768px) {
  .sec__block02 .awa01,
  .lineup__inner .awa01 { animation: awa-rise  8.8s 0.0s linear infinite, awa-sway-a 2.9s 0.0s ease-in-out infinite alternate; }
  .sec__block02 .awa02,
  .lineup__inner .awa02 { animation: awa-rise 12.6s 2.2s linear infinite, awa-sway-b 3.8s 0.4s ease-in-out infinite alternate; }
  .sec__block02 .awa03,
  .lineup__inner .awa03 { animation: awa-rise 10.5s 0.9s linear infinite, awa-sway-c 2.4s 1.1s ease-in-out infinite alternate; }
  .sec__block02 .awa04,
  .lineup__inner .awa04 { animation: awa-rise  8.0s 3.5s linear infinite, awa-sway-a 3.2s 0.7s ease-in-out infinite alternate; }
  .sec__block02 .awa05,
  .lineup__inner .awa05 { animation: awa-rise 10.1s 1.5s linear infinite, awa-sway-b 2.7s 1.3s ease-in-out infinite alternate; }
  .sec__block02 .awa06,
  .lineup__inner .awa06 { animation: awa-rise  8.3s 4.3s linear infinite, awa-sway-c 3.5s 0.2s ease-in-out infinite alternate; }
  .sec__block02 .awa07,
  .lineup__inner .awa07 { animation: awa-rise 11.2s 2.8s linear infinite, awa-sway-a 2.3s 0.9s ease-in-out infinite alternate; }
}

/* 上昇 + フェード（Y軸のみ） */
@keyframes awa-rise {
  0%   { transform: translateY(0);       opacity: 0; }
  8%   { opacity: 0.65; }
  88%  { opacity: 0.4; }
  100% { transform: translateY(-130vh);  opacity: 0; }
}

/* 左右ゆらぎ（X軸個別プロパティで独立合成） */
@keyframes awa-sway-a {
  from { translate: -0.8125rem 0; }
  to   { translate:  0.9375rem 0; }
}
@keyframes awa-sway-b {
  from { translate:  0.6875rem 0; }
  to   { translate: -0.875rem 0; }
}
@keyframes awa-sway-c {
  from { translate:  -0.4375rem 0; }
  to   { translate:  0.625rem 0; }
}

.sec__block02_01{
    padding-top: 3rem;
    margin-bottom: 2rem;
  overflow: hidden;
  position: relative;
}

.sec__glass{
  background: rgba(255, 255, 255, 0.3);
  margin:0 1.5rem;
  border:1px solid #FFF;
  padding-top:3rem 

}

.js-fade--blur {
  will-change: transform, opacity, filter;
}
.js-fade--up {
  will-change: transform, opacity;
}
.js-fade {
  will-change: opacity;
}

.p01{
  position: relative;
  overflow: hidden;
 
  --swiper-navigation-sides-offset:1.25rem;
  margin-bottom: 1.5rem;
  
}

.p01__swiper{
  width: 56%;
  margin-inline: auto;
  margin-top: 1.5rem;
  overflow: initial;
  
}
.p01__swiper img{
  width: 76%;
}
.sec__glass .swiper-button-prev,
.sec__glass .swiper-button-next {
  --swiper-navigation-size: 2rem;
  --swiper-navigation-color: var(--color-accent);

}

.p01__product__btn{
  width: 10.67%;
  gap:0.5rem;
  position: absolute;
  display: grid;
  grid-template-columns: 1fr;
  top:50%;
  transform: translateY(-50%);
  right: 6.25rem;
  z-index: 1;
  cursor: pointer;
}
.p01__product__btn div{
  position: relative;
}
.p01__product__btn .current:before{
  content:'';
  position: absolute;
  width: 100%;
  height: 100%;
  border:0.1875rem solid #FFF;
  border-radius: 50%;
}

.p01__product__btn img{
  width: 100%;
}

.p02{
  position: relative;
  min-height: 100svh;
}
.p02 .bg{
  width: 100%;
  margin: 0 auto;
  height: 100svh;
  min-height: 53.875rem;
  max-width: 31.25rem;

}
.p02 .bg img{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center center;
  min-height: 53.875rem;
  /* 表示はそのまま、中央500px幅だけ見せる */
  -webkit-mask-image: linear-gradient(to right,
    transparent 0,
    transparent calc(50% - 15.625rem),
    #000 calc(50% - 15.625rem),
    #000 calc(50% + 15.625rem),
    transparent calc(50% + 15.625rem),
    transparent 100%);
          mask-image: linear-gradient(to right,
    transparent 0,
    transparent calc(50% - 15.625rem),
    #000 calc(50% - 15.625rem),
    #000 calc(50% + 15.625rem),
    transparent calc(50% + 15.625rem),
    transparent 100%);
}

.p02 .content{
/* Frame 39 */
  max-width: 28.125rem;
  width: 90%;
  margin-inline: auto;
  background: rgba(255, 255, 255, 0.3);
  padding:3rem 0 0;
  border:1px solid #FFF;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 2;
}
.p02 .content.is-tall{
  top: calc(var(--header-h, 60px) + 1.25rem);
  transform: translateX(-50%);
}

.p02 .ttl{
  font-size: 2.5rem;
  line-height: 1;
  padding: 0 2rem;;
}
.p02 .ttl + p{
  margin-top: 0.625rem;
   padding: 0 2rem;;
   font-weight: 500;
}

.p02 .p01__swiper img{
  width: 100%;
}

.p02 .p01{
  padding-bottom: 1.25rem;
  margin-bottom: 0px;
}

.p02 .p01__swiper{
  width: 100%;
}

.p02 .p01__product__btn{
  top:inherit;
  transform: none;
  left:50%;
  max-width: 6.25rem;
  transform: translateX(-50%);
      bottom: 0;
      width: inherit;
      grid-template-columns: 1fr 1fr;
}

.p02 .p01__texts{
  min-height: 9.375rem;
  margin-top: 1.25rem;
}


/* .p02 .c-btn{
  margin-bottom: 1.875rem;
} */

.p02--02 .p01{
  margin-top: -5.125rem;
}
.p02--02 .p01__texts{
  margin-top: -2.5rem;
  min-height: 9.375rem;;
  
}

.p02--02 .p01__product__btn{
  grid-template-columns: 1fr 1fr 1fr 1fr;
  max-width: inherit;
    width: 50%;
    bottom: 3.125rem;
}

/* ========================================
   Section Base
======================================== */
.section {
  padding: 3.75rem 0;
}

.section--gray {
  background-color: #f9f9f9;
}

.section__title {
  font-size: 1.5rem;
  font-weight: bold;
  text-align: center;
  margin-bottom: 2.5rem;
}

/* ========================================
   Features
======================================== */
.features__list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.feature-item {
  padding: 1.5rem;
  background-color: #fff;
  border: 1px solid #eee;
  border-radius: 0.5rem;
}

.feature-item__title {
  font-size: 1.1rem;
  font-weight: bold;
  margin-bottom: 0.5rem;
}

.feature-item__text {
  font-size: 0.9rem;
  color: #666;
}

/* ========================================
   CTA Section
======================================== */
.cta-section {
  background-color: var(--color-primary);
  color: #fff;
  text-align: center;
  padding: 3rem 0;
  text-align: center;
}
.cta-section .date{
  font-size: 2rem;
  padding-top: 0.625rem;
  font-weight: bold;
}
.cta-section .date span{
  font-size: 2.5rem;
}

.cta-section .reserve{
  font-size: 1.5rem;
  letter-spacing: .04em;
  margin-top: -0.9375rem;
}

.cta-section .name{
  font-weight: bold;
   letter-spacing: .04em;
   margin-top: 1.25rem;
}

.cta-section .kikan{
  font-size: 0.875rem;
  display: flex;
  justify-content: center;
  gap:0.75rem;
  align-content: center;
}

.cta-section .kikan div:first-child{
  border:1px solid #FFF;
  padding:0 0.625rem;

  display: flex;
  align-items: center;

  align-content: center;
}

.cta-section .btm{
  margin-top: 1.875rem;
  background: #FFF;
  color:var(--color-primary);
  line-height: 1;
  padding: 1.5rem 0;
}

.cta-section .btm div:last-child{
  font-weight: 500;
  margin-top: 0.9375rem;
}

.cta-section__title {
  font-size: 2rem;
  font-weight: 500;
  letter-spacing: .08em;
  border-bottom: 1px solid #FFF;
  
}

.cta-section__text {
  font-size: 0.95rem;
  margin-bottom: 2rem;
  opacity: 0.85;
}

.cta-section .inner{
  width: 90%;
  max-width: 28.125rem;
  margin-inline: auto;
  border:1px solid #FFF;
}

.btn {
  display: inline-block;
  padding: 0.875rem 2.5rem;
  border-radius: 0.25rem;
  font-size: 1rem;
  font-weight: bold;
  cursor: pointer;
  transition: opacity 0.2s;
  border: none;
}

.btn--white {
  background-color: #fff;
  color: #333;
}

.btn:hover {
  opacity: 0.75;
}

.atc{
  height: 55.25rem;
  /* background: url(../img/bg_footer_pc.jpg) no-repeat center center; */
  background-color: var(--color-primary);
  background-size: cover;
  position: relative;
}

.atc-canvas {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: block;
  pointer-events: none;
}

@media (max-width: 767px) {
.atc{
   aspect-ratio: 500 / 884;
  /* background: url(../img/bg_footer.jpg) no-repeat center center; */
  background-size: contain;
  height: auto;
  
}

.p02 .bg{
  transform: none;
  max-width: 100%;
}

/* .p02 .bg{
  height: 100svh;
}*/
.p02 .bg img{
  object-fit: cover;
} 

}

.atc .copy{
  width: 12.5rem;
  position: absolute;
  left:0;
  right: 0;;
  margin:auto;
  top:3.125rem;
}

.atc .btns{
  width: 20.75rem;
  background: var(--color-accent);
  color:#FFF;
   position: absolute;
  left:0;
  right: 0;;
  margin:auto;
  text-align: center;
  display: block;
  bottom: 14.375rem;;
  padding:1rem 0;
  font-weight: 500;
  font-size: 1.5rem;
  border-radius: 2.5rem;
  transition: .2s ease;
}
.atc .btns:after{
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  right: 1.875rem;
  margin: auto;
  background-color: #fff;
  transition: .2s ease;
  /* 大きさ */
  width: 1.125rem;
  height: 1.125rem;
  /* くの字（右向き） */
  clip-path: polygon(40% 0, 90% 50%, 40% 100%, 30% 90%, 70% 50%, 30% 10%);
  clip-path: polygon(40% 0, 90% 50%, 40% 100%, 40% 88%, 78% 50%, 40% 12%);
}
/* 🙆‍♂ Recommended */
@media (any-hover: hover) {
  .atc .btns:hover {
    color:var(--color-accent);
    background-color: #FFF;
  }
  .atc .btns:hover:after{
    background-color: var(--color-accent);
  }
}

.howblock{
  width:90%;
  margin: 0 auto;
  padding:0 5%;
}

.howblock ul{
  margin-top: 2rem;
}

.howblock ul li{
  list-style: none;
  display: flex;
  gap:1.25rem;

  align-items: center;
}

.howblock ul li + li{
  margin-top: 1rem;
}

.howblock ul li > div:first-child{
  width: 24%;
}
.howblock ul li > div:last-child{
  flex:1;
  line-height: 1.5;
}

.howblock .fs{
  font-weight: 500;
  font-size: 0.75rem;
  text-decoration: underline;
  margin-top: 0.625rem;
  text-underline-position: under;
  display: block;
  
}
@media (any-hover: hover) {
  .howblock .fs:hover{
    text-decoration: none;
  }
}


.howblock dl{
  display: flex;
}
.howblock dl + dl{
  margin-top: 0.625rem;;
}
.footer{
  position: absolute;
  bottom: 0;
  /* max-width: 500px; */
  left:0;
  right: 0;
  margin:auto;
  background: #DCD6D8;
  height: 12.75rem;
}


.howcontent .nav{
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 0 5%;
  width: 94%;
  margin-inline: auto;;
  margin-bottom: 1.25rem;
}
.howcontent .name{
  font-family: var(--font-en);
  font-size: 0.875rem;
  width: 30%;
  text-align: center;
  letter-spacing: .08em;
  cursor: pointer;
  display: flex;
  justify-content: center;
  align-items: center;
  align-content: center;
  transition: font-size .1s ease;
  height: 2.5rem;
}
.howcontent .name.current{
  font-size: 2rem;
}

/* nav 左右端の prev / next 矢印 */
.howslider__prev,
.howslider__next{
  position: absolute;
  top: 50%;
  width: 2.875rem;
  height: 2.875rem;
  cursor: pointer;
  transform: translateY(-50%);
  z-index: 2;
}
.howslider__prev{ left: 0; }
.howslider__next{ right: 0; }
.howslider__prev::before,
.howslider__next::before{
  content:'';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0.9375rem;
  height: 0.9375rem;
  border-top: 0.125rem solid #655D5D;
  border-right: 0.125rem solid #655D5D;
}
.howslider__next::before{
  transform: translate(-70%, -50%) rotate(45deg);
}
.howslider__prev::before{
  transform: translate(-30%, -50%) rotate(-135deg);
}
.howslider__prev.swiper-button-disabled,
.howslider__next.swiper-button-disabled{
  opacity: .3;
  pointer-events: none;
}


.calmine{
  position: absolute !important;
  width: 4rem;
  height: 4rem;
  border-radius: 100vw;
  border:0.125rem solid var(--color-third);
  left:2.5rem;
  top:1.875rem;
  font-family: var(--font-en);
  font-weight: 600;
  font-size: 0.75rem;
    line-height: 1.3;
  display: flex;
  align-items: center;
  text-align: center;
  justify-content: center;
  color:var(--color-third);
  opacity: 0;
  transition: opacity .3s ease;
    background: #fceaedb5;
}
/* 現在表示中のスライドのときだけ表示 */
.swiper-slide-active .calmine{
  opacity: 1;
}

.calmine0{
  left:-3.125rem;
  top:0.625rem;
}

.p02--02 .calmine{
  top:6.25rem;
}

/* ========================================
   Footer
======================================== */
.footer {
  background-color: #222;
  color: #aaa;
  text-align: center;
  padding: 1.5rem 0;
  font-size: 0.8rem;

}


.c-btn{
  font-size: 1.5rem;
  text-align: center;
  background: var(--color-primary-pinks);
  color:#FFF;
  width: 69.4%;
  margin-inline: auto;
  padding:0.625rem 0;
  border-radius: 3.125rem;
  position: relative;
  display: block;
  margin-top: 1.5rem;
  margin-bottom: 3rem;
  transition: .2s ease;
}
/* 🙆‍♂ Recommended */
@media (any-hover: hover) {
  .c-btn:hover {
    color:var(--color-primary-pinks);
    background-color: #FFF;
  }
  .c-btn:hover:after{
    background-color: var(--color-primary-pinks);
  }
}
.c-btn:after{
  content: '';
  position: absolute;
  top: 0;
  bottom: -0.125rem;
  right: 1.875rem;
  margin: auto;
  background-color: #fff;
  transition: .2s ease;
  /* 大きさ */
  width: 1.125rem;
  height: 1.125rem;
  /* くの字（右向き） */
  clip-path: polygon(40% 0, 90% 50%, 40% 100%, 30% 90%, 70% 50%, 30% 10%);
  clip-path: polygon(40% 0, 90% 50%, 40% 100%, 40% 88%, 78% 50%, 40% 12%);
}

/* カウントダウン中の表示切替 */
.c-btn__label--countdown { display: none; }
html.is-countdown .c-btn .c-btn__label { display: none; }
html.is-countdown .c-btn .c-btn__label--countdown { display: inline; }
.c-btn__date { font-family: var(--font-en); }

html.is-countdown .c-btn {
  background: #9E8F8E;
  pointer-events: none;
}
/* html.is-countdown .c-btn:after {
  display: none;
} */

/* カウントダウン中は商品リンクを無効化（7/22以降アクティブ）。
   href値に依存せず構造/クラスで指定するため、実URL差し込み後も有効。
   ※外部リンク（.at／フッター）は対象外 */
html.is-countdown .swiper-slide a,
html.is-countdown .product a,
html.is-countdown a.fs {
  pointer-events: none;
  cursor: default;
}


.pcnav{
  position: fixed;
  top:5rem;
  left:calc(50% + 20rem);
  z-index: 90;

  width: 21.875rem;;
  padding:0.125rem;
  color:#FFF;
  border:1px solid var(--color-primary);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateX(1rem);
  transition: opacity .4s ease, transform .4s ease, visibility 0s linear .4s;
  .inner{
    width: fit-content;
    margin-inline: auto;
    padding:1.875rem 4.6875rem;;
     background: var(--color-primary);

     .ttl{
      font-size: 2.5rem;
      text-align: center;
     }
  }
}

.pcnav.is-visible{
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(0);
  transition: opacity .4s ease, transform .4s ease, visibility 0s linear 0s;
}

@media (max-width: 1400px) {
  .pcnav,
  .pcnav.is-visible{
    display: none !important;
  }
}



/*////////////////*/
/* ETVOS FOOTER */
/* line 619, ../sass/css_18aw_lp.scss */
footer {
  padding-top: 2.5rem !important;
  text-align: center !important;
background-color: #dcd6d8 !important;
   
}

/* line 625, ../sass/css_18aw_lp.scss */
footer a {
  color: #000!important;
}

/* line 629, ../sass/css_18aw_lp.scss */
footer a:link {
  color: #000!important;
}

/* line 633, ../sass/css_18aw_lp.scss */
footer a:visited {
  color: #000!important;
}

/* line 637, ../sass/css_18aw_lp.scss */
footer a:hover {
  color: #000!important;
}

/* line 641, ../sass/css_18aw_lp.scss */
footer a:active {
  color: #000!important;
}

/* line 645, ../sass/css_18aw_lp.scss */
footer .sns_area {
  width: auto;
  overflow: hidden;
  margin: 0 auto 1.25rem auto;
  text-align: center;
}

/* line 652, ../sass/css_18aw_lp.scss */
footer .sns_area .twitter-btn {
  display: inline-block;
  width: 6.25rem;
}

/* line 657, ../sass/css_18aw_lp.scss */
footer .sns_area .fb-share-button {
  display: inline-block;
  width: 6.25rem;
}

footer .sns_area .line-share-button{
  display: inline-block;
  margin:0 0.625rem;
}


/* line 662, ../sass/css_18aw_lp.scss */
footer .f_list {
  text-align: center;
  margin-bottom: 1.25rem;
  font-size: 0.875rem;
  padding: 0;
  /* 2列グリッドで「会社概要」の後で改行（br不要・リスト構造を維持） */
  display: grid;
  grid-template-columns: auto auto;
  justify-content: center;
  column-gap: 0.625rem;
  row-gap: 0.25rem;
}

/* line 669, ../sass/css_18aw_lp.scss */
footer .f_list li {
  display: block;
  padding-right: 0;
}

footer .container p{
  font-size: 1rem;;

  color:#000;
}