@charset "UTF-8";

/* -----------------------------------------------
FileName: style.css
----------------------------------------------- */


/* ===================================================
   HERO / FV
=================================================== */
/* Hero */
.hero-image-wrap {
  height: min(1080px, 151vw);
}

.section-hero {
  padding-bottom: clamp(80px, 31vw, 160px);
  overflow: hidden;
}

/* ── 写真ゾーン ───────────────────────────── */
.hero-photo-zone {
  position: relative;
}

.hero-image-wrap {
  width: 100%;
  background-image: url('../../images/HeroImage.jpg');
  background-size: cover;
  background-position: 40% top;
  background-repeat: no-repeat;
}

/* 写真下端を白にフェード */
.hero-photo-zone::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 60%;
  background: linear-gradient(
    to bottom,
    rgba(255, 255, 255, 0)    0%,
    rgba(255, 255, 255, 0.25) 25%,
    rgba(255, 255, 255, 0.55) 50%,
    rgba(255, 255, 255, 1) 75%,
    rgba(255, 255, 255, 1)    100%
  );
  pointer-events: none;
  z-index: 1;
}

/* "New!"  */
.hero-new {
  position: absolute;
  bottom: 52%;
  right: clamp(48px, 38.5vw, 296px);
  font-family: 'Crispo', 'Dancing Script', cursive;
  font-size: clamp(64px, 20.8vw, 160px);
  font-style: italic;
  color: #ffffff;
  transform: rotate(-18deg);
  transform-origin: right bottom;
  z-index: 2;
  line-height: 1;
  pointer-events: none;
}

/* 帯タグ */
.hero-labels {
  position: absolute;
  bottom: clamp(100px, 31.25vw, 240px);
  z-index: 2;
  display: flex;
  flex-direction: column;
}

.hero-product-name-en-border {
  display: block;
  background: var(--secondary-main);
  clip-path: polygon(0 0, 100% 0, 92% 100%, 0 100%);
  padding: 1px 1px 1px 0;
  filter: drop-shadow(2px 2px 6px rgba(0, 0, 0, 0.12));
}

.hero-product-name-en {
  display: block;
  background: rgba(255, 255, 255, 0.96);
  padding: clamp(6px, 1.56vw, 12px) clamp(40px, 10.42vw, 80px) clamp(6px, 1.56vw, 12px) clamp(32px, 8.33vw, 64px);
  font-family: var(--font-en-serif);
  font-size: clamp(14px, 3.65vw, 28px);
  letter-spacing: 0.04em;
  color: var(--text-accent);
  white-space: nowrap;
  clip-path: polygon(0 0, 100% 0, 92% 100%, 0 100%);
  line-height: initial;
}

.hero-product-tag {
  display: block;
  background-color: var(--secondary-main);
  color: #fff;
  padding: clamp(6px, 1.56vw, 12px) clamp(32px, 8.33vw, 64px);
  font-family: var(--font-gothic);
  font-size: clamp(14px, 3.65vw, 28px);
  font-weight: 500;
  letter-spacing: 0.08em;
  width: fit-content;
  clip-path: polygon(0 0, 100% 0, 92% 100%, 0 100%);
  filter: drop-shadow(2px 2px 6px rgba(0, 0, 0, 0.18));
  line-height: initial;
}

/* 商品画像 ＋ バッジ */
.hero-item-wrap {
  position: absolute;
  bottom: 8%;
  right: -8%;
  width: 57%;
  max-width: 484px;
  z-index: 2;
}

.hero-item-wrap > img {
  width: 100%;
  height: auto;
  display: block;
}

/* ゴールドバッジ */
.hero-badge {
  position: absolute;
  top: -6%;
  right: clamp(40px, 10.5vw, 80px);
  width: clamp(80px, 23vw, 180px);
  height: clamp(80px, 23vw, 180px);
  background-image: url('../../images/HeroBudge.svg');
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  filter: drop-shadow(0 3px 6px rgba(0, 0, 0, 0.16));
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-family: var(--font-mincho);
  color: var(--text-accent);
  text-align: center;
  line-height: 1.2;
  z-index: 3;
  letter-spacing: 0.02em;
  gap: 6px;
}

.badge-line-top {
  display: flex;
  align-items: baseline;
  justify-content: center;
  line-height: 1;
}

.badge-salon {
  font-size: clamp(12px, 3.26vw, 25px);
  font-weight: 600;
}

.badge-to {
  font-size: clamp(10px, 2.47vw, 19px);
  font-weight: 700;
}

.badge-main {
  font-size: clamp(20px, 5.6vw, 43px);
  font-weight: 600;
  line-height: 1;
}

/* ── コピーゾーン（写真に重ねて上寄せ） ───────────────── */
.hero-content {
  background: linear-gradient(
    to bottom,
    rgba(255, 255, 255, 1)    30%,
    rgba(255, 255, 255, 0.6)  50%,
    rgba(243, 232, 226, 0)    100%
  );
  padding: 0 var(--side-padding) 0;
  margin-top: clamp(-170px, -22.1vw, -80px);
  position: relative;
  z-index: 5;
}

.hero-copy-area {
  text-align: center;
  margin-bottom: clamp(16px, 4.17vw, 32px);
}

/* 「乾かすだけで*/
.hero-text-lead {
  font-family: var(--font-mincho);
  padding: 0 clamp(8px, 2.08vw, 16px);
  font-size: clamp(24px, 7.3vw, 56px);
  font-weight: 500;
  color: var(--text-main);
  letter-spacing: 0.04em;
  line-height: 1;
  display: inline-block;
  margin-bottom: clamp(8px, 1.82vw, 14px);
  border-bottom: 1px solid var(--secondary-accent);
}


/* 「理想のツヤとまとまり」 */
.hero-title {
  font-family: var(--font-mincho);
  font-size: clamp(40px, 12.2vw, 94px);
  font-weight: 600;
  background: linear-gradient(100deg, #2A1F1B 0%, #7B4F42 48%, #BF8070 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  letter-spacing: 0.02em;
  line-height: 1.2;
}

/* ピル（PointItemBG.png を背景に使用） */
.hero-pills {
  list-style: none;
  display: flex;
  justify-content: center;
  gap: clamp(4px, 1.04vw, 8px);
}

.hero-pill {
  width: clamp(90px, 29vw, 224px);
  height: clamp(90px, 29vw, 224px);
  background-image: url('../../images/PointItemBG.png');
  background-position: center;
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: var(--text-main);
  line-height: 1.7;
  box-sizing: border-box;
  background-size: 200% 133.5%;
}

.pill-sub {
    font-family: var(--font-gothic);
  display: block;
  font-size: clamp(12px, 3.39vw, 26px);
  letter-spacing: 0.06em;
  line-height: 1.5;
}

.pill-main {
  font-family: var(--font-mincho);
  display: block;
  font-size: clamp(16px, 4.69vw, 36px);
  line-height: 1.4;
}


/* ===================================================
   PROBLEM
=================================================== */
.section-problem {
  position: relative;
  z-index: 2;
  margin-top: -80px;
  padding: clamp(100px, 26vw, 200px) var(--side-padding) var(--section-pb);
  background-image: url('../../images/BG/ProbremBG.png');
  background-size: 103% 103%;
  background-position: center top;
  background-repeat: no-repeat;
  border-radius: clamp(32px, 8.33vw, 64px);
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16);
}

