/*
Theme Name: Cabinet Décadent
Theme URI: https://cabinet-decadent.jp
Author: Cabinet Décadent
Description: 西洋茶器古物商 — テラコッタ×エメラルドグリーン×金のデカダン美学テーマ
Version: 1.1.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 8.0
License: Proprietary
Text Domain: cabinet-decadent
*/

/* ═══════════════════════════════════════════
   DESIGN TOKENS — Display-P3 color space
   sRGBフォールバック → P3広色域の順で定義
   対応ブラウザ: Safari 15+, Chrome 111+
═══════════════════════════════════════════ */
:root {
  /* ── Depth layers（背景・サーフェス） ──
     Base: color(display-p3 0.438 0.171 0.042) — burnt sienna dark
  */
  --void:     #531500;
  --abyss:    #641c00;
  --surface:  #792600;   /* ★ 指定BG色 sRGB近似 */
  --lifted:   #902f00;

  /* P3 overrides for depth — wider gamut screens */
  @supports (color: color(display-p3 0 0 0)) {
    --void:    color(display-p3 0.30 0.10 0.018);
    --abyss:   color(display-p3 0.36 0.13 0.028);
    --surface: color(display-p3 0.438 0.171 0.042);  /* ★ 指定BG色 */
    --lifted:  color(display-p3 0.52  0.21  0.06);
  }

  /* ── Green accent（メインカラー） ──
     Base: color(display-p3 0.427 0.946 0.34) — vivid emerald green
  */
  --green:      #00f532;   /* sRGBフォールバック */
  --green-mid:  #03a121;
  --green-dim:  rgba(0,245,50,0.20);
  --green-glow: rgba(0,245,50,0.07);

  /* ── Gold accent（装飾・ラベル） ── */
  --gold:      #dea900;
  --gold-dim:  #926900;
  --gold-pale: rgba(222,169,0,0.12);
  --gold-glow: rgba(222,169,0,0.05);

  /* ── Rule / border ── */
  --rule:       rgba(0,245,50,0.20);
  --rule-faint: rgba(0,245,50,0.09);

  /* ── Text ── */
  --bone:  #f4e8d4;
  --parch: #cec1ab;
  --fog:   rgba(206,193,171,0.55);

  /* ── Layout ── */
  --header-h: 5rem;
  --max-w:    1400px;
  --gutter:   4rem;
}

/* P3広色域対応ブラウザ向けグリーンオーバーライド */
@supports (color: color(display-p3 0 0 0)) {
  :root {
    --green:      color(display-p3 0.427 0.946 0.34);   /* ★ 指定Main色 */
    --green-mid:  color(display-p3 0.28  0.62  0.22);
    --green-dim:  color(display-p3 0.427 0.946 0.34 / 0.20);
    --green-glow: color(display-p3 0.427 0.946 0.34 / 0.07);
    --rule:       color(display-p3 0.427 0.946 0.34 / 0.20);
    --rule-faint: color(display-p3 0.427 0.946 0.34 / 0.09);
    --gold:       color(display-p3 0.84  0.67  0.20);
    --gold-dim:   color(display-p3 0.55  0.42  0.10);
  }
}

/* ═══════════════════════════════════════════
   RESET
═══════════════════════════════════════════ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; }

body {
  background: var(--void);
  color: var(--parch);
  font-family: 'Cormorant Garamond', serif;
  font-weight: 300;
  overflow-x: hidden;
  cursor: none;
}

img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button { cursor: none; font: inherit; }
ul, ol { list-style: none; }

/* ═══════════════════════════════════════════
   GRAIN OVERLAY
═══════════════════════════════════════════ */
body::before {
  content: '';
  position: fixed; inset: 0; z-index: 9000;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E");
  mix-blend-mode: overlay;
  opacity: 0.6;
}

/* ═══════════════════════════════════════════
   SCROLLBAR
═══════════════════════════════════════════ */
::-webkit-scrollbar { width: 2px; }
::-webkit-scrollbar-track { background: var(--void); }
::-webkit-scrollbar-thumb { background: var(--green-mid); }

