:root {
    --gallery-gold: #c18a38;
    --gallery-gold-light: #e1bb75;
    --gallery-cream: #eee2ca;
    --gallery-ink: #21160f;
    --gallery-plum: #8f395f;
}

.gallery-page { color: var(--gallery-cream); background: #090807; }
.gallery-page .fbnew-nav .nav-gallery { color: var(--gallery-gold-light); }
.gallery-page main { overflow: hidden; }

.gallery-hero { min-height: 470px; padding: 70px max(34px, calc((100% - 1240px) / 2)); display: grid; align-items: center; background: linear-gradient(90deg, rgba(9,7,8,.08), rgba(11,7,9,.2) 35%, rgba(9,7,7,.94) 57%, #070605), url('../images/hero-workshops.png') center / cover no-repeat; border-bottom: 2px solid #654321; }
.gallery-hero > div { width: min(600px, 48%); margin-left: auto; }
.gallery-kicker { margin: 0 0 12px; color: var(--gallery-gold); font-family: 'Oswald', Arial, sans-serif; font-size: .76rem; font-weight: 600; text-transform: uppercase; letter-spacing: .2em; }
.gallery-hero h1 { margin: 0; font-family: 'Oswald', Impact, sans-serif; font-size: clamp(3.8rem, 6.6vw, 7rem); font-weight: 600; line-height: .84; text-transform: uppercase; letter-spacing: .02em; }
.gallery-hero h1 span { color: var(--gallery-gold); font-family: 'Cormorant Garamond', Georgia, serif; font-style: italic; font-weight: 500; text-transform: none; }
.gallery-rule { margin: 25px 0 18px; display: flex; align-items: center; gap: 10px; color: var(--gallery-gold); font-size: .62rem; }
.gallery-rule span { width: 78px; height: 1px; background: currentColor; }
.gallery-hero div > p:last-child { max-width: 600px; margin: 0; color: rgba(238,226,202,.88); font-size: 1.05rem; line-height: 1.65; }

.gallery-collection { padding: 52px clamp(14px, 2vw, 50px) 64px; color: var(--gallery-ink); background: radial-gradient(circle at 50% 0, #f8ecd8, #e5d1b0 76%); }
.gallery-heading { max-width: 760px; margin: 0 auto 30px; text-align: center; }
.gallery-heading > p { margin: 0; color: #965e27; font-family: 'Cormorant Garamond', Georgia, serif; font-size: 1.38rem; font-style: italic; }
.gallery-heading h2 { margin: 3px 0 11px; font-family: 'Oswald', Impact, sans-serif; font-size: clamp(2.2rem, 4vw, 3.7rem); line-height: 1; text-transform: uppercase; letter-spacing: .04em; }
.gallery-heading > span { color: #6b503d; line-height: 1.55; }
.gallery-grid { width: min(1240px, 100%); margin: auto; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.gallery-card { min-width: 0; display: flex; flex-direction: column; overflow: hidden; background: #f8efe1; border: 2px solid #694626; border-radius: 10px; box-shadow: 0 16px 28px rgba(57,34,19,.2); transition: transform .22s, box-shadow .22s; }
.gallery-card:hover { transform: translateY(-4px); box-shadow: 0 20px 36px rgba(57,34,19,.27); }
.gallery-image { height: clamp(205px, 16vw, 220px); position: relative; overflow: hidden; background: #1a120d; }
.gallery-image img, .gallery-image video { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .4s; }
.gallery-card:hover .gallery-image img { transform: scale(1.025); }
.gallery-placeholder { width: 100%; height: 100%; display: grid; place-items: center; align-content: center; gap: 12px; color: var(--gallery-gold-light); background: radial-gradient(circle, #362415, #110d09); }
.gallery-placeholder svg { width: 48px; height: 62px; fill: currentColor; opacity: .85; }
.gallery-placeholder span { color: rgba(238,226,202,.7); font-family: 'Cormorant Garamond', Georgia, serif; font-style: italic; }
.gallery-badge { position: absolute; left: 12px; bottom: 12px; max-width: calc(100% - 24px); padding: 7px 10px; color: #171009; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; background: linear-gradient(90deg, #d09b4d, #e7c484); border: 1px solid #f1d7a4; border-radius: 3px; box-shadow: 0 4px 12px rgba(0,0,0,.28); font-family: 'Oswald', Arial, sans-serif; font-size: .66rem; font-weight: 700; text-transform: uppercase; letter-spacing: .09em; }
.is-portfolio .gallery-badge { color: #eee2ca; background: rgba(23,16,12,.9); border-color: #8f6537; }
.gallery-card-body { flex: 1; min-width: 0; padding: 17px; display: flex; flex-direction: column; }
.gallery-card h3 { margin: 0 0 7px; color: #3a2417; overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; font-family: 'Cormorant Garamond', Georgia, serif; font-size: 1.6rem; line-height: 1.08; }
.gallery-card-body > p { margin: 0 0 14px; color: #6a5140; overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; font-size: .95rem; line-height: 1.4; }
.gallery-card-meta { margin-top: auto; padding-top: 3px; display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.gallery-card-meta strong { color: #82501f; font-family: 'Oswald', Arial, sans-serif; font-size: 1.35rem; }
.gallery-card-meta small { color: #6f5b49; }
.gallery-action { min-height: 44px; margin-top: 12px; padding: 10px 12px; display: flex; align-items: center; justify-content: center; gap: 8px; color: #fff; border-radius: 4px; text-align: center; text-decoration: none; font-family: 'Oswald', Arial, sans-serif; font-size: .74rem; font-weight: 700; text-transform: uppercase; letter-spacing: .055em; transition: transform .2s, filter .2s; }
.gallery-action.primary { color: #171009; background: linear-gradient(90deg, #b9782c, #e1b96f, #a86823); border: 1px solid #81511f; }
.gallery-action.secondary { color: var(--gallery-gold-light); background: linear-gradient(#241a12, #0e0b08); border: 1px solid #54371e; }
.gallery-action:hover, .gallery-action:focus-visible { transform: translateY(-2px); filter: brightness(1.08); }

.gallery-empty { width: min(690px, 100%); margin: 10px auto 0; padding: 50px 30px; display: grid; justify-items: center; text-align: center; background: rgba(250,241,225,.72); border: 2px solid #79512d; border-radius: 10px; }
.gallery-empty svg { width: 46px; height: 60px; fill: #a66d2c; }
.gallery-empty h2 { margin: 18px 0 8px; font-family: 'Oswald', Arial, sans-serif; text-transform: uppercase; }
.gallery-empty p { max-width: 540px; margin: 0; color: #6a5140; line-height: 1.55; }
.gallery-empty a { margin-top: 22px; padding: 12px 23px; color: #f0ce8d; background: #17110d; border-radius: 4px; text-decoration: none; font-family: 'Oswald', Arial, sans-serif; text-transform: uppercase; letter-spacing: .07em; }

.gallery-invitation { padding: 62px 25px; display: grid; justify-items: center; text-align: center; background: radial-gradient(circle at 50% 20%, rgba(177,102,35,.24), transparent 45%), linear-gradient(120deg, #0a0806, #1b110b 55%, #100c0b); border-block: 1px solid rgba(193,138,56,.35); }
.gallery-invitation > p { margin: 0; color: var(--gallery-gold); font-family: 'Cormorant Garamond', Georgia, serif; font-size: 1.4rem; font-style: italic; }
.gallery-invitation h2 { margin: 5px 0 10px; font-family: 'Oswald', Arial, sans-serif; font-size: clamp(2rem, 4vw, 3.4rem); text-transform: uppercase; }
.gallery-invitation > span { color: rgba(238,226,202,.76); }
.gallery-invitation > a { margin-top: 23px; padding: 13px 25px; color: #171009; background: linear-gradient(90deg, #bd8134, #e2bc72); border-radius: 4px; text-decoration: none; font-family: 'Oswald', Arial, sans-serif; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }

.gallery-footer { min-height: 120px; padding: 24px max(28px, calc((100% - 1240px) / 2)); display: flex; align-items: center; justify-content: space-between; gap: 36px; background: #090807; }
.gallery-footer-brand { display: flex; align-items: center; gap: 13px; text-decoration: none; }
.gallery-footer-brand svg { width: 37px; height: 48px; fill: var(--gallery-gold); }
.gallery-footer-brand span { display: grid; gap: 4px; }
.gallery-footer-brand strong { color: var(--gallery-gold-light); font-family: 'Cormorant Garamond', Georgia, serif; font-size: 1.3rem; font-style: italic; font-weight: 500; }
.gallery-footer-brand small { color: rgba(238,226,202,.62); text-transform: uppercase; letter-spacing: .04em; }
.gallery-footer nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 18px; }
.gallery-footer nav a { color: rgba(238,226,202,.75); text-decoration: none; font-size: .82rem; }

@media (max-width: 1199px) {
    .gallery-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 980px) {
    .gallery-hero > div { width: min(590px, 58%); }
}

@media (max-width: 899px) {
    .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .gallery-image { height: 220px; }
}

@media (max-width: 679px) {
    .gallery-hero { min-height: 590px; padding: 48px 23px; align-items: start; background-position: left center; position: relative; isolation: isolate; }
    .gallery-hero::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(rgba(8,7,6,.97) 0 54%, rgba(10,5,8,.65) 72%, rgba(10,4,8,.2)); }
    .gallery-hero > div { width: 100%; text-align: center; }
    .gallery-hero h1 { font-size: clamp(3.5rem, 16vw, 5rem); }
    .gallery-rule { justify-content: center; }
    .gallery-collection { padding: 45px 14px 55px; }
    .gallery-grid { grid-template-columns: 1fr; gap: 20px; }
    .gallery-image { height: auto; max-height: 300px; aspect-ratio: 4 / 3; }
    .gallery-footer { flex-direction: column; align-items: stretch; }
    .gallery-footer nav { justify-content: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
    .gallery-page *, .gallery-page *::before, .gallery-page *::after { transition-duration: .01ms !important; }
}