.problem-inner {
  padding: 0;
  max-width: var(--content-max);
  margin: 0 auto;
  text-align: center;
  background: linear-gradient(145deg, #553F3A 0%, #553F3A 20%, #C79E92 100%);
  border-radius: 340px 340px 16px 16px ;
  box-shadow: 0 12px 48px rgba(0, 0, 0, 0.2);
  overflow: hidden;
}

.problem-worry-box {
  padding: clamp(80px, 20.8vw, 160px) clamp(20px, 5.2vw, 40px) clamp(20px, 5.2vw, 40px);
}

.problem-lead {
  font-family: var(--font-mincho);
  font-size: 13px;
  color: var(--text-sub);
  letter-spacing: 0.12em;
  margin-bottom: 8px;
}

.problem-title {
  font-family: var(--font-mincho);
  font-size: clamp(28px, 7.8vw, 60px);
  font-weight: 500;
  color: #fff;
  letter-spacing: 0.1em;
  line-height: 1.5;
  margin-bottom: 0;
}

.problem-title-em {
  font-size: clamp(36px, 10.4vw, 80px);
}

.problem-title-underline {
  width: 160px;
  margin: 6px auto 28px;
}

.problem-title-underline img {
  width: 100%;
}


.problem-list {
  display: flex;
  flex-direction: column;
  gap: clamp(12px, 3.13vw, 24px);
  text-align: left;
  padding: 0 0 clamp(40px, 10.4vw, 80px);
}

.problem-item {
  display: flex;
  align-items: center;
  gap: clamp(8px, 2.08vw, 16px);
  padding: clamp(8px, 2.08vw, 16px) clamp(8px, 2.08vw, 16px) clamp(8px, 2.08vw, 16px) clamp(16px, 4.17vw, 32px);
  background-color: #fff;
  font-size: clamp(14px, 3.65vw, 28px);
  color: var(--text-accent);
  letter-spacing: 0.1em;
  line-height: 1.5;
}

.problem-check {
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(16px, 4.17vw, 32px);
  height: clamp(16px, 4.17vw, 32px);
  border: 1px solid #C89E92;
  flex-shrink: 0;
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16);
}

.problem-icon {
  width: clamp(8px, 2.08vw, 16px);
  height: clamp(8px, 2.08vw, 16px);
}

.problem-em {
  font-size: clamp(16px, 4.17vw, 32px);
  color: var(--primary-main);
  font-style: normal;
}


/* ===================================================
   CONCEPT
=================================================== */
.concept-inner {
  background-color: #fff;
  border-radius: clamp(32px, 8.33vw, 64px) 0;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
  margin-top: clamp(80px, 19vw, 146px);
  padding: clamp(80px, 22.8vw, 160px) clamp(16px, 3.13vw, 24px) clamp(40px, 10.4vw, 80px);
  position: relative;
  z-index: 2;
  text-align: center;
}

.concept-badge {
  position: absolute;
  top: clamp(-64px, -8.3vw, -32px);
  left: 50%;
  transform: translateX(-50%);
  width: clamp(100px, 23.4vw, 180px);
  height: clamp(100px, 23.4vw, 180px);
  background-image: url('../../images/HeroBudge.svg');
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  filter: drop-shadow(0 3px 6px rgba(0, 0, 0, 0.16));
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-mincho);
  font-size: clamp(18px, 4.17vw, 32px);
  font-weight: 600;
  color: var(--text-accent);
  letter-spacing: 0.08em;
  text-align: center;
  line-height: 1.2;
}

.concept-product-name {
  display: inline-block;
  position: relative;
  background-color: #fff;
  border-radius: 8px;
  border: 1px solid var(--secondary-main);
  padding: clamp(8px, 2.08vw, 16px) clamp(12px, 3.13vw, 24px);
  font-family: var(--font-en-serif);
  font-size: clamp(18px, 4.17vw, 32px);
  letter-spacing: 0.08em;
  color: var(--text-accent);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  margin-bottom: clamp(20px, 5.2vw, 40px);
}

.concept-product-name::after {
  content: '';
  position: absolute;
  bottom: clamp(-12px, -1.56vw, -6px);
  left: 50%;
  transform: translateX(-50%);
  width: clamp(16px, 4.17vw, 32px);
  height: clamp(8px, 2.08vw, 16px);
  background-color: #fff;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  border-right: none;
}

.concept-product-name::before {
  content: '';
  position: absolute;
  bottom: clamp(-13px, -1.76vw, -7px);
  left: 50%;
  transform: translateX(-50%);
  width: clamp(17px, 4.43vw, 34px);
  height: clamp(8.5px, 2.21vw, 17px);
  background-color: var(--secondary-main);
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}

.concept-en {
  font-family: var(--font-en-serif);
  font-size: 11px;
  letter-spacing: 0.35em;
  color: var(--secondary-supplementary);
  text-transform: uppercase;
  margin-bottom: 14px;
}

.concept-title {
  font-family: var(--font-mincho);
  font-size: clamp(36px, 10.4vw, 80px);
  font-weight: 600;
  color: var(--text-main);
  letter-spacing: 0.1em;
  line-height: 1.6;
  margin-bottom: 24px;
  text-align: center;
}

.concept-em {
  font-size: clamp(38px, 11.2vw, 86px);
  color: var(--primary-main);
  font-style: normal;
}

.concept-ornament {
  width: 32px;
  height: 32px;
  margin: 0 auto 16px;
  opacity: 0.5;
}

.concept-lead {
  font-family: var(--font-mincho);
  font-size: 13px;
  color: var(--text-sub);
  letter-spacing: 0.12em;
  line-height: 2.1;
  margin-bottom: 32px;
}

.concept-texture-wrap {
  display: flex;
  align-items: center;
  margin-bottom: clamp(20px, 5.21vw, 40px);
  justify-content: space-between;
}

.concept-texture-img {
  width: 62.5%;
  flex-shrink: 0;
}

.concept-texture-text {
  font-family: var(--font-mincho);
  font-size: clamp(18px, 4.95vw, 38px);
  color: var(--text-main);
  letter-spacing: 0.04em;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}

.concept-texture-text span {
  display: inline-block;
  width: fit-content;
  border-bottom: 1px solid var(--secondary-main);
  padding-bottom: clamp(4px, 1.04vw, 8px);
  margin-bottom: clamp(8px, 2.08vw, 16px);
  line-height: 1.4;
}

.concept-texture-text span:last-child {
  margin-bottom: 0;
}

.concept-image {
  border-radius: var(--radius-md);
  overflow: hidden;
}

.concept-image img {
  width: 100%;
  height: auto;
}


/* ===================================================
   FEATURE / BEFORE–AFTER + POINT CARDS
=================================================== */
.section-feature {
  margin-top: -80px;
  position: relative;
  padding: clamp(120px, 18.2vw, 140px) 0 clamp(140px, 25vw, 192px);
  overflow: hidden;
  background-image: url('../../images/BG/FeatureBG.jpg');
  background-size: cover;
  background-position: center top;
  background-repeat: no-repeat;
}

.section-feature::before {
  content: '';
  position: absolute;
  inset: 0;
  background-color: rgba(255, 255, 255, 0.6);
  pointer-events: none;
}

/* img タグは非表示（CSS背景に切り替え済み） */
.feature-bg-wrap {
  display: none;
}

.feature-inner {
  position: relative;
  z-index: 1;
  padding: 0 var(--side-padding);
  max-width: var(--content-max);
  margin: 0 auto;
}

.feature-sarani {
  font-family: var(--font-mincho);
  font-size: clamp(14px, 3.65vw, 28px);
  color: var(--text-sub);
  letter-spacing: 0.1em;
  text-align: center;
  margin-bottom: clamp(8px, 2.08vw, 16px);
}

.feature-subtitle {
  font-family: var(--font-mincho);
  font-size: clamp(26px, 7.3vw, 56px);
  font-weight: 500;
  color: var(--text-main);
  letter-spacing: 0.06em;
  text-align: center;
  margin-bottom: clamp(16px, 4.17vw, 32px);
  line-height: 1.0;
}

