/* ====================================================
   INFRACODEZ THEME — Main Stylesheet
   Engineered for Performance. Built with Surgical Precision.
   ==================================================== */

/* ── Reset & Base ─────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html {
  font-size: 16px;
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

body {
  font-family: var(--ic-font-body);
  font-size: var(--ic-text-base);
  color: var(--ic-text);
  background-color: var(--ic-bg);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

img, picture, video, canvas, svg {
  display: block;
  max-width: 100%;
}

input, button, textarea, select { font: inherit; }

p, h1, h2, h3, h4, h5, h6 { overflow-wrap: break-word; }

/* ── Typography ───────────────────────────────────── */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--ic-font-heading);
  font-weight: 800;
  color: var(--ic-text);
  line-height: 1.1;
  letter-spacing: -0.03em;
}

h1 { font-size: clamp(2.5rem, 5vw, var(--ic-text-6xl)); }
h2 { font-size: clamp(2rem, 4vw, 3rem); }
h3 { font-size: clamp(1.5rem, 3vw, 2rem); }
h4 { font-size: clamp(1.25rem, 2vw, 1.5rem); }
h5 { font-size: 1.125rem; }
h6 { font-size: 1rem; }

p {
  font-family: var(--ic-font-body);
  font-size: var(--ic-text-base);
  color: var(--ic-text-muted);
  line-height: 1.75;
  margin-bottom: 1.25rem;
}

p:last-child { margin-bottom: 0; }

a {
  color: var(--ic-accent);
  text-decoration: none;
  transition: color var(--ic-transition);
}
a:hover { color: var(--ic-accent-hover); }

/* ── Layout ───────────────────────────────────────── */
.ic-container {
  width: 100%;
  max-width: var(--ic-container);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--ic-gutter);
  padding-right: var(--ic-gutter);
}

.ic-container-narrow {
  max-width: var(--ic-container-narrow);
}

.ic-section {
  padding-top: var(--ic-space-4xl);
  padding-bottom: var(--ic-space-4xl);
}

.ic-section-sm {
  padding-top: var(--ic-space-3xl);
  padding-bottom: var(--ic-space-3xl);
}

/* ── Navigation ───────────────────────────────────── */
#ic-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  background: rgba(240, 244, 248, 0.9);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--ic-border-light);
  transition: all var(--ic-transition);
}

#ic-header.scrolled {
  box-shadow: var(--ic-shadow-md);
  background: rgba(255, 255, 255, 0.95);
}

.ic-nav-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 80px;
}

/* Logo */
.ic-logo {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  text-decoration: none;
}

.ic-logo-text {
  font-family: var(--ic-font-heading);
  font-weight: 800;
  font-size: 1.25rem;
  color: var(--ic-text);
  letter-spacing: -0.04em;
}

.ic-logo-text span {
  color: var(--ic-accent);
}

/* Nav Menu */
.ic-nav-menu {
  display: flex;
  align-items: center;
  list-style: none;
  gap: 2rem;
}

.ic-nav-menu a {
  font-family: var(--ic-font-body);
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--ic-text-muted);
  text-decoration: none;
  transition: color var(--ic-transition);
  position: relative;
}

.ic-nav-menu a::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 0;
  height: 2px;
  background: var(--ic-accent);
  transition: width var(--ic-transition);
}

.ic-nav-menu a:hover,
.ic-nav-menu .current-menu-item a {
  color: var(--ic-text);
}

.ic-nav-menu a:hover::after,
.ic-nav-menu .current-menu-item a::after {
  width: 100%;
}

/* CTA Button in Nav */
.ic-nav-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.625rem 1.5rem;
  background: var(--ic-accent);
  color: var(--ic-white) !important;
  border-radius: var(--ic-radius-md);
  font-weight: 600;
  font-size: 0.875rem;
  transition: all var(--ic-transition);
}

.ic-nav-cta:hover {
  background: var(--ic-accent-hover);
  transform: translateY(-1px);
  box-shadow: 0 4px 16px rgba(0, 90, 181, 0.3);
}

.ic-nav-cta::after { display: none !important; }

