/* In His Presence Archive. Scoped to .ihp-* so it never fights the block editor.
   Colours come from the Two Rooms tokens defined in Customise > Additional CSS. */
.ihp-section{margin:3.5rem 0;}
.ihp-section > h2{margin:0 0 .5rem;}
.ihp-intro{margin:0 0 1.75rem;max-width:52ch;}

/* Quick facts. Flex, not grid, so an odd number of facts never leaves an empty cell. */
.ihp-facts{display:flex;flex-wrap:wrap;border:1px solid var(--dp-hair,#E4DCD2);border-top:0;border-radius:4px;overflow:hidden;background:var(--dp-surface,#fff);margin:2rem 0 3rem;}
.ihp-fact{flex:1 1 150px;padding:1rem 1.1rem;display:flex;flex-direction:column;gap:.2rem;border-top:1px solid var(--dp-hair,#E4DCD2);border-right:1px solid var(--dp-hair,#E4DCD2);}
.ihp-fact:last-child{border-right:0;}
.ihp-fact-k{font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--dp-accent,#E6007E);}
.ihp-fact-v{font-size:1.02rem;color:var(--dp-ink,#2B0F5C);font-weight:600;}

/* Performance cards */
.ihp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;}
@media(min-width:700px){.ihp-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;}}
@media(min-width:1100px){.ihp-grid{grid-template-columns:repeat(4,minmax(0,1fr));}}

.ihp-card{background:var(--dp-surface,#fff);border:1px solid var(--dp-hair,#E4DCD2);border-radius:4px;overflow:hidden;transition:transform .18s ease,box-shadow .18s ease;}
.ihp-card:hover{transform:translateY(-3px);box-shadow:0 10px 26px rgba(43,15,92,.13);}
.ihp-card-link{display:block;text-decoration:none;color:inherit;}
.ihp-card-media{aspect-ratio:3/4;overflow:hidden;background:var(--dp-stage,#2B0F5C);}
.ihp-card-media img{width:100%;height:100%;object-fit:cover;object-position:center 18%;display:block;border-radius:0;}
.ihp-card-media--empty{display:flex;align-items:center;justify-content:center;}
.ihp-card-media--empty span{font-family:Anton,Impact,sans-serif;font-size:3.4rem;color:var(--dp-gold,#FFC02E);line-height:1;}
.ihp-card-body{padding:.9rem 1rem 1.1rem;}
.ihp-card-name{margin:0 0 .15rem;font-size:1.02rem;line-height:1.18;color:var(--dp-ink,#2B0F5C);}
.ihp-card-role{margin:0 0 .5rem;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--dp-muted,#6B5B8A);}
.ihp-card-meta{margin:0;display:flex;flex-wrap:wrap;gap:.15rem .8rem;font-size:.82rem;color:var(--dp-muted,#6B5B8A);}
.ihp-tag{display:inline-block;background:var(--dp-accent,#E6007E);color:#fff;font-size:.66rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:.24rem .55rem;border-radius:3px;margin-bottom:.5rem;}
.ihp-card.is-featured{border-color:var(--dp-accent,#E6007E);}

/* Poster */
.ihp-poster{margin:0;max-width:560px;}
.ihp-poster img{width:100%;height:auto;border-radius:4px;border:1px solid var(--dp-hair,#E4DCD2);}

/* Previous / next */
.ihp-adjacent{display:grid;grid-template-columns:1fr;gap:.75rem;margin:3.5rem 0 1rem;border-top:1px solid var(--dp-hair,#E4DCD2);padding-top:1.75rem;}
@media(min-width:700px){.ihp-adjacent{grid-template-columns:1fr 1fr;}}
.ihp-adj{display:flex;flex-direction:column;gap:.15rem;text-decoration:none;padding:1rem 1.15rem;border:1px solid var(--dp-hair,#E4DCD2);border-radius:4px;background:var(--dp-surface,#fff);}
.ihp-adj:hover{border-color:var(--dp-accent,#E6007E);}
.ihp-adj span{font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--dp-accent,#E6007E);}
.ihp-adj strong{font-family:Anton,Impact,sans-serif;font-weight:400;text-transform:uppercase;font-size:1.15rem;color:var(--dp-ink,#2B0F5C);letter-spacing:.005em;}
.ihp-adj--next{text-align:right;}

.ihp-card-link:focus-visible,.ihp-adj:focus-visible{outline:2px solid var(--dp-accent,#E6007E);outline-offset:2px;}
/* Performance and artist pages */
.ihp-video{max-width:900px;border-radius:4px;overflow:hidden;}
.ihp-notice{background:var(--dp-surface,#fff);border:1px solid var(--dp-hair,#E4DCD2);border-left:3px solid var(--dp-accent,#E6007E);border-radius:4px;padding:1.4rem 1.5rem;max-width:640px;}
.ihp-notice p{margin:0 0 .6rem;}
.ihp-notice p:last-child{margin:0;}
.ihp-btn{display:inline-block;background:var(--dp-accent,#E6007E);color:#fff;text-decoration:none;font-weight:600;letter-spacing:.02em;padding:.8rem 1.5rem;border-radius:4px;margin-top:.4rem;}
.ihp-btn:hover{background:var(--dp-accent-deep,#C40069);color:#fff;}

.ihp-video{margin:0;max-width:900px;}
.ihp-video-note{margin:.7rem 0 0;font-size:.88rem;color:var(--dp-muted,#6B5B8A);}

/* Concert index */
.ihp-grid--index{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));}
.ihp-card-media--poster{aspect-ratio:3/4;}
.ihp-card-media--poster img{object-position:center top;}
.ihp-card--concert .dp-year{display:block;margin-bottom:.2rem;}
.ihp-card-tier{margin:.5rem 0 0;font-size:.76rem;color:var(--dp-muted,#6B5B8A);font-style:italic;}

/* Concert with no poster yet: same shape, honest label */
.ihp-card-media--noposter{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;background:var(--dp-stage,#2B0F5C);}
.ihp-noposter-num{font-family:Anton,Impact,sans-serif;font-size:4.2rem;line-height:1;color:var(--dp-gold,#FFC02E);}
.ihp-noposter-cap{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--dp-muted-stage,#C6B4E6);}
.ihp-card--concert .ihp-card-body{display:flex;flex-direction:column;gap:.15rem;}


/* Artist portrait. The flyer crop is 3:4, so cap the width rather than the height
   and let it sit left with the rest of the page, not centred. */
.ihp-artist-photo{margin:0 0 1.6rem;max-width:280px;}
.ihp-artist-photo img{display:block;width:100%;height:auto;border-radius:4px;}
@media (max-width:600px){.ihp-artist-photo{max-width:200px;}}