.feature-nashi-wrap {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(4px, 1.04vw, 8px);
  margin-bottom: clamp(64px, 18.2vw, 140px);
}

.feature-nashi-tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: #fff;
  border: 1px solid var(--secondary-main);
  font-family: var(--font-mincho);
  font-size: clamp(22px, 6.25vw, 48px);
  color: var(--text-accent);
  letter-spacing: 0.06em;
  padding: clamp(12px, 3.13vw, 24px) clamp(12px, 3.13vw, 24px) clamp(10px, 2.6vw, 20px) clamp(20px, 5.21vw, 40px);
  white-space: nowrap;
  line-height: 1;
}

.feature-nashi-tag:first-child {
  border-radius: 64px 0 0 64px;
}

.feature-nashi-tag:nth-child(2) {
  border-radius: 0 64px 64px 0;
  padding: clamp(12px, 3.13vw, 24px) clamp(20px, 5.21vw, 40px) clamp(10px, 2.6vw, 20px) clamp(12px, 3.13vw, 24px);
}

.feature-nashi-text {
  position: absolute;
  right: -2.34vw;
  bottom: -104%;
  width: clamp(130px, 32.3vw, 248px);
  height: clamp(70px, 18.75vw, 144px);
  background-image: url('../../images/feature-heading-decoration.svg');
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  font-size: 0;
}

.feature-hand-img {
  position: relative;
  width: 654px;
  max-width: 100%;
  margin: 0 auto clamp(40px, 10.25vw, 80px);
  padding: clamp(8px, 2.08vw, 16px);
}

.feature-hand-img::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(var(--secondary-main), var(--secondary-main)) top    left  / clamp(60px, 15.63vw, 120px) 1px   no-repeat,
    linear-gradient(var(--secondary-main), var(--secondary-main)) top    left  / 1px clamp(60px, 15.63vw, 120px) no-repeat,
    linear-gradient(var(--secondary-main), var(--secondary-main)) bottom right / clamp(60px, 15.63vw, 120px) 1px   no-repeat,
    linear-gradient(var(--secondary-main), var(--secondary-main)) bottom right / 1px clamp(60px, 15.63vw, 120px) no-repeat;
}

.feature-hand-img img {
  width: 100%;
  height: auto;
  display: block;
}

/* before / after 2col */
.feature-comparison {
  position: relative;
  display: flex;
  align-items: stretch;
}

.feature-col {
  display: flex;
  flex-direction: column;
  border-radius: 12px;
  overflow: hidden;
  height: clamp(320px, 83vw, 640px);
}

.feature-col:first-child {
  flex: 1;
}

.feature-col:last-child {
  width: clamp(160px, 43vw, 330px);
  flex-shrink: 0;
  margin-left: -16px;
  position: relative;
  z-index: 2;
}

.feature-col-label {
  font-family: var(--font-en-sans);
  font-size: clamp(16px, 3.65vw, 28px);
  letter-spacing: 0.04em;
  text-align: center;
  text-transform: uppercase;
  padding: clamp(8px, 1.56vw, 12px) 0;
  color: #fff;
  flex-shrink: 0;
  line-height: initial;
}

.feature-col-label--before {
  background-color: rgba(200, 158, 146, 0.6);
}

.feature-col-label--after {
  background-color: var(--primary-main);
}

.feature-col-img {
  flex: 1;
  overflow: hidden;
}

.feature-col-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* point cards */
.feature-points {
  display: flex;
  flex-direction: column;
  gap: clamp(12px, 3.13vw, 24px);
}

.feature-point-item {
  background-color: #F3E8E2;
  border: 1px solid var(--secondary-supplementary);
  border-radius: clamp(16px, 4.17vw, 32px) 0;
  width: 100%;
}

.feature-point-body {
  display: flex;
  align-items: center;
  gap: clamp(16px, 8.3vw, 64px);
  padding: clamp(16px, 4.17vw, 32px) clamp(20px, 5.2vw, 40px);
}

.feature-point-num {
  font-family: var(--font-en-sans);
  font-size: clamp(10px, 2.08vw, 16px);
  font-weight: 300;
  letter-spacing: 0.2em;
  color: var(--text-main);
  text-align: center;
  flex-shrink: 0;
  line-height: inherit;
}

.feature-point-num span {
  display: block;
  font-size: clamp(26px, 7.3vw, 56px);
  font-weight: 300;
  color: var(--text-main);
  letter-spacing: 0.02em;
  line-height: 1;
}

.feature-point-title {
  font-family: var(--font-gothic);
  font-size: clamp(14px, 3.65vw, 28px);
  color: var(--secondary-main);
  line-height: 1.5;
  letter-spacing: 0.08em;
  margin-bottom: 0;
}

.feature-point-em {
  color: var(--primary-main);
  font-size: clamp(16px, 4.17vw, 32px);
  font-weight: 500;
}

.feature-point-text {
  font-family: var(--font-gothic);
  font-size: clamp(14px, 3.65vw, 28px);
  color: var(--secondary-main);
  line-height: 1.6;
  letter-spacing: 0.04em;
  margin-top: 4px;
}


/* ===================================================
   INGREDIENT APPEAL
=================================================== */
.section-ingredient-appeal {
  padding: var(--section-pt) var(--side-padding) var(--section-pb) 0;
}

.ingredient-appeal-inner {
  padding-right: var(--side-padding);
  padding-top: clamp(64px, 16.7vw, 128px);
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  max-width: var(--content-max);
  margin: 0 auto;
}

.ingredient-appeal-img-wrap {
  flex-shrink: 0;
  width: 48%;
  overflow: hidden;
}

.ingredient-appeal-img-wrap img {
  width: 100%;
  height: auto;
  display: block;
}

.ingredient-appeal-text {
  text-align: right;
  flex: 1;
}

.ingredient-appeal-lead {
  display: inline-block;
  position: relative;
  background-color: #fff;
  border-radius: clamp(4px, 1.04vw, 8px);
  border: 1px solid var(--secondary-main);
  padding: clamp(8px, 2.08vw, 16px) clamp(12px, 3.13vw, 24px);
  font-family: var(--font-mincho);
  font-size: clamp(12px, 3.39vw, 26px);
  letter-spacing: 0.06em;
  color: var(--text-accent);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  margin-bottom: clamp(20px, 5.2vw, 40px);
  line-height: 1.7;
  text-align: left;
}

.ingredient-appeal-lead-sub {
  font-size: clamp(10px, 2.6vw, 20px);
  color: var(--text-sub);
}

.ingredient-appeal-lead::after {
  content: '';
  position: absolute;
  bottom: clamp(-12px, -1.56vw, -6px);
  left: 50%;
  transform: translateX(-50%);
  width: clamp(16px, 4.17vw, 32px);
  height: clamp(8px, 2.08vw, 16px);
  background-color: #fff;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
    z-index: 3;
}

.ingredient-appeal-lead::before {
  content: '';
  position: absolute;
  bottom: clamp(-13.5px, -1.76vw, -6.75px);
  left: 50%;
  transform: translateX(-50%);
  width: clamp(17px, 4.43vw, 34px);
    height: clamp(8px, 2.08vw, 16px);
  background-color: var(--secondary-main);
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  z-index: 2;
}

.ingredient-appeal-copy {
  font-family: var(--font-mincho);
  font-size: clamp(28px, 8.33vw, 64px);
  font-weight: 500;
  color: var(--text-accent);
  letter-spacing: 0.04em;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}

.ingredient-appeal-copy span {
  display: inline-block;
  width: fit-content;
  border-bottom: 1px solid var(--secondary-main);
  padding-bottom: clamp(4px, 1.04vw, 8px);
  margin-bottom: clamp(4px, 1.04vw, 8px);
  line-height: 1.4;
}

.ingredient-appeal-copy span:last-child {
  margin-bottom: 0;
}

.ingredient-appeal-em {
  color: var(--primary-main);
  font-style: normal;
  font-size: clamp(32px, 9.9vw, 76px);
}


/* ===================================================
   MORNING
=================================================== */
.section-morning {
  position: relative;
  z-index: 1;
  padding: clamp(80px, 22vw, 144px) var(--side-padding) 0;
}

.morning-inner {
  position: relative;
  max-width: var(--content-max);
  margin: 0 auto;
  padding: clamp(40px, 11.4vw, 80px) clamp(20px, 6.25vw, 48px) clamp(20px, 5.2vw, 40px);
  background-color: rgba(255, 255, 255, 0.85);
  border-radius: clamp(16px, 4.17vw, 32px) 0;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
  text-align: center;
}

.morning-badge {
  position: absolute;
  top: clamp(-64px, -8.3vw, -32px);
  left: 50%;
  transform: translateX(-50%);
  width: clamp(100px, 23.4vw, 180px);
  height: clamp(100px, 23.4vw, 180px);
  border-radius: 50%;
  background-color: #fff;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-mincho);
  font-size: clamp(18px, 4.69vw, 36px);
  letter-spacing: 0.04em;
  font-weight: 600;
  color: var(--text-main);
}

.morning-quote {
  margin: 0 auto;
  width: fit-content;
  position: relative;
  display: block;
  background-color: var(--primary-main);
  color: #fff;
  font-family: var(--font-gothic);
  font-size: clamp(18px, 4.69vw, 36px);
  line-height: 1.3;
  letter-spacing: 0.08em;
  text-align: center;
  padding: clamp(4px, 1.04vw, 8px) clamp(8px, 2.08vw, 16px);
  margin-bottom: clamp(12px, 3.13vw, 24px);
}