/* Mobile hamburger */
.ic-hamburger {
  display: none;
  flex-direction: column;
  gap: 5px;
  cursor: pointer;
  padding: 0.5rem;
  background: none;
  border: none;
}

.ic-hamburger span {
  display: block;
  width: 24px;
  height: 2px;
  background: var(--ic-text);
  border-radius: 2px;
  transition: all var(--ic-transition);
}

/* ── Hero Section ─────────────────────────────────── */
.ic-hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: center;
  background-color: var(--ic-bg);
  overflow: hidden;
  padding-top: 80px;
}

.ic-hero::before {
  content: '';
  position: absolute;
  top: 0; right: 0;
  width: 50%;
  height: 100%;
  background: radial-gradient(ellipse at 80% 50%, rgba(0,90,181,0.06) 0%, transparent 70%);
  pointer-events: none;
}

.ic-hero-inner {
  position: relative;
  z-index: 1;
  padding: var(--ic-space-4xl) 0;
}

.ic-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.75rem;
  background: var(--ic-green);
  color: var(--ic-green-light);
  font-family: var(--ic-font-label);
  font-weight: 700;
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  border-radius: var(--ic-radius-full);
  margin-bottom: 1.5rem;
}

.ic-hero-heading {
  font-family: var(--ic-font-heading);
  font-weight: 800;
  font-size: clamp(3rem, 6vw, 4.5rem);
  color: var(--ic-text);
  line-height: 1.1;
  letter-spacing: -0.05em;
  max-width: 14ch;
  margin-bottom: 1.5rem;
}

.ic-hero-heading .ic-accent-text {
  color: var(--ic-accent);
  font-style: italic;
}

.ic-hero-subtext {
  font-size: 1.25rem;
  color: var(--ic-text-muted);
  line-height: 1.65;
  max-width: 640px;
  margin-bottom: 2.5rem;
}

.ic-hero-actions {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}

/* ── Buttons ──────────────────────────────────────── */
.ic-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.875rem 2rem;
  border-radius: var(--ic-radius-md);
  font-family: var(--ic-font-body);
  font-weight: 600;
  font-size: 0.9375rem;
  text-decoration: none;
  transition: all var(--ic-transition);
  cursor: pointer;
  border: 2px solid transparent;
}

.ic-btn-primary {
  background: var(--ic-accent);
  color: var(--ic-white);
  border-color: var(--ic-accent);
}

.ic-btn-primary:hover {
  background: var(--ic-accent-hover);
  border-color: var(--ic-accent-hover);
  color: var(--ic-white);
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0, 90, 181, 0.25);
}

.ic-btn-outline {
  background: transparent;
  color: var(--ic-text);
  border-color: var(--ic-border);
}

.ic-btn-outline:hover {
  background: var(--ic-surface);
  border-color: var(--ic-text);
  color: var(--ic-text);
  transform: translateY(-2px);
  box-shadow: var(--ic-shadow-md);
}

.ic-btn-ghost {
  background: transparent;
  color: var(--ic-accent);
  border-color: transparent;
  padding-left: 0;
  padding-right: 0;
}

.ic-btn-ghost:hover {
  color: var(--ic-accent-hover);
  gap: 0.75rem;
}

/* ── Stats Row ────────────────────────────────────── */
.ic-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 2rem;
  padding: var(--ic-space-3xl) 0;
  border-top: 1px solid var(--ic-border-light);
  border-bottom: 1px solid var(--ic-border-light);
}

