/* =========================================================
Card Container
========================================================= */

.card-container-1{
display:grid;
grid-template-columns:1fr;
gap:20px;
padding-top:10px;
}

.card-container-2{
display:grid;
grid-template-columns:repeat(2,1fr);
gap:20px;
padding-top:10px;
}

.card-container-3{
display:grid;
grid-template-columns:
repeat(auto-fit,minmax(300px,1fr));
gap:20px;
padding-top:10px;
}

.card-container-4{
display:grid;
grid-template-columns:
repeat(4,1fr);
gap:20px;
padding-top:10px;
}


/* =========================================================
Grid Card
========================================================= */

.grid-card{

position:relative;

display:flex;
flex-direction:column;

height:100%;
min-width:0;

padding-bottom:20px;

border-radius:12px;
overflow:hidden;

background:#fff;

box-shadow:
0 15px 15px rgba(0,0,0,.08);

transition:
transform .4s ease,
box-shadow .4s ease;

}


/* subgrid解除 */

.grid-card-5,
.grid-card-8,
.grid-card-9{

display:flex;
flex-direction:column;

height:100%;

grid-row:auto;

}


/* =========================================================
Hover
========================================================= */

@media(min-width:768px){

.grid-card:hover{

transform:translateY(-8px);

box-shadow:
0 25px 35px rgba(0,0,0,.12),
0 5px 15px rgba(0,0,0,.08);

}

.grid-card:hover .grid-card-button{

background:var(--accent);
color:#fff;

}

}


/* =========================================================
Link
========================================================= */

.card-link{
position:absolute;
inset:0;

z-index:10;

background:transparent;
}

.card-img,
.menu-card-swiper,
.swiper-button-prev,
.swiper-button-next,
.swiper-pagination{

position:relative;
z-index:10;

}

.swiper-button-prev,
.swiper-button-next{
pointer-events:auto;
}



.menu-card-swiper .swiper-button-prev,
.menu-card-swiper .swiper-button-next,
.menu-card-swiper .swiper-pagination{
pointer-events:auto;
}
/* =========================================================
Image
========================================================= */

.card-img{

position:relative;

overflow:hidden;

background:#fff;

z-index:1;

}


.card-img img{

display:block;

width:100%;
height:auto;

opacity:1 !important;

filter:none !important;

mix-blend-mode:normal !important;

transform:none !important;

backface-visibility:hidden;
-webkit-backface-visibility:hidden;

}


/* =========================
CARD SWIPER FIX
========================= */

.menu-card-swiper{
width:100%;
height:320px;
overflow:hidden;
position:relative;
}

.menu-card-swiper .swiper-wrapper{
height:100%;
display:flex;
}

.menu-card-swiper .swiper-slide{
height:100%;
flex-shrink:0;
}

.menu-card-swiper .swiper-slide img{
width:100%;
height:100%;
display:block;
object-fit:cover;
}

.swiper-button-prev,
.swiper-button-next{
z-index:20;
}

.swiper-pagination{
z-index:20;
}

.menu-card-swiper .swiper-pagination{

z-index:20;

}

.menu-card-swiper .swiper-pagination-bullet{

background:#fff;

opacity:.6;

}

.menu-card-swiper
.swiper-pagination-bullet-active{

opacity:1;

}


/* =========================================================
Text
========================================================= */

.card-title,
.card-title-2,
.card-title-sub,
.card-text,
.card-text-sub,
.card-text-tag,
.grid-card-price,
.grid-card-price-2,
.grid-card-button{

position:relative;
z-index:2;

}


.card-title{

padding:20px 20px 0 20px;

font-size:22px;

font-weight:500;

line-height:1.4;

margin-bottom:5px;

display:-webkit-box;
-webkit-box-orient:vertical;
-webkit-line-clamp:3;
overflow:hidden;

}


.card-title-2{

padding:20px 20px 0 20px;

font-size:16px;

font-weight:600;

margin-bottom:10px;

}


.card-title-sub{

padding:20px 20px 0 20px;

margin-bottom:12px;

color:var(--grey8);

font-size:14px;
line-height:1.7;

/* 最大3行 */
display:-webkit-box;
-webkit-box-orient:vertical;
-webkit-line-clamp:3;
overflow:hidden;

/* 3行分の高さ固定 */
min-height:calc(1.7em * 3);

}


.card-text{

padding:0 20px;

}


.card-text-sub{

padding:0 20px;

font-size:13px;

line-height:1.8;

margin-bottom:12px;

color:var(--grey8);

/* 最大4行 */
display:-webkit-box;
-webkit-box-orient:vertical;
-webkit-line-clamp:4;

overflow:hidden;

/* 4行分の高さを固定 */
min-height:calc(1.8em * 4);

}