/* ═══════════════════════════════════════════
   CUSTOM CURSOR
═══════════════════════════════════════════ */
#cd-cursor {
  position: fixed; top: 0; left: 0;
  pointer-events: none; z-index: 99999;
}
.cur-ring {
  position: absolute; top: -22px; left: -22px;
  width: 44px; height: 44px; border-radius: 50%;
  border: 1px solid transparent;
  border-top-color: var(--green);
  border-right-color: var(--green-mid);
  animation: cur-spin 4s linear infinite;
  transition: width .4s, height .4s, top .4s, left .4s;
}
.cur-ring-2 {
  position: absolute; top: -14px; left: -14px;
  width: 28px; height: 28px; border-radius: 50%;
  border: 1px solid rgba(0,245,50,0.18);
  border-bottom-color: var(--gold-dim);
  animation: cur-spin 6s linear infinite reverse;
}
.cur-ticks {
  position: absolute; top: -22px; left: -22px;
  width: 44px; height: 44px;
  animation: cur-spin 8s linear infinite;
}
.cur-ticks::before,.cur-ticks::after,
.cur-ticks span::before,.cur-ticks span::after {
  content:''; position:absolute; background:var(--gold); opacity:.45;
}
.cur-ticks::before  { top:0;    left:50%; transform:translateX(-50%); width:1px; height:5px; }
.cur-ticks::after   { bottom:0; left:50%; transform:translateX(-50%); width:1px; height:5px; }
.cur-ticks span::before { left:0;  top:50%; transform:translateY(-50%); height:1px; width:5px; }
.cur-ticks span::after  { right:0; top:50%; transform:translateY(-50%); height:1px; width:5px; }
.cur-diamond {
  position: absolute; top:-4px; left:-4px;
  width:8px; height:8px;
  background: var(--gold); transform: rotate(45deg);
  transition: width .3s, height .3s, top .3s, left .3s;
}
.cur-orbit {
  position: absolute; top:-22px; left:-22px;
  width:44px; height:44px;
  animation: cur-spin 2.5s linear infinite;
}
.cur-orbit::before {
  content:''; position:absolute;
  top:-2px; left:50%; transform:translateX(-50%);
  width:4px; height:4px; border-radius:50%;
  background: var(--green);
  box-shadow: 0 0 8px 2px rgba(0,245,50,0.7);
}
#cd-trail { position:fixed; top:0; left:0; pointer-events:none; z-index:99998; }
.trail-ring {
  position:absolute; border-radius:50%;
  border:1px solid var(--green);
  transform:translate(-50%,-50%);
  pointer-events:none;
  animation: trail-fade 0.8s ease-out forwards;
}
@keyframes trail-fade {
  from { opacity:.2; width:10px; height:10px; }
  to   { opacity:0;  width:44px; height:44px; }
}
/* Expand cursor on interactive elements */
body:has(a:hover) .cur-ring,
body:has(button:hover) .cur-ring {
  top:-32px; left:-32px; width:64px; height:64px;
}
body:has(a:hover) .cur-diamond,
body:has(button:hover) .cur-diamond {
  top:-6px; left:-6px; width:12px; height:12px;
}
@keyframes cur-spin { to { transform:rotate(360deg); } }

/* ═══════════════════════════════════════════
   AMBIENT LIGHT
═══════════════════════════════════════════ */
.cd-ambient {
  position:fixed; inset:0; pointer-events:none; z-index:0;
}
.amb { position:absolute; border-radius:50%; filter:blur(120px); }
.amb-1 {
  width:800px; height:800px;
  background:radial-gradient(circle, rgba(0,245,50,0.07) 0%, transparent 70%);
  top:-250px; right:-150px;
  animation: drift 18s ease-in-out infinite alternate;
}
.amb-2 {
  width:600px; height:600px;
  background:radial-gradient(circle, rgba(255,120,30,0.10) 0%, transparent 70%);
  bottom:10vh; left:-150px;
  animation: drift 24s ease-in-out infinite alternate-reverse;
}
.amb-3 {
  width:400px; height:400px;
  background:radial-gradient(circle, rgba(0,245,50,0.04) 0%, transparent 70%);
  top:55vh; left:38%;
  animation: drift 30s ease-in-out infinite alternate;
}
@keyframes drift {
  from { transform:translate(0,0); }
  to   { transform:translate(40px,60px); }
}

