/*
Theme Name: HERBCELL Child
Theme URI: https://ante-salon.com/herbcell/
Description: HERBCELL公式サイト用 SWELL子テーマ。業務用ハーブピーリングブランドのBtoBサイト（ブランド／営業／SEOメディア／症例サイト）。
Author: 株式会社アント
Template: swell
Version: 2.15.1
Text Domain: herbcell-child
*/

/* ==========================================================
   HERBCELL ブランドトークン
   ・アクセントカラーは #4D5729 のみ。ベタ塗りは避け、
     背景には低い不透明度（5% / 8% / 12%）のティントとして使う
   ・ゴールドは廃止（過去バージョンとの互換のため変数だけ残置）
   ========================================================== */
:root {
  --hc-white: #FFFFFF;
  --hc-bg: #FBFAF7;
  --hc-ink: #2B2B26;
  --hc-muted: #83816F;
  --hc-line: rgba(43, 43, 38, 0.10);

  --hc-accent: #4D5729;
  --hc-accent-05: rgba(77, 87, 41, 0.05);
  --hc-accent-08: rgba(77, 87, 41, 0.08);
  --hc-accent-12: rgba(77, 87, 41, 0.12);
  --hc-accent-30: rgba(77, 87, 41, 0.35);

  --hc-gold: #B08D57; /* 使用は最小限。基本は使わない */

  --hc-font-serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --hc-font-sans: 'Noto Sans JP', -apple-system, BlinkMacSystemFont, 'Hiragino Sans', sans-serif;

  --hc-max: 1200px;
}

* {
  box-sizing: border-box;
}

body {
  font-family: var(--hc-font-sans);
  color: var(--hc-ink);
  letter-spacing: 0.02em;
  line-height: 1.95;
  -webkit-font-smoothing: antialiased;
}

.hc-en-serif {
  font-family: var(--hc-font-sans);
  font-weight: 700;
  letter-spacing: 0.03em;
}

/* ==========================================================
   セクション共通設計
   ・背景はフルワイド（calc(50% - 50vw)でSWELLのコンテナ幅を無視）
   ・コンテンツは1200pxで中央寄せ
   ・上下余白はゆったり（最大160px）
   ========================================================== */
.hc-section {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: clamp(88px, 13vw, 200px) 24px;
  background: var(--hc-white);
}
.hc-section--sub {
  background: var(--hc-accent-05);
}
@media (max-width: 380px) {
  .hc-section {
    padding-left: 16px;
    padding-right: 16px;
  }
}
.hc-section__inner {
  max-width: var(--hc-max);
  margin: 0 auto;
}
.hc-section__title {
  font-family: var(--hc-font-sans);
  font-weight: 600;
  font-size: clamp(26px, 3.4vw, 40px);
  line-height: 1.6;
  letter-spacing: 0.05em;
  text-align: center;
  color: var(--hc-ink);
  margin: 0 0 80px;
}
.hc-section__desc {
  text-align: center;
  max-width: 680px;
  margin: -44px auto 80px;
  color: var(--hc-muted);
  line-height: 2.1;
}

/* ==========================================================
   ボタン（Apple / Aesopのような静かなデザイン）
   ・塗りではなく細いボーダー基調
   ・ホバー時だけ変化。装飾は最小限
   ========================================================== */
.hc-cta-group {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  justify-content: center;
  margin-top: 40px;
}
.hc-cta-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 17px 44px;
  border: 1px solid var(--hc-ink);
  background: transparent;
  color: var(--hc-ink);
  text-decoration: none;
  font-size: 13px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  transition: background 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}
.hc-cta-btn:hover {
  background: var(--hc-ink);
  color: var(--hc-white);
}
.hc-cta-btn--primary {
  border-color: var(--hc-accent);
  background: var(--hc-accent);
  color: var(--hc-white);
}
.hc-cta-btn--primary:hover {
  background: transparent;
  color: var(--hc-accent);
  border-color: var(--hc-accent);
}
.hc-cta-btn--outline {
  border-color: var(--hc-line);
  color: var(--hc-ink);
  background: transparent;
}
.hc-cta-btn--outline:hover {
  border-color: var(--hc-ink);
  background: transparent;
}
.hc-cta-btn--line {
  border-color: #06C755;
  color: #06C755;
  background: transparent;
}
.hc-cta-btn--line:hover {
  background: #06C755;
  color: var(--hc-white);
}
.hc-cta-btn__line-icon {
  display: none;
}
.hc-cta-btn--sm {
  padding: 11px 24px;
  font-size: 11px;
}

/* ==========================================================
   症例カードグリッド（フラットデザイン。影ではなく細い線で区切る）
   ========================================================== */
.hc-case-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 40px;
}
.hc-case-card {
  display: block;
  text-decoration: none;
  color: inherit;
  background: var(--hc-white);
  border: 1px solid var(--hc-line);
  transition: border-color 0.3s ease;
}
.hc-case-card:hover {
  border-color: var(--hc-accent-30);
}
.hc-case-card__images {
  display: grid;
  grid-template-columns: 1fr 1fr;
}
.hc-case-card__images img {
  width: 100%;
  height: 200px;
  object-fit: cover;
}
.hc-case-card__meta {
  padding: 24px;
}
.hc-case-card__title {
  font-weight: 600;
  margin: 0 0 12px;
  line-height: 1.7;
}
.hc-case-card__tag {
  display: inline-block;
  font-size: 11px;
  letter-spacing: 0.06em;
  color: var(--hc-accent);
  background: var(--hc-accent-08);
  padding: 4px 12px;
  margin: 0 6px 6px 0;
}
.hc-case-card__days {
  font-size: 12px;
  color: var(--hc-muted);
}
.hc-case-more {
  text-align: center;
  margin-top: 48px;
}

/* 記事内（症例・サロン詳細）の見出し・本文の可読性 */
article.hc-section h1 {
  font-family: var(--hc-font-sans);
  font-weight: 600;
  font-size: clamp(24px, 3.5vw, 34px);
  line-height: 1.7;
  color: var(--hc-ink);
  margin-bottom: 24px;
}
article.hc-section h2 {
  font-family: var(--hc-font-sans);
  font-weight: 600;
  font-size: 21px;
  line-height: 1.7;
  color: var(--hc-ink);
  margin: 64px 0 24px;
  padding-top: 32px;
  border-top: 1px solid var(--hc-line);
}
article.hc-section p,
article.hc-section li {
  line-height: 2;
}
article.hc-section img {
  max-width: 100%;
}
.hc-case-taglist {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 32px;
}
.hc-case-meta-list {
  list-style: none;
  padding: 32px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 12px 32px;
  background: var(--hc-accent-05);
  margin: 32px 0;
}

/* アクセシビリティ：フォーカス時の視認性 */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
.hc-cta-btn:focus-visible {
  outline: 2px solid var(--hc-accent);
  outline-offset: 3px;
}

/* スクロールフェードイン（控えめな演出） */
.hc-fade-in {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
.hc-fade-in.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* レスポンシブ */
@media (max-width: 600px) {
  .hc-section {
    padding: clamp(56px, 14vw, 96px) 20px;
  }
  .hc-section__title {
    margin-bottom: 40px;
  }
}