.ic-stat-item {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.ic-stat-number {
  font-family: var(--ic-font-heading);
  font-weight: 800;
  font-size: 2.5rem;
  color: var(--ic-text);
  letter-spacing: -0.04em;
  line-height: 1;
}

.ic-stat-label {
  font-family: var(--ic-font-label);
  font-size: 0.8125rem;
  color: var(--ic-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 500;
}

/* ── Section Headers ──────────────────────────────── */
.ic-section-label {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--ic-font-label);
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--ic-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  margin-bottom: 1rem;
}

.ic-section-label::before {
  content: '';
  display: block;
  width: 20px;
  height: 2px;
  background: var(--ic-accent);
}

.ic-section-heading {
  font-family: var(--ic-font-heading);
  font-weight: 800;
  color: var(--ic-text);
  letter-spacing: -0.04em;
  line-height: 1.1;
}

/* ── Cards ────────────────────────────────────────── */
.ic-card {
  background: var(--ic-surface);
  border: 1px solid var(--ic-border-light);
  border-radius: var(--ic-radius-xl);
  padding: var(--ic-space-lg);
  transition: all var(--ic-transition);
}

.ic-card:hover {
  box-shadow: var(--ic-shadow-lg);
  transform: translateY(-4px);
  border-color: var(--ic-accent-light);
}

.ic-card-dark {
  background: var(--ic-card-dark);
  border-color: rgba(255,255,255,0.06);
  color: var(--ic-white);
}

.ic-card-dark h3,
.ic-card-dark p {
  color: var(--ic-white);
}

/* Service Icon */
.ic-service-icon {
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--ic-accent-light);
  border-radius: var(--ic-radius-lg);
  margin-bottom: 1.25rem;
}

.ic-service-icon svg {
  width: 24px;
  height: 24px;
  color: var(--ic-accent);
}

/* ── Philosophy Cards ─────────────────────────────── */
.ic-philosophy-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.5rem;
}

.ic-philosophy-card {
  background: var(--ic-surface);
  border: 1px solid var(--ic-border-light);
  border-radius: var(--ic-radius-xl);
  padding: 2rem;
  position: relative;
  overflow: hidden;
  transition: all var(--ic-transition);
}

.ic-philosophy-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--ic-accent), var(--ic-green));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--ic-transition);
}

.ic-philosophy-card:hover::before {
  transform: scaleX(1);
}

.ic-philosophy-card:hover {
  box-shadow: var(--ic-shadow-lg);
  transform: translateY(-4px);
}

/* ── Team Grid ────────────────────────────────────── */
.ic-team-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1.5rem;
}

.ic-team-card {
  border-radius: var(--ic-radius-xl);
  overflow: hidden;
  background: var(--ic-surface);
  border: 1px solid var(--ic-border-light);
  transition: all var(--ic-transition);
}

.ic-team-card:hover {
  box-shadow: var(--ic-shadow-lg);
  transform: translateY(-4px);
}

.ic-team-image {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  background: var(--ic-bg-alt);
}

.ic-team-info {
  padding: 1.25rem;
}

.ic-team-name {
  font-family: var(--ic-font-heading);
  font-weight: 700;
  font-size: 1rem;
  color: var(--ic-text);
  margin-bottom: 0.25rem;
}

.ic-team-role {
  font-family: var(--ic-font-label);
  font-size: 0.75rem;
  color: var(--ic-accent);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 600;
}

/* ── Bento Grid ───────────────────────────────────── */
.ic-bento-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 1.5rem;
}

.ic-bento-card-lg {
  grid-column: span 7;
  background: var(--ic-card-dark);
  color: var(--ic-white);
  border-radius: var(--ic-radius-xl);
  padding: 3rem;
  min-height: 448px;
}

.ic-bento-card-sm {
  grid-column: span 5;
  border-radius: var(--ic-radius-xl);
  overflow: hidden;
}

.ic-bento-card-sm img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ── CTA Section ──────────────────────────────────── */
.ic-cta-section {
  background: var(--ic-dark-alt);
  border-radius: var(--ic-radius-xl);
  padding: var(--ic-space-4xl);
  text-align: center;
  margin: var(--ic-space-3xl) 0;
}

.ic-cta-section h2 {
  color: var(--ic-white);
  margin-bottom: 1rem;
}

.ic-cta-section p {
  color: rgba(255,255,255,0.7);
  max-width: 560px;
  margin: 0 auto 2rem;
}

/* ── Contact Form ─────────────────────────────────── */
.ic-form-group {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-bottom: 1.25rem;
}