/* ═══════════════════════════════════════════
   HEADER
═══════════════════════════════════════════ */
.cd-header {
  position: fixed; top:0; left:0; right:0; z-index:500;
  display: flex; justify-content:space-between; align-items:center;
  padding: 1.6rem var(--gutter);
  border-bottom: 1px solid var(--rule-faint);
  background: rgba(83,21,0,0.85);
  backdrop-filter: blur(24px) saturate(1.4);
  height: var(--header-h);
}
.cd-logo { display:flex; flex-direction:column; gap:.2rem; }
.cd-logo__word {
  font-family:'Cinzel',serif; font-size:.85rem;
  font-weight:400; letter-spacing:.3em; color:var(--gold);
}
.cd-logo__sub {
  font-style:italic; font-size:.6rem;
  letter-spacing:.18em; color:var(--gold-dim);
}
.cd-nav { display:flex; gap:2.5rem; align-items:center; }
.cd-nav a {
  font-family:'Cinzel',serif; font-size:.55rem;
  letter-spacing:.25em; color:var(--fog);
  text-transform:uppercase; transition:color .4s;
  position:relative;
}
.cd-nav a::after {
  content:''; position:absolute; bottom:-3px; left:0;
  width:0; height:1px; background:var(--green);
  transition:width .5s cubic-bezier(.25,0,0,1);
}
.cd-nav a:hover { color:var(--bone); }
.cd-nav a:hover::after { width:100%; }
.cd-nav a.current-menu-item { color:var(--gold); }
.cd-nav a.current-menu-item::after { width:100%; background:var(--gold); }
.cd-nav__enquiry {
  color:var(--green) !important;
  border:1px solid rgba(0,245,50,.35);
  padding:.5rem 1.2rem;
  transition:background .4s, border-color .4s !important;
}
.cd-nav__enquiry::after { display:none !important; }
.cd-nav__enquiry:hover {
  background:var(--green-dim);
  border-color:var(--green) !important;
  color:var(--bone) !important;
}
/* Hamburger — mobile */
.cd-nav__toggle {
  display:none; flex-direction:column; gap:5px;
  background:none; border:none; padding:.5rem;
}
.cd-nav__toggle span {
  display:block; width:22px; height:1px; background:var(--gold);
  transition:transform .4s, opacity .4s;
}

/* ═══════════════════════════════════════════
   TICKER
═══════════════════════════════════════════ */
.cd-ticker {
  background:var(--surface);
  border-top:1px solid var(--rule-faint);
  border-bottom:1px solid var(--rule-faint);
  overflow:hidden; padding:.9rem 0;
  position:relative; z-index:2;
}
.cd-ticker__track {
  display:flex; animation:tick 32s linear infinite;
  white-space:nowrap;
}
.cd-ticker__item {
  font-family:'Cinzel',serif; font-size:.5rem;
  letter-spacing:.35em; color:var(--gold-dim);
  padding:0 2.5rem; text-transform:uppercase;
}
.cd-ticker__sep { color:var(--green); opacity:.6; padding:0 .5rem; }
@keyframes tick { from{transform:translateX(0)} to{transform:translateX(-50%)} }

/* ═══════════════════════════════════════════
   PAGE WRAPPER
═══════════════════════════════════════════ */
.cd-main { padding-top: var(--header-h); position:relative; z-index:2; }

/* ═══════════════════════════════════════════
   SECTION UTILITIES
═══════════════════════════════════════════ */
.cd-section { padding:6rem var(--gutter); max-width:var(--max-w); margin:0 auto; }
.cd-divider { border:none; border-top:1px solid var(--rule-faint); margin:0; }

.sec-head {
  display:flex; justify-content:space-between; align-items:flex-end;
  margin-bottom:4rem; padding-bottom:2rem;
  border-bottom:1px solid var(--rule-faint);
}
.sec-title {
  font-family:'IM Fell English',serif;
  font-size:clamp(2rem,3.5vw,3.2rem); font-weight:400;
  color:var(--bone); line-height:1.0;
}
.sec-title em { font-style:italic; color:var(--gold); }
.sec-note {
  font-style:italic; font-size:.7rem;
  color:var(--gold-dim); letter-spacing:.1em;
}

/* ═══════════════════════════════════════════
   REVEAL ANIMATION
═══════════════════════════════════════════ */
.reveal {
  opacity:0; transform:translateY(2rem);
  transition:opacity .9s ease, transform .9s ease;
}
.reveal.in { opacity:1; transform:translateY(0); }