.card-text-tag{

padding:20px;

font-size:13px;

color:var(--grey8);

margin-bottom:auto;

}


/* =========================================================
Price
========================================================= */

.grid-card-price{

padding:0 20px;

display:grid;

grid-template-columns:
1fr auto auto;

gap:10px;

align-items:baseline;

}


.grid-card-price-2{

display:flex;

justify-content:space-between;

align-items:center;

padding:12px 20px;

border-bottom:1px solid rgba(0,0,0,.08);

gap:20px;

/* 高さ固定 */
min-height:56px;

box-sizing:border-box;

}

.grid-card-price-time,.grid-card-price-menu{

font-size:14px;

color:var(--accent);

}


.grid-card-price-price{

font-size:20px;

font-weight:500;

margin-left:auto;

color:var(--accent);

text-align:right;

}


.grid-card-price-option-text{

font-size:13px;

opacity:.7;

text-align:left;

}

.grid-card-price-option{

font-size:18px;

font-weight:500;

color:var(--accent);

text-align:right;

white-space:nowrap;

}
/* =========================
価格エリア固定
========================= */

.grid-card-price-wrap{
  display:flex;
  flex-direction:column;
  margin-top:auto;
  gap:0;
}
/* =========================
価格エリアを伸ばす
========================= */

.grid-card-price,
.grid-card-price-2{
flex-shrink:0;
}

/* =========================================================
Button
========================================================= */

.grid-card-button{

margin-top:20px;

margin-left:20px;
margin-right:20px;

padding:12px 28px;

border:1px solid var(--accent);

text-align:center;

}


/* =========================================================
SP
========================================================= */

@media(max-width:768px){

.card-container-2,
.card-container-4{

grid-template-columns:1fr;

}

.card-container-3{

display:flex;

overflow-x:auto;

gap:16px;

scroll-snap-type:x mandatory;

padding-bottom:10px;
   -webkit-overflow-scrolling:touch;
}

.grid-card{

display:flex;

flex-direction:column;

min-width:90%;

scroll-snap-align:center;

}

}

/* =========================================================
Evidence Card（研究・脳波ページ専用）
========================================================= */

/* 3カラム */
.card-column-container-3{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:24px;
    padding-top:30px;
    align-items:stretch;
}

/* ベースカード */
.grid-card-evidence,
.grid-card-evidence-gold{

    display:grid;
    gap:18px;

    padding:34px;

    background:#fff;

    border-radius:14px;

    box-shadow:
    0 10px 30px rgba(0,0,0,.06);

    transition:
    transform .45s ease,
    box-shadow .45s ease;

    overflow:hidden;

    position:relative;
}

/* 上ライン */

.grid-card-evidence::before,
.grid-card-evidence-gold::before{

    content:"";

    position:absolute;

    top:0;
    left:0;

    width:100%;
    height:2px;

    background:
    linear-gradient(
    90deg,
    transparent,
    var(--accent),
    transparent
    );
}

/* ゴールド強調版 */

.grid-card-evidence-gold{

    background:
    linear-gradient(
    to bottom,
    #fff,
    #faf8f5
    );

    border:1px solid rgba(139,115,85,.2);
}

/* hover */

@media(min-width:768px){

.grid-card-evidence:hover,
.grid-card-evidence-gold:hover{

transform:translateY(-8px);

box-shadow:
0 25px 40px rgba(0,0,0,.1);

}

}

/* 画像 */

.grid-card-evidence img,
.grid-card-evidence-gold img{

width:100%;

border-radius:10px;

overflow:hidden;
}

/* text */

.grid-card-evidence .card-title-sub,
.grid-card-evidence-gold .card-title-sub{

font-size:12px;

letter-spacing:.25em;

font-weight:600;
}

.grid-card-evidence .card-title-2,
.grid-card-evidence-gold .card-title-2{

font-size:22px;

padding:0;

line-height:1.5;

margin:0;
}

.grid-card-evidence .card-text,
.grid-card-evidence-gold .card-text{

padding:0;

font-size:14px;

line-height:2;

color:#555;
}

.grid-card-evidence .card-text-sub,
.grid-card-evidence-gold .card-text-sub{

padding:0;

font-size:12px;

color:#888;

margin-bottom:0;
}


/* =========================================================
Alpha / Theta Tags
========================================================= */

.alfa-tag-grid{

display:flex;

gap:8px;

flex-wrap:wrap;
}