.ic-form-label {
  font-family: var(--ic-font-label);
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--ic-text);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.ic-form-input,
.ic-form-textarea,
.ic-form-select {
  width: 100%;
  padding: 0.875rem 1rem;
  border: 1px solid var(--ic-border);
  border-radius: var(--ic-radius-md);
  background: var(--ic-surface);
  font-family: var(--ic-font-body);
  font-size: 0.9375rem;
  color: var(--ic-text);
  transition: all var(--ic-transition);
  outline: none;
}

.ic-form-input:focus,
.ic-form-textarea:focus,
.ic-form-select:focus {
  border-color: var(--ic-accent);
  box-shadow: 0 0 0 3px rgba(0, 90, 181, 0.12);
}

.ic-form-input::placeholder,
.ic-form-textarea::placeholder {
  color: var(--ic-text-light);
}

.ic-form-textarea { min-height: 140px; resize: vertical; }

.ic-form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

/* ── Footer ───────────────────────────────────────── */
#ic-footer {
  background: var(--ic-dark);
  color: var(--ic-white);
  padding: var(--ic-space-4xl) 0 var(--ic-space-lg);
}

.ic-footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 3rem;
  padding-bottom: var(--ic-space-3xl);
  border-bottom: 1px solid rgba(255,255,255,0.08);
}

.ic-footer-brand p {
  color: rgba(255,255,255,0.6);
  font-size: 0.9rem;
  max-width: 280px;
  margin-top: 1rem;
}

.ic-footer-heading {
  font-family: var(--ic-font-label);
  font-size: 0.75rem;
  font-weight: 700;
  color: rgba(255,255,255,0.4);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  margin-bottom: 1rem;
}

.ic-footer-links {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}

.ic-footer-links a {
  color: rgba(255,255,255,0.7);
  font-size: 0.9rem;
  text-decoration: none;
  transition: color var(--ic-transition);
}

.ic-footer-links a:hover {
  color: var(--ic-white);
}

.ic-footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: var(--ic-space-lg);
  flex-wrap: wrap;
  gap: 1rem;
}

.ic-footer-bottom p {
  color: rgba(255,255,255,0.4);
  font-size: 0.8125rem;
  margin: 0;
}

.ic-footer-social {
  display: flex;
  gap: 1rem;
}

.ic-footer-social a {
  width: 36px;
  height: 36px;
  border-radius: var(--ic-radius-md);
  background: rgba(255,255,255,0.06);
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255,255,255,0.6);
  transition: all var(--ic-transition);
  text-decoration: none;
}

.ic-footer-social a:hover {
  background: var(--ic-accent);
  color: var(--ic-white);
}

/* ── Blog / Insights ──────────────────────────────── */
.ic-post-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 2rem;
}

.ic-post-card {
  background: var(--ic-surface);
  border: 1px solid var(--ic-border-light);
  border-radius: var(--ic-radius-xl);
  overflow: hidden;
  transition: all var(--ic-transition);
}

.ic-post-card:hover {
  box-shadow: var(--ic-shadow-lg);
  transform: translateY(-4px);
}

.ic-post-tag {
  display: inline-block;
  padding: 0.25rem 0.625rem;
  background: var(--ic-accent-light);
  color: var(--ic-accent);
  font-family: var(--ic-font-label);
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  border-radius: var(--ic-radius-sm);
  margin-bottom: 0.75rem;
}

.ic-post-thumbnail {
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
  background: var(--ic-bg-alt);
}

.ic-post-content {
  padding: 1.5rem;
}

.ic-post-meta {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 0.8125rem;
  color: var(--ic-text-light);
  margin-bottom: 0.75rem;
}

.ic-post-title {
  font-family: var(--ic-font-heading);
  font-weight: 700;
  font-size: 1.125rem;
  color: var(--ic-text);
  line-height: 1.4;
  margin-bottom: 0.75rem;
  transition: color var(--ic-transition);
}

.ic-post-card:hover .ic-post-title {
  color: var(--ic-accent);
}

/* ── Newsletter Strip ─────────────────────────────── */
.ic-newsletter {
  background: var(--ic-bg-alt);
  border: 1px solid var(--ic-border-light);
  border-radius: var(--ic-radius-xl);
  padding: 3rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  flex-wrap: wrap;
}