/* ═══════════════════════════════════════════
   COLLECTION GRID  (archive + taxonomy)
═══════════════════════════════════════════ */
.cd-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:2px;
}
.cd-grid--2col { grid-template-columns:repeat(2,1fr); }
.cd-grid--4col { grid-template-columns:repeat(4,1fr); }

/* ── Item Card ── */
.cd-card {
  position:relative; overflow:hidden;
  background:var(--surface);
  display:flex; flex-direction:column;
  transition:background .5s;
}
.cd-card::after {
  content:''; position:absolute; inset:0;
  border:1px solid transparent;
  transition:border-color .5s;
  pointer-events:none; z-index:5;
}
.cd-card:hover { background:var(--lifted); }
.cd-card:hover::after { border-color:var(--rule); }

.cd-card__glow {
  position:absolute; inset:0; pointer-events:none; z-index:1;
  background:radial-gradient(ellipse at 50% 30%, rgba(0,245,50,.06) 0%, transparent 65%);
  opacity:0; transition:opacity .6s;
}
.cd-card:hover .cd-card__glow { opacity:1; }

.cd-card__band {
  position:absolute; top:0; left:0; right:0;
  padding:1rem 1.5rem;
  font-family:'Cinzel',serif; font-size:.45rem;
  letter-spacing:.35em; color:var(--green);
  text-transform:uppercase;
  background:linear-gradient(to bottom,rgba(83,21,0,0.78),transparent);
  transform:translateY(-100%);
  transition:transform .5s cubic-bezier(.25,0,0,1); z-index:4;
}
.cd-card:hover .cd-card__band { transform:translateY(0); }

.cd-card__img {
  aspect-ratio:3/4; overflow:hidden;
  background:var(--surface); position:relative; z-index:2;
}
.cd-card__img img {
  width:100%; height:100%; object-fit:cover;
  transition:transform .8s cubic-bezier(.25,0,0,1), filter .6s;
  filter:sepia(.15) brightness(.9);
}
.cd-card:hover .cd-card__img img {
  transform:scale(1.04);
  filter:sepia(.05) brightness(1);
}
/* placeholder when no image */
.cd-card__img--placeholder {
  display:flex; align-items:center; justify-content:center;
}
.cd-card__img--placeholder svg { opacity:.35; transition:opacity .5s; }
.cd-card:hover .cd-card__img--placeholder svg { opacity:.6; }

.cd-card__info {
  padding:1.2rem 1.5rem;
  border-top:1px solid var(--rule-faint);
  position:relative; z-index:3;
  display:flex; justify-content:space-between; align-items:flex-end; gap:1rem;
}
.cd-card__id {
  font-family:'Cinzel',serif; font-size:.45rem;
  letter-spacing:.35em; color:var(--gold-dim); margin-bottom:.35rem;
}
.cd-card__name {
  font-family:'IM Fell English',serif; font-size:1rem;
  font-weight:400; color:var(--bone); line-height:1.2;
}
.cd-card__era {
  font-style:italic; font-size:.7rem;
  color:var(--fog); margin-top:.2rem;
}
.cd-card__arr {
  width:26px; height:26px; flex-shrink:0;
  border:1px solid var(--rule-faint);
  display:flex; align-items:center; justify-content:center;
  color:var(--gold-dim); font-size:.65rem;
  transition:border-color .4s, color .4s, background .4s;
}
.cd-card:hover .cd-card__arr {
  border-color:var(--green); color:var(--green);
  background:var(--green-dim);
}

/* ── Category Filter ── */
.cd-filter {
  display:flex; gap:1rem; flex-wrap:wrap; margin-bottom:3rem;
}
.cd-filter__btn {
  font-family:'Cinzel',serif; font-size:.5rem;
  letter-spacing:.3em; text-transform:uppercase;
  padding:.5rem 1.2rem;
  border:1px solid var(--rule-faint);
  color:var(--fog); background:none;
  transition:border-color .3s, color .3s, background .3s;
}
.cd-filter__btn:hover,
.cd-filter__btn.active {
  border-color:var(--green); color:var(--green);
  background:var(--green-glow);
}

