@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=Noto+Serif+JP:wght@400;500;700&display=swap');

.ntm-wrap{
  --gold:#caa45e;
  --gold-light:#e9d4a8;
  --cream:#faf6f0;
  --pink:#e8b4bd;
  --pink-deep:#c98a96;
  font-family:"Noto Serif JP", serif;
  color:var(--cream);
  background:linear-gradient(135deg,#1c1a18 0%, #2a2620 50%, #1c1a18 100%);
  padding:48px 20px 64px;
  box-sizing:border-box;
  max-width:900px;
  margin:0 auto;
  border-radius:8px;
  overflow:hidden;
  position:relative;
}

.ntm-wrap *{ box-sizing:border-box; }

/* 光の粒アニメーション */
.ntm-wrap::before,
.ntm-wrap::after{
  content:"";
  position:absolute;
  width:240px; height:240px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(202,164,94,0.18), transparent 70%);
  pointer-events:none;
  animation:ntmFloat 12s ease-in-out infinite;
}
.ntm-wrap::before{ top:-60px; left:-60px; }
.ntm-wrap::after{ bottom:-80px; right:-40px; animation-delay:4s; }

@keyframes ntmFloat{
  0%,100%{ transform:translate(0,0) scale(1); }
  50%{ transform:translate(30px,20px) scale(1.15); }
}

/* ヘッダー */
.ntm-header{
  text-align:center;
  margin-bottom:36px;
  position:relative;
  z-index:1;
}
.ntm-header .ntm-sub{
  font-family:"Cormorant Garamond", serif;
  letter-spacing:0.25em;
  font-size:13px;
  color:var(--gold-light);
  text-transform:uppercase;
  opacity:0;
  animation:ntmFadeUp 1s ease forwards 0.1s;
}
.ntm-header h1{
  font-family:"Cormorant Garamond", serif;
  font-size:42px;
  letter-spacing:0.12em;
  margin:8px 0 12px;
  color:var(--gold);
  font-weight:600;
  opacity:0;
  animation:ntmFadeUp 1s ease forwards 0.3s;
}
.ntm-header p.lead{
  font-size:14px;
  line-height:1.9;
  color:var(--cream);
  max-width:560px;
  margin:0 auto;
  opacity:0;
  animation:ntmFadeUp 1s ease forwards 0.5s;
}

@keyframes ntmFadeUp{
  from{ opacity:0; transform:translateY(16px); }
  to{ opacity:1; transform:translateY(0); }
}

/* バッジ */
.ntm-badges{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:12px;
  margin:28px 0 8px;
  position:relative;
  z-index:1;
}
.ntm-badge{
  border:1px solid var(--gold);
  border-radius:30px;
  padding:8px 18px;
  font-size:12px;
  letter-spacing:0.08em;
  color:var(--gold-light);
  background:rgba(202,164,94,0.07);
  opacity:0;
  animation:ntmFadeUp 0.8s ease forwards;
  transition:transform 0.3s ease, background 0.3s ease;
}
.ntm-badge:hover{
  transform:translateY(-3px);
  background:rgba(202,164,94,0.16);
}
.ntm-badge:nth-child(1){ animation-delay:0.7s; }
.ntm-badge:nth-child(2){ animation-delay:0.85s; }
.ntm-badge:nth-child(3){ animation-delay:1.0s; }

/* 営業情報 */
.ntm-info{
  text-align:center;
  font-size:13px;
  line-height:2;
  color:var(--gold-light);
  margin:28px 0 10px;
  letter-spacing:0.04em;
  position:relative;
  z-index:1;
}
.ntm-info span{
  display:inline-block;
  margin:0 10px;
}

.ntm-divider{
  width:60px;
  height:1px;
  background:var(--gold);
  margin:36px auto;
  position:relative;
  z-index:1;
  opacity:0.6;
}

/* セクション共通 */
.ntm-section{
  margin-top:54px;
  position:relative;
  z-index:1;
}
.ntm-section-head{
  text-align:center;
  margin-bottom:28px;
}
.ntm-section-head .ntm-tag{
  font-family:"Cormorant Garamond", serif;
  font-size:13px;
  letter-spacing:0.3em;
  text-transform:uppercase;
}
.ntm-section-head h2{
  font-family:"Cormorant Garamond", serif;
  font-size:30px;
  letter-spacing:0.1em;
  margin:6px 0 10px;
  font-weight:600;
}
.ntm-section-head p{
  font-size:13px;
  line-height:1.9;
  max-width:520px;
  margin:0 auto;
  color:var(--cream);
  opacity:0.9;
}