.morning-quote::before {
  content: '';
  position: absolute;
  top: clamp(-12px, -1.56vw, -6px);
  left: clamp(-18px, -2.34vw, -9px);
  width: clamp(16px, 4.17vw, 32px);
  height: clamp(12px, 3.13vw, 24px);
  background-image: url('../../images/Icon/icon_double-quotes.svg');
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

.morning-quote::after {
  content: '';
  position: absolute;
  bottom: clamp(-12px, -1.56vw, -6px);
  right: clamp(-18px, -2.34vw, -9px);
  width: clamp(16px, 4.17vw, 32px);
  height: clamp(12px, 3.13vw, 24px);
  background-image: url('../../images/Icon/icon_double-quotes.svg');
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  transform: rotate(180deg);
}

.morning-title {
  margin-top: clamp(20px, 5.2vw, 40px);
  font-family: var(--font-mincho);
  font-size: clamp(26px, 7.3vw, 56px);
  font-weight: 600;
  color: var(--text-main);
  letter-spacing: 0.1em;
  line-height: 1.4;
}

.morning-title-em {
  font-size: clamp(32px, 9.9vw, 76px);
}

.morning-dot-char {
  position: relative;
  display: inline-block;
}

.morning-dot-char::before {
  content: '';
  position: absolute;
  top: -2px;
  left: 50%;
  transform: translateX(-50%);
  width: clamp(4px, 1.04vw, 8px);
  height: clamp(4px, 1.04vw, 8px);
  border-radius: 50%;
  background-color: var(--primary-main);
}


/* ===================================================
   CTA (共通)
=================================================== */
.section-cta {
  margin-top: -64px;
  padding: clamp(70px, 18.23vw, 140px) var(--side-padding) var(--section-pb);
  background: linear-gradient(
    135deg,
    #F3E8E2 0%,
    #C79E92 25%,
    rgba(199, 158, 146, 0.8) 50%,
    #F1E4DE 75%,
    #C79E92 100%
  );
  border-radius: clamp(32px, 8.33vw, 64px);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
  position: relative;
  z-index: 3;
}

.cta-inner {
  max-width: var(--content-max);
  margin: 0 auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(20px, 5.21vw, 40px);
  position: relative;
}

.cta-product-label {
  position: absolute;
  top: clamp(-60px, -7.81vw, -30px);
  left: 50%;
  transform: translateX(-50%);
  background-color: #6F514B;
  color: #fff;
  padding: clamp(8px, 2.08vw, 16px) clamp(20px, 5.21vw, 40px);
  border-radius: clamp(8px, 2.08vw, 16px) 0;
  text-align: center;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
  white-space: nowrap;
  display: flex;
  flex-direction: column;
  gap: clamp(2px, 0.52vw, 4px);
  z-index: 2;
}

.cta-product-label-ja {
  font-family: var(--font-gothic);
  font-size: clamp(12px, 2.86vw, 22px);
  font-weight: 500;
  letter-spacing: 0.08em;
}

.cta-product-label-en {
  font-family: var(--font-en-serif);
  font-size: clamp(20px, 5.47vw, 42px);
  font-weight: 400;
  letter-spacing: 0.04em;
  line-height: 1.2;
}

.cta-set-card {
  width: 100%;
  background-color: #fff;
  border-radius: clamp(8px, 2.08vw, 16px);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
  padding: clamp(50px, 13vw, 100px) clamp(8px, 3.13vw, 24px) clamp(40px, 8.3vw, 64px);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
}

.cta-set-regular {
  margin-top: clamp(16px, 4.17vw, 32px);
  text-align: center;
  font-family: var(--font-gothic);
  font-size: clamp(13px, 3.39vw, 26px);
  font-weight: 400;
  color: var(--text-sub);
  letter-spacing: 0.04em;
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: clamp(4px, 1.04vw, 8px);
}

.cta-set-regular-price {
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
  color: var(--text-main);
}

.cta-numunit-wrap {
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
}

.cta-set-regular-num {
  position: relative;
  display: inline-block;
  font-family: var(--font-number);
  font-size: clamp(18px, 4.69vw, 36px);
  font-weight: 500;
}

.cta-set-regular-num::after {
  content: '';
  position: absolute;
  top: 50%;
  left: -2px;
  right: -2px;
  height: 2px;
  background-color: var(--primary-main);
  transform: rotate(-10deg);
  transform-origin: center;
}

.cta-set-regular-unit {
  font-size: clamp(12px, 3.13vw, 24px);
  font-weight: 400;
}

.cta-set-badge {
  margin-top: clamp(32px, 8.3vw, 64px);
  background-color: var(--primary-main);
  color: #fff;
  font-family: var(--font-gothic);
  font-size: clamp(18px, 4.69vw, 36px);
  font-weight: 500;
  letter-spacing: 0.08em;
  padding: 0 clamp(24px, 10.4vw, 80px);
  border-radius: clamp(8px, 2.08vw, 16px) 0;
  text-align: center;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
  white-space: nowrap;
}

/* ── cta-set-images ─────────────────────── */
.cta-set-images {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(6px, 1.56vw, 12px);
  width: 100%;
}

.cta-set-img-item {
  position: relative;
  flex: 1;
  overflow: hidden;
}

.cta-set-img-item img {
  width: 100%;
  height: auto;
  display: block;
}

.cta-set-capacity {
  position: absolute;
  bottom: clamp(4px, 1.04vw, 8px);
  left: 0;
  right: 0;
  text-align: center;
  font-family: var(--font-gothic);
  font-size: clamp(10px, 2.6vw, 20px);
  color: var(--text-sub);
  letter-spacing: 0.04em;
}

.cta-set-plus {
  flex-shrink: 0;
  width: clamp(44px, 10.4vw, 80px);
  height: clamp(44px, 10.4vw, 80px);
  border-radius: 50%;
  background-color: #F3E8E2;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
}

.cta-set-plus img {
  width: clamp(18px, 4.17vw, 32px);
  height: clamp(18px, 4.17vw, 32px);
}

.cta-product-img {
  width: 100%;
  max-width: 300px;
  margin: 0 auto 28px;
  border-radius: var(--radius-md);
  overflow: hidden;
}

.cta-product-img img {
  width: 100%;
  height: auto;
}

.cta-body {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}

.cta-name {
  font-family: var(--font-mincho);
  font-size: 15px;
  letter-spacing: 0.12em;
  color: var(--text-sub);
}

/* price block */
.cta-price-wrap {
  margin-top: clamp(8px, 2.08vw, 16px);
  position: relative;
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 4px;
  line-height: 1;
  width: 100%;
  padding-left: clamp(80px, 15.6vw, 120px);
}

.cta-off-badge {
  position: absolute;
  left: clamp(-24px, -3.13vw, -12px);
  top: 50%;
  transform: translateY(-50%);
  background-color: #6F514B;
  color: #fff;
  padding: clamp(8px, 1.56vw, 12px) clamp(24px, 5.2vw, 40px) clamp(8px, 1.56vw, 12px) 16px;
  clip-path: polygon(0 0, calc(100% - min(34px, 4.43vw)) 0, 100% 50%, calc(100% - min(34px, 4.43vw)) 100%, 0 100%);
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  line-height: 1.1;
  min-width: clamp(90px, 15.6vw, 120px);
}

.cta-off-top {
  display: flex;
  align-items: baseline;
}

.cta-off-num {
  font-family: var(--font-number);
  font-size: clamp(24px, 7.03vw, 54px);
  font-weight: 500;
  letter-spacing: -0.02em;
}

.cta-off-pct {
  font-family: var(--font-en-sans);
  font-size: clamp(18px, 4.69vw, 36px);
  font-weight: 400;
}

.cta-off-text {
  font-family: var(--font-en-sans);
  font-size: clamp(18px, 4.69vw, 36px);
  font-weight: 400;
  letter-spacing: 0.04em;
}

.cta-price-num {
  font-family: var(--font-number);
  font-size: clamp(52px, 16.15vw, 124px);
  font-weight: 500;
  color: var(--primary-main);
  line-height: 1;
}

.cta-price-unit {
  font-family: var(--font-gothic);
  font-size: clamp(24px, 6.77vw, 52px);
  font-weight: 500;
  color: var(--primary-main);
}

.cta-price-tax {
  font-size: clamp(12px, 3.13vw, 24px);
  font-weight: 400;
  color: var(--text-sub);
  font-family: var(--font-gothic);
  letter-spacing: 0.06em;
}

.cta-set-regular .cta-price-tax {
  font-size: clamp(8px, 2.34vw, 18px);
  letter-spacing: 0.06em;
}

/* ── cta-single-card ────────────────────── */
.cta-single-card {
  width: 100%;
  background: linear-gradient(to bottom, #E5AAA6, #F3E8E2);
  border-radius: clamp(8px, 2.08vw, 16px);
  padding: clamp(12px, 3.13vw, 24px);
  display: flex;
  flex-direction: column;
  gap: 20px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
}

.cta-single-inner {
  position: relative;
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 0));
  border-radius: clamp(8px, 2.08vw, 16px);
  padding: clamp(12px, 3.13vw, 24px) clamp(12px, 3.13vw, 24px) clamp(16px, 4.17vw, 32px) clamp(12px, 3.13vw, 24px);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.cta-single-img {
  position: absolute;
  top: 0;
  right: 7%;
  width: clamp(110px, 26vw, 200px);
  height: auto;
  display: block;
}

.cta-single-label {
  margin-top: 0;
  font-family: var(--font-mincho);
  font-size: clamp(20px, 4.69vw, 36px);
  font-weight: 600;
  color: var(--text-main);
  letter-spacing: 0.06em;
  position: relative;
  z-index: 1;
  text-align: left;
}

.cta-single-regular {
  margin-top: 8px;
  font-family: var(--font-gothic);
  font-size: clamp(12px, 3vw, 23px);
  font-weight: 400;
  color: var(--text-sub);
  position: relative;
  z-index: 1;
  display: flex;
  align-items: baseline;
  gap: 8px;
}

.cta-single-reg-num {
  position: relative;
  display: inline-block;
  font-family: var(--font-number);
  font-size: clamp(16px, 4.04vw, 31px);
  font-weight: 500;
  color: var(--text-main);
}

.cta-single-reg-num::after {
  content: '';
  position: absolute;
  top: 50%;
  left: -2px;
  right: -2px;
  height: 2px;
  background-color: var(--primary-main);
  transform: rotate(-10deg);
  transform-origin: center;
}

.cta-single-reg-unit {
  font-size: clamp(11px, 2.73vw, 21px);
  font-weight: 400;
  color: var(--text-accent);
}

.cta-single-tax {
  font-size: clamp(11px, 2.86vw, 22px);
  font-weight: 400;
  color: var(--text-sub);
  font-family: var(--font-gothic);
  letter-spacing: 0.06em;
}

.cta-single-tax--sm {
  font-size: 15px;
  letter-spacing: 0.06em;
}

.cta-single-price {
  margin-top: 8px;
  display: flex;
  align-items: baseline;
  gap: 8px;
  position: relative;
  z-index: 1;
}

.cta-single-price-num {
  font-family: var(--font-number);
  font-size: clamp(24px, 7.03vw, 54px);
  font-weight: 500;
  color: var(--text-main);
  line-height: 1;
}

.cta-single-price-unit {
  font-family: var(--font-gothic);
  font-size: clamp(18px, 4.43vw, 34px);
  font-weight: 400;
  color: var(--text-main);
}

/* button */
.cta-btn-group {
  display: flex;
  gap: clamp(8px, 2.1vw, 16px);
  width: 100%;
}

.cta-set-card .cta-btn-group {
  margin-top: clamp(32px, 8.3vw, 64px);
}

.cta-single-card .cta-btn-group {
  margin-top: clamp(20px, 5.2vw, 40px);
}

.cta-btn {
  flex: 1;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  padding: clamp(16px, 5.2vw, 40px) clamp(12px, 3.13vw, 24px);
  background: linear-gradient(to bottom, #A45661, #D46F7D);
  color: #fff;
  border-radius: var(--radius-full);
  transition: opacity 0.2s ease, transform 0.15s ease;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.6);
}

.cta-btn:hover {
  opacity: 0.85;
  transform: translateY(-2px);
}

.cta-btn-label {
  font-family: var(--font-gothic);
  font-size: clamp(14px, 3.13vw, 24px);
  font-weight: 500;
  letter-spacing: 0.06em;
  text-align: left;
  flex: 1;
}

.cta-btn-brand {
  font-family: var(--font-en-sans);
  font-size: clamp(16px, 3.9vw, 30px);
  font-weight: 600;
  display: inline;
}

.cta-btn-icon {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background-color: #fff;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
}

.cta-btn-icon img {
  width: 8px;
  filter: none;
}



/* feature checkmarks */
.cta-features {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px 20px;
  width: 100%;
  max-width: 340px;
}

.cta-features li {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: var(--text-sub);
  letter-spacing: 0.04em;
}

.cta-features li img {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  filter: invert(52%) sepia(28%) saturate(700%) hue-rotate(300deg) brightness(95%);
}


/* ===================================================
   FEATURE SUMMARY
=================================================== */
.section-feature-summary {
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.6)),
    url('../../images/BG/SectionPointBG.jpg');
  background-size: 103% 105%;
  background-position: center top;
  background-repeat: no-repeat;
  padding: clamp(104px, 18.75vw, 144px) var(--side-padding) clamp(50px, 13.02vw, 100px);
  margin-top: -64px;
  position: relative;
}