/* ═══════════════════════════════════════════
   ITEM DETAIL PAGE
═══════════════════════════════════════════ */
.cd-item {
  display:grid; grid-template-columns:1.1fr 0.9fr;
  gap:5rem; padding:5rem var(--gutter);
  max-width:var(--max-w); margin:0 auto;
}
.cd-item__gallery { position:sticky; top:calc(var(--header-h) + 2rem); }
.cd-item__main-img {
  background:var(--surface);
  border:1px solid var(--rule-faint);
  aspect-ratio:4/5; overflow:hidden;
  display:flex; align-items:center; justify-content:center;
}
.cd-item__main-img img { width:100%; height:100%; object-fit:cover; }
.cd-item__thumbs {
  display:flex; gap:2px; margin-top:2px;
}
.cd-item__thumb {
  flex:1; aspect-ratio:1; background:var(--surface);
  border:1px solid var(--rule-faint); overflow:hidden;
  cursor:none;
}
.cd-item__thumb img { width:100%; height:100%; object-fit:cover; }
.cd-item__thumb.active { border-color:var(--green); }

.cd-item__info { padding-top:1rem; }
.cd-item__eyebrow {
  font-family:'Cinzel',serif; font-size:.5rem;
  letter-spacing:.45em; color:var(--green);
  text-transform:uppercase; margin-bottom:1.5rem;
  display:flex; align-items:center; gap:1rem;
}
.cd-item__eyebrow::before {
  content:''; width:2rem; height:1px;
  background:var(--green);
}
.cd-item__title {
  font-family:'IM Fell English',serif;
  font-size:clamp(2rem,3vw,3rem); font-weight:400;
  color:var(--bone); line-height:1.05; margin-bottom:.5rem;
}
.cd-item__maker {
  font-style:italic; font-size:1.1rem; color:var(--gold);
  margin-bottom:2rem;
}
.cd-item__rule {
  border:none; border-top:1px solid var(--rule-faint); margin:2rem 0;
}
.cd-item__specs {
  display:flex; flex-direction:column; gap:0;
  margin-bottom:2.5rem;
}
.cd-item__spec {
  display:flex; justify-content:space-between; align-items:center;
  padding:.9rem 0; border-bottom:1px solid var(--rule-faint);
  font-size:.8rem;
}
.cd-item__spec-label { color:var(--gold-dim); font-family:'Cinzel',serif; font-size:.48rem; letter-spacing:.2em; text-transform:uppercase; }
.cd-item__spec-val   { color:var(--bone); font-style:italic; }
.cd-item__desc {
  font-size:.95rem; line-height:2.1;
  color:var(--fog); margin-bottom:3rem;
}
.cd-item__cta {
  display:inline-flex; align-items:center; gap:1.5rem;
  font-family:'Cinzel',serif; font-size:.55rem;
  letter-spacing:.4em; text-transform:uppercase;
  color:var(--green); transition:gap .5s;
}
.cd-item__cta span {
  display:block; width:2.5rem; height:1px;
  background:linear-gradient(to right,var(--green),var(--gold-dim));
  transition:width .5s;
}
.cd-item__cta:hover { gap:2.5rem; }
.cd-item__cta:hover span { width:4rem; }

.cd-item__provenance {
  margin-top:3rem; padding:1.5rem 2rem;
  border:1px solid var(--rule-faint); background:var(--surface);
}
.cd-item__provenance-label {
  font-family:'Cinzel',serif; font-size:.45rem;
  letter-spacing:.35em; color:var(--gold-dim);
  text-transform:uppercase; margin-bottom:.8rem;
}
.cd-item__provenance p {
  font-style:italic; font-size:.85rem;
  line-height:1.9; color:var(--fog);
}

/* ═══════════════════════════════════════════
   ABOUT PAGE
═══════════════════════════════════════════ */
.cd-about {
  display:grid; grid-template-columns:1fr 1.8fr;
  gap:6rem; padding:6rem var(--gutter);
  max-width:var(--max-w); margin:0 auto;
}
.cd-about__sigil { display:flex; align-items:flex-start; justify-content:center; padding-top:2rem; }
.cd-about__body {}
.cd-about__lead {
  font-family:'IM Fell English',serif;
  font-size:clamp(1.5rem,2.5vw,2.2rem); font-style:italic;
  line-height:1.6; color:var(--bone);
  border-left:2px solid var(--green);
  padding-left:2rem; margin-bottom:3rem;
  position:relative;
}
.cd-about__lead::before {
  content:''; position:absolute;
  left:-1px; bottom:0; width:2px; height:35%;
  background:linear-gradient(to bottom,transparent,var(--gold-dim));
}
.cd-about__text {
  font-size:.95rem; line-height:2.2; color:var(--fog);
  max-width:58ch;
}
.cd-about__text p + p { margin-top:1.5em; }