/* まつ毛：女性的（ピンクゴールド） */
.ntm-section.lash .ntm-tag{ color:var(--pink); }
.ntm-section.lash h2{ color:var(--pink-deep); }
.ntm-section.lash .ntm-card{
  border:1px solid rgba(232,180,189,0.45);
  background:linear-gradient(145deg, rgba(80,45,50,0.75), rgba(60,35,40,0.85));
}
.ntm-section.lash .ntm-card:hover{
  border-color:var(--pink);
  box-shadow:0 8px 24px rgba(232,180,189,0.18);
}
.ntm-section.lash .ntm-price{ color:var(--pink); }

/* 眉毛：男性的（ゴールド×グレー） */
.ntm-section.brow .ntm-tag{ color:var(--gold); }
.ntm-section.brow h2{ color:var(--gold); }
.ntm-section.brow .ntm-card{
  border:1px solid rgba(202,164,94,0.45);
  background:linear-gradient(145deg, rgba(45,40,28,0.85), rgba(35,32,22,0.9));
}
.ntm-section.brow .ntm-card:hover{
  border-color:var(--gold);
  box-shadow:0 8px 24px rgba(202,164,94,0.18);
}
.ntm-section.brow .ntm-price{ color:var(--gold); }

/* カードグリッド */
.ntm-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(250px,1fr));
  gap:16px;
}
.ntm-card{
  border-radius:10px;
  padding:20px 22px;
  transition:transform 0.35s ease, box-shadow 0.35s ease, border-color 0.35s ease;
  opacity:0;
  transform:translateY(18px);
  animation:ntmFadeUp 0.7s ease forwards;
}
.ntm-card:hover{ transform:translateY(-4px); }

/* 予約ボタン */
.ntm-card .ntm-btn{
  display:block;
  margin-top:14px;
  text-align:center;
  padding:9px 0;
  border-radius:30px;
  font-size:12px;
  letter-spacing:0.15em;
  text-decoration:none;
  font-family:"Noto Serif JP", serif;
  transition:background 0.3s ease, color 0.3s ease, transform 0.2s ease;
}
.ntm-section.lash .ntm-btn{
  background:rgba(232,180,189,0.18);
  border:1px solid var(--pink);
  color:var(--pink);
}
.ntm-section.lash .ntm-btn:hover{
  background:var(--pink);
  color:#1c1a18;
  transform:translateY(-2px);
}
.ntm-section.brow .ntm-btn{
  background:rgba(202,164,94,0.12);
  border:1px solid var(--gold);
  color:var(--gold);
}
.ntm-section.brow .ntm-btn:hover{
  background:var(--gold);
  color:#1c1a18;
  transform:translateY(-2px);
}

.ntm-card .ntm-name{
  font-size:15px;
  font-weight:700;
  letter-spacing:0.03em;
  margin-bottom:6px;
  color:var(--cream);
}
.ntm-card .ntm-desc{
  font-size:12px;
  line-height:1.8;
  color:#d9d4cc;
  margin-bottom:10px;
  min-height:18px;
}
.ntm-card .ntm-price{
  font-family:"Cormorant Garamond", serif;
  font-size:22px;
  font-weight:700;
  letter-spacing:0.05em;
}
.ntm-card .ntm-price small{
  font-size:13px;
  color:#9d9890;
  text-decoration:line-through;
  margin-right:8px;
  font-family:"Noto Serif JP", serif;
}
.ntm-card .ntm-tagline{
  display:inline-block;
  margin-top:8px;
  font-size:10px;
  letter-spacing:0.12em;
  padding:3px 10px;
  border-radius:20px;
  border:1px solid currentColor;
  opacity:0.85;
}

/* フッター */
.ntm-note{
  margin-top:46px;
  text-align:center;
  font-size:12px;
  line-height:2;
  color:#cfc8bd;
  position:relative;
  z-index:1;
}
.ntm-note .ntm-heart{
  display:inline-block;
  color:var(--pink);
  animation:ntmPulse 2.4s ease-in-out infinite;
}
@keyframes ntmPulse{
  0%,100%{ transform:scale(1); opacity:0.8; }
  50%{ transform:scale(1.25); opacity:1; }
}

/* レスポンシブ */
@media (max-width:480px){
  .ntm-header h1{ font-size:32px; }
  .ntm-wrap{ padding:36px 14px 48px; }
}