/* =========================================================
   NIKAN LUXURY THEME 2.0
   Clean visual layer, mobile-first fixes and performance guards
   ========================================================= */

:root {
    --bg: #0f0a08;
    --surface: #17100d;
    --surface-light: #211713;
    --surface-raised: #2a1d17;
    --gold: #c6a15b;
    --gold-light: #dfbd78;
    --white: #faf7f3;
    --text: #e8ded4;
    --text-muted: #b9aa9d;
    --border: rgba(198, 161, 91, .19);
    --shadow: 0 22px 60px rgba(0, 0, 0, .34);
    --header-height: 90px;
    --header-height-scrolled: 72px;
    --focus-ring: 0 0 0 3px rgba(198, 161, 91, .28);
}

html { scroll-behavior: smooth; }
html, body { width: 100%; max-width: 100%; overflow-x: clip; }
body.nikan-v2 { background: var(--bg); }
body.nikan-v2.no-scroll,
body.nikan-v2.product-dialog-open,
body.nikan-v2.product-zoom-open { overflow: hidden; }
body.nikan-v2 *, body.nikan-v2 *::before, body.nikan-v2 *::after { box-sizing: border-box; }
body.nikan-v2 img, body.nikan-v2 svg, body.nikan-v2 video { max-width: 100%; }
body.nikan-v2 button, body.nikan-v2 input, body.nikan-v2 select { font: inherit; }
body.nikan-v2 button { cursor: pointer; }
body.nikan-v2 :focus-visible { outline: 2px solid var(--gold-light); outline-offset: 3px; }

.skip-link {
    position: fixed;
    top: 10px;
    right: 10px;
    z-index: 9999;
    padding: 10px 16px;
    border-radius: 10px;
    color: #130d0a;
    background: var(--gold-light);
    transform: translateY(-160%);
}
.skip-link:focus { transform: translateY(0); }

/* Native reveal, without AOS runtime. */
body.nikan-v2.aos-native.aos-reveal-ready [data-aos] {
    opacity: 0;
    transform: translate3d(0, 22px, 0);
    transition: opacity .58s ease, transform .58s cubic-bezier(.22, 1, .36, 1);
}
body.nikan-v2.aos-native.aos-reveal-ready [data-aos="fade-left"],
body.nikan-v2.aos-native.aos-reveal-ready [data-aos="fade-right"] { transform: translate3d(0, 22px, 0); }
body.nikan-v2.aos-native.aos-reveal-ready [data-aos].aos-native--visible { opacity: 1; transform: none; }
body.nikan-v2.reduce-motion *,
body.nikan-v2.reduce-motion *::before,
body.nikan-v2.reduce-motion *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
}
@media (prefers-reduced-motion: reduce) {
    body.nikan-v2 *, body.nikan-v2 *::before, body.nikan-v2 *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}

/* Buttons */
body.nikan-v2 .btn {
    min-height: 50px;
    height: auto;
    max-width: 100%;
    padding: 12px 28px;
    border: 1px solid transparent;
    line-height: 1.45;
    white-space: nowrap;
    isolation: isolate;
}
body.nikan-v2 .btn--primary {
    color: #17100c;
    border-color: rgba(255, 235, 190, .22);
    background: linear-gradient(135deg, #9e773b 0%, #c39a53 32%, #d8b872 52%, #bb914c 76%, #987138 100%);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.25), inset 0 -1px 0 rgba(58,35,14,.25), 0 8px 24px rgba(198,161,91,.13);
}
body.nikan-v2 .btn--secondary,
body.nikan-v2 .btn--outline {
    color: var(--white);
    border-color: rgba(198,161,91,.65);
    background: rgba(18, 12, 9, .34);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
}
@media (hover: hover) and (pointer: fine) {
    body.nikan-v2 .btn--primary:hover { transform: translateY(-1px); filter: brightness(1.05); }
    body.nikan-v2 .btn--secondary:hover,
    body.nikan-v2 .btn--outline:hover { transform: translateY(-1px); color: #17100c; background: var(--gold-light); }
}

/* Header */
body.nikan-v2 .site-header.header {
    height: var(--header-height);
    background: rgba(15, 10, 8, .82);
    border-bottom: 1px solid rgba(198,161,91,.16);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    transition: height .25s ease, background-color .25s ease, box-shadow .25s ease;
}
body.nikan-v2 .site-header.header--scrolled {
    height: var(--header-height-scrolled);
    background: rgba(15, 10, 8, .96);
    box-shadow: 0 12px 34px rgba(0,0,0,.25);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
}
body.nikan-v2 .site-header .header__wrapper {
    min-width: 0;
    height: var(--header-height);
    gap: clamp(16px, 2.4vw, 34px);
    transition: height .25s ease;
}
body.nikan-v2 .site-header.header--scrolled .header__wrapper { height: var(--header-height-scrolled); }
body.nikan-v2 .site-header .header__logo {
    display: flex;
    flex: 0 1 var(--nikan-header-logo-width);
    width: min(var(--nikan-header-logo-width), 24vw);
    max-width: 300px;
    min-width: 120px;
    align-items: center;
    line-height: 0;
}
body.nikan-v2 .site-header .header__logo img,
body.nikan-v2 .site-header .header__logo-image {
    display: block;
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: 68px !important;
    object-fit: contain;
}
body.nikan-v2 .site-header.header--scrolled .header__logo img { max-height: 56px !important; }
body.nikan-v2 .site-header .header__nav { min-width: 0; margin-inline: auto; }
body.nikan-v2 .site-header .header__menu { gap: clamp(19px, 2.15vw, 38px); }
body.nikan-v2 .site-header .header__link { font-size: 14px; }
body.nikan-v2 .site-header .header__actions { flex: 0 0 auto; gap: 12px; }
body.nikan-v2 .site-header .header__search,
body.nikan-v2 .site-header .header__toggle {
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    border: 1px solid rgba(198,161,91,.2);
    background: rgba(255,255,255,.035);
}
body.nikan-v2 .site-header .header__search svg,
body.nikan-v2 .mobile-menu__close svg,
body.nikan-v2 .search-panel__close svg {
    width: 22px;
    height: 22px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
}
body.nikan-v2 .site-header .header__search:hover { color: #17100c; background: var(--gold); }

/* Mobile drawer */
body.nikan-v2 .overlay { z-index: 2100; background: rgba(6,4,3,.76); }
body.nikan-v2 .mobile-menu {
    right: 0;
    left: auto;
    inset: 0 0 0 auto;
    z-index: 2300;
    width: min(360px, calc(100% - 24px));
    max-width: calc(100% - 24px);
    height: 100dvh;
    border: 0;
    border-left: none;
    border-right: 1px solid rgba(198,161,91,.2);
    background: #15100d;
    transform: translateX(105%);
    transition: transform .34s cubic-bezier(.22,1,.36,1);
    contain: layout paint;
}
body.nikan-v2 .mobile-menu.mobile-menu--active { right: 0; left: auto; transform: translateX(0); }
body.nikan-v2 .mobile-menu__head { gap: 18px; }
body.nikan-v2 .mobile-menu__logo {
    width: min(var(--nikan-header-logo-width-mobile), 180px) !important;
    height: auto !important;
    max-width: 180px !important;
    max-height: 64px !important;
    object-fit: contain;
}
body.nikan-v2 .mobile-menu__close { flex: 0 0 42px; }
body.nikan-v2 .mobile-menu__list { gap: 0; }
body.nikan-v2 .mobile-menu__list li:not(:last-child) { border-bottom: 1px solid rgba(255,255,255,.09); }
body.nikan-v2 .mobile-menu__list a { border: 0; padding: 15px 2px; }

/* Search */
body.nikan-v2 .search-panel {
    inset: var(--header-height) 0 auto 0;
    z-index: 2200;
    max-height: calc(100dvh - var(--header-height));
    overflow-y: auto;
    padding: 26px 0 30px;
    visibility: hidden;
    pointer-events: none;
    background: rgba(15,10,8,.985);
    border-bottom-color: rgba(198,161,91,.2);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    transform: translateY(-18px);
    opacity: 0;
}
body.nikan-v2 .site-header.header--scrolled + .search-panel { top: var(--header-height-scrolled); }
body.nikan-v2 .search-panel.search-panel--active {
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
    opacity: 1;
}
body.nikan-v2 .search-panel__container { max-width: 980px; }
body.nikan-v2 .search-panel__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 16px;
}
body.nikan-v2 .search-panel__head div { display: flex; flex-direction: column; gap: 3px; }
body.nikan-v2 .search-panel__head span { color: var(--gold); font-size: 12px; font-weight: 700; }
body.nikan-v2 .search-panel__head strong { color: var(--white); font-size: 18px; }
body.nikan-v2 .search-panel__close { flex: 0 0 42px; width: 42px; height: 42px; border: 1px solid var(--border); }
body.nikan-v2 .search-panel__form {
    width: 100%;
    height: 66px;
    gap: 12px;
    padding: 7px 9px 7px 18px;
    border: 1px solid rgba(198,161,91,.34);
    border-radius: 17px;
    background: #1b130f;
    box-shadow: 0 16px 42px rgba(0,0,0,.22);
}
body.nikan-v2 .search-panel__icon { width: 22px; height: 22px; flex: 0 0 22px; fill: none; stroke: var(--gold); stroke-width: 1.8; stroke-linecap: round; }
body.nikan-v2 .search-panel__form input { min-width: 0; width: 100%; font-size: 15px; }
body.nikan-v2 .search-panel__submit {
    min-width: 104px;
    height: 50px;
    padding-inline: 20px;
    border-radius: 12px;
    color: #17100c;
    background: var(--gold);
    font-weight: 750;
}
body.nikan-v2 .search-suggestions { min-height: 52px; margin-top: 14px; }
body.nikan-v2 .search-suggestions__message { margin: 0; padding: 15px 17px; border: 1px dashed rgba(198,161,91,.2); border-radius: 12px; color: var(--text-muted); font-size: 13px; }
body.nikan-v2 .search-suggestions__grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 9px; }
body.nikan-v2 .search-suggestion {
    display: grid;
    grid-template-columns: 54px minmax(0,1fr);
    align-items: center;
    gap: 12px;
    min-width: 0;
    padding: 8px;
    border: 1px solid rgba(255,255,255,.07);
    border-radius: 12px;
    color: var(--text);
    background: rgba(255,255,255,.025);
    transition: border-color .2s ease, background-color .2s ease;
}
body.nikan-v2 .search-suggestion:hover { border-color: rgba(198,161,91,.46); background: rgba(198,161,91,.07); }
body.nikan-v2 .search-suggestion img,
body.nikan-v2 .search-suggestion__placeholder { width: 54px; height: 54px; border-radius: 9px; object-fit: cover; background: var(--surface-raised); }
body.nikan-v2 .search-suggestion__placeholder { display: grid; place-items: center; color: var(--gold); font-weight: 900; }
body.nikan-v2 .search-suggestion > span:last-child { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
body.nikan-v2 .search-suggestion strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; }
body.nikan-v2 .search-suggestion small { color: var(--text-muted); font-size: 11px; }
body.nikan-v2 .search-suggestion--term { grid-template-columns: 40px minmax(0,1fr); }
body.nikan-v2 .search-suggestion--term .search-suggestion__placeholder { width: 40px; height: 40px; }
body.nikan-v2 .search-suggestions__all { display: flex; justify-content: center; margin-top: 12px; padding: 11px; color: var(--gold-light); font-size: 13px; font-weight: 700; }

/* Centered hero */
body.nikan-v2 .hero.hero--centered {
    min-height: max(var(--nikan-hero-min-height), 100svh) !important;
    padding: calc(var(--header-height) + 40px) 0 44px !important;
    align-items: center !important;
    background-image: none !important;
    isolation: isolate;
}
body.nikan-v2 .hero__media { position: absolute; inset: 0; z-index: 0; overflow: hidden; }
body.nikan-v2 .hero__media picture,
body.nikan-v2 .hero__media img { display: block; width: 100%; height: 100%; }
body.nikan-v2 .hero__media img {
    max-width: none;
    object-fit: cover;
    object-position: var(--nikan-hero-desktop-x) var(--nikan-hero-desktop-y);
    transform: scale(var(--nikan-hero-desktop-scale));
    transform-origin: var(--nikan-hero-desktop-x) var(--nikan-hero-desktop-y);
}
body.nikan-v2 .hero.hero--centered .hero__overlay {
    z-index: 1;
    background:
        radial-gradient(circle at 50% 46%, rgba(8,5,4,.08), rgba(8,5,4,.44) 66%, rgba(8,5,4,.65) 100%),
        linear-gradient(rgba(15,10,8,var(--nikan-hero-overlay)), rgba(15,10,8,.78));
}
body.nikan-v2 .hero__container { position: relative; z-index: 2; }
body.nikan-v2 .hero.hero--centered .hero__wrapper {
    display: flex;
    min-height: calc(max(var(--nikan-hero-min-height), 100svh) - var(--header-height) - 84px) !important;
    align-items: center !important;
    justify-content: center;
    padding: 0 !important;
}
body.nikan-v2 .hero.hero--centered .hero__content {
    width: min(100%, 880px);
    max-width: 880px;
    margin-inline: auto;
    text-align: center;
}
body.nikan-v2 .hero__brand { width: min(var(--nikan-hero-logo-width), 80vw); margin: 0 auto clamp(16px,2.4vh,28px); line-height: 0; }
body.nikan-v2 .hero__brand-image {
    display: block;
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: 300px;
    margin-inline: auto;
    object-fit: contain;
    filter: drop-shadow(0 14px 30px rgba(0,0,0,.24));
}
body.nikan-v2 .hero.hero--centered .hero__subtitle {
    margin-bottom: 13px;
    font-size: 13px;
    letter-spacing: 3.5px;
}
body.nikan-v2 .hero.hero--centered .hero__title {
    max-width: 850px;
    margin: 0 auto 18px;
    font-size: clamp(38px, 5.4vw, 68px);
    line-height: 1.22;
    text-wrap: balance;
}
body.nikan-v2 .hero.hero--centered .hero__text {
    max-width: 700px;
    margin: 0 auto 26px;
    font-size: clamp(15px, 1.45vw, 18px);
    line-height: 1.9;
    text-wrap: pretty;
}
body.nikan-v2 .hero.hero--centered .hero__buttons { justify-content: center; flex-wrap: wrap; }
body.nikan-v2 .hero.hero--centered .hero__meta {
    width: min(100%, 660px);
    justify-content: center;
    margin: 36px auto 0;
    padding-top: 23px;
    border-top-color: rgba(255,255,255,.14);
}
body.nikan-v2 .hero.hero--centered .hero__meta-item { min-width: 110px; align-items: center; text-align: center; }
body.nikan-v2 .hero__scroll { display: none !important; }

/* Larger gold section labels */
body.nikan-v2 .section-head__eyebrow {
    margin-bottom: 15px;
    font-size: clamp(15px, 1.45vw, 20px);
    line-height: 1.5;
    letter-spacing: .02em;
    font-weight: 850;
}
body.nikan-v2 .section-head__title { text-wrap: balance; }

/* Product cards */
body.nikan-v2 .products__grid { align-items: stretch; }
body.nikan-v2 .product-card { display: flex; min-width: 0; flex-direction: column; background: #130d0b; border-color: rgba(198,161,91,.16); }
body.nikan-v2 .product-card__media { display: block; height: auto; aspect-ratio: 1 / .78; overflow: hidden; background: #211713; }
body.nikan-v2 .product-card__image { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .5s cubic-bezier(.22,1,.36,1); }
body.nikan-v2 .product-card__placeholder { display: grid; width: 100%; height: 100%; place-items: center; color: var(--gold); font-size: 35px; }
body.nikan-v2 .product-card__body { display: flex; flex: 1; flex-direction: column; }
body.nikan-v2 .product-card__details { display: flex; flex-wrap: wrap; gap: 7px; margin: -7px 0 16px; }
body.nikan-v2 .product-card__details span { padding: 4px 8px; border: 1px solid rgba(255,255,255,.07); border-radius: 999px; color: var(--text-muted); font-size: 11px; }
body.nikan-v2 .product-card__foot { margin-top: auto; }
@media (hover: hover) and (pointer: fine) {
    body.nikan-v2 .product-card:hover .product-card__image { transform: scale(1.035); }
}

/* Catalog archive */
body.nikan-v2 .catalog-page { min-height: 70vh; }
body.nikan-v2 .catalog-hero {
    position: relative;
    min-height: 420px;
    display: flex;
    align-items: flex-end;
    padding: calc(var(--header-height) + 76px) 0 70px;
    overflow: hidden;
    background: radial-gradient(circle at 25% 10%, rgba(198,161,91,.12), transparent 42%), #120c0a;
}
body.nikan-v2 .catalog-hero__media { position: absolute; inset: 0; }
body.nikan-v2 .catalog-hero__media img { width: 100%; height: 100%; object-fit: cover; }
body.nikan-v2 .catalog-hero__overlay { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(15,10,8,.96), rgba(15,10,8,.5)); }
body.nikan-v2 .catalog-hero__content { position: relative; z-index: 1; max-width: 920px; }
body.nikan-v2 .catalog-hero h1 { margin: 0; color: var(--white); font-size: clamp(38px,5vw,64px); line-height: 1.25; }
body.nikan-v2 .catalog-hero__description { max-width: 680px; margin-top: 15px; color: var(--text); line-height: 1.9; }
body.nikan-v2 .catalog-hero__description p { margin: 0; }
body.nikan-v2 .catalog-results { padding: 70px 0 105px; }
body.nikan-v2 .catalog-filters { padding: 22px; border: 1px solid rgba(198,161,91,.18); border-radius: 20px; background: #15100d; box-shadow: 0 18px 50px rgba(0,0,0,.17); }
body.nikan-v2 .catalog-filters__head { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 17px; }
body.nikan-v2 .catalog-filters__head div { display: flex; flex-direction: column; gap: 3px; }
body.nikan-v2 .catalog-filters__head span { color: var(--gold); font-size: 12px; }
body.nikan-v2 .catalog-filters__head strong { color: var(--white); font-size: 17px; }
body.nikan-v2 .catalog-filters__toggle { display: none; padding: 9px 13px; border: 1px solid var(--border); border-radius: 9px; color: var(--gold-light); }
body.nikan-v2 .catalog-filters__grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 14px; }
body.nikan-v2 .catalog-filter { display: flex; min-width: 0; flex-direction: column; gap: 7px; color: var(--text-muted); font-size: 12px; }
body.nikan-v2 .catalog-filter select { width: 100%; height: 48px; padding: 0 13px; border: 1px solid rgba(255,255,255,.09); border-radius: 10px; outline: none; color: var(--white); background: #211713; }
body.nikan-v2 .catalog-filter select:focus { border-color: var(--gold); box-shadow: var(--focus-ring); }
body.nikan-v2 .catalog-filters__actions { display: flex; align-items: center; gap: 14px; align-self: end; }
body.nikan-v2 .catalog-filters__actions .btn { min-height: 48px; }
body.nikan-v2 .catalog-filters__reset { color: var(--text-muted); font-size: 13px; }
body.nikan-v2 .catalog-results__bar { display: flex; align-items: center; justify-content: space-between; margin: 32px 0 0; }
body.nikan-v2 .catalog-results__bar p { margin: 0; color: var(--text-muted); font-size: 13px; }
body.nikan-v2 .catalog-products__grid { margin-top: 24px; }
body.nikan-v2 .catalog-pagination { margin-top: 50px; }
body.nikan-v2 .nav-links { display: flex; justify-content: center; flex-wrap: wrap; gap: 7px; }
body.nikan-v2 .page-numbers { min-width: 42px; height: 42px; display: grid; place-items: center; padding-inline: 10px; border: 1px solid var(--border); border-radius: 9px; color: var(--text); }
body.nikan-v2 .page-numbers.current, body.nikan-v2 .page-numbers:hover { color: #17100c; background: var(--gold); }
body.nikan-v2 .catalog-empty { display: flex; min-height: 330px; align-items: center; justify-content: center; flex-direction: column; gap: 12px; padding: 40px; text-align: center; }
body.nikan-v2 .catalog-empty i { color: var(--gold); font-size: 48px; }
body.nikan-v2 .catalog-empty h2, body.nikan-v2 .catalog-empty p { margin: 0; }
body.nikan-v2 .catalog-empty p { color: var(--text-muted); }

/* Search result page */
body.nikan-v2 .search-results-hero { padding: calc(var(--header-height) + 80px) 0 55px; background: #120c0a; }
body.nikan-v2 .search-results-hero h1 { margin: 0; color: var(--white); font-size: clamp(34px,4vw,54px); }
body.nikan-v2 .search-results-content { padding: 60px 0 100px; }
body.nikan-v2 .search-result-card { padding: 24px; border: 1px solid var(--border); border-radius: 16px; background: var(--surface); }

/* Product viewer zoom entry */
body.nikan-v2 .product-viewer__slide { position: relative; }
body.nikan-v2 .product-viewer__zoom-trigger { position: relative; display: block; width: 100%; height: 100%; padding: 0; color: inherit; cursor: zoom-in; }
body.nikan-v2 .product-viewer__zoom-badge {
    position: absolute;
    right: 14px;
    bottom: 14px;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 8px 11px;
    border: 1px solid rgba(198,161,91,.5);
    border-radius: 999px;
    color: var(--white);
    background: rgba(15,10,8,.82);
    font-size: 11px;
    pointer-events: none;
}
body.nikan-v2 .product-viewer__zoom-badge svg { width: 17px; height: 17px; }
body.nikan-v2 .product-viewer__nav,
body.nikan-v2 .product-viewer__status { -webkit-backdrop-filter: none; backdrop-filter: none; background: rgba(15,10,8,.88); }

/* Full-screen zoom */
body.nikan-v2 .product-zoom-dialog {
    width: 100vw;
    max-width: none;
    height: 100dvh;
    max-height: none;
    margin: 0;
    padding: 0;
    border: 0;
    color: var(--text);
    background: rgba(7,5,4,.98);
    overflow: hidden;
}
body.nikan-v2 .product-zoom-dialog::backdrop { background: rgba(0,0,0,.9); }
body.nikan-v2 .product-zoom-dialog__panel { position: relative; width: 100%; height: 100%; display: grid; grid-template-rows: auto minmax(0,1fr); }
body.nikan-v2 .product-zoom-dialog__toolbar {
    position: relative;
    z-index: 5;
    min-height: 72px;
    display: grid;
    grid-template-columns: auto minmax(0,1fr) auto;
    align-items: center;
    gap: 18px;
    padding: 12px max(14px, env(safe-area-inset-left)) 12px max(14px, env(safe-area-inset-right));
    border-bottom: 1px solid rgba(255,255,255,.08);
    background: #0d0907;
}
body.nikan-v2 .product-zoom-dialog__controls { display: flex; gap: 7px; }
body.nikan-v2 .product-zoom-dialog__toolbar button,
body.nikan-v2 .product-zoom-dialog__nav {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(198,161,91,.26);
    border-radius: 50%;
    color: var(--white);
    background: rgba(255,255,255,.035);
}
body.nikan-v2 .product-zoom-dialog__toolbar button:hover,
body.nikan-v2 .product-zoom-dialog__nav:hover { color: #17100c; background: var(--gold); }
body.nikan-v2 .product-zoom-dialog__toolbar svg,
body.nikan-v2 .product-zoom-dialog__nav svg { width: 21px; height: 21px; fill: none; stroke: currentColor; }
body.nikan-v2 .product-zoom-dialog__help { margin: 0; color: var(--text-muted); text-align: center; font-size: 12px; }
body.nikan-v2 .product-zoom-dialog__close { justify-self: end; }
body.nikan-v2 .product-zoom-dialog__stage {
    position: relative;
    min-width: 0;
    min-height: 0;
    display: grid;
    place-items: center;
    overflow: hidden;
    touch-action: none;
    cursor: zoom-in;
    user-select: none;
}
body.nikan-v2 .product-zoom-dialog__stage.is-zoomed { cursor: grab; }
body.nikan-v2 .product-zoom-dialog__stage.is-zoomed:active { cursor: grabbing; }
body.nikan-v2 .product-zoom-dialog__stage img {
    display: block;
    width: auto;
    height: auto;
    max-width: min(92vw, 1500px);
    max-height: calc(100dvh - 108px);
    object-fit: contain;
    transform-origin: center;
    will-change: transform;
    transition: transform .12s ease-out;
    -webkit-user-drag: none;
    user-select: none;
}
body.nikan-v2 .product-zoom-dialog__stage.is-zoomed img { transition: none; }
body.nikan-v2 .product-zoom-dialog__nav { position: absolute; top: 52%; z-index: 6; transform: translateY(-50%); background: rgba(15,10,8,.78); }
body.nikan-v2 .product-zoom-dialog__nav--prev { right: 18px; }
body.nikan-v2 .product-zoom-dialog__nav--next { left: 18px; }
body.nikan-v2 .product-zoom-dialog__status { position: absolute; right: 50%; bottom: 18px; z-index: 6; padding: 7px 12px; border-radius: 999px; color: var(--white); background: rgba(15,10,8,.78); transform: translateX(50%); font-size: 12px; direction: ltr; }

/* Preserve footer logo proportions with horizontal branding. */
body.nikan-v2 .footer__logo { width: min(var(--nikan-header-logo-width), 230px); height: auto !important; max-height: 82px; object-fit: contain; }

/* Admin bar offsets */
body.admin-bar.nikan-v2 .site-header { top: 32px; }
body.admin-bar.nikan-v2 .search-panel { top: calc(var(--header-height) + 32px); }
body.admin-bar.nikan-v2 .site-header.header--scrolled + .search-panel { top: calc(var(--header-height-scrolled) + 32px); }

@media (max-width: 1200px) {
    body.nikan-v2 .site-header .header__menu { gap: 18px; }
    body.nikan-v2 .site-header .header__logo { width: min(var(--nikan-header-logo-width), 19vw); }
    body.nikan-v2 .catalog-filters__grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}

@media (max-width: 992px) {
    :root { --header-height: 78px; --header-height-scrolled: 70px; }
    body.nikan-v2 .site-header.header,
    body.nikan-v2 .site-header.header--scrolled { -webkit-backdrop-filter: none; backdrop-filter: none; background: rgba(15,10,8,.97); }
    body.nikan-v2 .site-header .header__wrapper {
        display: grid;
        grid-template-columns: auto minmax(0,1fr) auto;
        direction: ltr;
        gap: 10px;
    }
    body.nikan-v2 .site-header .header__logo {
        grid-column: 1;
        justify-self: start;
        width: min(var(--nikan-header-logo-width-mobile), 180px);
        min-width: 0;
        max-width: 180px;
    }
    body.nikan-v2 .site-header .header__logo img {
        width: 100% !important;
        height: auto !important;
        max-width: 100% !important;
        max-height: 58px !important;
    }
    body.nikan-v2 .site-header.header--scrolled .header__logo img { max-height: 52px !important; }
    body.nikan-v2 .site-header .header__nav { display: none; }
    body.nikan-v2 .site-header .header__actions { grid-column: 3; justify-self: end; direction: ltr; gap: 5px; }
    body.nikan-v2 .site-header .header__cta { display: none; }
    body.nikan-v2 .site-header .header__toggle { display: flex; order: 2; }
    body.nikan-v2 .site-header .header__search { order: 1; }
    body.nikan-v2 .hero.hero--centered { min-height: max(var(--nikan-hero-min-height-mobile), 100svh) !important; padding: calc(var(--header-height) + 28px) 0 30px !important; }
    body.nikan-v2 .hero.hero--centered .hero__wrapper { min-height: calc(max(var(--nikan-hero-min-height-mobile), 100svh) - var(--header-height) - 58px) !important; }
    body.nikan-v2 .product-viewer__nav { -webkit-backdrop-filter: none; backdrop-filter: none; }
}

@media (max-width: 782px) {
    body.admin-bar.nikan-v2 .site-header { top: 46px; }
    body.admin-bar.nikan-v2 .search-panel { top: calc(var(--header-height) + 46px); }
    body.admin-bar.nikan-v2 .site-header.header--scrolled + .search-panel { top: calc(var(--header-height-scrolled) + 46px); }
}

@media (max-width: 768px) {
    body.nikan-v2 section { padding-block: 68px; }
    body.nikan-v2 .container { width: min(calc(100% - 28px), var(--container)); }
    body.nikan-v2 .search-panel { padding: 18px 0 24px; }
    body.nikan-v2 .search-panel__head strong { font-size: 15px; }
    body.nikan-v2 .search-panel__form { height: 58px; padding: 5px 6px 5px 12px; }
    body.nikan-v2 .search-panel__submit { min-width: 82px; height: 46px; padding-inline: 13px; }
    body.nikan-v2 .search-suggestions__grid { grid-template-columns: 1fr; }
    body.nikan-v2 .hero__media img {
        object-position: var(--nikan-hero-mobile-x) var(--nikan-hero-mobile-y);
        transform: scale(var(--nikan-hero-mobile-scale));
        transform-origin: var(--nikan-hero-mobile-x) var(--nikan-hero-mobile-y);
    }
    body.nikan-v2 .hero__brand { width: min(var(--nikan-hero-logo-width-mobile), 78vw); margin-bottom: 15px; }
    body.nikan-v2 .hero__brand-image { max-height: 220px; }
    body.nikan-v2 .hero.hero--centered .hero__title { font-size: clamp(30px, 8.6vw, 42px); line-height: 1.3; }
    body.nikan-v2 .hero.hero--centered .hero__text { font-size: 14.5px; line-height: 1.85; }
    body.nikan-v2 .hero.hero--centered .hero__buttons { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); width: min(100%, 520px); margin-inline: auto; gap: 10px; }
    body.nikan-v2 .hero.hero--centered .hero__buttons .btn { width: 100%; min-width: 0; padding-inline: 14px; }
    body.nikan-v2 .hero.hero--centered .hero__meta { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin-top: 25px; padding-top: 17px; }
    body.nikan-v2 .hero.hero--centered .hero__meta-item { min-width: 0; }
    body.nikan-v2 .hero.hero--centered .hero__meta-item strong { font-size: 22px; }
    body.nikan-v2 .hero.hero--centered .hero__meta-item span { font-size: 10.5px; }
    body.nikan-v2 .catalog-hero { min-height: 350px; padding: calc(var(--header-height) + 55px) 0 48px; }
    body.nikan-v2 .catalog-results { padding: 42px 0 80px; }
    body.nikan-v2 .catalog-filters { padding: 16px; }
    body.nikan-v2 .catalog-filters__head { margin-bottom: 0; }
    body.nikan-v2 .catalog-filters__toggle { display: inline-flex; }
    body.nikan-v2 .catalog-filters__grid { display: none; grid-template-columns: 1fr; margin-top: 16px; }
    body.nikan-v2 .catalog-filters--open .catalog-filters__grid { display: grid; }
    body.nikan-v2 .catalog-filters__actions { width: 100%; }
    body.nikan-v2 .catalog-filters__actions .btn { flex: 1; }
    body.nikan-v2 .catalog-products__grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
    body.nikan-v2 .product-card__body { padding: 17px 16px 20px; }
    body.nikan-v2 .product-viewer__zoom-badge b { display: none; }
    body.nikan-v2 .product-viewer__zoom-badge { width: 40px; height: 40px; justify-content: center; padding: 0; }
    body.nikan-v2 .product-zoom-dialog__toolbar { min-height: 62px; grid-template-columns: 1fr auto; gap: 9px; }
    body.nikan-v2 .product-zoom-dialog__help { display: none; }
    body.nikan-v2 .product-zoom-dialog__controls { min-width: 0; }
    body.nikan-v2 .product-zoom-dialog__toolbar button { width: 40px; height: 40px; }
    body.nikan-v2 .product-zoom-dialog__stage img { max-width: 96vw; max-height: calc(100dvh - 82px); }
    body.nikan-v2 .product-zoom-dialog__nav { width: 42px; height: 42px; top: auto; bottom: 15px; transform: none; }
    body.nikan-v2 .product-zoom-dialog__nav--prev { right: 15px; }
    body.nikan-v2 .product-zoom-dialog__nav--next { left: 15px; }
    body.nikan-v2 .product-zoom-dialog__status { bottom: 20px; }
    body.nikan-v2 [data-aos="fade-left"], body.nikan-v2 [data-aos="fade-right"] { transform: translate3d(0,18px,0) !important; }
    body.nikan-v2 [data-aos].aos-native--visible { transform: none !important; }
}

@media (max-width: 560px) {
    :root { --header-height: 74px; --header-height-scrolled: 68px; }
    body.nikan-v2 .site-header .header__wrapper { gap: 5px; }
    body.nikan-v2 .site-header .header__logo { width: min(var(--nikan-header-logo-width-mobile), 42vw); }
    body.nikan-v2 .site-header .header__logo img { max-height: 54px !important; }
    body.nikan-v2 .site-header .header__search,
    body.nikan-v2 .site-header .header__toggle { width: 41px; height: 41px; flex-basis: 41px; }
    body.nikan-v2 .hero.hero--centered { padding-top: calc(var(--header-height) + 18px) !important; padding-bottom: 22px !important; }
    body.nikan-v2 .hero.hero--centered .hero__subtitle { font-size: 11px; letter-spacing: 2.2px; }
    body.nikan-v2 .hero.hero--centered .hero__text { margin-bottom: 20px; }
    body.nikan-v2 .section-head__eyebrow { font-size: 17px; }
    body.nikan-v2 .catalog-products__grid { grid-template-columns: 1fr; }
    body.nikan-v2 .catalog-filters__head strong { font-size: 14px; }
    body.nikan-v2 .search-panel__head span { display: none; }
    body.nikan-v2 .search-panel__form input { font-size: 13px; }
    body.nikan-v2 .search-panel__icon { display: none; }
}

@media (max-width: 420px) {
    body.nikan-v2 .hero.hero--centered .hero__buttons { grid-template-columns: 1fr; width: min(100%,320px); }
    body.nikan-v2 .hero.hero--centered .hero__meta-item strong { font-size: 20px; }
    body.nikan-v2 .hero.hero--centered .hero__meta-item span { font-size: 9.5px; }
    body.nikan-v2 .search-panel__submit { min-width: 70px; }
}
/* Hash links must not look permanently active on the home page. */
body.nikan-v2 .header__menu li.current-menu-item > a[href*="#"]:not(:hover),
body.nikan-v2 .header__menu li.current_page_item > a[href*="#"]:not(:hover),
body.nikan-v2 .mobile-menu li.current-menu-item > a[href*="#"]:not(:hover),
body.nikan-v2 .mobile-menu li.current_page_item > a[href*="#"]:not(:hover) { color: inherit !important; }
body.nikan-v2 .header__menu li.current-menu-item > a[href*="#"]:not(:hover)::after,
body.nikan-v2 .header__menu li.current_page_item > a[href*="#"]:not(:hover)::after { width: 0 !important; opacity: 0 !important; }

/* =========================================================
   Nikan v2.0.2 refinements
   ========================================================= */

/* Statistics use local inline SVGs so the icon never appears empty. */
body.nikan-v2 .stat-item__icon {
    display: inline-grid;
    place-items: center;
    width: 54px;
    height: 54px;
    margin-bottom: 18px;
    border: 1px solid rgba(198,161,91,.18);
    border-radius: 50%;
    color: var(--gold-light);
    background: linear-gradient(145deg, rgba(198,161,91,.13), rgba(255,255,255,.025));
}
body.nikan-v2 .stat-item__icon-svg {
    width: 25px;
    height: 25px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.65;
    stroke-linecap: round;
    stroke-linejoin: round;
}
body.nikan-v2 .stat-item > i { display: none !important; }

/* The hamburger should feel light, not boxed in gold. */
body.nikan-v2 .site-header .header__toggle {
    border-color: transparent !important;
    background: transparent !important;
    box-shadow: none !important;
}
body.nikan-v2 .site-header .header__toggle:hover,
body.nikan-v2 .site-header .header__toggle:focus-visible {
    border-color: transparent !important;
    background: rgba(255,255,255,.055) !important;
}
body.nikan-v2 .site-header .header__toggle span {
    border-radius: 999px;
    background: var(--white);
}

/* Visible, honest placeholders when a content type has not been populated yet. */
body.nikan-v2 .category-card--placeholder { cursor: default; }
body.nikan-v2 .category-card--placeholder:hover { transform: none; }
body.nikan-v2 .nikan-empty-state {
    padding: 34px 26px;
    border: 1px dashed rgba(198,161,91,.28);
    border-radius: 18px;
    text-align: center;
    background: rgba(255,255,255,.018);
}
body.nikan-v2 .nikan-empty-state--wide { grid-column: 1 / -1; }
body.nikan-v2 .nikan-empty-state strong { display: block; margin-bottom: 9px; color: var(--gold-light); font-size: 20px; }
body.nikan-v2 .nikan-empty-state p { max-width: 660px; margin: 0 auto; color: var(--text-muted); line-height: 1.9; }

/* Keep the full hero in the first viewport and remove the large mobile top gap. */
body.nikan-v2 .hero.hero--centered {
    min-height: 100svh !important;
    padding-top: calc(var(--header-height) + 12px) !important;
    padding-bottom: 20px !important;
}
body.nikan-v2 .hero.hero--centered .hero__wrapper {
    min-height: calc(100svh - var(--header-height) - 32px) !important;
}
@media (max-width: 768px) {
    body.nikan-v2 .hero.hero--centered {
        min-height: 100svh !important;
        padding-top: calc(var(--header-height) + 3px) !important;
        padding-bottom: 14px !important;
        align-items: flex-start !important;
    }
    body.nikan-v2 .hero.hero--centered .hero__wrapper {
        min-height: calc(100svh - var(--header-height) - 17px) !important;
        align-items: flex-start !important;
        padding-top: 0 !important;
    }
    body.nikan-v2 .hero__brand { margin-top: 0 !important; margin-bottom: 10px; }
    body.nikan-v2 .hero.hero--centered .hero__title { margin-bottom: 10px; }
    body.nikan-v2 .hero.hero--centered .hero__text { margin-bottom: 14px; line-height: 1.7; }
    body.nikan-v2 .hero.hero--centered .hero__meta { margin-top: 14px; padding-top: 11px; }
}
@media (max-width: 560px) {
    body.nikan-v2 .hero.hero--centered .hero__meta { display: none !important; }
    body.nikan-v2 .hero.hero--centered .hero__brand-image { max-height: 150px; }
}


/* =========================================================
   Nikan v2.0.3 — final compact mobile hero statistics
   Keeps the same Nikan Core / theme values and does not add
   any new database setting or plugin dependency.
   ========================================================= */
@media (max-width: 560px) {
    body.nikan-v2 .hero.hero--centered .hero__meta {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        width: min(100%, 390px);
        gap: 0;
        margin: 12px auto 0 !important;
        padding-top: 10px !important;
        border-top: 1px solid rgba(255,255,255,.14);
    }
    body.nikan-v2 .hero.hero--centered .hero__meta-item {
        position: relative;
        min-width: 0;
        gap: 1px;
        padding-inline: 5px;
    }
    body.nikan-v2 .hero.hero--centered .hero__meta-item:not(:last-child)::after {
        content: "";
        position: absolute;
        inset-block: 5px;
        inset-inline-end: 0;
        width: 1px;
        background: rgba(255,255,255,.12);
    }
    body.nikan-v2 .hero.hero--centered .hero__meta-item strong {
        font-size: clamp(18px, 5.4vw, 21px);
        line-height: 1.25;
    }
    body.nikan-v2 .hero.hero--centered .hero__meta-item span {
        overflow-wrap: anywhere;
        font-size: clamp(8.5px, 2.65vw, 10px);
        line-height: 1.45;
    }
    body.nikan-v2 .hero.hero--centered .hero__brand-image {
        max-height: 145px;
    }
    body.nikan-v2 .hero.hero--centered .hero__buttons {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: min(100%, 390px);
    }
    body.nikan-v2 .hero.hero--centered .hero__buttons .btn {
        min-height: 46px;
        padding-block: 9px;
        font-size: 13px;
    }
}

/* Short mobile screens: compact the content instead of hiding the stats. */
@media (max-width: 560px) and (max-height: 760px) {
    body.nikan-v2 .hero.hero--centered {
        padding-bottom: 9px !important;
    }
    body.nikan-v2 .hero.hero--centered .hero__wrapper {
        min-height: calc(100svh - var(--header-height) - 12px) !important;
    }
    body.nikan-v2 .hero__brand {
        width: min(var(--nikan-hero-logo-width-mobile), 66vw);
        margin-bottom: 7px !important;
    }
    body.nikan-v2 .hero.hero--centered .hero__brand-image {
        max-height: 118px;
    }
    body.nikan-v2 .hero.hero--centered .hero__subtitle {
        margin-bottom: 6px;
        font-size: 10px;
        letter-spacing: 1.7px;
    }
    body.nikan-v2 .hero.hero--centered .hero__title {
        margin-bottom: 7px;
        font-size: clamp(25px, 7.5vw, 31px);
        line-height: 1.2;
    }
    body.nikan-v2 .hero.hero--centered .hero__text {
        margin-bottom: 10px;
        font-size: 12.75px;
        line-height: 1.55;
    }
    body.nikan-v2 .hero.hero--centered .hero__meta {
        margin-top: 9px !important;
        padding-top: 8px !important;
    }
}

@media (max-width: 340px) {
    body.nikan-v2 .hero.hero--centered .hero__buttons {
        grid-template-columns: 1fr;
        width: min(100%, 285px);
        gap: 7px;
    }
    body.nikan-v2 .hero.hero--centered .hero__buttons .btn {
        min-height: 42px;
        padding-block: 7px;
    }
}

/* =========================================================
   Nikan v2.0.4 — consistent inner pages and legacy-route guard
   ========================================================= */
body.nikan-v2 .inner-hero {
    position: relative;
    min-height: 390px;
    display: flex;
    align-items: flex-end;
    padding: calc(var(--header-height) + 72px) 0 62px;
    overflow: hidden;
    isolation: isolate;
    background:
        radial-gradient(circle at 16% 10%, rgba(198,161,91,.12), transparent 40%),
        linear-gradient(135deg, #17100d, #0f0a08 68%);
}
body.nikan-v2 .inner-hero__media,
body.nikan-v2 .inner-hero__overlay { position: absolute; inset: 0; }
body.nikan-v2 .inner-hero__media img { width: 100%; height: 100%; object-fit: cover; }
body.nikan-v2 .inner-hero__overlay {
    z-index: 1;
    background: linear-gradient(0deg, rgba(15,10,8,.97) 0%, rgba(15,10,8,.67) 54%, rgba(15,10,8,.4) 100%);
}
body.nikan-v2 .inner-hero__content { position: relative; z-index: 2; max-width: 920px; }
body.nikan-v2 .inner-hero h1 {
    max-width: 880px;
    margin: 0;
    color: var(--white);
    font-size: clamp(38px, 5vw, 66px);
    font-weight: 850;
    line-height: 1.22;
    text-wrap: balance;
}
body.nikan-v2 .inner-hero__description { max-width: 720px; margin-top: 17px; color: var(--text); font-size: 16px; line-height: 1.95; }
body.nikan-v2 .inner-hero__description p { margin: 0; }

body.nikan-v2 .inner-page__body,
body.nikan-v2 .inner-listing__body,
body.nikan-v2 .projects-archive-v2__body,
body.nikan-v2 .single-project-v2__body,
body.nikan-v2 .collections-page-v2__body { padding: 68px 0 105px; }
body.nikan-v2 .content-surface {
    padding: clamp(26px, 4vw, 58px);
    border: 1px solid rgba(198,161,91,.17);
    border-radius: 22px;
    background: linear-gradient(145deg, rgba(33,23,19,.92), rgba(19,13,11,.96));
    box-shadow: 0 24px 70px rgba(0,0,0,.2);
}
body.nikan-v2 .entry-content--v2 { color: var(--text); font-size: 16px; line-height: 2; }
body.nikan-v2 .entry-content--v2 > :first-child { margin-top: 0; }
body.nikan-v2 .entry-content--v2 > :last-child { margin-bottom: 0; }
body.nikan-v2 .entry-content--v2 h2,
body.nikan-v2 .entry-content--v2 h3,
body.nikan-v2 .entry-content--v2 h4 { margin: 1.8em 0 .75em; color: var(--white); line-height: 1.5; }
body.nikan-v2 .entry-content--v2 h2 { font-size: clamp(26px, 3vw, 38px); }
body.nikan-v2 .entry-content--v2 h3 { font-size: clamp(21px, 2.3vw, 29px); }
body.nikan-v2 .entry-content--v2 p { margin: 0 0 1.25em; }
body.nikan-v2 .entry-content--v2 a { color: var(--gold-light); text-decoration: underline; text-underline-offset: 4px; }
body.nikan-v2 .entry-content--v2 ul,
body.nikan-v2 .entry-content--v2 ol { padding-inline-start: 1.3em; }
body.nikan-v2 .entry-content--v2 blockquote {
    margin: 1.7em 0;
    padding: 20px 24px;
    border-inline-start: 3px solid var(--gold);
    border-radius: 12px;
    color: var(--white);
    background: rgba(198,161,91,.07);
}
body.nikan-v2 .entry-content--v2 img { height: auto; border-radius: 16px; }
body.nikan-v2 .entry-content--v2 table { width: 100%; border-collapse: collapse; }
body.nikan-v2 .entry-content--v2 th,
body.nikan-v2 .entry-content--v2 td { padding: 12px; border: 1px solid var(--border); text-align: start; }
body.nikan-v2 .entry-content--v2 th { color: var(--white); background: rgba(198,161,91,.08); }

body.nikan-v2 .article-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
body.nikan-v2 .article-card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid rgba(198,161,91,.16);
    border-radius: 18px;
    background: #15100d;
}
body.nikan-v2 .article-card__media { display: block; aspect-ratio: 1.45 / 1; overflow: hidden; background: var(--surface-light); }
body.nikan-v2 .article-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s cubic-bezier(.22,1,.36,1); }
body.nikan-v2 .article-card__body { padding: 22px; }
body.nikan-v2 .article-card__meta { color: var(--gold); font-size: 12px; }
body.nikan-v2 .article-card h2 { margin: 9px 0 12px; font-size: 23px; line-height: 1.55; }
body.nikan-v2 .article-card h2 a { color: var(--white); }
body.nikan-v2 .article-card__excerpt { color: var(--text-muted); line-height: 1.85; }
body.nikan-v2 .article-card__excerpt p { margin: 0; }
body.nikan-v2 .article-card__link { display: inline-flex; margin-top: 17px; color: var(--gold-light); font-weight: 700; }
@media (hover:hover) and (pointer:fine) { body.nikan-v2 .article-card:hover .article-card__media img { transform: scale(1.035); } }

body.nikan-v2 .projects__grid--archive { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
body.nikan-v2 .project-card {
    position: relative;
    min-width: 0;
    min-height: 420px;
    display: block;
    overflow: hidden;
    border: 1px solid rgba(198,161,91,.16);
    border-radius: 20px;
    color: var(--white);
    background: #15100d;
}
body.nikan-v2 .project-card__media { position: absolute; inset: 0; display: block; overflow: hidden; background: var(--surface-light); }
body.nikan-v2 .project-card__image { width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.22,1,.36,1); }
body.nikan-v2 .project-card__placeholder { width: 100%; height: 100%; display: grid; place-items: center; color: var(--gold); font-size: 64px; }
body.nikan-v2 .project-card__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(15,10,8,.95), rgba(15,10,8,.08) 72%); }
body.nikan-v2 .project-card__info { position: absolute; right: 0; bottom: 0; left: 0; z-index: 2; display: flex; flex-direction: column; gap: 5px; padding: 25px; }
body.nikan-v2 .project-card__info small { color: var(--gold-light); font-size: 12px; }
body.nikan-v2 .project-card__info strong { color: var(--white); font-size: 25px; line-height: 1.45; }
body.nikan-v2 .project-card__info span { color: var(--text); font-size: 13px; }
@media (hover:hover) and (pointer:fine) { body.nikan-v2 .project-card:hover .project-card__image { transform: scale(1.045); } }

body.nikan-v2 .single-project-v2__layout { display: grid; gap: 65px; }
body.nikan-v2 .project-facts { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 30px; padding-bottom: 25px; border-bottom: 1px solid var(--border); }
body.nikan-v2 .project-facts > div { min-width: 180px; display: flex; flex-direction: column; gap: 5px; padding: 14px 17px; border: 1px solid rgba(255,255,255,.07); border-radius: 12px; background: rgba(255,255,255,.025); }
body.nikan-v2 .project-facts span { color: var(--gold); font-size: 11px; }
body.nikan-v2 .project-facts strong { color: var(--white); font-size: 15px; }
body.nikan-v2 .section-head--compact { margin-bottom: 24px; }
body.nikan-v2 .project-gallery-v2__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
body.nikan-v2 .project-gallery-v2 figure { margin: 0; overflow: hidden; border-radius: 18px; background: var(--surface-light); }
body.nikan-v2 .project-gallery-v2 img { display: block; width: 100%; height: 100%; min-height: 320px; object-fit: cover; }

body.nikan-v2 .collection-grid-v2 { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
body.nikan-v2 .collection-card-v2 { min-width: 0; overflow: hidden; border: 1px solid rgba(198,161,91,.16); border-radius: 20px; color: var(--text); background: #15100d; }
body.nikan-v2 .collection-card-v2__media { display: grid; aspect-ratio: 1.35 / 1; place-items: center; overflow: hidden; color: var(--gold); background: var(--surface-light); font-size: 54px; }
body.nikan-v2 .collection-card-v2__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s cubic-bezier(.22,1,.36,1); }
body.nikan-v2 .collection-card-v2__body { display: flex; flex-direction: column; gap: 7px; padding: 22px; }
body.nikan-v2 .collection-card-v2__body small { color: var(--gold); }
body.nikan-v2 .collection-card-v2__body strong { color: var(--white); font-size: 24px; }
body.nikan-v2 .collection-card-v2__body span { color: var(--text-muted); line-height: 1.8; }
@media (hover:hover) and (pointer:fine) { body.nikan-v2 .collection-card-v2:hover img { transform: scale(1.035); } }

body.nikan-v2 .error-page__section {
    min-height: 100svh;
    display: grid;
    place-items: center;
    padding: calc(var(--header-height) + 55px) 0 70px;
    background: radial-gradient(circle at center, rgba(198,161,91,.11), transparent 38%), #0f0a08;
}
body.nikan-v2 .error-page__content { max-width: 760px; text-align: center; }
body.nikan-v2 .error-page__code { display: block; color: rgba(198,161,91,.15); font-size: clamp(100px,20vw,220px); font-weight: 900; line-height: .8; }
body.nikan-v2 .error-page h1 { margin: 12px 0 13px; color: var(--white); font-size: clamp(34px,5vw,58px); }
body.nikan-v2 .error-page p { max-width: 610px; margin: 0 auto; color: var(--text-muted); line-height: 1.9; }
body.nikan-v2 .error-page__actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 11px; margin-top: 28px; }

@media (max-width: 992px) {
    body.nikan-v2 .article-grid,
    body.nikan-v2 .projects__grid--archive,
    body.nikan-v2 .collection-grid-v2 { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 768px) {
    body.nikan-v2 .inner-hero { min-height: 320px; padding: calc(var(--header-height) + 42px) 0 40px; }
    body.nikan-v2 .inner-hero h1 { font-size: clamp(31px,9vw,45px); }
    body.nikan-v2 .inner-hero__description { font-size: 14px; }
    body.nikan-v2 .inner-page__body,
    body.nikan-v2 .inner-listing__body,
    body.nikan-v2 .projects-archive-v2__body,
    body.nikan-v2 .single-project-v2__body,
    body.nikan-v2 .collections-page-v2__body { padding: 42px 0 78px; }
    body.nikan-v2 .content-surface { padding: 24px 19px; border-radius: 17px; }
    body.nikan-v2 .entry-content--v2 { font-size: 14.5px; }
    body.nikan-v2 .project-gallery-v2__grid { grid-template-columns: 1fr; }
    body.nikan-v2 .project-gallery-v2 img { min-height: 240px; }
}
@media (max-width: 620px) {
    body.nikan-v2 .article-grid,
    body.nikan-v2 .projects__grid--archive,
    body.nikan-v2 .collection-grid-v2 { grid-template-columns: 1fr; }
    body.nikan-v2 .project-card { min-height: 390px; }
    body.nikan-v2 .project-facts > div { min-width: 0; flex: 1 1 100%; }
}


/* 2.0.5 — Homepage product quick filters. */
body.nikan-v2 [data-products-grid] .product-card[hidden] {
    display: none !important;
}

body.nikan-v2 .products__filter-empty {
    margin: 28px 0 0;
    padding: 22px;
    border: 1px dashed rgba(198, 161, 91, 0.28);
    border-radius: 14px;
    color: var(--text-muted);
    background: rgba(198, 161, 91, 0.035);
    text-align: center;
}

body.nikan-v2 .products__filter-empty[hidden] {
    display: none !important;
}

/* =========================================================
   Nikan v2.0.6 — unified mobile header controls and tighter hero
   Compatible with Nikan Core 2.0.0; no new settings or meta keys.
   ========================================================= */

/* Search and hamburger use the same lightweight, unboxed treatment. */
body.nikan-v2 .site-header .header__search {
    border-color: transparent !important;
    background: transparent !important;
    box-shadow: none !important;
    color: var(--white) !important;
}
body.nikan-v2 .site-header .header__search:hover,
body.nikan-v2 .site-header .header__search:focus-visible {
    border-color: transparent !important;
    background: rgba(255,255,255,.055) !important;
    box-shadow: none !important;
    color: var(--white) !important;
}

/* Reduce the unused space below the mobile hero while keeping every
   element visible. Because these are min-heights, very short screens
   can still expand naturally instead of clipping content. */
@media (max-width: 768px) {
    body.nikan-v2 .hero.hero--centered {
        min-height: calc(100svh - 38px) !important;
    }
    body.nikan-v2 .hero.hero--centered .hero__wrapper {
        min-height: calc(100svh - var(--header-height) - 55px) !important;
    }
    body.nikan-v2 .hero.hero--centered .hero__meta {
        margin-top: 16px !important;
    }
}

@supports (height: 100dvh) {
    @media (max-width: 768px) {
        body.nikan-v2 .hero.hero--centered {
            min-height: calc(100dvh - 38px) !important;
        }
        body.nikan-v2 .hero.hero--centered .hero__wrapper {
            min-height: calc(100dvh - var(--header-height) - 55px) !important;
        }
    }
}