.cd-about__data {
  display:grid; grid-template-columns:repeat(2,1fr); gap:0;
  border:1px solid var(--rule-faint); margin-top:4rem;
}
.cd-about__datum {
  padding:1.5rem 2rem; border-right:1px solid var(--rule-faint);
  border-bottom:1px solid var(--rule-faint);
}
.cd-about__datum:nth-child(2n) { border-right:none; }
.cd-about__datum:nth-last-child(-n+2) { border-bottom:none; }
.cd-about__datum-val {
  font-family:'IM Fell English',serif; font-size:1.6rem;
  color:var(--bone); margin-bottom:.3rem;
}
.cd-about__datum-label {
  font-family:'Cinzel',serif; font-size:.45rem;
  letter-spacing:.3em; color:var(--gold-dim);
  text-transform:uppercase;
}

/* ═══════════════════════════════════════════
   ENQUIRY PAGE
═══════════════════════════════════════════ */
.cd-enquiry {
  max-width:800px; margin:0 auto;
  padding:6rem var(--gutter);
}
.cd-enquiry__lead {
  font-family:'IM Fell English',serif;
  font-size:clamp(1.4rem,2.5vw,2rem); font-style:italic;
  line-height:1.6; color:var(--bone);
  border-left:2px solid var(--green);
  padding-left:2rem; margin-bottom:3rem;
}
.cd-enquiry__sub {
  font-size:.9rem; line-height:2; color:var(--fog); margin-bottom:4rem;
}
.cd-enquiry__social {
  display:flex; gap:1.5rem; flex-wrap:wrap; margin-bottom:4rem;
}
.cd-enquiry__social-link {
  display:inline-flex; align-items:center; gap:.8rem;
  font-family:'Cinzel',serif; font-size:.5rem;
  letter-spacing:.25em; text-transform:uppercase;
  color:var(--gold-dim); border:1px solid var(--rule-faint);
  padding:.7rem 1.4rem;
  transition:border-color .4s, color .4s, background .4s;
}
.cd-enquiry__social-link:hover {
  border-color:var(--green); color:var(--green);
  background:var(--green-glow);
}

/* Form */
.cd-form { display:flex; flex-direction:column; gap:1.5rem; }
.cd-form__row { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; }
.cd-form__field { display:flex; flex-direction:column; gap:.6rem; }
.cd-form__label {
  font-family:'Cinzel',serif; font-size:.48rem;
  letter-spacing:.3em; color:var(--gold-dim); text-transform:uppercase;
}
.cd-form__input,
.cd-form__select,
.cd-form__textarea {
  background:var(--surface); border:1px solid var(--rule-faint);
  color:var(--bone); font-family:'Cormorant Garamond',serif;
  font-size:.95rem; padding:.9rem 1.2rem;
  cursor:none; outline:none;
  transition:border-color .4s;
  width:100%;
}
.cd-form__input:focus,
.cd-form__select:focus,
.cd-form__textarea:focus { border-color:var(--green); }
.cd-form__input::placeholder,
.cd-form__textarea::placeholder { color:var(--fog); font-style:italic; }
.cd-form__select option { background:var(--surface); }
.cd-form__textarea { min-height:180px; resize:vertical; }
.cd-form__submit {
  align-self:flex-start;
  display:inline-flex; align-items:center; gap:1.5rem;
  font-family:'Cinzel',serif; font-size:.55rem;
  letter-spacing:.4em; text-transform:uppercase;
  color:var(--green); background:none;
  border:none; padding:0; margin-top:.5rem;
  transition:gap .5s;
}
.cd-form__submit span {
  display:block; width:2.5rem; height:1px;
  background:linear-gradient(to right,var(--green),var(--gold-dim));
  transition:width .5s;
}
.cd-form__submit:hover { gap:2.5rem; }
.cd-form__submit:hover span { width:4rem; }

/* ═══════════════════════════════════════════
   CATEGORY LISTING PAGE (archive header)
═══════════════════════════════════════════ */
.cd-archive-head {
  padding:5rem var(--gutter) 3rem;
  max-width:var(--max-w); margin:0 auto;
}
.cd-archive-head h1 {
  font-family:'IM Fell English',serif;
  font-size:clamp(2.5rem,5vw,5rem); font-weight:400;
  color:var(--bone); line-height:1.0; margin-bottom:1rem;
}
.cd-archive-head h1 em { font-style:italic; color:var(--gold); }
.cd-archive-head p {
  font-style:italic; font-size:1rem;
  color:var(--fog); max-width:55ch; line-height:1.9;
}

/* ═══════════════════════════════════════════
   DATA BAND
═══════════════════════════════════════════ */
.cd-data-band {
  border-top:1px solid var(--rule-faint);
  background:var(--surface);
  padding:4rem var(--gutter);
  display:grid; grid-template-columns:repeat(4,1fr);
}
.cd-data-band__item {
  padding:0 2rem; border-right:1px solid var(--rule-faint);
  display:flex; flex-direction:column; gap:.4rem;
}
.cd-data-band__item:first-child { padding-left:0; }
.cd-data-band__item:last-child  { border-right:none; }
.cd-data-band__val {
  font-family:'IM Fell English',serif; font-size:2rem;
  font-weight:400; color:var(--bone);
}
.cd-data-band__label {
  font-family:'Cinzel',serif; font-size:.45rem;
  letter-spacing:.35em; color:var(--gold-dim); text-transform:uppercase;
}
.cd-data-band__note {
  font-size:.7rem; font-style:italic; color:var(--fog); margin-top:.2rem;
}

/* ═══════════════════════════════════════════
   FOOTER
═══════════════════════════════════════════ */
.cd-footer {
  border-top:1px solid var(--rule-faint);
  padding:2.5rem var(--gutter);
  display:flex; justify-content:space-between; align-items:center;
  position:relative; z-index:2;
}
.cd-footer__logo {
  font-family:'Cinzel',serif; font-size:.65rem;
  letter-spacing:.3em; color:var(--gold-dim);
}
.cd-footer__note {
  font-style:italic; font-size:.7rem;
  color:rgba(191,186,212,.25); text-align:right; line-height:1.8;
}

/* ═══════════════════════════════════════════
   PAGINATION
═══════════════════════════════════════════ */
.cd-pagination {
  display:flex; justify-content:center; gap:2px;
  padding:4rem var(--gutter);
}
.cd-pagination a,
.cd-pagination span {
  font-family:'Cinzel',serif; font-size:.5rem;
  letter-spacing:.25em; padding:.6rem 1.2rem;
  border:1px solid var(--rule-faint);
  color:var(--fog); transition:border-color .3s, color .3s;
}
.cd-pagination a:hover { border-color:var(--green); color:var(--green); }
.cd-pagination .current { border-color:var(--gold); color:var(--gold); }

/* ═══════════════════════════════════════════
   RESPONSIVE
═══════════════════════════════════════════ */
@media (max-width:1024px) {
  :root { --gutter:2.5rem; }
  .cd-grid { grid-template-columns:repeat(2,1fr); }
  .cd-item { grid-template-columns:1fr; gap:3rem; }
  .cd-item__gallery { position:static; }
  .cd-about { grid-template-columns:1fr; gap:3rem; }
  .cd-data-band { grid-template-columns:repeat(2,1fr); }
  .cd-data-band__item:nth-child(2) { border-right:none; }
  .cd-data-band__item:nth-child(3) { padding-left:0; border-right:1px solid var(--rule-faint); }
}

@media (max-width:768px) {
  :root { --gutter:1.5rem; }
  .cd-header { padding:1.2rem var(--gutter); }
  .cd-nav { display:none; }
  .cd-nav.open {
    display:flex; flex-direction:column; gap:0;
    position:fixed; inset:var(--header-h) 0 0 0;
    background:rgba(60,15,0,0.97);
    padding:3rem var(--gutter);
    z-index:400;
  }
  .cd-nav.open a { font-size:.8rem; padding:1.2rem 0; border-bottom:1px solid var(--rule-faint); }
  .cd-nav__toggle { display:flex; }
  .cd-grid { grid-template-columns:1fr; }
  .cd-grid--2col { grid-template-columns:1fr; }
  .cd-form__row { grid-template-columns:1fr; }
  .cd-data-band { grid-template-columns:1fr 1fr; }
  .cd-enquiry { padding:4rem var(--gutter); }
  body { cursor:auto; }
  #cd-cursor, #cd-trail { display:none; }
}

