/* ==========================================================================
   JR Design System v1.0.0 — 鑑別書美学 (墨 × 鳥の子紙 × 金)
   Storefront + Directories Pro の上に載せるデザインレイヤー。本体無修正。
   ========================================================================== */

:root {
  --jr-ink: #1c1a17;
  --jr-ink-2: #2b2620;
  --jr-paper: #faf8f4;
  --jr-card: #fffdfa;
  --jr-gold: #a8894e;
  --jr-gold-deep: #8a6d3b;
  --jr-gold-light: #cbad74;
  --jr-hair: #e5ddcc;
  --jr-mute: #7a7166;
  --jr-ivory: #f3eee2;
  --jr-serif-jp: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  --jr-serif-lat: "Cormorant Garamond", "Didot", "Times New Roman", serif;
  --jr-sans: "Hiragino Kaku Gothic ProN", "Yu Gothic Medium", "Yu Gothic", "Noto Sans JP", sans-serif;
  --jr-ease: cubic-bezier(.25, .46, .45, .94);
}

/* ---------- 基礎 ---------- */
body {
  background: var(--jr-paper);
  font-family: var(--jr-sans);
  color: var(--jr-ink-2);
}
.site-content a {
  color: var(--jr-gold-deep);
  transition: color .35s var(--jr-ease);
}
.site-content a:hover {
  color: var(--jr-ink);
}
h1, h2, h3, .entry-title {
  font-family: var(--jr-serif-jp);
  color: var(--jr-ink-2);
  font-weight: 600;
}

/* ---------- ヘッダー: 墨×金のブランドバー ---------- */
.site-header {
  background: linear-gradient(180deg, #211d18 0%, var(--jr-ink) 100%) !important;
  border-bottom: 1px solid rgba(168, 137, 78, .45);
  padding-top: 1.2em;
}
.site-header .site-branding {
  margin-bottom: .6em;
}
.site-header .site-title {
  font-family: var(--jr-serif-lat);
  font-weight: 500;
  letter-spacing: .22em;
}
.site-header .site-title a,
.site-header .site-title a:hover {
  color: var(--jr-gold-light) !important;
  text-transform: uppercase;
}
.site-header .site-description {
  font-family: var(--jr-serif-jp);
  color: rgba(243, 238, 226, .6) !important;
  letter-spacing: .14em;
  font-size: .78em;
}
.main-navigation ul li a,
.site-header-cart .cart-contents {
  color: var(--jr-ivory) !important;
  letter-spacing: .1em;
  font-size: .92em;
  transition: color .35s var(--jr-ease);
}
.main-navigation ul li a:hover {
  color: var(--jr-gold-light) !important;
}
.main-navigation ul.menu > li > a {
  position: relative;
}
.main-navigation ul.menu > li > a::after {
  content: "";
  position: absolute;
  left: 1em;
  right: 1em;
  bottom: .35em;
  height: 1px;
  background: var(--jr-gold);
  transform: scaleX(0);
  transform-origin: center;
  transition: transform .4s var(--jr-ease);
}
.main-navigation ul.menu > li > a:hover::after {
  transform: scaleX(1);
}
.storefront-primary-navigation {
  background: transparent !important;
}
button.menu-toggle,
button.menu-toggle:hover {
  color: var(--jr-ivory) !important;
  border-color: rgba(168, 137, 78, .5) !important;
  background: transparent !important;
}

/* ---------- トップ: ブランドヒーロー ---------- */
.jr-hero-brand {
  text-align: center;
  padding: 72px 20px 56px;
  max-width: 900px;
  margin: 0 auto;
}
.jr-hero-over {
  font-family: var(--jr-serif-lat);
  text-transform: uppercase;
  letter-spacing: .42em;
  font-size: 12px;
  color: var(--jr-gold-deep);
  margin: 0 0 22px;
}
.jr-hero-title {
  font-size: clamp(30px, 4.6vw, 46px);
  letter-spacing: .1em;
  line-height: 1.55;
  margin: 0;
}
.jr-hero-br { display: inline; }
.jr-hero-lede {
  font-size: 15px;
  color: var(--jr-mute);
  letter-spacing: .06em;
  margin: 24px auto 0;
  line-height: 2;
}
.jr-hero-rule {
  width: 84px;
  height: 1px;
  background: var(--jr-gold);
  margin: 34px auto 0;
  position: relative;
}
.jr-hero-rule::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 6px;
  height: 6px;
  background: var(--jr-gold);
  transform: translate(-50%, -50%) rotate(45deg);
}
@media (max-width: 640px) {
  .jr-hero-brand { padding: 48px 16px 36px; }
  .jr-hero-br { display: inline; }
}

