/* Event Galleries — editorial photo-portfolio styling */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400&family=Jost:wght@300;400;500;600&display=swap');

:root {
  --eg-ink: #16140f;
  --eg-muted: #6f6a60;
  --eg-paper: #fbfaf7;
  --eg-line: #e8e3d9;
  --eg-accent: #a8854f;
  --eg-serif: 'Cormorant Garamond', Georgia, serif;
  --eg-sans: 'Jost', 'Helvetica Neue', Arial, sans-serif;
}

body { background: var(--eg-paper); font-family: var(--eg-sans); color: var(--eg-ink); }

.eg-serif, .eg-hero-title, .eg-denied h1 { font-family: var(--eg-serif); }

/* ---------- kicker / small caps label ---------- */
.eg-kicker {
  display: inline-block; font-family: var(--eg-sans); font-size: 12px; letter-spacing: .32em;
  text-transform: uppercase; color: var(--eg-accent); margin-bottom: 14px; font-weight: 500;
}

/* ---------- buttons ---------- */
.eg-btn, a.eg-btn {
  display: inline-block; padding: 13px 34px; background: var(--eg-ink); color: #fff !important;
  font-family: var(--eg-sans); font-size: 13px; letter-spacing: .22em; text-transform: uppercase;
  text-decoration: none; border: 1px solid var(--eg-ink); transition: all .25s ease;
}
.eg-btn:hover { background: transparent; color: var(--eg-ink) !important; }
.eg-btn-ghost, a.eg-btn-ghost { background: transparent; color: var(--eg-ink) !important; }
.eg-btn-ghost:hover { background: var(--eg-ink); color: #fff !important; }

/* ---------- header nav ---------- */
.eg-nav { display: flex; align-items: center; gap: 28px; font-family: var(--eg-sans); }
.eg-nav a { color: var(--eg-ink); text-decoration: none; font-size: 13px; letter-spacing: .18em; text-transform: uppercase; transition: color .2s; }
.eg-nav a:hover { color: var(--eg-accent); }
.eg-nav-user { font-size: 13px; color: var(--eg-muted); letter-spacing: .05em; }
.eg-nav a.eg-nav-cta { border: 1px solid var(--eg-ink); padding: 9px 20px; }
.eg-nav a.eg-nav-cta:hover { background: var(--eg-ink); color: #fff; }
.eg-site-title a, .eg-site-title { font-family: var(--eg-serif) !important; letter-spacing: .08em; color: var(--eg-ink) !important; text-decoration: none; }

/* ---------- event card grid ---------- */
.eg-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 36px 28px; width: 100%;
}
@media (max-width: 1024px) { .eg-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px)  { .eg-grid { grid-template-columns: 1fr; } }

.eg-card { display: block; text-decoration: none; color: var(--eg-ink); }
.eg-card-media { position: relative; display: block; overflow: hidden; aspect-ratio: 4 / 3; background: #e8e4dc; }
.eg-card-media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .7s ease, filter .7s ease; }
.eg-card:hover .eg-card-media img { transform: scale(1.045); filter: brightness(.94); }
.eg-lock {
  position: absolute; top: 14px; right: 14px; display: inline-flex; align-items: center; gap: 6px;
  background: rgba(20,18,14,.78); color: #f4efe6; font-size: 11px; letter-spacing: .18em;
  text-transform: uppercase; padding: 7px 12px; backdrop-filter: blur(4px);
}
.eg-card-body { display: block; padding: 16px 2px 0; }
.eg-card-title { display: block; font-family: var(--eg-serif); font-size: 26px; font-weight: 500; line-height: 1.2; transition: color .2s; }
.eg-card:hover .eg-card-title { color: var(--eg-accent); }
.eg-card-meta { display: block; margin-top: 6px; font-size: 12.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--eg-muted); }