/* ═══════════════════════════════════════════
   COLOR ROLE OVERRIDE
   --green  → 主役: ロゴ・大見出し・強調・数値・CTA
   --gold   → 脇役: 細線・ラベル・装飾
═══════════════════════════════════════════ */

/* ロゴ — 緑で最大存在感 */
.cd-logo__word { color: var(--green); }
.cd-logo__sub  { color: var(--gold-dim); }

/* current nav item — 緑 */
.cd-nav a.current-menu-item { color: var(--green); }
.cd-nav a.current-menu-item::after { background: var(--green); width: 100%; }

/* セクションタイトル em — 金から緑へ */
.sec-title em          { color: var(--green); }
.cd-archive-head h1 em { color: var(--green); }

/* データバンド数値 — 緑で大きく・光る */
.cd-data-band__val {
  color: var(--green);
  font-size: 2.4rem;
  text-shadow: 0 0 40px rgba(0,245,50,0.30);
}

/* About 統計数値 — 緑 */
.cd-about__datum-val {
  color: var(--green);
  text-shadow: 0 0 30px rgba(0,245,50,0.20);
}

/* Item maker名 — 緑（窯元・ブランドを際立てる） */
.cd-item__maker {
  color: var(--green);
  font-size: 1.2rem;
  text-shadow: 0 0 30px rgba(0,245,50,0.18);
}

/* Pagination current — 緑 */
.cd-pagination .current { border-color: var(--green); color: var(--green); }

/* Footer logo — 緑 */
.cd-footer__logo { color: var(--green); }

/* Ticker sep — 緑をはっきり */
.cd-ticker__sep { opacity: 0.85; }

/* Hero h1 内の em（金色部分）も緑に統一 */
/* ※ main.js の inline style も更新が必要なため下記でも上書き */
.hero h1 em { color: var(--green) !important; }

/* Ghost（アウトライン文字）— 緑の細線 */
.hero h1 .ghost {
  -webkit-text-stroke: 1px rgba(0,245,50,0.30) !important;
}

/* Hero CTA — 緑 */
.hero-cta,
.hero-cta .cta-line {
  color: var(--green);
}
.hero-cta .cta-line {
  background: linear-gradient(to right, var(--green), var(--gold-dim));
}

/* Manifesto blockquote border — 緑 */
.mani-body blockquote {
  border-left-color: var(--green);
}

/* Cat name hover — 緑 */
.cat-item:hover .cat-name { color: var(--green); }
.cat-item:hover .cat-arr  { color: var(--green); }

/* Enquiry lead border — 緑 */
.cd-enquiry__lead { border-left-color: var(--green); }

/* About lead border — 緑 */
.cd-about__lead { border-left-color: var(--green); }

/* Card arr hover — 緑×茶のコントラスト */
.cd-card:hover .cd-card__arr {
  border-color: var(--green);
  color: var(--green);
  background: rgba(0,245,50,0.10);
}

/* Item CTA arrow line — 緑 */
.cd-item__cta { color: var(--green); }
.cd-item__cta span {
  background: linear-gradient(to right, var(--green), var(--gold-dim));
}

/* Form focus — 緑 */
.cd-form__input:focus,
.cd-form__select:focus,
.cd-form__textarea:focus { border-color: var(--green); }

/* Submit button — 緑 */
.cd-form__submit { color: var(--green); }
.cd-form__submit span {
  background: linear-gradient(to right, var(--green), var(--gold-dim));
}

/* @supports P3 — より鮮烈な緑で同じロールを上書き */
@supports (color: color(display-p3 0 0 0)) {
  .cd-data-band__val {
    text-shadow: 0 0 40px color(display-p3 0.427 0.946 0.34 / 0.30);
  }
  .cd-about__datum-val {
    text-shadow: 0 0 30px color(display-p3 0.427 0.946 0.34 / 0.20);
  }
  .cd-item__maker {
    text-shadow: 0 0 30px color(display-p3 0.427 0.946 0.34 / 0.18);
  }
}
