/* ==========================================================================
   taste-luxury.css
   イメージテイスト: 3-6. 上品・高級（クラシック・優美・贅沢）
   Google Fonts（Noto Serif JP）を使用するため、HTMLの<head>にfontsリンクが必要。
   ========================================================================== */

:root {
  --color-primary: #58111a;
  --color-primary-dark: #3d0c12;
  --color-accent: #d4af37;
  --color-accent-contrast: #d4af37;

  --color-bg: #fffdf4;
  --color-bg-alt: #f7f0dd;
  --color-text: #362221;
  --color-text-light: #8a7a6d;
  --color-border: #e2d3a8;

  --color-header-bg: #fffdf4;
  --color-footer-bg: #f7f0dd; /* 和風の濃紺フッターとの差別化のため、暗色ではなく明るいアイボリー+金の縁取りに */
  --color-footer-text: #58111a;

  --color-cta-bg: #58111a;
  --color-cta-text: #f7f0dd;

  --font-heading: "Noto Serif JP", serif;
  --font-body: "Noto Serif JP", serif;
  --letter-spacing-heading: 0.15em;

  --radius: 2px;
  --radius-lg: 2px;

  /* 極限まで薄く広がるエレガントな影 */
  --shadow-sm: 0 4px 30px rgba(88, 17, 26, 0.06);
  --shadow-md: 0 8px 40px rgba(88, 17, 26, 0.10);
  --border-style: 1px solid #e2d3a8;
}

body {
  letter-spacing: 0.03em;
  line-height: 2.1;
}

.section__title {
  letter-spacing: var(--letter-spacing-heading);
}

.section__title::after {
  content: "";
  display: block;
  width: 64px;
  height: 3px;
  margin: 16px auto 0;
  border-top: 1px solid var(--color-accent);
  border-bottom: 1px solid var(--color-accent);
}

.feature-card,
.service-card,
.voice-card {
  border: 1px solid var(--color-border);
  box-shadow: var(--shadow-sm);
}

.feature-card__icon {
  background: var(--color-bg-alt);
  color: var(--color-accent);
  border: 1px solid var(--color-accent);
}

/* ボタン：背景ベタ塗りせず細ボーダー＋ホバーで内側フェードイン */
.btn--primary,
.form-submit .btn {
  background: transparent;
  color: var(--color-primary);
  border: 1px solid var(--color-accent);
  position: relative;
  overflow: hidden;
  z-index: 0;
  transition: color 0.35s ease;
}

.btn--primary::before,
.form-submit .btn::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--color-primary);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.35s ease;
  z-index: -1;
}

.btn--primary:hover,
.form-submit .btn:hover {
  color: #fff;
}

.btn--primary:hover::before,
.form-submit .btn:hover::before {
  transform: scaleX(1);
}

.header-cta {
  background: transparent;
  color: var(--color-primary);
  border: 1px solid var(--color-accent);
}

/* MV（写真背景に直接重なるボタン）は透過ボーダー style だと視認性が落ちるため、金の塗りに固定 */
.mv .btn--primary {
  background: var(--color-accent);
  color: var(--color-primary-dark);
  border: none;
}

.mv .btn--primary::before {
  content: none;
}

.mv .btn--primary:hover {
  opacity: 0.88;
  color: var(--color-primary-dark);
}

.site-header {
  border-bottom: 1px solid var(--color-accent);
}

.site-footer {
  border-top: 3px double var(--color-accent);
}

.cta {
  position: relative;
}

.cta::before,
.cta::after {
  content: "";
  display: block;
  height: 1px;
  max-width: 200px;
  margin: 0 auto 24px;
  background: linear-gradient(90deg, transparent, var(--color-accent), transparent);
}
