@import url('https://fonts.googleapis.com/css2?family=EB+Garamond:ital,wght@0,400;0,500;1,400;1,500&family=Source+Sans+3:wght@300;400;500&display=swap');

* { box-sizing: border-box; margin: 0; padding: 0; }
body { background: #0A0A0A; color: #E8DFC9; font-family: 'EB Garamond', Georgia, serif; min-height: 100vh; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; display: block; }

/* === Header === */
.pe-header { position: fixed; top: 0; left: 0; right: 0; z-index: 100; padding: 20px 48px 18px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(232,223,201,0.10); background: #0A0A0A; }
body { padding-top: 68px; }
body.home { padding-top: 0; }
body.home.admin-bar { padding-top: 32px; }
body.admin-bar { padding-top: calc(68px + 32px); }
@media (max-width: 782px) { body.admin-bar { padding-top: calc(68px + 46px); } }
.pe-wordmark { font-family: 'EB Garamond', Georgia, serif; font-style: italic; font-size: 32px; letter-spacing: 0.01em; color: #E8DFC9; }
.pe-wordmark .pe-e { color: #B8312A; font-style: italic; }
.pe-nav { display: flex; gap: 32px; font-family: 'Source Sans 3', sans-serif; font-size: 11px; letter-spacing: 0.2em; color: #A09784; text-transform: uppercase; }
.pe-nav a { transition: color .2s; }
.pe-nav a:hover { color: #E8DFC9; }

/* === Hero === */
.pe-hero { height: calc(440px + 68px); margin-top: 0; position: relative; background-color: #0a0a0a; background-image: linear-gradient(135deg,#1a1815 0%,#0a0a0a 40%,#2a201a 100%); background-size: cover; background-position: center center; background-repeat: no-repeat; display: flex; align-items: flex-end; overflow: hidden; }
.pe-hero::before { content:''; position:absolute; inset:0; background: radial-gradient(ellipse 60% 80% at 30% 50%, rgba(180,160,130,0.06), transparent 60%); }
.pe-hero::after { content:''; position:absolute; inset:0; background: linear-gradient(to top, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0.05) 35%, transparent 60%); }
.pe-hero-cap { position: relative; padding: 0 48px 44px; z-index: 2; }
.pe-hero-eyebrow { font-family:'Source Sans 3',sans-serif; font-size: 10px; letter-spacing: 0.24em; color: #A09784; text-transform: uppercase; margin-bottom: 10px; }
.pe-hero-title { font-family:'EB Garamond', Georgia, serif; font-style: italic; font-size: 30px; letter-spacing: 0; color: #E8DFC9; line-height: 1.15; margin-bottom: 6px; max-width: 520px; text-shadow: 0 2px 18px rgba(0,0,0,0.7); }
.pe-hero-meta { font-family:'EB Garamond',Georgia,serif; font-style: italic; font-size: 14px; color: #A09784; }

/* === Mosaic (homepage + work index) === */
.pe-mosaic { display: grid; grid-template-columns: repeat(5, 1fr); grid-auto-rows: 180px; gap: 8px; padding: 36px; max-width: 1400px; margin: 0 auto; }
.pe-tile { position: relative; overflow: hidden; cursor: pointer; transition: transform .4s; display: block; }
.pe-tile:hover { transform: scale(0.98); }
.pe-tile-cap { position: absolute; left: 18px; bottom: 14px; font-family:'EB Garamond',Georgia,serif; font-style: italic; font-size: 18px; color: #F2EAD3; letter-spacing: 0.01em; z-index: 2; }
.pe-tile-cap small { display: block; font-family:'Source Sans 3',sans-serif; font-style: normal; font-size: 9px; letter-spacing: 0.2em; color: #A09784; text-transform: uppercase; margin-top: 3px; }
.pe-tile.t-span2 { grid-column: span 2; }
.pe-tile.t-row2 { grid-row: span 2; }
.pe-tile::after { content:''; position:absolute; inset:0; background: linear-gradient(to top, rgba(0,0,0,0.6) 0%, transparent 50%); }

/* === Photographic placeholders === */
.pe-t1 { background: linear-gradient(160deg, #0e0f12 0%, #252420 50%, #3a322a 100%); }
.pe-t2 { background: linear-gradient(190deg, #2a2825 0%, #0e0a07 100%); }
.pe-t3 { background: linear-gradient(140deg, #1a1815 0%, #3a3530 50%, #1a1410 100%); }
.pe-t4 { background: linear-gradient(180deg, #241e16 0%, #0f0d0a 100%); }
.pe-t5 { background: linear-gradient(200deg, #0a0a0a 0%, #3a2820 50%, #5a3a2a 100%); }
.pe-t6 { background: linear-gradient(160deg, #1f1c18 0%, #2e2820 100%); }
.pe-t7 { background: linear-gradient(150deg, #0e0e10 0%, #1f1f22 100%); }
.pe-t8 { background: linear-gradient(120deg, #0a0a0a 0%, #1a1f22 100%); }
.pe-t9 { background: linear-gradient(180deg, #2a2218 0%, #0a0907 100%); }
.pe-t10 { background: linear-gradient(200deg, #1a1612 0%, #2a2218 100%); }

/* === Generic page (About, Contact) === */
.pe-page { padding: 72px 48px 80px; max-width: 760px; margin: 0 auto; min-height: 60vh; }
.pe-page-head { margin-bottom: 36px; }
.pe-page-title { font-family: 'EB Garamond', Georgia, serif; font-style: italic; font-size: 52px; color: #F2EAD3; letter-spacing: -0.01em; line-height: 1.05; }
.pe-page-content.pe-prose { font-family: 'EB Garamond', Georgia, serif; font-size: 18px; line-height: 1.65; color: #C8B998; }
.pe-page-content.pe-prose p { margin-bottom: 1.2em; }
.pe-page-content.pe-prose a { color: #B8312A; border-bottom: 1px solid rgba(184,49,42,0.3); transition: color .2s, border-color .2s; }
.pe-page-content.pe-prose a:hover { color: #E8DFC9; border-color: #E8DFC9; }
.pe-page-content.pe-prose h2 { font-family: 'EB Garamond', Georgia, serif; font-style: italic; font-size: 28px; color: #E8DFC9; margin: 2em 0 0.6em; }

/* === Work page (collections index, mosaic minus hero) === */
.pe-work-head { padding: 72px 48px 16px; max-width: 1400px; margin: 0 auto; }
.pe-work-eyebrow { font-family: 'Source Sans 3', sans-serif; font-size: 10px; letter-spacing: 0.28em; color: #A09784; text-transform: uppercase; margin-bottom: 14px; }
.pe-work-title { font-family: 'EB Garamond', Georgia, serif; font-style: italic; font-size: 52px; color: #F2EAD3; letter-spacing: -0.005em; line-height: 1; }

/* === Single series (taxonomy-pe_series.php — manifesto + grid) === */
.pe-series-head { padding: 80px 48px 32px; max-width: 760px; }
.pe-series-eyebrow { font-family: 'Source Sans 3', sans-serif; font-size: 10px; letter-spacing: 0.28em; color: #A09784; text-transform: uppercase; margin-bottom: 16px; }
.pe-series-title { font-family: 'EB Garamond', Georgia, serif; font-style: italic; font-size: 64px; color: #F2EAD3; letter-spacing: -0.01em; line-height: 1; margin-bottom: 22px; }
.pe-series-statement { font-family: 'EB Garamond', Georgia, serif; font-style: italic; font-size: 19px; color: #C8B998; line-height: 1.55; max-width: 580px; }
.pe-series-meta { margin-top: 22px; font-family: 'Source Sans 3', sans-serif; font-size: 10px; letter-spacing: 0.22em; color: #807563; text-transform: uppercase; }
.pe-series-divider { height: 1px; background: rgba(160,151,132,0.16); margin: 18px 48px 4px; }
.pe-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2px; padding: 4px 2px 40px; }
.pe-grid-cell { aspect-ratio: 4 / 5; position: relative; cursor: pointer; overflow: hidden; transition: transform .35s ease; display: block; background: #1a1612; }
.pe-grid-cell:hover { transform: scale(0.97); z-index: 2; }
.pe-grid-cell::after { content: attr(data-frame); position: absolute; bottom: 14px; left: 14px; font-family: 'Source Sans 3', sans-serif; font-size: 9px; letter-spacing: 0.24em; color: rgba(232,223,201,0.7); text-transform: uppercase; opacity: 0; transition: opacity .3s; }
.pe-grid-cell:hover::after { opacity: 1; }
.pe-grid-image { width: 100%; height: 100%; object-fit: cover; }
.pe-grid-placeholder { position: absolute; inset: 0; background: linear-gradient(190deg, #2a2825 0%, #0e0a07 100%); }
.pe-grid-empty { padding: 60px 48px; font-family: 'EB Garamond', Georgia, serif; font-style: italic; font-size: 18px; color: #807563; text-align: center; grid-column: 1 / -1; }
.pe-series-end { padding: 40px 48px 60px; text-align: center; font-family: 'EB Garamond', Georgia, serif; font-style: italic; font-size: 13px; color: #807563; border-top: 1px solid rgba(160,151,132,0.1); }
.pe-series-end a { color: #C8B998; transition: color .2s; }
.pe-series-end a:hover { color: #B8312A; }

/* === Single photo / lightbox === */
body.single-pe_photo { background: #050505; padding-bottom: 90px; min-height: 100vh; }
body.single-pe_photo .pe-header { display: none; }
.pe-lb-close { position: fixed; top: 22px; right: 32px; z-index: 110; font-family: 'EB Garamond', Georgia, serif; font-size: 36px; color: #A09784; line-height: 1; transition: color .25s; }
.pe-lb-close:hover { color: #B8312A; }
.pe-lb { min-height: calc(100vh - 90px); display: flex; align-items: center; justify-content: center; padding: 60px 32px; }
.pe-lb-image { max-width: calc(100vw - 64px); max-height: calc(100vh - 200px); width: auto; height: auto; box-shadow: 0 30px 90px rgba(0,0,0,0.6); }
.pe-lb-meta { position: fixed; bottom: 0; left: 0; right: 0; z-index: 100; display: flex; align-items: center; justify-content: space-between; padding: 18px 32px; background: linear-gradient(to top, rgba(5,5,5,0.96) 0%, rgba(5,5,5,0.7) 70%, transparent 100%); backdrop-filter: blur(10px); }
.pe-lb-meta-left { display: flex; flex-direction: column; gap: 3px; }
.pe-lb-title { font-family: 'EB Garamond', Georgia, serif; font-style: italic; font-size: 16px; color: #F2EAD3; letter-spacing: 0.01em; }
.pe-lb-sub { font-family: 'Source Sans 3', sans-serif; font-size: 10px; letter-spacing: 0.24em; color: #807563; text-transform: uppercase; }
.pe-lb-cta { font-family: 'Source Sans 3', sans-serif; font-size: 10px; letter-spacing: 0.28em; color: #C8B998; text-transform: uppercase; padding: 10px 18px; border: 1px solid rgba(200,185,152,0.3); transition: all .3s; }
.pe-lb-cta:hover { color: #0A0A0A; background: #C8B998; border-color: #C8B998; }

/* === Footer === */
.pe-footer { padding: 60px 48px 40px; border-top: 0.5px solid rgba(232,223,201,0.08); display: flex; justify-content: space-between; font-family: 'Source Sans 3', sans-serif; font-size: 10px; letter-spacing: 0.2em; color: #7a7165; text-transform: uppercase; margin-top: 80px; }
.pe-footer a { color: #A09784; transition: color .2s; }
.pe-footer a:hover { color: #E8DFC9; }

/* === Responsive === */
@media (max-width: 900px) {
  .pe-mosaic { grid-template-columns: repeat(3, 1fr); }
  .pe-hero { height: 380px; }
  .pe-hero-title { font-size: 36px; }
  .pe-hero-cap { padding: 0 24px 32px; }
  .pe-grid { grid-template-columns: repeat(3, 1fr); }
  .pe-series-title { font-size: 48px; }
  .pe-page-title, .pe-work-title { font-size: 38px; }
  .pe-page, .pe-work-head, .pe-series-head { padding-left: 24px; padding-right: 24px; }
  .pe-series-divider { margin-left: 24px; margin-right: 24px; }
}
@media (max-width: 560px) {
  .pe-mosaic { grid-template-columns: repeat(2, 1fr); padding: 18px; gap: 6px; }
  .pe-grid { grid-template-columns: repeat(2, 1fr); }
  .pe-header { padding: 24px 20px 18px; }
  .pe-wordmark { font-size: 24px; }
  .pe-nav { gap: 18px; font-size: 9px; }
  .pe-footer { padding: 40px 20px 28px; flex-direction: column; gap: 16px; }
  .pe-lb-meta { padding: 14px 20px; flex-direction: column; gap: 14px; align-items: flex-start; }
}

/* === Contact form === */
.pe-form { max-width: 620px; margin: 32px 0 48px; }
.pe-form-row { margin-bottom: 22px; }
.pe-form-row label { display: block; font-family: 'Source Sans 3', sans-serif; font-size: 10px; letter-spacing: 0.22em; color: #A09784; text-transform: uppercase; margin-bottom: 8px; }
.pe-form-row input, .pe-form-row textarea {
  width: 100%; padding: 12px 14px;
  background: rgba(232,223,201,0.04);
  border: 1px solid rgba(232,223,201,0.18);
  color: #F2EAD3;
  font-family: 'EB Garamond', Georgia, serif; font-size: 17px; line-height: 1.5;
  border-radius: 0;
  transition: border-color .2s, background .2s;
}
.pe-form-row input:focus, .pe-form-row textarea:focus {
  outline: none;
  border-color: #B8312A;
  background: rgba(232,223,201,0.07);
}
.pe-form-row textarea { resize: vertical; min-height: 160px; }
.pe-form-actions { margin-top: 16px; text-align: center; }
.pe-btn {
  display: inline-block;
  font-family: 'Source Sans 3', sans-serif; font-size: 13px; font-weight: 400;
  letter-spacing: 0.32em; text-transform: uppercase; color: #C8B998;
  padding: 18px 60px;
  background: transparent;
  border: 1px solid rgba(232,223,201,0.35);
  cursor: pointer; transition: color .3s ease, border-color .3s ease, background .3s ease, letter-spacing .3s ease;
}
.pe-btn:hover { background: rgba(232,223,201,0.05); border-color: rgba(242,234,211,0.9); color: #F2EAD3; letter-spacing: 0.36em; }
.pe-flash { padding: 16px 18px; margin: 24px 0; font-family: 'EB Garamond', Georgia, serif; font-style: italic; font-size: 16px; border: 1px solid; }
.pe-flash-ok { border-color: rgba(184,49,42,0.5); color: #F2EAD3; background: rgba(184,49,42,0.08); }
.pe-flash-err { border-color: rgba(232,223,201,0.3); color: #C8B998; background: rgba(232,223,201,0.04); }

/* === MailPoet subscribe section === */
.pe-subscribe { margin: 56px 0 32px; padding-top: 36px; border-top: 0.5px solid rgba(232,223,201,0.10); }
.pe-subscribe-title { font-family: 'EB Garamond', Georgia, serif; font-style: italic; font-size: 28px; color: #F2EAD3; margin-bottom: 8px; }
.pe-subscribe-blurb { font-family: 'EB Garamond', Georgia, serif; font-style: italic; font-size: 16px; color: #A09784; margin-bottom: 18px; }
.pe-subscribe .mailpoet_form { background: transparent !important; padding: 0 !important; }
.pe-subscribe .mailpoet_text { background: rgba(232,223,201,0.04) !important; border: 1px solid rgba(232,223,201,0.18) !important; color: #F2EAD3 !important; font-family: 'EB Garamond', Georgia, serif !important; font-size: 17px !important; padding: 10px 14px !important; }
.pe-subscribe .mailpoet_submit { font-family: 'Source Sans 3', sans-serif !important; font-size: 11px !important; letter-spacing: 0.26em !important; text-transform: uppercase !important; background: transparent !important; color: #E8DFC9 !important; border: 1px solid rgba(232,223,201,0.4) !important; padding: 12px 28px !important; cursor: pointer; transition: all .25s; }
.pe-subscribe .mailpoet_submit:hover { background: #B8312A !important; border-color: #B8312A !important; }

/* === Footer social row (replaces the old text links) === */
.pe-footer { display: flex; justify-content: space-between; align-items: center; }
.pe-footer-left { font-family: 'Source Sans 3', sans-serif; font-size: 10px; letter-spacing: 0.2em; color: #7a7165; text-transform: uppercase; }
.pe-social { list-style: none; display: flex; gap: 6px; align-items: center; padding: 0; margin: 0; }
.pe-social a {
  display: inline-flex; align-items: center; justify-content: center;
  width: 32px; height: 32px; border-radius: 50%;
  color: #A09784; transition: color .2s, background .2s;
}
.pe-social a:hover { background: #B8312A; color: #F2EAD3; }
.pe-iexile { font-family: 'EB Garamond', Georgia, serif; font-style: italic; font-size: 14px; line-height: 1; }
.pe-iexile-e { color: #B8312A; }
.pe-social a:hover .pe-iexile-e { color: #F2EAD3; }

/* === Subscribe inline form === */
.pe-form-inline { margin: 0; }
.pe-form-inline-row { display: flex; gap: 8px; max-width: 540px; }
.pe-form-inline-row input[type="email"] {
  flex: 1; padding: 12px 14px;
  background: rgba(232,223,201,0.04);
  border: 1px solid rgba(232,223,201,0.18);
  color: #F2EAD3;
  font-family: 'EB Garamond', Georgia, serif; font-size: 17px;
  transition: border-color .2s, background .2s;
}
.pe-form-inline-row input[type="email"]:focus {
  outline: none; border-color: #B8312A; background: rgba(232,223,201,0.07);
}
.pe-form-inline-row input[type="email"]::placeholder {
  color: rgba(160,151,132,0.55); font-style: italic;
}
.pe-form-inline-row .pe-btn { padding: 12px 24px; }
@media (max-width: 560px) {
  .pe-form-inline-row { flex-direction: column; }
  .pe-form-inline-row .pe-btn { width: 100%; }
}

/* === Turnstile widget centering (only shows when CF risk-assesses needed) === */
.pe-form-row-turnstile { display: flex; justify-content: center; align-items: center; min-height: 0; }
.pe-form-row-turnstile:empty { display: none; }
.pe-form-row-turnstile .cf-turnstile { margin: 0 auto; }

/* === Success-state larger flash on /contact/ === */
.pe-flash-large { padding: 40px 24px; font-size: 20px; text-align: center; margin: 64px auto; max-width: 620px; }
.pe-flash-large small { display: block; font-size: 13px; color: #A09784; margin-top: 12px; font-style: italic; }

/* === Nav-bar IG follow icon === */
.pe-nav-ig { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; color: #A09784; transition: color .2s, background .2s; }
.pe-nav-ig:hover { background: #B8312A; color: #F2EAD3; }

/* === Footer SHARE row (replaces follow icons) === */
.pe-share-label { font-family: Source Sans 3, sans-serif; font-size: 9px; letter-spacing: 0.28em; color: #6A5F4E; text-transform: uppercase; margin-right: 10px; }
.pe-iexile-link { margin-left: 14px; padding-left: 14px; border-left: 1px solid rgba(160,151,132,0.18); font-family: EB Garamond, Georgia, serif; font-style: italic; font-size: 13px; }
.pe-iexile-link a { color: #A09784; transition: color .2s; }
.pe-iexile-link a:hover { color: #F2EAD3; }
.pe-iexile-link .pe-iexile-e { color: #B8312A; }
.pe-footer-right { display: flex; align-items: center; }

/* === iExile brand wordmark when used as inline link in prose === */
.pe-page-content.pe-prose a.pe-iexile-brand,
a.pe-iexile-brand {
  color: #E8DFC9;
  font-family: 'EB Garamond', Georgia, serif;
  font-style: italic;
  font-weight: 400;
  border-bottom: 0 !important;
  text-decoration: none;
  position: relative;
  display: inline-block;
  transition: color .25s ease;
}
a.pe-iexile-brand::after {
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: -3px;
  height: 1px;
  background: rgba(184,49,42,0.65);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .4s ease;
}
.pe-page-content.pe-prose a.pe-iexile-brand:hover,
a.pe-iexile-brand:hover {
  color: #F2EAD3;
  border-bottom: 0 !important;
}
a.pe-iexile-brand:hover::after {
  transform: scaleX(1);
}
a.pe-iexile-brand:hover .pe-iexile-e {
  color: #D2483D;
  transition: color .25s ease;
}
a.pe-iexile-brand .pe-iexile-e {
  color: #B8312A;
  font-style: italic;
  font-weight: 500;
}

/* === Inline small button variant of .pe-btn (for prose contexts) === */
.pe-page-content.pe-prose a.pe-btn-sm,
a.pe-btn-sm {
  display: inline-block;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 10px; font-weight: 400;
  letter-spacing: 0.28em; text-transform: uppercase;
  color: #C8B998;
  padding: 7px 18px;
  background: transparent;
  border: 1px solid rgba(232,223,201,0.35) !important;
  border-bottom: 1px solid rgba(232,223,201,0.35) !important;
  margin-left: 6px;
  text-decoration: none;
  transition: color .3s ease, border-color .3s ease, background .3s ease, letter-spacing .3s ease;
}
.pe-page-content.pe-prose a.pe-btn-sm:hover,
a.pe-btn-sm:hover {
  background: rgba(232,223,201,0.05);
  border-color: rgba(242,234,211,0.9) !important;
  color: #F2EAD3;
  letter-spacing: 0.32em;
}

/* === Required-field asterisk on Contact form labels === */
.pe-form-row label::after {
  content: " *";
  color: #B8312A;
  font-weight: 500;
  letter-spacing: 0;
}
