/* ══════════════════════════════════════════════════════════════
   FURNITURE ITEM PAGE
   ══════════════════════════════════════════════════════════════
   Individual item card with gallery, bilingual name, quality
   badge, details table, and teso-decor.ru attribution.
   Design language: matches house.php and house-builder.php
   token system - dark surfaces, crimson accents, gold highlights.
   ══════════════════════════════════════════════════════════════ */

.furn-page {
    padding: 5.5rem 1rem 4rem;
    min-height: 60vh;
}
.furn-page__container {
    max-width: 1000px;
    margin: 0 auto;
}

/* ── Breadcrumb ── */
.furn-page__breadcrumb {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .35rem;
    font-size: .72rem;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: rgba(216,212,224,.5);
    margin-bottom: 1.8rem;
}
.furn-page__breadcrumb a {
    color: rgba(255,190,200,.7);
    text-decoration: none;
    transition: color .2s ease;
}
.furn-page__breadcrumb a:hover { color: #fff; }
.furn-page__breadcrumb-sep {
    color: rgba(216,212,224,.25);
    font-size: .65rem;
}
.furn-page__copy-link {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    background: transparent;
    border: 1px solid rgba(212,176,96,.22);
    color: rgba(216,212,224,.65);
    font-family: inherit;
    font-size: .62rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    padding: .35em .8em;
    cursor: pointer;
    transition: color .2s ease, border-color .2s ease, background .2s ease;
}
.furn-page__copy-link:hover {
    color: rgba(255,255,255,.95);
    border-color: rgba(212,176,96,.5);
    background: rgba(212,176,96,.06);
}
.furn-page__copy-link.is-copied {
    color: rgba(212,176,96,.95);
    border-color: rgba(212,176,96,.7);
}
.furn-page__copy-icon { font-size: .9rem; opacity: .75; }

/* ── Two-column layout ── */
.furn-page__layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2.5rem;
    align-items: start;
}

/* ── Gallery ── */
.furn-page__gallery {
    display: flex;
    flex-direction: column;
    gap: .8rem;
}
.furn-page__main-img {
    position: relative;
    border-radius: 8px;
    overflow: hidden;
    background: rgba(255,255,255,.03);
    border: 1px solid rgba(255,255,255,.06);
    aspect-ratio: 580 / 522;
    cursor: zoom-in;
}
.furn-page__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: opacity .3s ease;
}

/* Thumbnail strip */
.furn-page__thumbs {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
}
.furn-page__thumb {
    width: 72px;
    height: 64px;
    border-radius: 6px;
    overflow: hidden;
    border: 2px solid rgba(255,255,255,.08);
    background: rgba(255,255,255,.03);
    cursor: pointer;
    padding: 0;
    transition: border-color .25s ease, box-shadow .25s ease, transform .15s ease;
}
.furn-page__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.furn-page__thumb:hover {
    border-color: rgba(184,68,90,.5);
    transform: translateY(-1px);
}
.furn-page__thumb.is-active {
    border-color: rgba(184,68,90,.85);
    box-shadow: 0 0 0 2px rgba(184,68,90,.25);
}

/* No image fallback */
.furn-page__no-img {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .6rem;
    aspect-ratio: 580 / 522;
    background: rgba(255,255,255,.02);
    border: 1px dashed rgba(255,255,255,.08);
    border-radius: 8px;
    color: rgba(216,212,224,.35);
    font-size: .8rem;
}
.furn-page__no-img-icon { font-size: 1.6rem; opacity: .4; }

/* Source attribution under gallery */
.furn-page__source {
    font-size: .65rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: rgba(216,212,224,.4);
    text-align: center;
    padding-top: .3rem;
}
.furn-page__source a {
    color: rgba(255,190,200,.6);
    text-decoration: none;
    transition: color .2s ease;
}
.furn-page__source a:hover { color: #fff; }
.furn-page__source-icon {
    color: rgba(184,68,90,.5);
    margin-right: .25rem;
}

/* ── Details panel ── */
.furn-page__details {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

/* Name */
.furn-page__name {
    font-family: var(--font-heading, serif);
    font-size: 1.6rem;
    color: #ffe2c9;
    margin: 0;
    line-height: 1.3;
    letter-spacing: .02em;
}
.furn-page__alt-name {
    font-size: .85rem;
    color: rgba(216,212,224,.55);
    font-style: italic;
    margin-top: -.35rem;
}

/* Quality badge */
.furn-page__quality {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    padding: .3rem .85rem;
    border-radius: 4px;
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    border: 1px solid;
}

/* Lore / description */
.furn-page__lore {
    position: relative;
    margin: .5rem 0;
    padding: .8rem 1rem .8rem 1.6rem;
    background: rgba(255,255,255,.025);
    border-left: 3px solid rgba(184,68,90,.45);
    border-radius: 0 6px 6px 0;
    font-style: italic;
    font-size: .88rem;
    line-height: 1.65;
    color: rgba(216,212,224,.8);
}
.furn-page__lore-mark {
    position: absolute;
    left: .45rem;
    top: .3rem;
    font-size: 1.8rem;
    color: rgba(184,68,90,.35);
    font-style: normal;
    line-height: 1;
}
.furn-page__lore-alt {
    font-size: .78rem;
    font-style: italic;
    color: rgba(216,212,224,.45);
    margin-top: -.5rem;
    padding-left: 1.6rem;
}

/* Acquisition section */
.furn-page__acquisition {
    margin-top: .5rem;
    padding-top: .8rem;
    border-top: 1px solid rgba(255,255,255,.06);
}
.furn-page__acquisition-title {
    font-family: var(--font-heading, serif);
    font-size: .78rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: rgba(255,190,200,.7);
    margin: 0 0 .5rem;
}
.furn-page__gold {
    font-size: .7em;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: rgba(240,211,90,.7);
}

/* Info table */
.furn-page__info {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin: .5rem 0;
}
.furn-page__info-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding: .55rem 0;
    border-bottom: 1px solid rgba(255,255,255,.05);
    font-size: .82rem;
}
.furn-page__info-row:last-child { border-bottom: none; }
.furn-page__info-row dt {
    color: rgba(216,212,224,.5);
    text-transform: uppercase;
    font-size: .62rem;
    letter-spacing: .12em;
    flex-shrink: 0;
}
.furn-page__info-row dd {
    margin: 0;
    text-align: right;
    color: #d8d4e0;
}

/* Action buttons */
.furn-page__actions {
    display: flex;
    flex-direction: column;
    gap: .55rem;
    margin-top: .5rem;
}
.furn-page__action-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    padding: .65rem 1.2rem;
    border-radius: 6px;
    font-size: .78rem;
    font-family: var(--font-label, sans-serif);
    letter-spacing: .06em;
    text-decoration: none;
    cursor: pointer;
    transition: background .2s ease, border-color .2s ease, color .2s ease, transform .15s ease;
    background: rgba(255,255,255,.04);
    border: 1px solid rgba(255,255,255,.1);
    color: #d8d4e0;
}
.furn-page__action-btn:hover {
    background: rgba(255,255,255,.08);
    border-color: rgba(255,255,255,.2);
    color: #fff;
    transform: translateY(-1px);
}
.furn-page__action-btn--primary {
    background: rgba(184,68,90,.15);
    border-color: rgba(184,68,90,.45);
    color: rgba(255,190,200,1);
}
.furn-page__action-btn--primary:hover {
    background: rgba(184,68,90,.28);
    border-color: rgba(184,68,90,.7);
    color: #fff;
}
.furn-page__action-btn.is-copied {
    background: rgba(45,197,14,.15);
    border-color: rgba(45,197,14,.45);
    color: #4ed82b;
}
.furn-page__action-icon { font-size: .9rem; }

/* Powered by */
.furn-page__powered {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(255,255,255,.05);
    text-align: center;
}
.furn-page__powered a {
    font-size: .65rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: rgba(216,212,224,.4);
    text-decoration: none;
    transition: color .2s ease;
}
.furn-page__powered a:hover { color: rgba(255,190,200,.8); }
.furn-page__powered a span {
    color: rgba(184,68,90,.5);
    margin-right: .25rem;
}

/* ── Back to catalog ── */
.furn-page__back {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: .75rem;
    margin-top: 2.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid rgba(255,255,255,.06);
}
.furn-page__back-link {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .55rem 1.1rem;
    font-family: var(--font-label, sans-serif);
    font-size: .55rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--gold-accent, #d4b060);
    background: rgba(212,176,96,.06);
    border: 1px solid rgba(212,176,96,.2);
    border-radius: 8px;
    transition: all .3s cubic-bezier(.32,.72,0,1);
}
.furn-page__back-link:hover {
    background: rgba(212,176,96,.12);
    border-color: rgba(212,176,96,.4);
    box-shadow: 0 0 16px rgba(212,176,96,.08);
}
.furn-page__back-link--cat {
    color: var(--text-dim, #807c74);
    background: rgba(255,255,255,.03);
    border-color: rgba(255,255,255,.1);
}
.furn-page__back-link--cat:hover {
    color: var(--text-primary, #d4d0c8);
    background: rgba(255,255,255,.06);
    border-color: rgba(255,255,255,.2);
    box-shadow: none;
}
.furn-page__back-arrow {
    font-size: .75rem;
    transition: transform .25s;
}
.furn-page__back-link:hover .furn-page__back-arrow {
    transform: translateX(-3px);
}

/* ── Related items ── */
.furn-related {
    margin-top: 3rem;
    padding-top: 2rem;
}
.furn-related__header {
    text-align: center;
    margin-bottom: 1.5rem;
}
.furn-related__divider {
    font-size: .45rem;
    letter-spacing: .5em;
    color: rgba(212,176,96,.2);
    margin-bottom: .75rem;
}
.furn-related__title {
    font-family: var(--font-display, 'Cinzel', serif);
    font-size: 1.1rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--text-primary, #d4d0c8);
    margin: 0;
    text-shadow: 0 2px 8px rgba(0,0,0,.4);
}

.furn-related__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 1rem;
}

.furn-related__card {
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: inherit;
    border-radius: 10px;
    overflow: hidden;
    background: rgba(255,255,255,.025);
    border: 1px solid rgba(255,255,255,.06);
    transition: all .35s cubic-bezier(.32,.72,0,1);
    animation: furnRelIn .4s cubic-bezier(.32,.72,0,1) both;
}
@keyframes furnRelIn {
    from { opacity: 0; transform: translateY(12px); }
    to   { opacity: 1; transform: translateY(0); }
}
.furn-related__card:hover {
    transform: translateY(-3px);
    border-color: color-mix(in srgb, var(--rel-quality, #a09c94) 30%, rgba(255,255,255,.06));
    box-shadow:
        0 8px 24px rgba(0,0,0,.3),
        0 0 20px color-mix(in srgb, var(--rel-quality, #a09c94) 12%, transparent);
}

.furn-related__img-wrap {
    position: relative;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: rgba(255,255,255,.02);
}
.furn-related__img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .35s cubic-bezier(.32,.72,0,1);
}
.furn-related__card:hover .furn-related__img-wrap img {
    transform: scale(1.05);
}
.furn-related__no-img {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    color: rgba(216,212,224,.25);
    font-size: 1.2rem;
}
.furn-related__dot {
    position: absolute;
    bottom: .4rem;
    left: .5rem;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    box-shadow: 0 0 4px currentColor;
}
.furn-related__name {
    padding: .5rem .6rem .2rem;
    font-family: var(--font-display, 'Cinzel', serif);
    font-size: .72rem;
    line-height: 1.3;
    color: var(--text-primary, #d4d0c8);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.furn-related__theme {
    padding: 0 .6rem .5rem;
    font-family: var(--font-label, 'Cinzel', serif);
    font-size: .38rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: rgba(192,158,230,.6);
}

/* ── Used in houses ── */
.furn-used-in {
    margin-top: 2.5rem;
    padding-top: 1.5rem;
}
.furn-used-in__header {
    text-align: center;
    margin-bottom: 1.25rem;
}
.furn-used-in__divider {
    font-size: .45rem;
    letter-spacing: .5em;
    color: rgba(212,176,96,.2);
    margin-bottom: .6rem;
}
.furn-used-in__title {
    font-family: var(--font-display, 'Cinzel', serif);
    font-size: 1rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--text-primary, #d4d0c8);
    margin: 0;
    text-shadow: 0 2px 8px rgba(0,0,0,.4);
}
.furn-used-in__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: .85rem;
}
.furn-used-in__card {
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: inherit;
    border-radius: 10px;
    overflow: hidden;
    background: rgba(255,255,255,.025);
    border: 1px solid rgba(255,255,255,.06);
    transition: all .35s cubic-bezier(.32,.72,0,1);
    animation: furnUsedIn .4s cubic-bezier(.32,.72,0,1) both;
}
@keyframes furnUsedIn {
    from { opacity: 0; transform: translateY(12px); }
    to   { opacity: 1; transform: translateY(0); }
}
.furn-used-in__card:hover {
    transform: translateY(-3px);
    border-color: rgba(212,176,96,.15);
    box-shadow: 0 8px 24px rgba(0,0,0,.3), 0 0 16px rgba(212,176,96,.05);
}
.furn-used-in__img-wrap {
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: rgba(255,255,255,.02);
}
.furn-used-in__img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .35s cubic-bezier(.32,.72,0,1);
}
.furn-used-in__card:hover .furn-used-in__img-wrap img {
    transform: scale(1.05);
}
.furn-used-in__no-img {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    font-size: 1.5rem;
    color: rgba(216,212,224,.2);
}
.furn-used-in__info {
    padding: .6rem .7rem .7rem;
}
.furn-used-in__house-name {
    font-family: var(--font-display, 'Cinzel', serif);
    font-size: .78rem;
    color: var(--text-primary, #d4d0c8);
    line-height: 1.3;
    margin-bottom: .2rem;
}
.furn-used-in__builder {
    display: flex;
    align-items: center;
    gap: .3rem;
    font-size: .68rem;
    color: var(--text-dim, #807c74);
}
.furn-used-in__avatar {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    object-fit: cover;
}
.furn-used-in__eso-house {
    font-family: var(--font-label, 'Cinzel', serif);
    font-size: .4rem;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: rgba(192,158,230,.5);
    margin-top: .15rem;
}
.furn-used-in__more {
    text-align: center;
    margin-top: .85rem;
    font-family: var(--font-label, 'Cinzel', serif);
    font-size: .55rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--gold-accent, #d4b060);
}
.furn-used-in__more-arrow {
    display: inline-block;
    transition: transform .25s;
}
.furn-used-in__more:hover .furn-used-in__more-arrow {
    transform: translateX(4px);
}

/* ── Responsive ── */
@media (max-width: 768px) {
    .furn-page { padding: 5rem .8rem 3rem; }
    .furn-page__layout {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
    .furn-page__name { font-size: 1.3rem; }
    .furn-page__thumb { width: 60px; height: 54px; }
    .furn-page__info-row { font-size: .78rem; }
    .furn-page__lore { font-size: .82rem; padding: .7rem .8rem .7rem 1.4rem; }
    .furn-related__grid {
        grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
        gap: .75rem;
    }
    .furn-related__name { font-size: .65rem; }
    .furn-used-in__grid {
        grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
        gap: .65rem;
    }
    .furn-used-in__house-name { font-size: .7rem; }
}

/* ── Reduced motion ── */
@media (prefers-reduced-motion: reduce) {
    .furn-page__img { transition: none; }
    .furn-page__thumb:hover { transform: none; }
    .furn-page__action-btn:hover { transform: none; }
    .furn-related__card { animation: none; }
    .furn-related__card:hover { transform: none; }
    .furn-related__img-wrap img { transition: none; }
}

/* ── Similar price badge ─────────────────────────────────── */
.furn-related__price-badge {
  font-family: var(--font-label, 'Cinzel', serif);
  font-size: 0.42rem;
  letter-spacing: 0.06em;
  color: var(--gold-accent, #d4b060);
  margin-top: 0.2rem;
  opacity: 0.7;
}

/* ── Multi-source purchase groups ───────────────────────── */
.furn-page__sources {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-top: 1.25rem;
}
.furn-page__source-group {
  background: rgba(10,10,16,0.6);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 10px;
  padding: 0.9rem 1.1rem;
}
.furn-page__source-group-title {
  font-family: var(--font-display, 'Cinzel', serif);
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold-accent, #d4b060);
  margin: 0 0 0.6rem;
  padding-bottom: 0.35rem;
  border-bottom: 1px solid rgba(212,176,96,0.14);
}
.furn-page__source-row {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.4rem;
  padding: 0.3rem 0;
  font-size: 0.85rem;
  color: var(--text-primary, #d4d0c8);
  border-bottom: 1px dashed rgba(255,255,255,0.04);
}
.furn-page__source-row:last-child { border-bottom: 0; }
.furn-page__source-icon {
  font-size: 0.85rem;
  color: var(--gold-accent, #d4b060);
  min-width: 1rem;
}
.furn-page__source-price {
  font-family: var(--font-label, 'Cinzel', serif);
  color: var(--gold-accent, #d4b060);
}
.furn-page__source-price--crowns { color: #e8e8ea; }
.furn-page__source-price--alliance_points { color: #c44444; }
.furn-page__source-price--writ_vouchers { color: #7ab4c8; }
.furn-page__source-price--tel_var_stones { color: #c09ee6; }
.furn-page__source-type { color: var(--text-dim, #807c74); font-style: italic; }
.furn-page__source-vendor { }
.furn-page__source-location { color: var(--text-dim, #807c74); }
.furn-page__source-note { color: var(--text-dim, #807c74); font-size: 0.8em; }
.furn-page__source-pack {
  color: var(--text-primary, #d4d0c8);
  text-decoration: none;
  padding: 0.2rem 0.5rem;
  border: 1px solid rgba(212,176,96,0.2);
  border-radius: 6px;
  transition: all 0.2s;
}
.furn-page__source-pack:hover {
  background: rgba(212,176,96,0.08);
  border-color: rgba(212,176,96,0.4);
}
.furn-page__source-pack-price { color: var(--gold-accent, #d4b060); font-size: 0.82em; }
.furn-page__source-qty {
  font-family: var(--font-label, 'Cinzel', serif);
  font-size: 0.75em;
  color: var(--text-dim);
}

/* ── Availability badges ──────────────────────────────────── */
.furn-source-avail {
  display: inline-block;
  font-family: var(--font-label, 'Cinzel', serif);
  font-size: 0.4rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 0.18rem 0.55rem;
  border-radius: 12px;
  cursor: help;
}
.furn-source-avail--available {
  color: #fff;
  background: rgba(45,197,14,0.18);
  border: 1px solid rgba(45,197,14,0.4);
}
.furn-source-avail--limited {
  color: #fff;
  background: rgba(240,211,90,0.16);
  border: 1px solid rgba(240,211,90,0.4);
}
.furn-source-avail--unavailable {
  color: var(--text-dim);
  background: rgba(128,124,116,0.1);
  border: 1px solid rgba(128,124,116,0.3);
}

/* Item page collect button */
.furn-page__collect-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.5rem 1rem;
  font-family: var(--font-label, 'Cinzel', serif);
  font-size: 0.55rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gold-accent, #d4b060);
  background: rgba(212,176,96,0.06);
  border: 1px solid rgba(212,176,96,0.2);
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.3s cubic-bezier(.32,.72,0,1);
  margin-top: 0.8rem;
}
.furn-page__collect-btn:hover {
  background: rgba(212,176,96,0.12);
  border-color: rgba(212,176,96,0.4);
}

/* -- Ratings + Likes ---------------------------------------------------- */
.furn-page__rating {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  margin-top: 0.6rem;
}
.furn-page__stars { display: flex; gap: 0.15rem; }
.furn-page__star {
  font-size: 1.3rem;
  color: rgba(255,255,255,0.15);
  cursor: pointer;
  transition: color 0.15s, transform 0.15s;
  user-select: none;
}
.furn-page__star.active { color: var(--gold-accent, #d4b060); }
.furn-page__star.hover { color: rgba(212,176,96,0.6); transform: scale(1.1); }
.furn-page__rating-text {
  font-family: var(--font-body, 'Cormorant Garamond', serif);
  font-size: 0.82rem;
  color: var(--text-dim, #807c74);
}
.furn-page__like-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.4rem 0.8rem;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 20px;
  color: var(--text-dim, #807c74);
  font-size: 0.85rem;
  cursor: pointer;
  transition: all 0.2s;
  margin-top: 0.4rem;
}
.furn-page__like-btn.active { color: #e06070; border-color: rgba(224,96,112,0.3); }
.furn-page__like-btn:hover { background: rgba(255,255,255,0.08); }

/* ── Source badge ─────────────────────────────────────────── */
.furn-page__source-badge {
  display: inline-block;
  font-family: var(--font-label, 'Cinzel', serif);
  font-size: 0.45rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--source-color, #807c74);
  border: 1px solid var(--source-color, #807c74);
  border-radius: 12px;
  padding: 0.15rem 0.6rem;
  margin-left: 0.5rem;
  opacity: 0.8;
}

/* ── Multi-currency prices ───────────────────────────────── */
.furn-page__prices {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}
.furn-page__price-line {
  display: flex;
  align-items: baseline;
  gap: 0.35rem;
}
.furn-page__price-icon {
  font-size: 0.75rem;
  color: var(--gold-accent, #d4b060);
  width: 1rem;
  text-align: center;
}
.furn-page__price-amount {
  font-family: var(--font-label, 'Cinzel', serif);
  font-size: 0.9rem;
  color: var(--text-primary, #d4d0c8);
}
.furn-page__price-currency {
  font-family: var(--font-body, 'Cormorant Garamond', serif);
  font-size: 0.82rem;
  color: var(--text-dim, #807c74);
}
/* Gold: restored original ESO gold color + no icon */
.furn-page__price-line--gold .furn-page__price-amount {
  color: #f0d35a;
}
.furn-page__price-line--gold .furn-page__price-currency {
  color: rgba(240,211,90,0.7);
  font-size: 0.7em;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
/* Crowns: white/silver to match ESO in-game color */
.furn-page__price-line--crowns .furn-page__price-icon {
  color: #e8e8ea;
}
.furn-page__price-line--crowns .furn-page__price-amount {
  color: #e8e8ea;
}
/* Alliance Points: red/crimson */
.furn-page__price-line--alliance_points .furn-page__price-icon {
  color: #c44444;
}
/* Writ Vouchers: teal */
.furn-page__price-line--writ_vouchers .furn-page__price-icon {
  color: #7ab4c8;
}
/* Tel Var Stones: purple */
.furn-page__price-line--tel_var_stones .furn-page__price-icon {
  color: #c09ee6;
}

/* ── Antiquity section ───────────────────────────────────── */
.furn-page__antiquity {
  margin-top: 1.5rem;
  padding: 1rem;
  background: rgba(192,158,230,0.04);
  border: 1px solid rgba(192,158,230,0.12);
  border-radius: 10px;
}
.furn-page__antiquity-set {
  margin-top: 0.8rem;
  padding-top: 0.8rem;
  border-top: 1px solid rgba(192,158,230,0.1);
}
.furn-page__antiquity-set-title {
  font-family: var(--font-label, 'Cinzel', serif);
  font-size: 0.65rem;
  letter-spacing: 0.08em;
  color: #c09ee6;
  margin: 0 0 0.5rem;
}
.furn-page__antiquity-pieces {
  list-style: none;
  padding: 0;
  margin: 0;
}
.furn-page__antiquity-pieces li {
  padding: 0.25rem 0;
  font-size: 0.78rem;
  color: var(--text-primary, #d4d0c8);
  border-left: 2px solid rgba(192,158,230,0.2);
  padding-left: 0.6rem;
  margin-bottom: 0.2rem;
}
.furn-page__antiquity-piece-zone { color: var(--text-dim, #807c74); }
.furn-page__antiquity-piece-lead { color: var(--text-dim, #807c74); font-size: 0.7rem; }

/* ── Pack membership ─────────────────────────────────────── */
.furn-page__packs {
  margin-top: 1rem;
}
.furn-page__packs-label {
  display: block;
  font-family: var(--font-label, 'Cinzel', serif);
  font-size: 0.5rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-dim, #807c74);
  margin-bottom: 0.4rem;
}
.furn-page__pack-link {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.4rem 0.8rem;
  background: rgba(212,176,96,0.04);
  border: 1px solid rgba(212,176,96,0.15);
  border-radius: 8px;
  color: var(--text-primary, #d4d0c8);
  text-decoration: none;
  font-size: 0.78rem;
  transition: all 0.2s;
  margin-right: 0.4rem;
  margin-bottom: 0.4rem;
}
.furn-page__pack-link:hover {
  background: rgba(212,176,96,0.1);
  border-color: rgba(212,176,96,0.3);
}
.furn-page__pack-price {
  color: var(--gold-accent, #d4b060);
  font-family: var(--font-label, 'Cinzel', serif);
  font-size: 0.65rem;
}
.furn-page__pack-avail {
  font-size: 0.5rem;
  color: #2dc50e;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

/* ── Achievement required highlight ──────────────────────── */
.furn-page__info-row--achievement dt {
  color: #2dc50e;
}

/* ── UESP external links ─────────────────────────────────── */
.furn-page__uesp-link {
  color: var(--text-primary, #d4d0c8);
  text-decoration: none;
  border-bottom: 1px dotted rgba(212,176,96,0.35);
  transition: all 0.2s cubic-bezier(.32,.72,0,1);
  padding-bottom: 1px;
}
.furn-page__uesp-link:hover {
  color: var(--gold-accent, #d4b060);
  border-bottom-color: rgba(212,176,96,0.8);
  border-bottom-style: solid;
}
.furn-page__ext-icon {
  display: inline-block;
  font-size: 0.7em;
  color: var(--gold-accent, #d4b060);
  opacity: 0.5;
  margin-left: 0.15em;
  transition: opacity 0.2s, transform 0.2s;
}
.furn-page__uesp-link:hover .furn-page__ext-icon {
  opacity: 1;
  transform: translate(1px, -1px);
}

/* ═══════════════════════════════════════════════════════════════════════
   FURNITURE ITEM PAGE — CODEX SKIN
   High-end dark editorial treatment matching /furniture (catalog) + gallery.
   Scoped under .furn-page--codex; reuses existing markup/JS untouched.
   Type: Newsreader (display) · Manrope (body) · JetBrains Mono (labels).
   ═══════════════════════════════════════════════════════════════════════ */
.furn-page--codex {
  --cx-bg-card: #14161e; --cx-bg-elev: #1a1d27;
  --cx-line: rgba(255,255,255,.07); --cx-line-2: rgba(255,255,255,.12);
  --cx-ink: #edeef2; --cx-ink-soft: #aab0bd; --cx-ink-mute: #71768a;
  --cx-accent: #e0a64e; --cx-accent-ink: #0c0e14;
  --cx-accent-glow: color-mix(in srgb, var(--cx-accent) 38%, transparent);
  --cx-accent-soft: color-mix(in srgb, var(--cx-accent) 14%, transparent);
  --cx-display: 'Newsreader', Georgia, serif;
  --cx-body: 'Manrope', system-ui, sans-serif;
  --cx-mono: 'JetBrains Mono', ui-monospace, monospace;
  --cx-ease: cubic-bezier(.22,.78,.27,1);
  --cx-q: #c2c7d0;
  font-family: var(--cx-body);
  color: var(--cx-ink);
  padding-top: 6rem;
}
.furn-page--codex .furn-page__container { max-width: 1180px; }

/* ── breadcrumb ── */
.furn-page--codex .furn-page__breadcrumb { font-family: var(--cx-mono); font-size: 10.5px; letter-spacing: .14em; color: var(--cx-ink-mute); margin-bottom: 1.6rem; }
.furn-page--codex .furn-page__breadcrumb a { color: var(--cx-ink-soft); transition: color var(--cx-ease) .18s; }
.furn-page--codex .furn-page__breadcrumb a:hover { color: var(--cx-accent); }
.furn-page--codex .furn-page__breadcrumb-sep { color: var(--cx-ink-mute); }
.furn-page--codex .furn-page__copy-link { border-radius: 99px; border-color: var(--cx-line); color: var(--cx-ink-soft); font-family: var(--cx-mono); font-size: 10px; letter-spacing: .12em; }
.furn-page--codex .furn-page__copy-link:hover { border-color: color-mix(in srgb, var(--cx-accent) 50%, transparent); background: var(--cx-accent-soft); color: var(--cx-ink); }
.furn-page--codex .furn-page__copy-link.is-copied { color: var(--cx-accent); border-color: color-mix(in srgb, var(--cx-accent) 60%, transparent); }

/* ── layout: gallery (sticky) + details ── */
.furn-page--codex .furn-page__layout { grid-template-columns: 1.02fr .98fr; gap: 42px; align-items: start; }
@media (max-width: 900px) { .furn-page--codex .furn-page__layout { grid-template-columns: 1fr; gap: 28px; } }
@media (min-width: 901px) { .furn-page--codex .furn-page__gallery { position: sticky; top: 92px; align-self: start; } }

/* ── gallery visual ── */
.furn-page--codex .furn-page__main-img {
  border-radius: 20px; overflow: hidden; border: 1px solid var(--cx-line-2);
  background: #0d0f15; aspect-ratio: 4 / 3; isolation: isolate;
  box-shadow: 0 40px 90px -30px rgba(0,0,0,.8),
              0 0 0 1px rgba(0,0,0,.4),
              inset 0 0 0 1px color-mix(in srgb, var(--cx-q) 22%, transparent),
              inset 0 0 70px color-mix(in srgb, var(--cx-q) 12%, transparent);
}
.furn-page--codex .furn-page__img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.02); transition: transform var(--cx-ease) .6s; }
.furn-page--codex .furn-page__main-img:hover .furn-page__img { transform: scale(1.06); }
.furn-page--codex .furn-page__no-img { aspect-ratio: 4/3; border-radius: 20px; border: 1px dashed var(--cx-line-2); color: var(--cx-ink-mute); font-family: var(--cx-display); }
.furn-page--codex .furn-page__thumbs { gap: 9px; margin-top: 12px; }
.furn-page--codex .furn-page__thumb { width: 68px; height: 68px; border-radius: 10px; overflow: hidden; border: 1px solid var(--cx-line); background: #0d0f15; opacity: .62; transition: all var(--cx-ease) .2s; }
.furn-page--codex .furn-page__thumb img { width: 100%; height: 100%; object-fit: cover; }
.furn-page--codex .furn-page__thumb:hover { opacity: .9; border-color: var(--cx-line-2); }
.furn-page--codex .furn-page__thumb.is-active { opacity: 1; border-color: color-mix(in srgb, var(--cx-accent) 60%, transparent); box-shadow: 0 0 0 1px color-mix(in srgb, var(--cx-accent) 45%, transparent), 0 0 16px var(--cx-accent-glow); }
.furn-page--codex .furn-page__source { font-family: var(--cx-mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: var(--cx-ink-mute); margin-top: 14px; }
.furn-page--codex .furn-page__source a { color: var(--cx-ink-soft); border-bottom: 1px solid var(--cx-line-2); }
.furn-page--codex .furn-page__source a:hover { color: var(--cx-accent); }
.furn-page--codex .furn-page__source-icon { color: var(--cx-q); }

/* ── details: name + quality ── */
.furn-page--codex .furn-page__name { font-family: var(--cx-display); font-weight: 500; font-size: clamp(2rem, 3.4vw, 2.9rem); line-height: 1.04; letter-spacing: -.015em; color: #fff; margin: 0 0 4px; }
.furn-page--codex .furn-page__alt-name { font-family: var(--cx-mono); font-size: 12px; letter-spacing: .06em; color: var(--cx-ink-mute); margin-bottom: 16px; }
.furn-page--codex .furn-page__quality {
  display: inline-flex; align-items: center; gap: 9px; border-radius: 99px;
  padding: 7px 14px 7px 11px; font-family: var(--cx-mono); font-size: 11px; letter-spacing: .12em;
  text-transform: uppercase; color: #fff !important;
  background: rgba(8,9,13,.55) !important; border: 1px solid var(--cx-line-2) !important;
  position: relative; backdrop-filter: blur(6px);
}
.furn-page--codex .furn-page__quality::before {
  content: ''; width: 8px; height: 8px; border-radius: 2px; transform: rotate(45deg);
  background: var(--cx-q); box-shadow: 0 0 8px var(--cx-q);
}
.furn-page--codex .furn-page__source-badge { background: transparent; border: 0; border-left: 1px solid var(--cx-line-2); padding-left: 10px; margin-left: 2px; color: var(--cx-ink-soft); }

/* ── rating + like ── */
.furn-page--codex .furn-page__rating { margin-top: 16px; gap: 10px; }
.furn-page--codex .furn-page__star { color: var(--cx-ink-mute); transition: color var(--cx-ease) .15s; }
.furn-page--codex .furn-page__star.active, .furn-page--codex .furn-page__star:hover { color: var(--cx-accent); }
.furn-page--codex .furn-page__rating-text { font-family: var(--cx-mono); font-size: 11px; color: var(--cx-ink-mute); letter-spacing: .04em; }
.furn-page--codex .furn-page__like-btn {
  margin-top: 12px; display: inline-flex; align-items: center; gap: 7px; border-radius: 99px;
  padding: 7px 14px; background: rgba(255,255,255,.04); border: 1px solid var(--cx-line); color: var(--cx-ink-soft);
  font-family: var(--cx-mono); font-size: 12px; transition: all var(--cx-ease) .18s;
}
.furn-page--codex .furn-page__like-btn:hover { border-color: var(--cx-line-2); color: var(--cx-ink); }
.furn-page--codex .furn-page__like-btn.active { color: #e2685a; border-color: color-mix(in srgb, #e2685a 45%, transparent); }

/* ── lore pullquote ── */
.furn-page--codex .furn-page__lore {
  position: relative; margin: 24px 0; padding: 4px 0 4px 22px; border: 0; border-left: 2px solid color-mix(in srgb, var(--cx-accent) 55%, transparent);
  font-family: var(--cx-display); font-weight: 400; font-style: italic; font-size: 1.35rem; line-height: 1.5; color: var(--cx-ink);
}
.furn-page--codex .furn-page__lore-mark { display: none; }
.furn-page--codex .furn-page__lore-alt { font-family: var(--cx-body); font-style: normal; font-size: .92rem; color: var(--cx-ink-mute); margin-top: 10px; padding-left: 22px; }

/* ── info / spec rows ── */
.furn-page--codex .furn-page__info { margin: 22px 0; border-top: 1px solid var(--cx-line); }
.furn-page--codex .furn-page__info-row { display: grid; grid-template-columns: 130px 1fr; gap: 14px; padding: 11px 0; border-bottom: 1px solid var(--cx-line); align-items: baseline; }
.furn-page--codex .furn-page__info-row dt { font-family: var(--cx-mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--cx-ink-mute); }
.furn-page--codex .furn-page__info-row dd { margin: 0; font-size: 14.5px; color: var(--cx-ink); }

/* ── source groups (acquisition) ── */
.furn-page--codex .furn-page__acquisition,
.furn-page--codex .furn-page__sources,
.furn-page--codex .furn-page__antiquity {
  margin-top: 22px; padding: 18px 20px; border-radius: 14px;
  background: color-mix(in srgb, var(--cx-bg-card) 70%, transparent); border: 1px solid var(--cx-line); backdrop-filter: blur(8px);
}
.furn-page--codex .furn-page__acquisition-title,
.furn-page--codex .furn-page__source-group-title {
  font-family: var(--cx-mono); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; color: var(--cx-accent); margin: 0 0 10px;
}
.furn-page--codex .furn-page__source-group + .furn-page__source-group { margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--cx-line); }
.furn-page--codex .furn-page__source-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 13.5px; color: var(--cx-ink-soft); padding: 5px 0; }
.furn-page--codex .furn-page__source-icon { color: var(--cx-accent); }
.furn-page--codex .furn-page__source-price { font-family: var(--cx-mono); font-size: 12.5px; color: #fff; }
.furn-page--codex .furn-page__source-type { color: var(--cx-ink-mute); font-family: var(--cx-mono); font-size: 11px; letter-spacing: .04em; }
.furn-page--codex .furn-page__uesp-link { color: var(--cx-accent); border-bottom: 1px solid color-mix(in srgb, var(--cx-accent) 30%, transparent); }
.furn-page--codex .furn-page__uesp-link:hover { color: var(--cx-accent); border-bottom-color: var(--cx-accent); }
.furn-page--codex .furn-source-avail { font-family: var(--cx-mono); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; padding: 2px 9px; border-radius: 99px; }
.furn-page--codex .furn-source-avail--available { color: #7fe0a8; background: rgba(127,224,168,.1); border: 1px solid rgba(127,224,168,.3); }
.furn-page--codex .furn-source-avail--limited { color: var(--cx-accent); background: var(--cx-accent-soft); border: 1px solid color-mix(in srgb, var(--cx-accent) 30%, transparent); }
.furn-page--codex .furn-source-avail--unavailable { color: var(--cx-ink-mute); background: rgba(255,255,255,.03); border: 1px solid var(--cx-line); }
.furn-page--codex .furn-page__source-pack, .furn-page--codex .furn-page__pack-link { color: var(--cx-ink); border-bottom: 1px solid var(--cx-line-2); }
.furn-page--codex .furn-page__source-pack:hover, .furn-page--codex .furn-page__pack-link:hover { color: var(--cx-accent); }
.furn-page--codex .furn-page__packs { margin-top: 18px; font-size: 13px; color: var(--cx-ink-mute); }
.furn-page--codex .furn-page__packs-label { font-family: var(--cx-mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }

/* ── action bar ── */
.furn-page--codex .furn-page__actions { margin-top: 24px; gap: 10px; }
.furn-page--codex .furn-page__action-btn {
  display: inline-flex; align-items: center; gap: 8px; border-radius: 11px; padding: 11px 16px;
  background: rgba(255,255,255,.04); border: 1px solid var(--cx-line); color: var(--cx-ink-soft);
  font-family: var(--cx-body); font-size: 13px; font-weight: 600; transition: all var(--cx-ease) .18s;
}
.furn-page--codex .furn-page__action-btn:hover { border-color: var(--cx-line-2); color: var(--cx-ink); transform: translateY(-1px); }
.furn-page--codex .furn-page__action-btn--primary { background: var(--cx-accent); color: var(--cx-accent-ink); border-color: var(--cx-accent); box-shadow: 0 8px 22px var(--cx-accent-glow); }
.furn-page--codex .furn-page__action-btn--primary:hover { color: var(--cx-accent-ink); filter: brightness(1.05); }
.furn-page--codex .furn-page__collect-btn { margin-top: 12px; border-radius: 11px; padding: 11px 16px; background: var(--cx-accent-soft); border: 1px solid color-mix(in srgb, var(--cx-accent) 30%, transparent); color: var(--cx-accent); font-family: var(--cx-body); font-weight: 600; transition: all var(--cx-ease) .18s; }
.furn-page--codex .furn-page__collect-btn:hover { background: color-mix(in srgb, var(--cx-accent) 20%, transparent); }
.furn-page--codex .furn-page__powered { margin-top: 18px; font-family: var(--cx-mono); font-size: 10px; letter-spacing: .1em; color: var(--cx-ink-mute); }
.furn-page--codex .furn-page__powered a { color: var(--cx-ink-mute); }
.furn-page--codex .furn-page__powered a:hover { color: var(--cx-accent); }

/* ── section dividers + related/used-in cards ── */
.furn-page--codex .furn-related__divider,
.furn-page--codex .furn-used-in__divider { font-family: var(--cx-mono); letter-spacing: .3em; color: color-mix(in srgb, var(--cx-accent) 60%, transparent); }
.furn-page--codex .furn-related__title,
.furn-page--codex .furn-used-in__title { font-family: var(--cx-display); font-weight: 500; color: #fff; }
.furn-page--codex .furn-related__card,
.furn-page--codex .furn-used-in__card {
  border-radius: 14px; overflow: hidden; background: var(--cx-bg-card); border: 1px solid var(--cx-line);
  transition: transform var(--cx-ease) .3s, border-color var(--cx-ease) .3s, box-shadow var(--cx-ease) .3s;
}
.furn-page--codex .furn-related__card:hover,
.furn-page--codex .furn-used-in__card:hover { transform: translateY(-5px); border-color: var(--cx-line-2); box-shadow: 0 18px 40px rgba(0,0,0,.45); }
.furn-page--codex .furn-related__img-wrap { aspect-ratio: 1/1; position: relative; }
.furn-page--codex .furn-related__img-wrap::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; z-index: 2; background: var(--rel-quality, var(--cx-accent)); box-shadow: 0 0 12px color-mix(in srgb, var(--rel-quality, var(--cx-accent)) 55%, transparent); }
.furn-page--codex .furn-related__name,
.furn-page--codex .furn-used-in__house-name { font-family: var(--cx-display); font-weight: 500; color: #fff; }
.furn-page--codex .furn-related__theme { font-family: var(--cx-mono); font-size: 9.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--cx-ink-mute); }
.furn-page--codex .furn-related__price-badge { font-family: var(--cx-mono); font-size: 11.5px; color: #f3d27a; }
.furn-page--codex .furn-related__dot { display: none; }
.furn-page--codex .furn-used-in__builder, .furn-page--codex .furn-used-in__eso-house { font-family: var(--cx-mono); font-size: 10.5px; color: var(--cx-ink-mute); }
.furn-page--codex .furn-used-in__more { font-family: var(--cx-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--cx-ink-soft); }

/* ── back link ── */
.furn-page--codex .furn-page__back { margin-top: 30px; }
.furn-page--codex .furn-page__back-link {
  display: inline-flex; align-items: center; gap: 8px; border-radius: 99px; padding: 9px 16px;
  background: rgba(255,255,255,.04); border: 1px solid var(--cx-line); color: var(--cx-ink-soft);
  font-family: var(--cx-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; transition: all var(--cx-ease) .18s;
}
.furn-page--codex .furn-page__back-link:hover { border-color: var(--cx-line-2); color: var(--cx-ink); }
.furn-page--codex .furn-page__back-link--cat:hover { color: var(--cx-accent); border-color: color-mix(in srgb, var(--cx-accent) 45%, transparent); }