.ic-newsletter-form {
  display: flex;
  gap: 0.75rem;
  flex: 1;
  min-width: 280px;
  max-width: 480px;
}

.ic-newsletter-form input {
  flex: 1;
  padding: 0.875rem 1rem;
  border: 1px solid var(--ic-border);
  border-radius: var(--ic-radius-md);
  font-size: 0.9375rem;
  background: var(--ic-surface);
  color: var(--ic-text);
  outline: none;
  transition: border-color var(--ic-transition);
}

.ic-newsletter-form input:focus {
  border-color: var(--ic-accent);
}

/* ── Page Hero ────────────────────────────────────── */
.ic-page-hero {
  background: var(--ic-bg);
  padding: calc(80px + var(--ic-space-3xl)) 0 var(--ic-space-3xl);
  border-bottom: 1px solid var(--ic-border-light);
}

.ic-breadcrumb {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.8125rem;
  color: var(--ic-text-light);
  margin-bottom: 1rem;
  list-style: none;
}

.ic-breadcrumb li:not(:last-child)::after {
  content: '/';
  margin-left: 0.5rem;
  color: var(--ic-border);
}

.ic-breadcrumb a {
  color: var(--ic-text-light);
  text-decoration: none;
}

.ic-breadcrumb a:hover { color: var(--ic-accent); }