.alfa-tag-blue,
.alfa-tag-grey,
.alfa-tag-gold{

font-size:11px;

padding:6px 12px;

border-radius:999px;

letter-spacing:.08em;
}

.alfa-tag-blue{

background:#edf5ff;

color:#4d7ea8;
}

.alfa-tag-grey{

background:#f3f3f3;

color:#888;
}

.alfa-tag-gold{

background:#f8f4ea;

color:var(--accent);
}


/* =========================================================
Progress
========================================================= */

.grid-card-evidence progress,
.grid-card-evidence-gold progress{

height:6px;

border-radius:999px;

overflow:hidden;
}


/* =========================================================
SP
========================================================= */

@media(max-width:768px){

.card-column-container-3{

grid-template-columns:1fr;

gap:18px;

}

.grid-card-evidence,
.grid-card-evidence-gold{

padding:26px;

}

.grid-card-evidence .card-title-2,
.grid-card-evidence-gold .card-title-2{

font-size:18px;

}

}

/* =========================================================
Award Card
========================================================= */

.card-column-container-3{

    display:grid;

    grid-template-columns:
    repeat(3,1fr);

    gap:20px;

    padding-top:30px;
}


/* カード */

.grid-card-column-3{

    display:flex;

    align-items:center;

    gap:18px;

    padding:24px;

    border-radius:14px;

    background:#fff;

    position:relative;

    overflow:hidden;

    box-shadow:
    0 10px 30px rgba(0,0,0,.06);

    transition:
    transform .4s ease,
    box-shadow .4s ease;
}


/* Cartier風 上ライン */

.grid-card-column-deco::before{

    content:"";

    position:absolute;

    top:0;
    left:0;

    width:100%;
    height:1px;

    background:
    linear-gradient(
    90deg,
    transparent,
    var(--accent),
    transparent
    );
}


/* hover */

@media(min-width:768px){

.grid-card-column-3:hover{

    transform:translateY(-6px);

    box-shadow:
    0 18px 40px rgba(0,0,0,.1);

}

}


/* 左アイコン */

.grid-card-column-3 i{

    width:56px;
    height:56px;

    flex-shrink:0;

    border-radius:50%;

    display:flex;
    align-items:center;
    justify-content:center;

    font-size:20px;

    color:var(--accent);

    background:

    linear-gradient(
    135deg,
    #faf8f5,
    #f3eee7
    );

    border:
    1px solid rgba(139,115,85,.15);

}


/* テキスト */

.grid-card-column-3 .trust-text-sub{

    margin:0;

    font-size:11px;

    letter-spacing:.18em;

    color:#888;

    line-height:1.5;
}

.grid-card-column-3 .trust-text{

    margin-top:6px;

    font-size:15px;

    font-weight:600;

    line-height:1.8;

    color:#111;
}


/* =========================================================
SP
========================================================= */

@media(max-width:768px){

.card-column-container-3{

grid-template-columns:1fr;

gap:16px;

}

.grid-card-column-3{

padding:18px;

}

.grid-card-column-3 i{

width:48px;
height:48px;

font-size:16px;

}

}

/* =========================================================
Living Beauty Trust Card
========================================================= */

.card-container-4{

    display:grid;

    grid-template-columns:
    repeat(4,1fr);

    gap:18px;

    align-items:stretch;
}


/* カード */

.grid-card-trust{

    position:relative;

    display:flex;

    flex-direction:column;

    justify-content:center;

    align-items:center;

    text-align:center;

    min-height:180px;

    padding:36px 28px;

    background:
    rgba(255,255,255,.55);

    backdrop-filter:blur(10px);

    border-radius:22px;

    box-shadow:
    0 10px 30px rgba(0,0,0,.04);

    transition:
    transform .4s ease,
    box-shadow .4s ease;

    overflow:hidden;
}


/* 上ライン */

.grid-card-deco::before{

    content:"";

    position:absolute;

    top:0;
    left:0;

    width:100%;
    height:1px;

    background:
    linear-gradient(
    90deg,
    transparent,
    var(--accent),
    transparent
    );
}


/* hover */

@media(min-width:768px){

.grid-card-trust:hover{

transform:translateY(-8px);

box-shadow:
0 25px 45px rgba(0,0,0,.08);

}

}


/* アイコン */

.grid-card-trust i{

font-size:28px;

margin-bottom:26px;

color:var(--accent);

opacity:.9;
}


/* メイン */

.grid-card-trust .trust-text{

font-size:18px;

font-weight:600;

line-height:1.7;

margin-bottom:10px;

letter-spacing:.04em;
}


/* サブ */

.grid-card-trust .trust-text-sub{

font-size:13px;

line-height:1.8;

color:#999;

margin:0;

display:block;

-webkit-line-clamp:2;
-webkit-box-orient:vertical;
display:-webkit-box;
overflow:hidden;
}


/* Googleだけ高さ対策 */

.grid-card-trust iframe,
.grid-card-trust .ti-widget{

width:100%!important;

}


/* =========================================================
SP
========================================================= */

@media(max-width:768px){

.card-container-4{

grid-template-columns:1fr;

gap:14px;

}

.grid-card-trust{

min-height:auto;

padding:30px 22px;

}

.grid-card-trust i{

font-size:22px;

margin-bottom:18px;

}

.grid-card-trust .trust-text{

font-size:16px;

}

}

/* =========================================================
Front Catch Card
========================================================= */
.mini-card-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 40px;
}

@media(max-width:768px){
  .mini-card-grid{
    grid-template-columns: 1fr;
  }
}

/* カード統一（Cartier寄せ） */
.mini-card-grid .grid-item{
  background: #fbfaf8; /* ほんの少しだけ暖色グレー */
  border: 1px solid rgba(139,115,85,0.15);
  box-shadow: 0 8px 20px rgba(0,0,0,0.05);

  padding: 40px 24px;
  border-radius: 10px;

  transition: all .4s ease;
  position: relative;
  overflow: hidden;
}

/* 上部ライン（高級感） */
.mini-card-grid .grid-item::before{
  content:"";
  position:absolute;
  top:0;
  left:50%;
  transform:translateX(-50%);
  width:40px;
  height:1px;
  background: var(--accent);
  opacity: .6;
}

/* hover */
.mini-card-grid .grid-item:hover{
  transform: translateY(-4px);
  box-shadow: 0 14px 30px rgba(0,0,0,0.08);
}

/* アイコン */
.mini-card-grid .col-icon{
  font-size: 28px;
  color: var(--accent);
  margin-bottom: 12px;
  opacity: .9;
}

/* タイトル */
.mini-card-grid .col-title{
  font-size: 15px;
  letter-spacing: .08em;
  margin-bottom: 8px;
  font-weight: 500;
}

/* テキスト */
.mini-card-grid .col-text{
  font-size: 12px;
  color: #666;
  line-height: 1.8;
}

/* 既存カードとの差を消す（重要） */
.grid-item{
  background: inherit; /* 上書き防止用 */
}

/* ====================================
Brain Gold Note
==================================== */

.brain-note{

width:100%;

margin:60px auto 25px;

position:relative;

}


.brain-note-inner{

width:100%;

display:flex;

align-items:center;

gap:35px;

padding:40px;

border-radius:24px;

background:
linear-gradient(
180deg,
rgba(255,255,255,.95),
#faf8f5
);

border:
1px solid rgba(188,158,120,.12);

box-shadow:
0 20px 50px rgba(0,0,0,.05);

position:relative;

overflow:hidden;

}


/* Cartier上ライン */

.brain-note-inner::before{

content:"";

position:absolute;

top:0;
left:50%;

transform:translateX(-50%);

width:140px;
height:1px;

background:
linear-gradient(
90deg,
transparent,
var(--accent),
transparent
);

}


/* 左アイコン */

.brain-note-icon{

width:90px;
height:90px;

flex-shrink:0;

display:flex;

align-items:center;
justify-content:center;

border-radius:50%;

background:
linear-gradient(
135deg,
#faf8f5,
#f3eee7
);

border:
1px solid rgba(188,158,120,.15);

}


.brain-note-icon i{

font-size:32px;

color:var(--accent);

}


/* text */

.brain-note-label{

display:block;

font-size:11px;

letter-spacing:.3em;

color:var(--accent);

margin-bottom:10px;

}


.brain-note-content h4{

font-family:
'Cormorant Garamond',
serif;

font-size:34px;

font-weight:400;

letter-spacing:.08em;

margin-bottom:15px;

}


.brain-note-content p{

font-size:14px;

line-height:2.2;

color:#555;

}


/* cite */

.brain-cite{

width:100%;

margin:0 auto;

text-align:center;

opacity:.6;

font-size:11px;

line-height:2;

}

.brain-cite cite{

display:block;

margin-top:8px;

font-style:normal;

letter-spacing:.08em;

}


/* SP */

@media(max-width:768px){

.brain-note-inner{

flex-direction:column;

padding:28px 22px;

gap:24px;

text-align:center;

}

.brain-note-icon{

width:70px;
height:70px;

}

.brain-note-icon i{

font-size:24px;

}

.brain-note-content h4{

font-size:24px;

line-height:1.5;

}

.brain-note-content p{

font-size:13px;
text-align: justify;
line-height:2;

}

}