.section-feature-summary::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(
    to bottom,
    rgba(243, 232, 226, 0)    0%,
    rgba(243, 232, 226, 0.25) 25%,
    rgba(243, 232, 226, 0.55) 50%,
    rgba(243, 232, 226, 1)    75%,
    rgba(243, 232, 226, 1)    100%
  );
  pointer-events: none;
  z-index: 0;
}

.feature-summary-inner {
  max-width: var(--content-max);
  margin: 0 auto;
  text-align: center;
}

.feature-summary-lead {
  font-family: var(--font-mincho);
  font-size: clamp(14px, 3.65vw, 28px);
  font-weight: 400;
  color: var(--text-sub);
  letter-spacing: 0.12em;
  margin-bottom: clamp(12px, 3.13vw, 24px);
  line-height: 1;
}

.feature-summary-tags {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(4px, 1.04vw, 8px);
}

.feature-summary-tags-row {
  display: flex;
  gap: clamp(4px, 1.04vw, 8px);
  justify-content: center;
}

.feature-summary-tag {
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-mincho);
  font-size: clamp(28px, 8.33vw, 64px);
  font-weight: 500;
  color: var(--text-main);
  letter-spacing: 0.08em;
  border: 1px solid #6E514B;
  padding: clamp(8px, 2.08vw, 16px) clamp(16px, 4.17vw, 32px);
  background-color: #fff;
  width: fit-content;
  height: fit-content;
  line-height: 1;
}

.feature-summary-img {
  margin-top: 24px;
  width: 100%;
}

.feature-summary-img img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
}

.feature-summary-pills {
  list-style: none;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: clamp(8px, 2.08vw, 16px);
  width: 100%;
  margin-top: clamp(-50px, -6.51vw, -25px);
  padding-bottom: clamp(30px, 7.81vw, 60px);
  position: relative;
  z-index: 1;
}