/* ── 404 Page ─────────────────────────────────────── */
.ic-404 {
  min-height: 80vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.ic-404-code {
  font-family: var(--ic-font-heading);
  font-size: 8rem;
  font-weight: 800;
  color: var(--ic-border-light);
  line-height: 1;
  margin-bottom: 1rem;
}

/* ── Utilities ────────────────────────────────────── */
.ic-text-center { text-align: center; }
.ic-text-left   { text-align: left; }
.ic-flex-center { display: flex; align-items: center; justify-content: center; }
.ic-sr-only {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

/* ── Elementor Overrides ──────────────────────────── */
.elementor-widget-heading .elementor-heading-title {
  font-family: var(--ic-font-heading) !important;
  font-weight: 800 !important;
  letter-spacing: -0.04em !important;
}

.elementor-widget-text-editor p {
  font-family: var(--ic-font-body) !important;
  color: var(--ic-text-muted) !important;
}

.elementor-section.elementor-section-boxed > .elementor-container {
  max-width: var(--ic-container) !important;
}

.elementor-button.elementor-button-link {
  border-radius: var(--ic-radius-md) !important;
  font-weight: 600 !important;
}

/* Elementor — section full width */
.ic-elementor-section {
  width: 100%;
  position: relative;
}

/* ── Skip to Content (Accessibility) ─────────────── */
.ic-skip-link {
  position: absolute;
  top: -100%;
  left: 1rem;
  background: var(--ic-accent);
  color: var(--ic-white);
  padding: 0.5rem 1rem;
  border-radius: var(--ic-radius-md);
  font-weight: 600;
  z-index: 9999;
  transition: top var(--ic-transition);
}

.ic-skip-link:focus {
  top: 1rem;
}

/* ── Responsive ───────────────────────────────────── */
@media (max-width: 1024px) {
  .ic-footer-grid { grid-template-columns: 1fr 1fr; }
  .ic-bento-card-lg { grid-column: span 12; }
  .ic-bento-card-sm { grid-column: span 12; min-height: 300px; }
}

@media (max-width: 768px) {
  :root {
    --ic-gutter: 1rem;
    --ic-space-4xl: 4rem;
    --ic-space-3xl: 3rem;
  }

  .ic-nav-menu { display: none; }
  .ic-hamburger { display: flex; }

  .ic-nav-menu.is-open {
    display: flex;
    flex-direction: column;
    position: fixed;
    top: 80px;
    left: 0; right: 0;
    background: var(--ic-surface);
    padding: 1.5rem;
    border-bottom: 1px solid var(--ic-border-light);
    box-shadow: var(--ic-shadow-lg);
    gap: 1rem;
    z-index: 999;
  }

  .ic-form-row { grid-template-columns: 1fr; }
  .ic-footer-grid { grid-template-columns: 1fr; gap: 2rem; }
  .ic-newsletter { flex-direction: column; text-align: center; }
  .ic-newsletter-form { max-width: 100%; }
  .ic-hero-heading { font-size: clamp(2.5rem, 8vw, 3.5rem); }
  .ic-cta-section { padding: 2.5rem 1.5rem; }
  .ic-footer-bottom { flex-direction: column; text-align: center; }

  .ic-hero-actions { flex-direction: column; align-items: flex-start; }
}

@media (max-width: 480px) {
  .ic-stats { grid-template-columns: 1fr 1fr; }
  .ic-philosophy-grid { grid-template-columns: 1fr; }
}

/* ── Announcement Bar ─────────────────────────────────────────────────────────── */
.ic-announcement-bar {
  background: var(--ic-dark);
  color: rgba(255,255,255,.85);
  text-align: center;
  padding: .5rem var(--ic-gutter);
  font-size: .8125rem;
  font-family: var(--ic-font-label);
  letter-spacing: .02em;
  position: relative;
  z-index: 1001;
}
.ic-announcement-bar a {
  color: rgba(255,255,255,.9);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.ic-announcement-bar p { margin: 0; color: inherit; }

/* ── Dropdown Menu ────────────────────────────────────────────────────────────── */
.ic-has-dropdown { position: relative; }

.ic-dropdown-menu {
  display: none;
  position: absolute;
  top: calc(100% + .5rem);
  left: 0;
  min-width: 200px;
  background: var(--ic-surface);
  border: 1px solid var(--ic-border-light);
  border-radius: var(--ic-radius-lg);
  box-shadow: var(--ic-shadow-lg);
  padding: .5rem;
  list-style: none;
  z-index: 999;
}
.ic-has-dropdown:hover .ic-dropdown-menu,
.ic-has-dropdown:focus-within .ic-dropdown-menu {
  display: block;
}
.ic-dropdown-menu li a {
  display: block;
  padding: .625rem .875rem;
  border-radius: var(--ic-radius-md);
  font-size: .875rem;
  color: var(--ic-text-muted);
  transition: all var(--ic-transition);
}
.ic-dropdown-menu li a:hover {
  background: var(--ic-bg-alt);
  color: var(--ic-text);
}
.ic-dropdown-icon {
  display: inline-block;
  vertical-align: middle;
  margin-left: .25rem;
  margin-top: -2px;
  transition: transform var(--ic-transition);
}
.ic-has-dropdown:hover .ic-dropdown-icon {
  transform: rotate(180deg);
}

/* ── Post Body Typography ─────────────────────────────────────────────────────── */
.ic-post-body h2,
.ic-post-body h3,
.ic-post-body h4 {
  margin-top: 2rem;
  margin-bottom: .75rem;
  color: var(--ic-text);
}
.ic-post-body p    { color: var(--ic-text-muted); line-height: 1.8; margin-bottom: 1.25rem; }
.ic-post-body ul,
.ic-post-body ol   { padding-left: 1.5rem; margin-bottom: 1.25rem; color: var(--ic-text-muted); }
.ic-post-body li   { margin-bottom: .5rem; line-height: 1.7; }
.ic-post-body blockquote {
  border-left: 3px solid var(--ic-accent);
  padding: 1rem 1.5rem;
  margin: 1.5rem 0;
  background: var(--ic-bg-alt);
  border-radius: 0 var(--ic-radius-md) var(--ic-radius-md) 0;
  font-style: italic;
  color: var(--ic-text-muted);
}
.ic-post-body pre,
.ic-post-body code {
  font-family: var(--ic-font-mono);
  font-size: .875em;
}
.ic-post-body pre {
  background: var(--ic-dark);
  color: #e2e8f0;
  padding: 1.25rem 1.5rem;
  border-radius: var(--ic-radius-lg);
  overflow-x: auto;
  margin-bottom: 1.25rem;
  line-height: 1.6;
}
.ic-post-body code {
  background: var(--ic-accent-light);
  color: var(--ic-accent);
  padding: .125em .375em;
  border-radius: .25rem;
}
.ic-post-body pre code {
  background: none;
  color: inherit;
  padding: 0;
}
.ic-post-body a {
  color: var(--ic-accent);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.ic-post-body img {
  max-width: 100%;
  border-radius: var(--ic-radius-lg);
  margin: 1.5rem 0;
}
.ic-post-body table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 1.5rem;
  font-size: .9rem;
}
.ic-post-body th,
.ic-post-body td {
  padding: .75rem 1rem;
  border: 1px solid var(--ic-border-light);
  text-align: left;
}
.ic-post-body th {
  background: var(--ic-bg-alt);
  font-weight: 700;
  color: var(--ic-text);
}
.ic-post-body hr {
  border: none;
  border-top: 1px solid var(--ic-border-light);
  margin: 2rem 0;
}

/* ── WP Pagination ────────────────────────────────────────────────────────────── */
.ic-pagination .nav-links,
.page-links {
  display: flex;
  align-items: center;
  gap: .5rem;
  justify-content: center;
  flex-wrap: wrap;
}
.nav-links .page-numbers,
.page-links a,
.page-links span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 .75rem;
  border: 1px solid var(--ic-border-light);
  border-radius: var(--ic-radius-md);
  font-size: .875rem;
  font-weight: 500;
  color: var(--ic-text-muted);
  text-decoration: none;
  transition: all var(--ic-transition);
}
.nav-links .page-numbers:hover,
.page-links a:hover {
  border-color: var(--ic-accent);
  color: var(--ic-accent);
}
.nav-links .page-numbers.current,
.page-links .current {
  background: var(--ic-accent);
  border-color: var(--ic-accent);
  color: #fff;
}

/* ── WP Alignment ─────────────────────────────────────────────────────────────── */
.alignleft  { float: left;  margin: 0 1.5rem 1rem 0; }
.alignright { float: right; margin: 0 0 1rem 1.5rem; }
.aligncenter { display: block; margin: 1.5rem auto; text-align: center; }
.alignfull  { width: 100vw; margin-left: calc(50% - 50vw); }
.alignwide  { max-width: calc(var(--ic-container) + 80px); margin-left: auto; margin-right: auto; }

/* ── WP Gallery ───────────────────────────────────────────────────────────────── */
.gallery { display: grid; gap: .75rem; }
.gallery-columns-2 { grid-template-columns: repeat(2, 1fr); }
.gallery-columns-3 { grid-template-columns: repeat(3, 1fr); }
.gallery-columns-4 { grid-template-columns: repeat(4, 1fr); }
.gallery img { width: 100%; border-radius: var(--ic-radius-md); }

/* ── Footer Logo Override ─────────────────────────────────────────────────────── */
.ic-logo--footer .ic-logo-text { color: #fff; }
.ic-logo--footer .ic-logo-img  { filter: brightness(0) invert(1); max-height: 40px; }

/* ── Breadcrumb Styles ────────────────────────────────────────────────────────── */
.ic-breadcrumb-list {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .25rem .5rem;
  list-style: none;
  padding: 0;
  margin: 0 0 1rem;
  font-size: .8125rem;
  color: var(--ic-text-light);
}
.ic-breadcrumb-sep { color: var(--ic-border); margin: 0 .25rem; }
.ic-breadcrumb-list a { color: var(--ic-text-light); text-decoration: none; }
.ic-breadcrumb-list a:hover { color: var(--ic-accent); }
.ic-breadcrumb-current { color: var(--ic-text-muted); font-weight: 500; }

/* ── Comment Form ─────────────────────────────────────────────────────────────── */
.ic-comment-form .submit { margin-top: 1rem; }
.comment-reply-link {
  font-size: .8125rem;
  font-weight: 600;
  color: var(--ic-accent);
  text-decoration: none;
}
.comment-reply-link:hover { color: var(--ic-accent-hover); }

/* ── Sticky Header offset for content ────────────────────────────────────────── */
.admin-bar #ic-header { top: 32px; }
@media (max-width: 782px) {
  .admin-bar #ic-header { top: 46px; }
}