/* =========================================================
Brain Card Height Fix
========================================================= */

/* カード自体を縦積み固定 */
.grid-card-evidence,
.grid-card-evidence-gold{

display:flex;
flex-direction:column;

}


/* STAGE */
.grid-card-evidence .card-title-sub,
.grid-card-evidence-gold .card-title-sub{

min-height:20px;

}


/* タイトル最大2行 */

.grid-card-evidence .card-title-2,
.grid-card-evidence-gold .card-title-2{

display:-webkit-box;
-webkit-box-orient:vertical;
-webkit-line-clamp:2;

overflow:hidden;

line-height:1.6;

min-height:calc(1.6em * 2);

}

.en .grid-card-evidence .card-text-sub,
.en .grid-card-evidence-gold .card-text-sub{

display:-webkit-box;
-webkit-box-orient:vertical;
-webkit-line-clamp:4;

min-height:calc(1.8em * 4)!important;

}
/* 説明（上側）最大6行 */

.grid-card-5 .border-bottom-dot{

display:-webkit-box;
-webkit-box-orient:vertical;
-webkit-line-clamp:6;

overflow:hidden;

line-height:2;

min-height:calc(2em * 6);

}

.en .grid-card-5 .border-bottom-dot{

display:-webkit-box;
-webkit-box-orient:vertical;
-webkit-line-clamp:8;

overflow:hidden;

line-height:2;

min-height:calc(2em * 8);

}




/* 下側説明 最大4行 */

.grid-card-evidence .card-text:last-child,
.grid-card-evidence-gold .card-text:last-child{

display:-webkit-box;
-webkit-box-orient:vertical;
-webkit-line-clamp:4;

overflow:hidden;

line-height:2;

min-height:calc(2em * 4);

}

.en .grid-card-evidence .card-text:last-child,
.en .grid-card-evidence-gold .card-text:last-child{

display:-webkit-box;
-webkit-box-orient:vertical;
-webkit-line-clamp:6;

overflow:hidden;

line-height:2;

min-height:calc(2em * 6);

}


/* grid-card-8上部説明 1行 */

.grid-card-8 .card-text-sub:first-of-type{

min-height:24px;

}


/* progress位置固定 */

.grid-card-8 progress{

margin:4px 0;

flex-shrink:0;

}


/* αθタグ高さ固定 */

.alfa-tag-grid{

min-height:32px;

align-items:flex-start;

}


/* 最後の本文を押し下げ */

.grid-card-evidence .card-text:last-child,
.grid-card-evidence-gold .card-text:last-child{

margin-top:auto;

}

@media(max-width:1024px){
	
	.en .grid-card-evidence .card-text-sub,
.en .grid-card-evidence-gold .card-text-sub{

display:-webkit-box;
-webkit-box-orient:vertical;
-webkit-line-clamp:6;

min-height:calc(1.8em * 6)!important;

}
	
		/* 上側説明 最大10行 */
	.en .grid-card-5 .border-bottom-dot{

display:-webkit-box;
-webkit-box-orient:vertical;
-webkit-line-clamp:14;

overflow:hidden;

line-height:2;

min-height:calc(2em * 14);

	}
	
	/* 下側説明 最大10行 */

.en .grid-card-evidence .card-text:last-child,
.en .grid-card-evidence-gold .card-text:last-child{

display:-webkit-box;
-webkit-box-orient:vertical;
-webkit-line-clamp:10;

overflow:hidden;

line-height:2;

min-height:calc(2em * 10);

}
}

@media(max-width:768px){
	
	.en .grid-card-evidence .card-text-sub,
.en .grid-card-evidence-gold .card-text-sub{

display:-webkit-box;
-webkit-box-orient:vertical;
-webkit-line-clamp:4;

min-height:calc(1.8em * 4)!important;

}
		/* 上側説明 最大10行 */
	.en .grid-card-5 .border-bottom-dot{

display:-webkit-box;
-webkit-box-orient:vertical;
-webkit-line-clamp:8;

overflow:hidden;

line-height:2;

min-height:calc(2em * 8);

	}
	
	/* 下側説明 最大10行 */

.en .grid-card-evidence .card-text:last-child,
.en .grid-card-evidence-gold .card-text:last-child{

display:-webkit-box;
-webkit-box-orient:vertical;
-webkit-line-clamp:8;

overflow:hidden;

line-height:2;

min-height:calc(2em * 7);

}
}