/* ---------- single gallery hero ---------- */
.eg-hero {
  position: relative; min-height: 62vh; display: flex; align-items: flex-end;
  background: #1c1a16 center / cover no-repeat;
}
.eg-hero-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(12,11,9,.18) 0%, rgba(12,11,9,.72) 100%); }
.eg-hero-inner { position: relative; width: 100%; max-width: 1180px; margin: 0 auto; padding: 120px 32px 64px; color: #fff; }
.eg-hero .eg-kicker { color: #d9bd8c; }
.eg-hero-title { font-size: clamp(40px, 6vw, 76px); font-weight: 500; margin: 0 0 10px; color: #fff; line-height: 1.05; }
.eg-hero-meta { font-size: 13px; letter-spacing: .22em; text-transform: uppercase; color: rgba(255,255,255,.85); margin: 0; }

/* ---------- gallery page body ---------- */
.eg-gallery-page { max-width: 1180px; margin: 0 auto; padding: 56px 32px 90px; }
.eg-gallery-intro { max-width: 720px; margin: 0 auto 46px; text-align: center; font-size: 17px; line-height: 1.8; color: #44403a; }
.eg-back { margin-top: 54px; text-align: center; }
.eg-back a { color: var(--eg-muted); text-decoration: none; font-size: 13px; letter-spacing: .2em; text-transform: uppercase; }
.eg-back a:hover { color: var(--eg-accent); }

/* ---------- masonry ---------- */
.eg-masonry { columns: 3 300px; column-gap: 18px; }
.eg-photo { display: block; margin-bottom: 18px; break-inside: avoid; overflow: hidden; cursor: zoom-in; }
.eg-photo img { width: 100%; height: auto; display: block; transition: transform .6s ease, filter .6s ease; }
.eg-photo:hover img { transform: scale(1.025); filter: brightness(.93); }

/* ---------- lightbox ---------- */
.eg-lb { position: fixed; inset: 0; z-index: 99999; background: rgba(14,13,11,.96); display: flex; align-items: center; justify-content: center; opacity: 0; pointer-events: none; transition: opacity .25s ease; }
.eg-lb.open { opacity: 1; pointer-events: auto; }
.eg-lb img { max-width: 92vw; max-height: 88vh; box-shadow: 0 30px 80px rgba(0,0,0,.55); }
.eg-lb button { position: absolute; background: none; border: none; color: #e9e4da; cursor: pointer; font-family: var(--eg-sans); padding: 16px; transition: color .2s, transform .2s; }
.eg-lb button:hover { color: #fff; transform: scale(1.08); }
.eg-lb-close { top: 18px; right: 22px; font-size: 30px; line-height: 1; }
.eg-lb-prev { left: 14px; top: 50%; transform: translateY(-50%); font-size: 40px; }
.eg-lb-next { right: 14px; top: 50%; transform: translateY(-50%); font-size: 40px; }
.eg-lb-count { position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%); color: #b9b2a5; font-size: 12px; letter-spacing: .3em; }

/* ---------- denied / 403 ---------- */
.eg-denied { min-height: 64vh; display: flex; align-items: center; justify-content: center; padding: 80px 24px; text-align: center; }
.eg-denied-inner { max-width: 560px; }
.eg-denied h1 { font-size: clamp(34px, 5vw, 52px); font-weight: 500; margin: 0 0 16px; }
.eg-denied p { color: var(--eg-muted); line-height: 1.8; }
.eg-denied-actions { display: flex; gap: 14px; justify-content: center; margin-top: 28px; flex-wrap: wrap; }

/* ---------- Elementor Pro login form polish ---------- */
.eg-login-card .elementor-form-fields-wrapper label { font-size: 12px; letter-spacing: .22em; text-transform: uppercase; color: var(--eg-muted); }
.eg-login-card input[type="text"], .eg-login-card input[type="password"] {
  background: #fff; border: 1px solid var(--eg-line); border-radius: 0; padding: 14px 16px; font-family: var(--eg-sans);
}
.eg-login-card input:focus { border-color: var(--eg-accent); outline: none; box-shadow: none; }
.eg-login-card .elementor-button {
  background: var(--eg-ink); border-radius: 0; letter-spacing: .22em; text-transform: uppercase; font-size: 13px; padding: 15px; transition: background .25s;
}
.eg-login-card .elementor-button:hover { background: var(--eg-accent); }

.eg-empty { text-align: center; color: var(--eg-muted); letter-spacing: .05em; }

/* ---------- Elementor widget classes ---------- */
.eg-w-kicker .elementor-heading-title { font-family: var(--eg-sans); font-size: 12px; letter-spacing: .34em; text-transform: uppercase; font-weight: 500; }
.eg-w-hero-title .elementor-heading-title { font-family: var(--eg-serif); font-size: clamp(44px, 7vw, 92px); font-weight: 500; line-height: 1.04; }
.eg-w-hero-sub { max-width: 560px; font-size: 17px; line-height: 1.8; letter-spacing: .02em; }
.eg-w-section-title .elementor-heading-title { font-family: var(--eg-serif); font-size: clamp(34px, 4.5vw, 56px); font-weight: 500; }
.eg-w-section-sub { max-width: 620px; color: var(--eg-muted); font-size: 16px; line-height: 1.8; }
.eg-w-strip-title .elementor-heading-title { font-family: var(--eg-serif); font-size: clamp(30px, 4vw, 46px); font-weight: 500; }
a.elementor-button, .elementor-button { border-radius: 0; }
.eg-w-hero-btn .elementor-button { background: transparent; border: 1px solid rgba(255,255,255,.85); color: #fff; letter-spacing: .24em; text-transform: uppercase; font-size: 13px; font-weight: 500; padding: 15px 38px; transition: all .25s; }
.eg-w-hero-btn .elementor-button:hover { background: #fff; color: var(--eg-ink); }
.eg-w-dark-btn .elementor-button { background: #fff; color: var(--eg-ink); letter-spacing: .24em; text-transform: uppercase; font-size: 13px; font-weight: 500; padding: 15px 38px; border: 1px solid #fff; transition: all .25s; }
.eg-w-dark-btn .elementor-button:hover { background: transparent; color: #fff; }
.eg-site-title .elementor-heading-title { font-family: var(--eg-serif); font-size: 24px; letter-spacing: .12em; font-weight: 600; text-transform: uppercase; }
.eg-site-title .elementor-heading-title a { color: var(--eg-ink); }
.eg-login-card { max-width: 460px; margin: 0 auto; width: 100%; }
.eg-footer-text { color: #9b948a; font-size: 12.5px; letter-spacing: .2em; text-transform: uppercase; line-height: 2; }

/* ---------- Image protection ---------- */
img, .eg-hero, .eg-lb, .elementor-widget-gallery, .elementor-lightbox {
  -webkit-user-drag: none;
  -webkit-touch-callout: none;
}
.elementor-widget-gallery img, .eg-photo img, .eg-card-media img, .eg-lb img, .elementor-lightbox img {
  user-select: none; -webkit-user-select: none; pointer-events: auto;
}
.eg-protect-toast {
  position: fixed; left: 50%; bottom: 28px; transform: translateX(-50%) translateY(8px);
  background: rgba(20,18,14,.92); color: #f4efe6; font-family: var(--eg-sans);
  font-size: 12px; letter-spacing: .22em; text-transform: uppercase; padding: 11px 22px;
  z-index: 999999; opacity: 0; pointer-events: none; transition: opacity .25s, transform .25s;
}
.eg-protect-toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }