/*
Theme Name: Iba Renovation Child
Theme URI: https://ibarenovation.co.uk
Description: Custom child theme for Iba Renovation Ltd — North East London + Essex family-run construction firm. Built on Kadence by Flashcloud.
Author: Flashcloud
Author URI: https://flashcloud.com
Template: kadence
Version: 1.0.0
Text Domain: iba-child
*/

/* ============================================================
   1. SELF-HOSTED FONTS (variable woff2 served from /fonts/)
   ============================================================ */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('fonts/playfair-display-var.woff2') format('woff2-variations'),
       url('fonts/playfair-display-var.woff2') format('woff2');
}
@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 400 800;
  font-display: swap;
  src: url('fonts/playfair-display-italic-var.woff2') format('woff2-variations'),
       url('fonts/playfair-display-italic-var.woff2') format('woff2');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('fonts/inter-var.woff2') format('woff2-variations'),
       url('fonts/inter-var.woff2') format('woff2');
}

/* ============================================================
   2. DESIGN TOKENS
   ============================================================ */
:root {
  /* Palette */
  --ir-navy: #014984;
  --ir-navy-deep: #00355F;
  --ir-gold: #C2A063;
  --ir-gold-soft: #DDC79A;
  --ir-paper: #F6F1E6;
  --ir-paper-light: #FBF8F0;
  --ir-paper-dark: #ECE5D2;
  --ir-ink: #1B1F26;
  --ir-slate: #4A4E58;
  --ir-slate-soft: #7E8189;
  --ir-line: rgba(27, 31, 38, 0.10);
  --ir-line-gold: rgba(194, 160, 99, 0.45);

  /* Type families */
  --ir-serif: 'Playfair Display', Georgia, 'Times New Roman', serif;
  --ir-sans:  'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;

  /* Spacing scale (8pt rhythm) */
  --ir-s-1: 4px;
  --ir-s-2: 8px;
  --ir-s-3: 12px;
  --ir-s-4: 16px;
  --ir-s-5: 24px;
  --ir-s-6: 32px;
  --ir-s-7: 48px;
  --ir-s-8: 64px;
  --ir-s-9: 96px;
  --ir-s-10: 128px;

  /* Radii */
  --ir-r-sm: 6px;
  --ir-r:    12px;
  --ir-r-lg: 16px;
  --ir-r-xl: 24px;

  /* Shadows */
  --ir-shadow-card: 0 2px 8px rgba(27,31,38,0.04), 0 12px 32px -8px rgba(27,31,38,0.08);
  --ir-shadow-hero: 0 24px 48px -16px rgba(27,31,38,0.18), 0 0 0 1px rgba(194,160,99,0.18);

  /* Sticky header */
  --ir-header-h: 96px;
}
@media (max-width: 1024px) {
  :root { --ir-header-h: 76px; }
}

/* ============================================================
   3. GLOBAL TYPE + COLOR DEFAULTS
   ============================================================ */
html, body {
  background: var(--ir-paper);
  color: var(--ir-ink);
  font-family: var(--ir-sans);
  font-size: 17px;
  line-height: 1.6;
  font-feature-settings: "ss01" 1, "cv11" 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
h1, h2, h3, h4, h5,
.wp-block-heading,
.entry-title,
.site-title a {
  font-family: var(--ir-serif);
  font-weight: 600;
  color: var(--ir-navy);
  letter-spacing: -0.01em;
  line-height: 1.15;
}
h1 { font-size: clamp(2.4rem, 1.6rem + 3vw, 4.2rem); }
h2 { font-size: clamp(1.9rem, 1.4rem + 1.8vw, 2.8rem); }
h3 { font-size: clamp(1.35rem, 1.1rem + 0.8vw, 1.75rem); }
h4 { font-size: 1.2rem; font-weight: 600; }

p, li { color: var(--ir-ink); }

a {
  color: var(--ir-navy);
  text-decoration: underline;
  text-decoration-color: var(--ir-line-gold);
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
  transition: color 180ms ease, text-decoration-color 180ms ease;
}
a:hover { color: var(--ir-gold); text-decoration-color: var(--ir-gold); }

/* ============================================================
   4. FRAME KILLERS (Kadence default light-frame fights)
   ============================================================ */
body.wp-singular .content-area,
body .content-area,
body .content-container,
body .entry-content {
  background: transparent !important;
}
body .content-container {
  max-width: 1200px;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: var(--ir-s-5);
  padding-right: var(--ir-s-5);
}
body.wp-singular.single .entry-content,
body.page .entry-content {
  margin: 0 !important;
  padding: 0 !important;
}
/* Remove Kadence's default top/bottom margin on .content-area which leaves white gap above hero */
body .content-area { margin: 0 !important; padding: 0 !important; }
body .entry-hero.page-hero-section { display: none !important; }
.page .entry-title, .single .entry-title { display: none !important; }

/* Stop main from stretching (kills sticky-footer dead-space behavior) */
.wp-site-blocks > main { flex: 0 0 auto !important; }

/* ============================================================
   5. STICKY HEADER (CSS-only, dual-header)
   See feedback_sticky_kadence_header.md and feedback_kadence_dual_header.md
   ============================================================ */
html body #wrapper,
html body #page,
html body .site,
html body .site-content { overflow: visible !important; }

html body .site-header {
  position: sticky !important;
  top: 0 !important;
  z-index: 1000 !important;
  background: var(--ir-paper) !important;
  border-bottom: 1px solid var(--ir-line) !important;
  transition: box-shadow 200ms ease, background 200ms ease;
}
html body .site-header.is-scrolled {
  box-shadow: 0 2px 16px -4px rgba(27,31,38,0.08);
}
html body #main-header,
html body #mobile-header {
  background: transparent !important;
}
html body #main-header .site-container,
html body #mobile-header .site-container {
  min-height: var(--ir-header-h);
}

/* Hide redundant site-title text when image logo is present (Kadence's
   header_title_toggle option is unreliable, force via CSS) */
html body .site-header .site-title,
html body .site-header .site-description { display: none !important; }

/* Cap logo height so the header stays around --ir-header-h */
html body .site-header .site-branding img.custom-logo,
html body .site-header .site-branding .site-logo img,
html body .site-header .header-logo img,
html body .site-header .header-logo-link img {
  max-height: calc(var(--ir-header-h) - 20px) !important;
  max-width: 320px !important;
  width: auto !important;
  height: auto !important;
  object-fit: contain;
}
html body .site-header .site-branding,
html body .site-header .site-branding a {
  display: inline-flex;
  align-items: center;
}

/* Primary nav */
html body .main-navigation .menu > li > a {
  font-family: var(--ir-sans);
  font-weight: 500;
  font-size: 0.94rem;
  letter-spacing: 0.02em;
  color: var(--ir-ink);
  text-transform: uppercase;
  text-decoration: none;
  padding: 0 var(--ir-s-4);
}
html body .main-navigation .menu > li > a:hover,
html body .main-navigation .menu > li.current-menu-item > a,
html body .main-navigation .menu > li.current-menu-ancestor > a {
  color: var(--ir-navy);
  /* No font-size shift — only the underline distinguishes the active item */
  font-weight: 500 !important;
  font-size: 0.94rem !important;
}
html body .main-navigation .menu > li.current-menu-item > a::after,
html body .main-navigation .menu > li.current-menu-ancestor > a::after {
  content: "";
  display: block;
  height: 2px;
  background: var(--ir-gold);
  margin-top: 4px;
}

/* Mobile drawer */
html body #mobile-drawer .drawer-inner,
html body .mobile-drawer-inner {
  background: var(--ir-paper) !important;
}
html body .mobile-menu-container li a {
  color: var(--ir-ink) !important;
  font-family: var(--ir-sans) !important;
  letter-spacing: 0.02em;
}
html body .mobile-menu-container li.current-menu-item a {
  color: var(--ir-navy) !important;
  background: rgba(194,160,99,0.12) !important;
}

/* ============================================================
   6. SECTION WRAPPERS
   ============================================================ */
.ir-section {
  position: relative;
  padding: var(--ir-s-9) 0;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}
.ir-section--tight { padding: var(--ir-s-7) 0; }
.ir-section--paper { background: var(--ir-paper); }
.ir-section--paper-light { background: var(--ir-paper-light); }
.ir-section--paper-dark { background: var(--ir-paper-dark); }
.ir-section--navy { background: var(--ir-navy); color: var(--ir-paper); }
.ir-section--ink { background: var(--ir-ink); color: var(--ir-paper); }

.ir-section--navy h1,
.ir-section--navy h2,
.ir-section--navy h3,
.ir-section--navy h4,
.ir-section--ink h1,
.ir-section--ink h2,
.ir-section--ink h3,
.ir-section--ink h4 { color: #fff; }
.ir-section--navy p,
.ir-section--ink p { color: rgba(246,241,230,0.85); }
.ir-section--navy a,
.ir-section--ink a { color: var(--ir-gold); text-decoration-color: var(--ir-gold); }
.ir-section--navy a:hover,
.ir-section--ink a:hover { color: #fff; }

.ir-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--ir-s-5);
}
.ir-container--narrow { max-width: 880px; }
.ir-container--wide   { max-width: 1320px; }

/* ============================================================
   7. ATOMIC ELEMENTS
   ============================================================ */
.ir-eyebrow {
  display: inline-block;
  font-family: var(--ir-sans);
  font-weight: 600;
  font-size: 0.78rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ir-gold);
  margin: 0 0 var(--ir-s-4) 0;
}
.ir-section--navy .ir-eyebrow,
.ir-section--ink .ir-eyebrow { color: var(--ir-gold-soft); }

.ir-rule {
  display: block;
  width: 56px;
  height: 1px;
  background: var(--ir-gold);
  margin: var(--ir-s-5) 0;
  border: 0;
}
.ir-rule--center { margin-left: auto; margin-right: auto; }

.ir-lede {
  font-size: 1.18rem;
  line-height: 1.6;
  color: var(--ir-slate);
  max-width: 60ch;
}

.ir-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
  padding: 14px 24px;
  font-family: var(--ir-sans);
  font-weight: 600;
  font-size: 0.96rem;
  letter-spacing: 0.02em;
  border-radius: var(--ir-r-sm);
  text-decoration: none;
  border: 1px solid transparent;
  transition: background 180ms ease, color 180ms ease, border-color 180ms ease, transform 120ms ease;
  cursor: pointer;
}
.ir-btn--primary {
  background: var(--ir-navy);
  color: #fff;
}
.ir-btn--primary:hover { background: var(--ir-navy-deep); color: #fff; transform: translateY(-1px); }
.ir-btn--ghost {
  background: transparent;
  color: var(--ir-navy);
  border-color: var(--ir-navy);
}
.ir-btn--ghost:hover { background: var(--ir-navy); color: #fff; }
.ir-section a.ir-btn--gold,
a.ir-btn--gold {
  background: var(--ir-gold);
  color: var(--ir-navy) !important;
}
.ir-section a.ir-btn--gold:hover,
a.ir-btn--gold:hover { background: var(--ir-gold-soft); color: var(--ir-navy-deep) !important; }

.ir-section a.ir-btn--white-ghost,
a.ir-btn--white-ghost {
  background: transparent;
  color: #fff !important;
  border-color: rgba(255,255,255,0.6);
}
.ir-section a.ir-btn--white-ghost:hover,
a.ir-btn--white-ghost:hover { background: #fff; color: var(--ir-navy) !important; border-color: #fff; }

.ir-btns {
  display: flex;
  gap: var(--ir-s-3);
  flex-wrap: wrap;
  margin-top: var(--ir-s-5);
}

/* ============================================================
   8. HERO SPLIT
   ============================================================ */
.ir-hero {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: var(--ir-s-8);
  align-items: center;
  padding: var(--ir-s-9) 0 var(--ir-s-8);
}
.ir-hero__copy h1 {
  margin: 0 0 var(--ir-s-5) 0;
  font-weight: 600;
}
.ir-hero__copy .ir-lede { margin: 0 0 var(--ir-s-5) 0; }
.ir-hero__media {
  position: relative;
  border-radius: var(--ir-r-lg);
  overflow: hidden;
  box-shadow: var(--ir-shadow-hero);
  aspect-ratio: 4 / 3;
}
.ir-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.ir-hero__media::after {
  content: "";
  position: absolute;
  top: 12px; right: 12px;
  width: 28px; height: 28px;
  border-top: 2px solid var(--ir-gold);
  border-right: 2px solid var(--ir-gold);
  opacity: 0.85;
}
@media (max-width: 980px) {
  .ir-hero { grid-template-columns: 1fr; gap: var(--ir-s-7); }
}

/* ============================================================
   9. CARDS
   ============================================================ */
.ir-card {
  display: flex;
  flex-direction: column;
  background: var(--ir-paper-light);
  border: 1px solid var(--ir-line);
  border-radius: var(--ir-r-lg);
  padding: var(--ir-s-5) var(--ir-s-5) var(--ir-s-5);
  transition: border-color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}
.ir-card:hover {
  border-color: var(--ir-line-gold);
  box-shadow: var(--ir-shadow-card);
  transform: translateY(-2px);
}
.ir-card__icon {
  width: 64px; height: 64px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: var(--ir-r);
  background: rgba(194,160,99,0.16);
  color: var(--ir-navy);
  margin-bottom: var(--ir-s-4);
  border: 1px solid rgba(194,160,99,0.28);
}
.ir-card__icon svg { width: 34px; height: 34px; stroke: var(--ir-navy); stroke-width: 1.5; fill: none; }
.ir-card__label {
  font-family: var(--ir-sans);
  font-size: 0.74rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ir-gold);
  margin: 0 0 var(--ir-s-2) 0;
}
.ir-card__title {
  font-family: var(--ir-serif);
  font-weight: 600;
  color: var(--ir-navy);
  font-size: 1.32rem;
  margin: 0 0 var(--ir-s-3) 0;
}
.ir-card__body {
  color: var(--ir-slate);
  font-size: 0.96rem;
  line-height: 1.55;
  margin: 0 0 var(--ir-s-4) 0;
}
.ir-card__cta {
  margin-top: auto;
  font-family: var(--ir-sans);
  font-weight: 600;
  font-size: 0.92rem;
  letter-spacing: 0.02em;
  color: var(--ir-gold);
  text-decoration: none;
}
.ir-card__cta:hover { color: var(--ir-navy); }
.ir-card__cta::after { content: " →"; }

/* ============================================================
   10. SERVICES GRID (12 cards, responsive)
   ============================================================ */
.ir-grid {
  display: grid;
  gap: var(--ir-s-5);
}
.ir-grid--services { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ir-grid--services-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ir-grid--portfolio { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--ir-s-6); }
.ir-grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--ir-s-6); }

@media (max-width: 1100px) {
  .ir-grid--services { grid-template-columns: repeat(3, 1fr); }
  .ir-grid--services-3 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 800px) {
  .ir-grid--services { grid-template-columns: repeat(2, 1fr); }
  .ir-grid--services-3 { grid-template-columns: repeat(2, 1fr); }
  .ir-grid--portfolio { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 520px) {
  .ir-grid--services { grid-template-columns: 1fr; }
  .ir-grid--services-3 { grid-template-columns: 1fr; }
  .ir-grid--portfolio { grid-template-columns: 1fr; }
  .ir-grid--two { grid-template-columns: 1fr; }
}

/* ============================================================
   11. PORTFOLIO CARDS
   ============================================================ */
.ir-project {
  display: flex;
  flex-direction: column;
  background: var(--ir-paper-light);
  border: 1px solid var(--ir-line);
  border-radius: var(--ir-r-lg);
  overflow: hidden;
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}
.ir-project:hover {
  border-color: var(--ir-line-gold);
  box-shadow: var(--ir-shadow-card);
  transform: translateY(-2px);
}
.ir-project__media {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--ir-paper-dark);
}
.ir-project__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ir-project__body { padding: var(--ir-s-5); display: flex; flex-direction: column; gap: var(--ir-s-3); }
.ir-project__label {
  font-family: var(--ir-sans);
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ir-gold);
  margin: 0;
}
.ir-project__title {
  font-family: var(--ir-serif);
  font-weight: 600;
  color: var(--ir-navy);
  font-size: 1.22rem;
  margin: 0;
}
.ir-project__loc {
  font-size: 0.88rem;
  color: var(--ir-slate);
  margin: 0;
}
.ir-project__more {
  font-family: var(--ir-sans);
  font-weight: 600;
  font-size: 0.88rem;
  color: var(--ir-navy);
  text-decoration: none;
  margin-top: var(--ir-s-2);
  padding-top: var(--ir-s-3);
  border-top: 1px solid var(--ir-line-gold);
}
.ir-project__more::after { content: " →"; color: var(--ir-gold); }

/* Multi-photo project carousel (no JS library — native scroll-snap with arrows) */
.ir-project__media {
  position: relative;
}
.ir-project__photos {
  display: flex;
  width: 100%;
  height: 100%;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}
.ir-project__photos::-webkit-scrollbar { display: none; }
.ir-project__photos img {
  flex: 0 0 100%;
  width: 100%;
  height: 100%;
  object-fit: cover;
  scroll-snap-align: start;
  display: block;
  cursor: zoom-in;
}
.ir-project__dots {
  position: absolute;
  bottom: 10px; left: 50%; transform: translateX(-50%);
  display: flex; gap: 6px;
  background: rgba(27,31,38,0.55);
  padding: 6px 10px;
  border-radius: 999px;
  z-index: 2;
  pointer-events: none;
}
.ir-project__dots span {
  width: 6px; height: 6px; border-radius: 50%;
  background: rgba(246,241,230,0.5);
  transition: background 180ms ease;
}
.ir-project__dots span.is-active { background: var(--ir-gold); }
.ir-project__arrow {
  position: absolute;
  top: 50%; transform: translateY(-50%);
  width: 36px; height: 36px;
  display: inline-flex; align-items: center; justify-content: center;
  background: rgba(27,31,38,0.6);
  color: #fff;
  border-radius: 50%;
  border: none;
  cursor: pointer;
  z-index: 3;
  opacity: 0;
  transition: opacity 180ms ease, background 180ms ease;
}
.ir-project:hover .ir-project__arrow { opacity: 1; }
.ir-project__arrow:hover { background: var(--ir-navy); }
.ir-project__arrow--prev { left: 10px; }
.ir-project__arrow--next { right: 10px; }
.ir-project__arrow svg { width: 16px; height: 16px; stroke: currentColor; stroke-width: 2; fill: none; }

/* Lightbox */
.ir-lightbox {
  position: fixed; inset: 0;
  background: rgba(27,31,38,0.94);
  display: none;
  align-items: center; justify-content: center;
  z-index: 9999;
  padding: var(--ir-s-7);
}
.ir-lightbox.is-open { display: flex; }
.ir-lightbox img {
  max-width: 100%; max-height: 100%;
  object-fit: contain;
  box-shadow: 0 30px 80px -20px rgba(0,0,0,0.6);
}
.ir-lightbox__close {
  position: absolute; top: 24px; right: 24px;
  width: 44px; height: 44px;
  background: rgba(246,241,230,0.12); color: #fff;
  border: none; border-radius: 50%;
  cursor: pointer; font-size: 22px;
  display: inline-flex; align-items: center; justify-content: center;
}
.ir-lightbox__close:hover { background: var(--ir-gold); color: var(--ir-navy); }

/* ============================================================
   12. SERVICE DEEP-DIVE
   ============================================================ */
.ir-deep__hero {
  position: relative;
  aspect-ratio: 21 / 9;
  overflow: hidden;
  border-radius: var(--ir-r-lg);
  margin-bottom: var(--ir-s-7);
}
.ir-deep__hero img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ir-deep__hero::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(1,73,132,0.78) 100%);
}
.ir-deep__hero-title {
  position: absolute;
  left: var(--ir-s-7); bottom: var(--ir-s-6); right: var(--ir-s-7);
  z-index: 2;
  color: #fff;
}
.ir-deep__hero-title .ir-eyebrow { color: var(--ir-gold-soft); }
.ir-deep__hero-title h1 { color: #fff; margin: 0; }

.ir-deep__split {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: var(--ir-s-8);
}
@media (max-width: 900px) {
  .ir-deep__split { grid-template-columns: 1fr; gap: var(--ir-s-6); }
}
.ir-deep__list { list-style: none; margin: 0; padding: 0; }
.ir-deep__list li {
  position: relative;
  padding-left: var(--ir-s-5);
  margin-bottom: var(--ir-s-3);
  color: var(--ir-ink);
}
.ir-deep__list li::before {
  content: "";
  position: absolute;
  left: 0; top: 0.75em;
  width: 14px; height: 1px;
  background: var(--ir-gold);
}
.ir-deep__qa { margin-bottom: var(--ir-s-5); }
.ir-deep__qa h4 {
  font-family: var(--ir-serif);
  font-weight: 600;
  color: var(--ir-navy);
  font-size: 1.05rem;
  margin: 0 0 var(--ir-s-2) 0;
}
.ir-deep__qa p {
  color: var(--ir-slate);
  font-size: 0.96rem;
  margin: 0;
}

/* Pull-quote band */
.ir-quote {
  text-align: center;
  padding: var(--ir-s-8) var(--ir-s-5);
}
.ir-quote p {
  font-family: var(--ir-serif);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(1.4rem, 1rem + 1.4vw, 2.2rem);
  color: #fff;
  max-width: 32ch;
  margin: 0 auto;
  line-height: 1.35;
}
.ir-quote::after {
  content: "";
  display: block;
  width: 56px;
  height: 1px;
  background: var(--ir-gold);
  margin: var(--ir-s-5) auto 0;
}

/* ============================================================
   13. TRUST BAND (placeholder slots)
   ============================================================ */
.ir-trust {
  text-align: center;
}
.ir-trust__row {
  display: flex;
  justify-content: center;
  gap: var(--ir-s-7);
  flex-wrap: wrap;
  margin: var(--ir-s-5) 0;
}
.ir-trust__slot {
  width: 160px; height: 88px;
  border: 1px solid var(--ir-line-gold);
  border-radius: var(--ir-r-sm);
  background: var(--ir-paper-light);
  display: flex; align-items: center; justify-content: center;
  color: var(--ir-slate-soft);
  font-family: var(--ir-sans);
  font-size: 0.7rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.ir-trust__note {
  font-size: 0.92rem;
  color: var(--ir-slate);
  max-width: 50ch;
  margin: 0 auto;
}

/* ============================================================
   14. CONTACT BLOCK
   ============================================================ */
.ir-contact {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: var(--ir-s-8);
  align-items: start;
}
@media (max-width: 980px) { .ir-contact { grid-template-columns: 1fr; gap: var(--ir-s-6); } }
.ir-contact__studio { list-style: none; padding: 0; margin: var(--ir-s-6) 0 0 0; }
.ir-contact__studio li {
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: var(--ir-s-4);
  padding: var(--ir-s-3) 0;
  border-top: 1px solid var(--ir-line);
}
.ir-contact__studio li:last-child { border-bottom: 1px solid var(--ir-line); }
.ir-contact__studio .lbl {
  font-family: var(--ir-sans);
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ir-gold);
  padding-top: 2px;
}
.ir-contact__studio .val {
  color: var(--ir-ink);
  font-weight: 500;
}
.ir-contact__form {
  background: var(--ir-paper-light);
  border: 1px solid var(--ir-line);
  border-radius: var(--ir-r-lg);
  padding: var(--ir-s-7);
}

/* ============================================================
   15. PREFOOTER CTA
   ============================================================ */
.ir-prefooter {
  text-align: center;
  padding: var(--ir-s-9) var(--ir-s-5);
}
.ir-prefooter h2 {
  color: #fff;
  margin: 0 0 var(--ir-s-5) 0;
  font-weight: 600;
}
.ir-prefooter h2 .ir-accent {
  font-style: italic;
  color: var(--ir-gold);
}
.ir-prefooter p {
  color: rgba(246,241,230,0.85);
  max-width: 50ch;
  margin: 0 auto var(--ir-s-5);
  font-size: 1.08rem;
}
.ir-prefooter .ir-btns { justify-content: center; }

/* ============================================================
   16. FOOTER
   ============================================================ */
.site-footer,
.site-footer .site-footer-row-container-inner,
.site-footer .site-footer-section,
.site-footer .footer-widget-area-inner,
.site-footer .site-top-footer-wrap,
.site-footer .site-middle-footer-wrap,
.site-footer .site-bottom-footer-wrap {
  background: var(--ir-ink) !important;
  color: rgba(246,241,230,0.85) !important;
}
.site-footer .widget-title,
.site-footer h4 {
  font-family: var(--ir-sans);
  font-size: 0.78rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ir-gold) !important;
  margin: 0 0 var(--ir-s-4) 0;
}
.site-footer a {
  color: rgba(246,241,230,0.78);
  text-decoration: none;
}
.site-footer a:hover { color: var(--ir-gold); }
.site-footer p { margin: 0 0 var(--ir-s-3) 0; font-size: 0.92rem; }
.site-footer ul.menu, .site-footer .wp-block-list { list-style: none; padding: 0; margin: 0; }
.site-footer ul.menu li, .site-footer .wp-block-list li { padding: var(--ir-s-1) 0; }

.site-footer .site-bottom-footer-wrap .site-footer-row-container-inner {
  padding: var(--ir-s-3) 0 !important;
  border-top: 1px solid rgba(194,160,99,0.20) !important;
}
.site-footer .site-bottom-footer-wrap p { font-size: 0.85rem; color: rgba(246,241,230,0.6); }
.site-footer .ir-attribution { text-align: right; }
@media (max-width: 768px) {
  .site-footer .site-bottom-footer-wrap .site-footer-row-container-inner { text-align: center; }
  .site-footer .ir-attribution { text-align: center; }
}
.site-footer .ir-attribution a {
  color: var(--ir-gold);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* IBA footer wordmark */
.site-footer .ir-footer-wordmark {
  font-family: var(--ir-serif);
  font-weight: 700;
  font-size: 1.6rem;
  color: var(--ir-gold);
  letter-spacing: 0.04em;
  margin: 0 0 var(--ir-s-4) 0;
}

/* Social icon row in footer column 1 */
.site-footer .ir-social { display: flex; gap: var(--ir-s-3); margin-top: var(--ir-s-4); }
.site-footer .ir-social a {
  width: 32px; height: 32px;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid rgba(194,160,99,0.30);
  border-radius: var(--ir-r-sm);
  color: var(--ir-gold);
}
.site-footer .ir-social a:hover { background: var(--ir-gold); color: var(--ir-ink); }
.site-footer .ir-social svg { width: 14px; height: 14px; fill: currentColor; }

/* ============================================================
   17. SECTION-EDITOR-INJECTED CONTENT WRAPPER
   ============================================================ */
.ir-rendered-sections { display: block; }
.ir-rendered-sections > .ir-section + .ir-section { /* sections butt up cleanly */ }

/* Centred utility for headlines */
.ir-center { text-align: center; }
.ir-center .ir-lede { margin-left: auto; margin-right: auto; }

/* ============================================================
   18. FOOTER ATTRIBUTION (Flashcloud, per memory)
   ============================================================ */
.ir-footer-attribution a {
  color: var(--ir-gold);
  text-decoration: underline;
  text-underline-offset: 3px;
}
