.insp-hero {
    background: linear-gradient(180deg, #fcfcfa 0%, var(--color-bg) 100%);
    padding: 60px 0 36px;
    text-align: center;
}
.insp-eyebrow {
    display: inline-block;
    color: var(--color-gold);
    font-family: var(--font-serif);
    font-style: italic;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 4px;
    margin-bottom: 12px;
}
.insp-title {
    font-family: var(--font-serif);
    font-size: clamp(2.2rem, 5vw, 3.6rem);
    color: var(--color-primary);
    margin: 0 0 10px;
    line-height: 1.05;
    font-weight: 600;
}
.insp-subtitle {
    color: #6b6b6b;
    font-size: clamp(14px, 1.6vw, 17px);
    max-width: 620px;
    margin: 0 auto 22px;
    line-height: 1.6;
}
.insp-breadcrumbs {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 1.4px;
    color: #888;
}
.insp-breadcrumbs a { color: #888; text-decoration: none; transition: color .2s; }
.insp-breadcrumbs a:hover { color: var(--color-primary); }
.insp-breadcrumbs .sep { margin: 0 10px; color: var(--color-gold); }
.insp-breadcrumbs [aria-current] { color: var(--color-primary); font-weight: 700; }

.insp-feed-section { padding: 10px 0 90px; }

.insp-grid {
    --insp-row: 8px;
    --insp-gap: 20px;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-auto-rows: var(--insp-row);
    gap: var(--insp-gap);
    align-items: start;
}
@media (max-width: 1199px) { .insp-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 991px)  { .insp-grid { grid-template-columns: repeat(3, 1fr); --insp-gap: 16px; } }
@media (max-width: 600px)  { .insp-grid { grid-template-columns: repeat(2, 1fr); --insp-gap: 12px; } }
@media (max-width: 380px)  { .insp-grid { grid-template-columns: repeat(2, 1fr); --insp-gap: 10px; } }

.insp-grid:not(.insp-grid--ready) .insp-card { grid-row-end: span 40; }

.insp-card {
    position: relative;
    width: 100%;
    border-radius: 16px;
    overflow: hidden;
    cursor: zoom-in;
    background: #f0eee8;
    box-shadow: 0 4px 16px rgba(21, 64, 51, 0.06);
    transition: box-shadow .35s ease, transform .35s ease;
    outline: none;
}
@media (max-width: 600px) { .insp-card { border-radius: 12px; } }

.insp-card img {
    display: block;
    width: 100%;
    height: auto;
    transition: transform .6s cubic-bezier(.25, .8, .25, 1);
}
.insp-card:hover { box-shadow: 0 14px 34px rgba(21, 64, 51, 0.16); transform: translateY(-3px); }
.insp-card:hover img { transform: scale(1.05); }
.insp-card:focus-visible { box-shadow: 0 0 0 3px var(--color-gold); }

.insp-card-tag {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.92);
    color: var(--color-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
    z-index: 2;
}

.insp-card-hint {
    position: absolute;
    left: 0; right: 0; bottom: 0;
    padding: 28px 14px 12px;
    font-family: var(--font-serif);
    font-style: italic;
    font-size: 13px;
    line-height: 1.4;
    color: #fff;
    background: linear-gradient(180deg, rgba(21, 64, 51, 0) 0%, rgba(21, 64, 51, 0.82) 100%);
    opacity: 0;
    transform: translateY(8px);
    transition: opacity .35s ease, transform .35s ease;
    pointer-events: none;
}
.insp-card:hover .insp-card-hint,
.insp-card:focus-visible .insp-card-hint { opacity: 1; transform: translateY(0); }

.insp-sentinel {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 40px 0 10px;
    color: #999;
    font-size: 13px;
    letter-spacing: 0.5px;
}
.insp-spinner {
    width: 22px; height: 22px;
    border: 2px solid rgba(198, 166, 116, 0.3);
    border-top-color: var(--color-gold);
    border-radius: 50%;
    animation: insp-spin 0.8s linear infinite;
}
@keyframes insp-spin { to { transform: rotate(360deg); } }

.insp-empty {
    text-align: center;
    padding: 70px 20px 90px;
    color: #6b6b6b;
}
.insp-empty i { font-size: 48px; color: var(--color-gold); opacity: 0.7; margin-bottom: 20px; }
.insp-empty h2 { font-family: var(--font-serif); color: var(--color-primary); font-size: 1.6rem; margin-bottom: 10px; }
.insp-empty p { margin-bottom: 24px; }

.insp-lightbox {
    position: fixed;
    inset: 0;
    z-index: 3000;
    display: none;
    align-items: center;
    justify-content: center;
    background: rgba(14, 30, 24, 0.94);
    backdrop-filter: blur(6px);
    padding: 24px;
}
.insp-lightbox.is-open { display: flex; animation: insp-fade .25s ease; }
@keyframes insp-fade { from { opacity: 0; } to { opacity: 1; } }

.insp-lb-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: 1100px;
    max-height: 92vh;
    width: 100%;
}
.insp-lb-figure {
    display: flex;
    align-items: center;
    justify-content: center;
    max-height: 72vh;
    width: 100%;
}
.insp-lb-figure img {
    max-width: 100%;
    max-height: 72vh;
    object-fit: contain;
    border-radius: 10px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
}

.insp-lb-panel {
    width: 100%;
    max-width: 760px;
    text-align: center;
    margin-top: 22px;
    color: #fff;
}
.insp-lb-caption {
    font-family: var(--font-serif);
    font-style: italic;
    font-size: clamp(15px, 2vw, 19px);
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.92);
    margin: 0 0 18px;
    white-space: pre-line;
    max-height: 22vh;
    overflow-y: auto;
    overscroll-behavior: contain;
}
.insp-lb-order { display: inline-flex; align-items: center; gap: 8px; }