.feature-summary-pill {
  width: clamp(90px, 27vw, 210px);
  height: clamp(90px, 27vw, 210px);
  border-radius: 50%;
  background: linear-gradient(135deg, #553F3A 30%, #C79E92);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
  color: #fff;
  font-family: var(--font-mincho);
  font-size: clamp(12px, 3.13vw, 24px);
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.04em;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.pill-text {
  display: block;
  text-align: center;
  line-height: 1.6;
}

.feature-summary-pill em {
  font-size: clamp(16px, 4.17vw, 32px);
  font-style: normal;
  font-weight: 600;
}

.feature-summary-pill:nth-child(2) {
  transform: translateY(clamp(50px, 12.72vw, 100px));
}


/* ===================================================
   7 POINTS
=================================================== */
.section-7points {
  background-color: var(--background);
}

/* section header */
.points-header {
  text-align: center;
  padding: clamp(40px, 10.4vw, 80px) var(--side-padding) clamp(32px, 8.3vw, 64px);
  background-color: var(--background);
}

.points-header-en {
  display: inline-block;
  position: relative;
  background-color: #F3E8E2;
  border-radius: clamp(4px, 1.04vw, 8px);
  border: 1px solid var(--secondary-main);
  padding: clamp(6px, 1.56vw, 12px) clamp(16px, 4.17vw, 32px);
  font-family: var(--font-en-serif);
  font-size: clamp(16px, 4.17vw, 32px);
  font-weight: 400;
  letter-spacing: 0.12em;
  color: var(--text-accent);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.points-header-no {
  font-family: var(--font-mincho);
  font-size: clamp(14px, 3.65vw, 28px);
  font-weight: 500;
}

.points-header-en::before {
  content: '';
  position: absolute;
  bottom: clamp(-13.5px, -1.76vw, -6.75px);
  left: 50%;
  transform: translateX(-50%);
  width: clamp(17px, 4.43vw, 34px);
  height: clamp(8.5px, 2.21vw, 17px);
  background-color: var(--secondary-main);
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}

.points-header-en::after {
  content: '';
  position: absolute;
  bottom: clamp(-12px, -1.56vw, -6px);
  left: 50%;
  transform: translateX(-50%);
  width: clamp(16px, 4.17vw, 32px);
  height: clamp(8px, 2.08vw, 16px);
  background-color: #F3E8E2;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}

.points-header-title {
  font-family: var(--font-mincho);
  font-size: clamp(36px, 8.85vw, 68px);
  font-weight: 500;
  color: var(--text-accent);
  letter-spacing: 0.08em;
  line-height: 1.2;
  text-align: center;
}

.points-title-num {
  font-family: var(--font-en-serif);
  font-size: clamp(80px, 19.5vw, 150px);
  font-weight: 700;
  font-style: italic;
  color: var(--primary-main);
  line-height: 1;
  vertical-align: baseline;
  letter-spacing: -0.02em;
}

.points-header-underline {
  display: block;
  margin: 8px auto 0;
  width: 100%;
  max-width: 84%;
  height: auto;
}

/* individual point blocks */
.points-block {
  padding: var(--space-xl) var(--side-padding);
}

/* ---- POINT 01 card ---- */
.points-block--01 {
  padding: 0;
  margin: 0 var(--side-padding);
  position: relative;
  border-radius: var(--radius-lg);
}

.points-block--01-img {
  width: 100%;
  overflow: hidden;
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
}

.points-block--01-img img {
  width: 100%;
  height: 100%;
  object-position: center top;
  display: block;
}

.points-block--01-content {
  background-color: #fff;
  position: relative;
  padding: clamp(64px, 16.7vw, 128px) var(--side-padding) clamp(32px, 8.3vw, 64px);
  text-align: center;
}

/* POINT 01 丸バッジ（画像・コンテンツの境界に重ねる） */
/* バッジ共通スタイル（01・02・03 共通） */
.points-block--01 .points-block-label,
.points-block--02 .points-block-label,
.points-block--03 .points-block-label {
  position: absolute;
  width: clamp(100px, 26vw, 200px);
  height: clamp(100px, 26vw, 200px);
  border-radius: 50%;
  background-image: url('../../images/PointItemBG.png');
  background-size: 210% 148%;
  background-position: center;
  background-repeat: no-repeat;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: none;
  z-index: 2;
}

/* 01: 中央寄せ */
.points-block--01 .points-block-label {
  top: clamp(-120px, -15.6vw, -60px);
  left: 50%;
  transform: translateX(-50%);
}

/* POINT badge */
.points-block-badge {
  font-family: var(--font-en-serif);
  font-size: clamp(12px, 3.13vw, 24px);
  font-weight: 400;
  letter-spacing: 0.08em;
  color: var(--text-accent);
  text-transform: uppercase;
  line-height: 1;
}

/* lead-small (e.g. 熱を利用して) */
.points-block-lead-small {
  font-family: var(--font-mincho);
  line-height: 1;
  font-size: clamp(24px, 6.25vw, 48px);
  font-weight: 400;
  color: var(--text-main);
  letter-spacing: 0.08em;
  margin-bottom: clamp(12px, 3.13vw, 24px);
}

/* title for point 01 */
.points-block-title--01 {
  font-family: var(--font-mincho);
  font-size: clamp(40px, 10.4vw, 80px);
  font-weight: 500;
  color: var(--text-main);
  letter-spacing: -0.1em;
  line-height: 1;
  display: inline-block;
  background-color: #fff;
  border: 1px solid var(--secondary-main);
  padding: clamp(4px, 1.04vw, 8px) clamp(16px, 4.17vw, 32px);
  margin-bottom: clamp(32px, 8.3vw, 64px);
  margin-top: clamp(8px, 2.08vw, 16px);
}

/* ドット付き文字（morning-dot-char 同ルール） */
.points-title-dot-char {
  position: relative;
  display: inline-block;
}

.points-title-dot-char::before {
  content: '';
  position: absolute;
  top: clamp(-24px, -3.13vw, -12px);
  left: 50%;
  transform: translateX(-50%);
  width: clamp(4px, 1.04vw, 8px);
  height: clamp(4px, 1.04vw, 8px);
  border-radius: 50%;
  background-color: var(--primary-main);
}

/* quote (base) */
.points-block-quote {
  font-family: var(--font-mincho);
  font-size: 18px;
  font-weight: 400;
  color: var(--text-sub);
  letter-spacing: 0.06em;
  line-height: 1.9;
  padding-left: 16px;
}

/* points-block--01 専用 引用帯 */
.points-block--01 .points-block-quote {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(6px, 1.56vw, 12px);
  width: fit-content;
  margin: 0 auto;
  background-color: transparent;
  padding: 8px 0;
}

/* 各行に個別のピンク帯 */
.points-block--01 .points-block-quote span {
  display: block;
  background-color: var(--primary-main);
  color: #fff;
  font-family: var(--font-gothic);
  font-size: clamp(14px, 3.65vw, 28px);
  line-height: 1.4;
  letter-spacing: 0.08em;
  text-align: center;
  padding: clamp(4px, 1.04vw, 8px) clamp(8px, 2.08vw, 16px);
}

/* 左上 引用符 */
.points-block--01 .points-block-quote::before {
  content: '';
  position: absolute;
  top: clamp(-4px, -0.52vw, -2px);
  left: clamp(-18px, -2.34vw, -9px);
  width: clamp(16px, 4.17vw, 32px);
  height: clamp(12px, 3.13vw, 24px);
  background-image: url('../../images/Icon/icon_double-quotes.svg');
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

/* 右下 引用符（180°回転） */
.points-block--01 .points-block-quote::after {
  content: '';
  position: absolute;
  bottom: clamp(-4px, -0.52vw, -2px);
  right: clamp(29px, 7.55vw, 58px);
  width: clamp(16px, 4.17vw, 32px);
  height: clamp(12px, 3.13vw, 24px);
  background-image: url('../../images/Icon/icon_double-quotes.svg');
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  transform: rotate(180deg);
}

/* ---- POINT 02 card（points-block--01 と同一ルール） ---- */
.points-block--02 {
  padding: 0;
  margin: clamp(40px, 8.3vw, 64px) var(--side-padding) clamp(100px, 25.5vw, 196px);
  position: relative;
  border-radius: var(--radius-lg);
}

.points-block--02-img {
  width: 100%;
  overflow: hidden;
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
}

.points-block--02-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
}

.points-block--02-content {
  background-color: #fff;
  position: relative;
  padding: clamp(64px, 16.7vw, 128px) clamp(12px, 3.13vw, 24px) clamp(32px, 8.3vw, 64px);
  text-align: center;
}

/* 02: 左寄せ */
.points-block--02 .points-block-label {
  top: clamp(-120px, -15.6vw, -60px);
  left: clamp(16px, 4.2vw, 32px);
  transform: none;
}

.points-block--03 {
  position: relative;
  padding-top: clamp(80px, 20.8vw, 160px);
  padding-bottom: clamp(140px, 29.2vw, 224px);
  background-image: url('../../images/BG/FragranceBG.jpg');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

/* 03: 中央上部 */
.points-block--03 .points-block-label {
  top: clamp(-100px, -13vw, -50px);
  left: 50%;
  transform: translateX(-50%);
}

/* block label row (number + title) */
.points-block-label {
  display: flex;
  align-items: baseline;
  gap: 16px;
  margin-bottom: 20px;
  padding-bottom: 16px;
  border-bottom: 1px solid rgba(111, 81, 75, 0.15);
}

.points-block-num {
  font-family: var(--font-en-serif);
  font-size: clamp(20px, 4.95vw, 38px);
  font-weight: 400;
  color: var(--text-accent);
  line-height: 1;
  letter-spacing: 0.02em;
}

/* バッジ内の番号（01・02・03 共通） */
.points-block--01 .points-block-num,
.points-block--02 .points-block-num,
.points-block--03 .points-block-num {
  font-size: clamp(48px, 11.98vw, 92px);
  line-height: 0.6;
}

.points-block-title {
  font-family: var(--font-mincho);
  font-size: clamp(12px, 2.6vw, 20px);
  font-weight: 600;
  color: var(--text-accent);
  letter-spacing: 0.08em;
  line-height: 1.45;
}

/* points-block--02 / 03 大タイトル */
.points-block-title--large {
  font-family: var(--font-mincho);
  font-size: clamp(40px, 9.9vw, 76px);
  font-weight: 600;
  color: var(--text-main);
  letter-spacing: 0.06em;
  line-height: 1.25;
  text-align: center;
  margin-bottom: clamp(32px, 8.3vw, 64px);
}

.points-block--03 .points-block-title--large {
  margin-bottom: clamp(64px, 15.6vw, 120px);
}

/* 強調文字（ピンク） */
.points-em {
  font-style: normal;
  color: var(--primary-main);
}

.points-block-lead {
  font-family: var(--font-mincho);
  font-size: clamp(40px, 9.9vw, 76px);
  font-weight: 600;
  color: var(--text-main);
  line-height: 1.45;
  letter-spacing: 0.08em;
  text-align: center;
  margin: 0;
  padding: clamp(80px, 20.8vw, 160px) 0 clamp(64px, 16.7vw, 128px);
  background-image: url('../../images/points-block-lead_bg.jpg');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
    width: calc(100% + clamp(12px, 3.13vw, 24px) * 2);
    margin-left: clamp(-24px, -3.13vw, -12px);
    margin-right: clamp(-24px, -3.13vw, -12px);
}

/* ---- hero wrap (point 02) ---- */
.points-block-hero-wrap {
  position: relative;
  width: calc(100% + clamp(12px, 3.13vw, 24px) * 2);
  margin-left: clamp(-24px, -3.13vw, -12px);
  margin-right: clamp(-24px, -3.13vw, -12px);
  margin-top: 0;
  margin-bottom: 0;
  overflow: visible;
}

.points-block-hero-wrap > img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}

.points-block-hero-copy-wrap {
  position: absolute;
  top: clamp(160px, 40vw, 310px);
  right: clamp(-80px, calc(-80px + (768px - 100vw) * 0.3), -40px);
  pointer-events: none;
}

.points-block-hero-product {
  width: clamp(160px, 47vw, 364px);
  height: auto;
  display: block;
}

.points-block-img {
  margin-bottom: 24px;
  border-radius: var(--radius-md);
  overflow: hidden;
}

.points-block-img img {
  width: 100%;
  height: auto;
}

.points-block-text {
  font-size: 14px;
  color: var(--text-sub);
  line-height: 2;
  letter-spacing: 0.05em;
}

/* 保湿・ツヤ成分 帯ラベル */
.points-ingredient-label {
  display: inline-block;
  background-color: #6F514B;
  color: #fff;
  font-family: var(--font-gothic);
  font-size: clamp(14px, 3.39vw, 26px);
  font-weight: 400;
  letter-spacing: 0.06em;
  padding: clamp(4px, 1.04vw, 8px) clamp(24px, 10.4vw, 80px);
  border-radius: clamp(8px, 2.08vw, 16px) 0;
  margin-bottom: clamp(20px, 5.21vw, 40px);
}

.points-ingredients-detail-label {
  width: fit-content;
  margin: 0 auto;
  display: inline-block;
  background-color: #6F514B;
  color: #fff;
  font-family: var(--font-gothic);
  font-size: clamp(14px, 3.39vw, 26px);
  font-weight: 400;
  letter-spacing: 0.06em;
  padding: clamp(4px, 1.04vw, 8px) clamp(24px, 10.4vw, 80px);
  border-radius: clamp(8px, 2.08vw, 16px) 0;
}

/* ---- ingredients (point 02) ---- */
.points-ingredients {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(8px, 2.08vw, 16px);
  margin-bottom: clamp(40px, 10.42vw, 80px);
}

.points-ingredient-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  text-align: center;
}

.points-ingredient-img {
  width: 100%;
  aspect-ratio: 1;
}

.points-ingredient-img img {
  width: 100%;
  height: auto;
  display: block;
  filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.10));
}

.points-ingredient-name {
  font-family: var(--font-mincho);
  font-size: clamp(10px, 2.34vw, 18px);
  font-weight: 500;
  color: var(--text-main);
  letter-spacing: 0.05em;
  line-height: 1.5;
}

/* ---- ingredients detail (point 02) ---- */
.points-ingredients-detail {
  display: flex;
  flex-direction: column;
  gap: clamp(32px, 8.33vw, 64px);
  margin-top: clamp(40px, 10.42vw, 80px);
  text-align: left;
}

.points-block--02-content .points-ingredients-detail {
  text-align: left;
}

.points-ingredient-detail-item {
  display: flex;
  flex-direction: column;
  gap: clamp(16px, 4.17vw, 32px);
}

.points-ingredient-detail-img {
  width: 100%;
  border-radius: var(--radius-lg);
  overflow: hidden;
}

.points-ingredient-detail-img img {
  width: 100%;
  height: auto;
  display: block;
}

.points-ingredient-detail-body {
  margin-left: clamp(16px, 8.3vw, 64px);
  border-left: clamp(1px, 0.26vw, 2px) solid #C79E92;
  padding-left: clamp(12px, 4.17vw, 32px);
  text-align: left;
}

.points-ingredient-detail-name {
  font-family: var(--font-mincho);
  font-size: clamp(16px, 4.17vw, 32px);
  font-weight: 600;
  color: var(--text-main);
  letter-spacing: 0.04em;
  line-height: 1.4;
  margin: 0;
}

.points-ingredient-detail-ruby {
  font-family: var(--font-mincho);
  font-size: clamp(10px, 2.6vw, 20px);
  font-weight: 500;
  color: var(--text-sub);
  letter-spacing: 0.04em;
  display: block;
  margin-top: 4px;
}

.points-ingredient-detail-text {
  font-family: var(--font-gothic);
  font-size: clamp(12px, 3.13vw, 24px);
  font-weight: 400;
  color: var(--text-main);
  letter-spacing: 0.08em;
  line-height: 2.0;
  margin-top: clamp(8px, 2.08vw, 16px);
  margin-bottom: 0;
}

/* ---- fragrances (point 03) ---- */
.points-fragrance-bg {
  margin: 0 calc(var(--side-padding) * -1) 24px;
  overflow: hidden;
}

.points-fragrance-bg img {
  width: 100%;
  height: auto;
  display: block;
}

/* トライアングル配置コンテナ */
.points-fragrances {
  position: relative;
  height: clamp(250px, 65vw, 500px);
  margin-bottom: clamp(48px, 11.7vw, 90px);
}

/* 全アイテム共通 */
.points-fragrance-item {
  text-align: center;
  position: relative;
  z-index: 2;
}

/* 上中央：ジャスミン */
.points-fragrance-item--top {
  position: absolute;
  top: clamp(-50px, -6.5vw, -30px);
  left: 50%;
  transform: translateX(-50%);
}

/* 下2つのラッパー */
.points-fragrance-row {
  position: absolute;
  bottom: clamp(-10px, -1.30vw, -5px);
  left: 0;
  right: 0;
  display: flex;
  justify-content: space-between;
  padding: 0 clamp(16px, 5.2vw, 40px);
  z-index: 2;
}

/* 中央白丸背景 */
.points-fragrance-count {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: clamp(186px, 50vw, 372px);
  height: clamp(186px, 50vw, 372px);
  border-radius: 50%;
  background-color: #fff;
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
  z-index: 1;
  text-align: center;
  margin: 0;
  padding: 0;
}

/* 「3」＋「種の」横並び行 */
.fragrance-count-row {
  padding-bottom: 4px;
  display: flex;
  flex-direction: row;
  align-items: baseline;
  gap: 4px;
}

/* 「3」ピンク */
.fragrance-count-num {
  font-family: var(--font-en-serif);
  font-size: clamp(40px, 10.4vw, 80px);
  font-weight: 400;
  color: var(--primary-main);
  line-height: 1;
}

/* 「種の」ブラウン */
.fragrance-count-unit {
  font-family: var(--font-mincho);
  font-size: clamp(18px, 4.43vw, 34px);
  font-weight: 600;
  color: var(--text-accent);
  letter-spacing: 0.04em;
  line-height: 1;
}

/* 「香り」中央 */
.fragrance-count-text {
  font-family: var(--font-mincho);
  font-size: clamp(18px, 4.43vw, 34px);
  font-weight: 600;
  color: var(--text-accent);
  letter-spacing: 0.04em;
  line-height: 1.4;
  display: block;
  text-align: center;
}

/* 円形画像 */
.points-fragrance-img {
  position: relative;
  width: clamp(120px, 32vw, 248px);
  height: clamp(120px, 32vw, 248px);
  border-radius: 50%;
  overflow: hidden;
  margin-bottom: 0;
}

.points-fragrance-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* 香り名オーバーレイ帯 */
.points-fragrance-name-ja {
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  background-color: rgba(200, 158, 146, 0.8);
  color: #fff;
  font-family: var(--font-gothic);
  font-size: clamp(12px, 3vw, 23px);
  font-weight: 500;
  letter-spacing: 0.04em;
  text-align: center;
  padding: clamp(6px, 1.56vw, 12px) 0;
  margin: 0;
  line-height: 1;
  z-index: 1;
}

.points-fragrance-text {
  padding: var(--space-lg) 0 var(--space-xl);
  font-size: 14px;
  color: var(--text-sub);
  line-height: 2;
  letter-spacing: 0.05em;
}

/* ---- 強すぎないから〜 コピー ---- */
.points-fragrance-copy {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(4px, 1.04vw, 8px);
  text-align: center;
  margin: 48px 0 0;
  padding: 0;
}

.points-fragrance-copy span {
  display: inline-block;
  background-color: #fff;
  color: var(--text-main);
  font-family: var(--font-mincho);
  font-size: clamp(28px, 6.77vw, 52px);
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.4;
  padding: clamp(4px, 1.04vw, 8px) clamp(16px, 5.2vw, 40px);
}

/* ---- point 03 カテゴリラベル ---- */
.points-fragrance-category {
  display: block;
  width: fit-content;
  margin: 0 auto clamp(32px, 8.33vw, 64px);
  background-color: #6F514B;
  color: #fff;
  font-family: var(--font-gothic);
  font-size: clamp(14px, 3.39vw, 26px);
  font-weight: 400;
  letter-spacing: 0.06em;
  padding: clamp(4px, 1.04vw, 8px) clamp(24px, 10.4vw, 80px);
  border-radius: clamp(8px, 2.08vw, 16px) 0;
  text-align: center;
}