/* ---------- 検索ヒーロー: 素材写真を墨のグラデーションへ ---------- */
[style*="acro2347"] {
  background-image: linear-gradient(155deg, #262119 0%, #17140f 55%, #1d1913 100%) !important;
  border-top: 1px solid rgba(168, 137, 78, .35);
  border-bottom: 1px solid rgba(168, 137, 78, .35);
}

/* ---------- フォーム/検索 ---------- */
.drts-bs-form-control,
input[type="text"], input[type="email"], input[type="search"], input[type="tel"], input[type="url"], textarea, select {
  border-radius: 0 !important;
  border: 1px solid var(--jr-hair) !important;
  background: #fff !important;
  color: var(--jr-ink-2) !important;
  box-shadow: none !important;
  transition: border-color .35s var(--jr-ease);
}
.drts-bs-form-control:focus,
input[type="text"]:focus, input[type="search"]:focus, textarea:focus {
  border-color: var(--jr-gold) !important;
  outline: none;
}
.drts-search-form-container .drts-bs-form-control {
  min-height: 48px;
}

/* ---------- ボタン ---------- */
.button, button, input[type="submit"],
.drts-bs-btn {
  border-radius: 0 !important;
  letter-spacing: .12em !important;
  font-weight: 500 !important;
  transition: background-color .4s var(--jr-ease), color .4s var(--jr-ease), border-color .4s var(--jr-ease) !important;
}
.drts-bs-btn-primary,
.button.alt, button[type="submit"], input[type="submit"] {
  background: var(--jr-ink) !important;
  border: 1px solid var(--jr-ink) !important;
  color: var(--jr-ivory) !important;
}
.drts-bs-btn-primary:hover,
.button.alt:hover, button[type="submit"]:hover, input[type="submit"]:hover {
  background: var(--jr-gold-deep) !important;
  border-color: var(--jr-gold-deep) !important;
  color: #fff !important;
}
.drts-bs-btn-outline-secondary, .drts-bs-btn-secondary, .drts-bs-btn-light {
  background: transparent !important;
  border: 1px solid var(--jr-hair) !important;
  color: var(--jr-ink-2) !important;
}
.drts-bs-btn-outline-secondary:hover, .drts-bs-btn-secondary:hover, .drts-bs-btn-light:hover {
  border-color: var(--jr-gold) !important;
  color: var(--jr-gold-deep) !important;
  background: transparent !important;
}

/* ---------- ホームセクション見出し ---------- */
.drts-wordpress-homepage-section {
  padding: 56px 0 !important;
}
.drts-wordpress-homepage-section > h2,
.storefront-product-section > h2 {
  font-family: var(--jr-serif-jp) !important;
  font-size: 26px !important;
  letter-spacing: .18em;
  text-align: center;
  font-weight: 600 !important;
  color: var(--jr-ink-2) !important;
  margin-bottom: 1.6em;
}
.drts-wordpress-homepage-section > h2::after,
.storefront-product-section > h2::after {
  content: "";
  display: block;
  width: 64px;
  height: 1px;
  background: var(--jr-gold);
  margin: 20px auto 0;
}

/* ---------- カテゴリ/地域アイコン: 虹色を金の細枠へ ---------- */
.drts-wordpress-homepage-section i[style*="background-color"],
.drts-entity-term i[style*="background-color"],
.drts-icon[style*="background-color"] {
  background-color: transparent !important;
  color: var(--jr-gold) !important;
  border: 1px solid var(--jr-gold-light);
  transition: background-color .35s var(--jr-ease), color .35s var(--jr-ease);
}
.drts-entity-term a:hover i[style*="background-color"] {
  background-color: var(--jr-gold) !important;
  color: #fff !important;
}
.drts-entity-term a {
  color: var(--jr-ink-2) !important;
  letter-spacing: .04em;
}
.drts-entity-term a:hover {
  color: var(--jr-gold-deep) !important;
}

/* ---------- リストカード ---------- */
.drts-view-entity-container .drts-entity {
  background: var(--jr-card);
  border: 1px solid var(--jr-hair);
  transition: border-color .4s var(--jr-ease), transform .4s var(--jr-ease), box-shadow .4s var(--jr-ease);
}
.drts-view-entity-container .drts-entity:hover {
  border-color: var(--jr-gold-light);
  transform: translateY(-3px);
  box-shadow: 0 16px 34px -20px rgba(28, 26, 23, .3);
}
.drts-entity figure img {
  filter: saturate(.94);
}
.drts-entity figcaption,
.drts-display-element-entity_field_term_title-1 a,
.drts-entity .drts-entity-title a {
  font-family: var(--jr-serif-jp);
  color: var(--jr-ink-2) !important;
  letter-spacing: .05em;
}
.drts-entity .drts-entity-title a:hover {
  color: var(--jr-gold-deep) !important;
}

/* ---------- リボン/タグ/バッジ ---------- */
span.drts-slider-photos-tag,
span.drts-slider-photos-tag.drts-bs-bg-warning,
.drts-bs-bg-warning {
  background: rgba(28, 26, 23, .88) !important;
  background-color: rgba(28, 26, 23, .88) !important;
  color: var(--jr-gold-light) !important;
  font-size: 10px !important;
  letter-spacing: .1em;
  padding: 3px 9px !important;
  border-radius: 0 !important;
}
.drts-bs-badge {
  border-radius: 0 !important;
  letter-spacing: .1em;
  font-weight: 500 !important;
}
.drts-bs-badge.drts-bs-badge-warning {
  background: var(--jr-gold) !important;
  background-color: var(--jr-gold) !important;
  color: #fff !important;
}
.drts-bs-badge.drts-bs-badge-info {
  background: transparent !important;
  background-color: transparent !important;
  border: 1px solid var(--jr-gold-light);
  color: var(--jr-gold-deep) !important;
}
.drts-bs-badge.drts-bs-badge-success {
  background: transparent !important;
  background-color: transparent !important;
  border: 1px solid #a8bfa5;
  color: #5d7a5a !important;
}

/* ---------- スライダー矢印/ドット ---------- */
.slick-dots li button:before {
  color: var(--jr-gold) !important;
}
.slick-prev:before, .slick-next:before {
  color: var(--jr-gold-deep) !important;
}

/* ---------- 一覧ページ(taxonomy)ガイドブロックとの調和 ---------- */
.jr-taxonomy-guide {
  background: var(--jr-card) !important;
  border-color: var(--jr-hair) !important;
  border-radius: 0 !important;
}
.jr-taxonomy-related li {
  background: var(--jr-paper) !important;
  border: 1px solid var(--jr-hair);
  border-radius: 0 !important;
}
.jr-taxonomy-related a {
  color: var(--jr-gold-deep) !important;
}

/* ---------- ページネーション ---------- */
.drts-bs-page-link, .page-numbers {
  border-radius: 0 !important;
  color: var(--jr-ink-2) !important;
  border-color: var(--jr-hair) !important;
}
.drts-bs-page-item.drts-bs-active .drts-bs-page-link,
.page-numbers.current {
  background: var(--jr-ink) !important;
  border-color: var(--jr-ink) !important;
  color: var(--jr-ivory) !important;
}

/* ---------- 地域グリッド写真の色調統一 (AI画像の彩度を落とし品位を揃える) ---------- */
.drts-display-element[class*="location_photo"] img,
.directory-location-photo img {
  filter: saturate(.72) sepia(.08) contrast(.98);
  transition: filter .5s var(--jr-ease);
}
.drts-view-entity-container:hover .drts-display-element[class*="location_photo"] img {
  filter: saturate(.9) sepia(.04);
}

/* ---------- 一覧: 地域写真の抑制 (巨大AI画像→上品なバナー) ---------- */
.tax-directory_loc_loc .location-photo img,
.tax-directory_dir_cat .location-photo img {
  max-height: 300px;
  width: 100%;
  object-fit: cover;
  filter: saturate(.8) sepia(.06) brightness(.96);
  border: 1px solid var(--jr-hair);
}

/* ---------- ウィジェット見出し(サイドバー含む全域) ---------- */
.widget .widget-title,
.widget-area .widget h2 {
  font-family: var(--jr-serif-jp);
  letter-spacing: .14em;
  font-size: 1em;
  color: var(--jr-ink-2);
  border-bottom: 1px solid var(--jr-hair);
  padding-bottom: .6em;
}

/* ---------- 店舗詳細 ---------- */
.single-directory_dir_ltg .entry-title {
  letter-spacing: .08em;
}
.drts-entity-field-label {
  color: var(--jr-mute);
  letter-spacing: .06em;
}
.drts-bs-list-group-item {
  border-color: var(--jr-hair) !important;
  background: transparent !important;
}

/* ---------- フッター: 墨 ---------- */
.site-footer {
  background: var(--jr-ink) !important;
  color: rgba(243, 238, 226, .72) !important;
  border-top: 1px solid rgba(168, 137, 78, .45);
}
.site-footer a {
  color: var(--jr-gold-light) !important;
  transition: color .35s var(--jr-ease);
}
.site-footer a:hover {
  color: var(--jr-ivory) !important;
}
.site-footer .widget-title,
.site-footer .widget .widget-title {
  font-family: var(--jr-serif-jp);
  color: var(--jr-ivory) !important;
  letter-spacing: .16em;
  font-size: .95em;
}
.site-info {
  border-top: 1px solid rgba(229, 221, 204, .12);
  letter-spacing: .06em;
  font-size: .8em;
}

/* ---------- 見出しの下品な既定色の排除 ---------- */
.site-content .entry-header h1 {
  letter-spacing: .08em;
}

/* ---------- 選択・フォーカスの品位 ---------- */
::selection {
  background: rgba(168, 137, 78, .25);
}
:focus-visible {
  outline: 1px solid var(--jr-gold);
  outline-offset: 2px;
}