.insp-lb-close,
.insp-lb-nav {
    position: fixed;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.25);
    color: #fff;
    width: 48px; height: 48px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 18px;
    transition: background .25s ease, transform .25s ease;
    z-index: 3010;
}
.insp-lb-close:hover,
.insp-lb-nav:hover { background: var(--color-gold); border-color: var(--color-gold); transform: scale(1.06); }
.insp-lb-close { top: 20px; right: 20px; }
.insp-lb-prev { left: 24px; top: 50%; transform: translateY(-50%); }
.insp-lb-next { right: 24px; top: 50%; transform: translateY(-50%); }
.insp-lb-prev:hover { transform: translateY(-50%) scale(1.06); }
.insp-lb-next:hover { transform: translateY(-50%) scale(1.06); }

@media (max-width: 768px) {
    .insp-lightbox { padding: 0; }
    .insp-lb-inner { max-height: 100vh; height: 100%; justify-content: center; }
    .insp-lb-figure { max-height: 62vh; padding: 0 8px; }
    .insp-lb-figure img { max-height: 62vh; border-radius: 6px; }
    .insp-lb-panel { padding: 0 18px 76px; margin-top: 18px; }
    .insp-lb-caption { max-height: 18vh; }
    .insp-lb-order { width: auto; max-width: calc(100% - 130px); margin: 0 auto; }

    .insp-lb-close { top: 12px; right: 12px; width: 42px; height: 42px; }
    .insp-lb-prev, .insp-lb-next {
        top: auto; bottom: 16px; transform: none;
        width: 44px; height: 44px;
    }
    .insp-lb-prev { left: 20px; }
    .insp-lb-next { right: 20px; }
    .insp-lb-prev:hover, .insp-lb-next:hover { transform: scale(1.06); }
}
@media (max-width: 380px) {
    .insp-lb-close, .insp-lb-nav { width: 40px; height: 40px; font-size: 16px; }
}

@media (prefers-reduced-motion: reduce) {
    .insp-card,
    .insp-card img,
    .insp-card-hint,
    .insp-breadcrumbs a,
    .insp-lb-close,
    .insp-lb-nav { transition: none !important; }
    .insp-card:hover { transform: none; }
    .insp-card:hover img { transform: none; }
    .insp-card-hint { transform: translateY(0); }
    .insp-lightbox.is-open { animation: none !important; }
    .insp-spinner { animation: none !important; }
    .insp-lb-close:hover,
    .insp-lb-nav:hover { transform: none; }
    .insp-lb-prev:hover { transform: translateY(-50%); }
    .insp-lb-next:hover { transform: translateY(-50%); }
}
@media (max-width: 768px) and (prefers-reduced-motion: reduce) {
    .insp-lb-prev:hover,
    .insp-lb-next:hover { transform: none; }
}
