/*
Theme Name: GrowPeak Studio
Theme URI: https://growpeakstudio.com
Author: GrowPeak Studio
Author URI: https://growpeakstudio.com
Description: Ultra-modern, executive B2B digital agency theme for GrowPeak Studio. Features a multi-level mega-menu navigation, 4 service pillar pages, case study custom post type, Gutenberg block templates, and Core Web Vitals optimizations. Designed for enterprise clients in USA, Canada, and Europe.
Version: 2.7.2
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: growpeak
Tags: b2b, agency, seo, corporate, business, full-site-editing, block-patterns, accessibility-ready
*/

/* ==========================================================================
   GrowPeak Studio — WordPress Theme
   Critical CSS is inlined in functions.php; full stylesheet below.
   Color system: #FFFFFF (bg), #09090B (ink), #F8F9FA (surface), #E4E4E7 (border)
   No green accents — charcoal/black/cool-gray palette only.
   ========================================================================== */

:root {
  --gp-bg: #FFFFFF;
  --gp-ink: #09090B;
  --gp-ink-50: #FAFAFA;
  --gp-ink-100: #F4F4F5;
  --gp-ink-200: #E4E4E7;
  --gp-ink-300: #D4D4D8;
  --gp-ink-400: #A1A1AA;
  --gp-ink-500: #71717A;
  --gp-ink-600: #52525B;
  --gp-ink-700: #3F3F46;
  --gp-ink-800: #27272A;
  --gp-ink-900: #18181B;
  --gp-ink-950: #09090B;
  --gp-accent: #64748B;
  --gp-radius: 14px;
}

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

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

body {
  background: var(--gp-bg);
  color: var(--gp-ink);
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

::selection { background: var(--gp-ink-950); color: #fff; }

/* Typography */
h1, h2, h3, h4, h5, h6 { line-height: 1.1; font-weight: 700; letter-spacing: -0.02em; }
h1 {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
  font-size: clamp(2.25rem, 4.5vw, 3.5rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  text-transform: none;
  color: var(--gp-ink-950);
}
h2 { font-size: clamp(2rem, 4vw, 3rem); }
h3 { font-size: clamp(1.5rem, 3vw, 2rem); }
p { max-width: 65ch; }

a { color: var(--gp-ink-950); text-decoration: none; transition: color 0.2s; }
a:hover { color: var(--gp-ink-700); }

img { max-width: 100%; height: auto; display: block; }

/* Layout */
.gp-container { max-width: 88rem; margin: 0 auto; padding: 0 1.5rem; }
@media (min-width: 1024px) { .gp-container { padding: 0 2.5rem; } }

.gp-section { padding: 5rem 0; }
.gp-section--gray { background: var(--gp-ink-50); }

/* Eyebrow */
.gp-eyebrow { font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.18em; color: var(--gp-ink-500); margin-bottom: 0.75rem; }

/* Lead paragraph */
.gp-lead { font-size: 1.25rem; color: var(--gp-ink-600); line-height: 1.6; max-width: 42rem; }

/* Buttons */
.gp-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
  border-radius: 9999px; padding: 0.75rem 1.5rem; font-size: 0.875rem; font-weight: 600;
  transition: all 0.3s; border: none; cursor: pointer; text-decoration: none;
}
.gp-btn--primary { background: #000; color: #fff; }
.gp-btn--primary:hover { background: var(--gp-ink-800); color: #fff; box-shadow: 0 8px 24px rgba(9,9,11,0.18); transform: translateY(-2px); }
.gp-btn--outline { background: #fff; color: var(--gp-ink); border: 1px solid var(--gp-ink-200); }
.gp-btn--outline:hover { border-color: var(--gp-ink-400); box-shadow: 0 4px 16px rgba(9,9,11,0.08); }
.gp-btn--ghost { color: var(--gp-ink-700); padding: 0.5rem 0.75rem; }
.gp-btn--ghost:hover { color: #000; }

/* Cards */
.gp-card {
  background: #fff; border: 1px solid var(--gp-ink-200); border-radius: 16px;
  padding: 1.5rem; transition: all 0.3s;
}
.gp-card:hover { border-color: var(--gp-ink-300); box-shadow: 0 16px 48px rgba(9,9,11,0.1); }

/* Floating sticky header — capsule pill ONLY on the top bar */
.gp-header {
  position: fixed;
  top: 0;
  inset-inline: clamp(0.7rem, 2vw, 1.5rem);
  z-index: 50;
  padding-top: clamp(0.6rem, 1.5vw, 1rem);
  transition: padding 0.3s ease;
}
.gp-header__inner {
  display: flex; align-items: center; justify-content: space-between;
  height: 4rem;
  padding-inline: 1.25rem;
  background: rgba(10, 10, 11, 0.96);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 999px;
  box-shadow: 0 14px 44px rgba(9, 9, 11, 0.35);
  transition: all 0.3s ease;
}
.gp-header--scrolled .gp-header__inner,
.gp-header--open .gp-header__inner {
  background: rgba(7, 7, 8, 0.98);
  border-color: rgba(255, 255, 255, 0.14);
  box-shadow: 0 16px 50px rgba(9, 9, 11, 0.5);
}
.gp-logo { display: flex; align-items: center; gap: 0.625rem; font-weight: 700; font-size: 0.9375rem; }

/* Official image logo — responsive across devices */
.gp-logo--img { text-decoration: none; }
.gp-logo__img {
  display: block;
  height: 44px; width: auto; max-width: min(240px, 62vw);
  object-fit: contain; object-position: left center;
  transition: height 0.2s ease, opacity 0.2s ease;
}
a:hover > .gp-logo__img { opacity: 0.85; }
@media (min-width: 1440px) { .gp-logo__img { height: 48px; } }        /* large desktop */
@media (max-width: 1023px) { .gp-logo__img { height: 38px; } }        /* tablet */
@media (max-width: 767px)  { .gp-logo__img { height: 32px; max-width: min(180px, 52vw); } } /* mobile */
@media (max-width: 420px)  { .gp-logo__img { height: 28px; max-width: min(160px, 50vw); } } /* small phones */

/* Desktop nav */
.gp-nav { display: none; align-items: center; gap: 0.25rem; }
@media (min-width: 1024px) { .gp-nav { display: flex; } }
.gp-nav__list { display: flex; align-items: center; gap: 0.25rem; list-style: none; margin: 0; padding: 0; }
.gp-nav__item { position: relative; }
.gp-nav__link { display: flex; align-items: center; gap: 0.25rem; padding: 0.5rem 0.875rem; font-size: 0.875rem; font-weight: 500; color: rgba(255,255,255,0.72); border-radius: 8px; white-space: nowrap; }
.gp-nav__link:hover { color: #fff; background: rgba(255,255,255,0.08); }

/* Header CTA group */
.gp-header__cta { display: flex; align-items: center; gap: 0.5rem; }
.gp-header__cta .gp-btn--primary { background: #fff; color: #0A0A0B; box-shadow: 0 2px 12px rgba(255,255,255,0.12); }
.gp-header__cta .gp-btn--primary:hover { background: #E4E4E7; color: #0A0A0B; box-shadow: 0 8px 24px rgba(255,255,255,0.18); }
.gp-mobile-toggle { color: #fff; }

/* Mega dropdown */
.gp-mega { position: absolute; left: 50%; top: 100%; transform: translateX(-50%); width: min(880px, calc(100vw - 3rem)); padding-top: 0.75rem; display: none; z-index: 60; }
.gp-mega--open { display: block; animation: gp-slide-down 0.25s ease-out; }
.gp-mega__panel { background: rgba(248,249,250,0.78); -webkit-backdrop-filter: blur(22px) saturate(160%); backdrop-filter: blur(22px) saturate(160%); border: 1px solid rgba(228,228,231,0.9); border-radius: 16px; padding: 1.5rem; box-shadow: 0 16px 48px rgba(9,9,11,0.12); }
.gp-mega__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1.5rem; align-items: start; }
.gp-mega__col { min-width: 0; }
.gp-mega__pillar { font-weight: 700; font-size: 0.875rem; margin: 0 0 0.75rem; display: block; color: var(--gp-ink-950); }
.gp-mega__sub { list-style: none; margin: 0; padding: 0; }
.gp-mega__sub li a { display: block; padding: 0.375rem 0.5rem; font-size: 0.8125rem; color: var(--gp-ink-600); border-radius: 6px; }
/* Hover removed — no white highlight on dropdown items (per request) */
a.gp-mega__pillar:hover { color: var(--gp-ink-950); }
.gp-mega__sub li a:hover { background: transparent; color: var(--gp-ink-600); }

/* Mobile menu */
.gp-mobile-toggle { display: block; background: none; border: none; padding: 0.5rem; cursor: pointer; }
@media (min-width: 1024px) { .gp-mobile-toggle { display: none; } }
.gp-mobile-menu {
  display: none;
  margin-top: 0.5rem;
  padding: 0.75rem 1.25rem 2rem;
  background: rgba(12, 12, 14, 0.97);
  backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 24px;
  box-shadow: 0 24px 48px rgba(0,0,0,0.5);
  max-height: calc(100vh - 6rem);
  max-height: calc(100dvh - 6rem);
  overflow-y: auto;
  overscroll-behavior: contain;
}
.gp-mobile-menu--open { display: block; animation: gp-slide-down 0.25s ease-out; }
.gp-mobile-menu ul, .gp-mobile-menu__list { list-style: none; margin: 0; padding: 0; }
.gp-mobile-menu a { display: block; padding: 0.625rem 0.75rem; font-weight: 500; color: rgba(255,255,255,0.84); border-radius: 8px; }
.gp-mobile-menu a:hover { background: rgba(255,255,255,0.06); color: #fff; }

/* Mobile accordion menu */
.gp-mnav { list-style: none; margin: 0; padding: 0; }
.gp-mnav__item { margin: 0; }
.gp-mnav__link, .gp-mnav__toggle {
  display: flex; align-items: center; justify-content: space-between; gap: .5rem;
  width: 100%; text-align: left;
  padding: 0.625rem 0.75rem; font-weight: 600; font-size: .9375rem;
  color: #fff; background: none; border: none; cursor: pointer;
  border-radius: 8px; text-decoration: none;
}
.gp-mnav__link:hover, .gp-mnav__toggle:hover { background: rgba(255,255,255,0.08); color: #fff; }
.gp-mnav__chevron { flex-shrink: 0; transition: transform 0.2s ease; color: rgba(255,255,255,0.4); }
.gp-mnav__item--open > .gp-mnav__toggle .gp-mnav__chevron { transform: rotate(180deg); }
.gp-mnav__sub { display: none; list-style: none; margin: 0.25rem 0 0.5rem; padding-left: 0.85rem; border-left: 1px solid rgba(255,255,255,0.16); margin-left: .75rem; }
.gp-mnav__item--open > .gp-mnav__sub { display: block; animation: gp-slide-down 0.22s ease-out; }
.gp-mnav__sub .gp-mnav__link, .gp-mnav__sub .gp-mnav__toggle { font-weight: 500; font-size: .875rem; padding: 0.5rem 0.65rem; color: rgba(255,255,255,0.66); }
.gp-mnav__sub .gp-mnav__sub { margin-top: 0.15rem; }
.gp-mnav__sub .gp-mnav__sub .gp-mnav__link { font-size: .8125rem; font-weight: 450; color: rgba(255,255,255,0.5); padding: 0.4rem 0.65rem; }
.gp-mnav__sub .gp-mnav__sub .gp-mnav__link:hover { color: #fff; }
.gp-mnav__item--current > .gp-mnav__link { color: #fff; font-weight: 700; }

/* Mobile menu CTAs on dark capsule */
.gp-mobile-menu .gp-btn--outline { background: rgba(255,255,255,0.06); color: #fff; border-color: rgba(255,255,255,0.3); }
.gp-mobile-menu .gp-btn--outline:hover { background: rgba(255,255,255,0.12); border-color: rgba(255,255,255,0.45); }
.gp-mobile-menu .gp-btn--primary { background: #fff; color: #0A0A0B; }
.gp-mobile-menu .gp-btn--primary:hover { background: #E4E4E7; color: #0A0A0B; }

/* Header — mobile: slightly wider floating pill, everything auto-fits */
@media (max-width: 767px) {
  .gp-header { inset-inline: clamp(0.5rem, 2.5vw, 1rem); }
  .gp-header .gp-container { padding-inline: 0.875rem; }
  .gp-header__inner { height: 3.75rem; padding-inline: 0.875rem; }
  .gp-header__cta { gap: 0.25rem; }
  .gp-logo { min-width: 0; flex: 1 1 auto; }
  .gp-logo__img { height: 30px; max-width: min(150px, 30vw); }
  .gp-header__cta .gp-btn--primary { flex-shrink: 0; white-space: nowrap; padding: 0.42rem 0.7rem; font-size: 0.68rem; gap: 0.25rem; }
  .gp-header__cta .gp-btn--primary svg { display: none; }
}
@media (max-width: 420px) {
  .gp-header__cta .gp-btn--primary { display: none; }
  .gp-logo__img { height: 28px; }
}

/* Elementor-built page wrapper */
.gp-elementor-content { padding-top: 5rem; }
@media (min-width: 1024px) { .gp-elementor-content { padding-top: 7rem; } }

/* Contact page layout */
.gp-contact-grid { display: grid; gap: 2rem; }
@media (min-width: 1024px) {
  .gp-contact-grid { grid-template-columns: 1.6fr 1fr; align-items: start; }
}

/* Hero */
.gp-hero { position: relative; overflow: hidden; padding-top: 8rem; padding-bottom: 4rem; }
@media (min-width: 1024px) { .gp-hero { padding-top: 10rem; padding-bottom: 6rem; } }

/* Hero background image variant */
.gp-hero--bg {
  background-size: cover;
  background-position: center 30%;
  background-repeat: no-repeat;
}
@media (min-width: 768px) {
  .gp-hero--bg { background-position: center center; }
}
.gp-hero--bg .gp-hero__overlay {
  position: absolute; inset: 0; z-index: 1;
  background: rgba(255,255,255,.75);
}
.gp-hero--bg .gp-noise { z-index: 1; }

/* Contact page — full-page brand background */
.gp-contact-bg {
  position: relative;
  background-size: 100% auto;
  background-position: center top;
  background-repeat: no-repeat;
}
.gp-contact-bg__overlay {
  position: absolute; inset: 0; z-index: 1;
  background: rgba(255,255,255,.6);
}

/* White button */
.gp-btn--white {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  background: #fff;
  color: #09090B;
  padding: .875rem 1.75rem;
  border-radius: 999px;
  font-weight: 600;
  font-size: .9375rem;
  text-decoration: none;
  transition: transform .15s, box-shadow .2s;
}
.gp-btn--white:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(255,255,255,.15);
  color: #09090B;
}

/* Hero split — text left, image right */
.gp-hero-split {
  display: flex;
  align-items: center;
  gap: 3rem;
}
.gp-hero-split__text {
  flex: 1 1 0%;
  min-width: 0;
}
@media (max-width: 960px) {
  .gp-hero-split { gap: 2rem; }
}
@media (max-width: 640px) {
  .gp-hero-split {
    flex-direction: column;
    gap: 2rem;
  }
}

/* Rocket graphic behind the hero text (right side) */
.gp-hero-rocket-bg {
  position: absolute;
  top: 50%;
  right: 0;
  transform: translate(-0.5in, calc(-50% - 96px + 0.5in));
  width: 32%;
  max-width: 400px;
  z-index: 1;
  pointer-events: none;
}
.gp-hero-rocket-bg img {
  width: 100%;
  height: auto;
  display: block;
}

/* Rocket shown below the heading on phones; hidden on desktop/tablet */
.gp-hero-rocket-inline { display: none; }
@media (max-width: 640px) {
  .gp-hero-rocket-bg { display: none; }
  .gp-hero-rocket-inline {
    display: block;
    width: 100%;
    max-width: 340px;
    height: auto;
    margin: 1.5rem 0 0;
  }
}

/* Tablet (768–1023): keep the homepage hero at desktop height so the rocket
   keeps exactly the same spacing as on desktop */
@media (min-width: 768px) and (max-width: 1023px) {
  .gp-hero--left.gp-hero--bg { padding-top: 10rem; padding-bottom: 6rem; }
}

.gp-hero__cta { display: flex; flex-direction: column; gap: 0.75rem; align-items: center; margin-top: 2rem; }
@media (min-width: 640px) { .gp-hero__cta { flex-direction: row; justify-content: center; } }

/* Hero — left aligned, massive display H1 with line-by-line rise-up */
.gp-hero--left .gp-hero__cta { align-items: flex-start; justify-content: flex-start; }
@media (min-width: 640px) { .gp-hero--left .gp-hero__cta { justify-content: flex-start; } }
.gp-hero-display {
  margin: 0;
  font-family: 'Anton', 'Jost', 'Inter', system-ui, sans-serif;
  font-size: clamp(3rem, 9vw, 7.5rem);
  font-weight: 400;
  letter-spacing: -0.01em;
  text-transform: uppercase;
  line-height: 1.05;
  color: var(--gp-ink-950);
}
.gp-reveal { display: block; overflow: hidden; padding-bottom: 0.06em; margin-bottom: -0.06em; }
.gp-reveal__line {
  display: inline-block;
  transform: translateY(115%);
  animation: gp-rise 0.95s cubic-bezier(0.19, 0.66, 0.22, 1) forwards;
  animation-delay: var(--d, 0s);
  will-change: transform;
}
@keyframes gp-rise { to { transform: translateY(0); } }
.gp-rise-item {
  opacity: 0;
  transform: translateY(24px);
  animation: gp-fade-in 0.8s ease-out forwards;
  animation-delay: var(--d, 0s);
}
@keyframes gp-fade-in { to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) {
  .gp-reveal__line, .gp-rise-item { animation: none; transform: none; opacity: 1; }
}

/* Metrics */
.gp-metrics { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: var(--gp-ink-200); border: 1px solid var(--gp-ink-200); border-radius: 16px; overflow: hidden; }
@media (min-width: 1024px) { .gp-metrics { grid-template-columns: repeat(4, 1fr); } }
.gp-metric { background: #fff; padding: 1.5rem; text-align: center; }
.gp-metric__value { font-size: clamp(1.75rem, 3vw, 3rem); font-weight: 700; }
.gp-metric__label { font-size: 0.75rem; color: var(--gp-ink-500); margin-top: 0.5rem; }

/* Footer column heading icons */
.gp-footer__col h3 { display: flex; align-items: center; gap: 0.5rem; }
.gp-footer__icon { font-size: 0.8125rem; color: var(--gp-ink-400); width: 1rem; text-align: center; }

/* Service grid */
.gp-services-grid { display: grid; gap: 1.5rem; }
@media (min-width: 1024px) { .gp-services-grid { grid-template-columns: 1fr 1fr; } }

/* SEO Pillars — 6-column tall cards */
.gp-seo-pillars {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 1.25rem;
}
.gp-seo-pillar-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--gp-ink-200);
  border-radius: 16px;
  padding: 2rem 1.25rem 1.75rem;
  min-height: 22rem;
  transition: box-shadow .25s ease, border-color .25s ease;
}
.gp-seo-pillar-card:hover {
  border-color: var(--gp-ink-300);
  box-shadow: 0 8px 30px rgba(0,0,0,.06);
}
.gp-seo-pillar-icon {
  width: 2.75rem;
  height: 2.75rem;
  background: var(--gp-ink-950);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.gp-seo-pillar-icon i {
  color: #fff;
  font-size: 1rem;
}
.gp-seo-pillar-title {
  margin-top: 1.25rem;
  font-size: 1rem;
  font-weight: 700;
  color: var(--gp-ink-950);
  line-height: 1.25;
}
.gp-seo-pillar-desc {
  margin-top: .6rem;
  font-size: .8125rem;
  color: var(--gp-ink-600);
  line-height: 1.65;
  flex: 1;
}
@media (max-width: 1100px) {
  .gp-seo-pillars { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 700px) {
  .gp-seo-pillars { grid-template-columns: repeat(2, 1fr); }
  .gp-seo-pillar-card { min-height: 18rem; padding: 1.5rem 1rem; }
}
@media (max-width: 480px) {
  .gp-seo-pillars { grid-template-columns: 1fr; }
  .gp-seo-pillar-card { min-height: auto; }
}

/* Method steps */
.gp-method { display: grid; gap: 1.5rem; }
@media (min-width: 1024px) { .gp-method { grid-template-columns: repeat(4, 1fr); } }

/* Pricing */
.gp-pricing { display: grid; gap: 1.5rem; }
@media (min-width: 1024px) { .gp-pricing { grid-template-columns: repeat(3, 1fr); } }
.gp-pricing-card { border: 1px solid var(--gp-ink-200); border-radius: 16px; padding: 2rem; background: #fff; }
.gp-pricing-card--featured { border-color: var(--gp-ink-950); background: var(--gp-ink-950); color: #fff; }

/* Approach / Values grid — 4 boxes in one row on desktop */
.gp-values-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}
@media (min-width: 640px)  { .gp-values-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .gp-values-grid { grid-template-columns: repeat(4, 1fr); } }
.gp-values-card {
  background: #fff;
  border: 1px solid var(--gp-ink-200);
  border-radius: 20px;
  padding: 2.5rem 2rem;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  transition: transform .25s ease, box-shadow .3s ease, border-color .25s ease;
}
.gp-values-card:hover {
  transform: translateY(-4px);
  border-color: var(--gp-ink-300);
  box-shadow: 0 18px 44px -14px rgba(9,9,11,.14);
}
.gp-values-card__icon {
  width: 4.5rem;
  height: 4.5rem;
  background: var(--gp-ink-950);
  border-radius: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 1.5rem;
  margin-bottom: 1.5rem;
  flex-shrink: 0;
}
.gp-values-card h3 { font-size: 1.25rem; font-weight: 700; letter-spacing: -0.02em; }
.gp-values-card p {
  margin-top: .6rem;
  font-size: .9375rem;
  color: var(--gp-ink-600);
  line-height: 1.65;
  max-width: 19rem;
}

/* Founder / owner portfolio section */
.gp-owner {
  display: grid;
  gap: 2.5rem;
  align-items: center;
  max-width: 60rem;
  margin: 0 auto;
}
@media (min-width: 900px) { .gp-owner { grid-template-columns: 0.85fr 1.15fr; gap: 3.5rem; } }
.gp-owner__photo { position: relative; max-width: 22rem; margin: 0 auto; width: 100%; }
.gp-owner__frame {
  border-radius: 24px;
  overflow: hidden;
  border: 1px solid var(--gp-ink-200);
  background: #fff;
  box-shadow: 0 24px 60px -20px rgba(9,9,11,.18);
}
.gp-owner__img { display: block; width: 100%; height: auto; aspect-ratio: 1/1; object-fit: cover; }
.gp-owner__badge {
  position: absolute;
  bottom: -1rem;
  left: 50%;
  transform: translateX(-50%);
  background: var(--gp-ink-950);
  color: #fff;
  font-weight: 700;
  font-size: .8125rem;
  padding: .6rem 1.15rem;
  border-radius: 999px;
  box-shadow: 0 10px 24px rgba(9,9,11,.25);
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: .5rem;
}
.gp-owner__info h3 { font-size: 1.75rem; font-weight: 800; letter-spacing: -0.02em; }
.gp-owner__role { font-size: .9375rem; color: var(--gp-ink-500); margin-top: .25rem; }
.gp-owner__bio { margin-top: 1.25rem; font-size: 1rem; color: var(--gp-ink-600); line-height: 1.75; }
.gp-owner__chips { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.5rem; }
.gp-owner__chip {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  background: var(--gp-ink-100);
  border: 1px solid var(--gp-ink-200);
  border-radius: 999px;
  padding: .5rem 1rem;
  font-size: .8125rem;
  font-weight: 600;
  color: var(--gp-ink-800);
}
.gp-owner__cta { margin-top: 2rem; }
.gp-faq-item { border: 1px solid var(--gp-ink-200); border-radius: 16px; overflow: hidden; }
.gp-faq-q { display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.5rem; font-weight: 600; cursor: pointer; background: #fff; border: none; width: 100%; text-align: left; font-size: 1rem; }
.gp-faq-a { padding: 0 1.5rem 1rem; font-size: 0.875rem; color: var(--gp-ink-600); display: none; }
.gp-faq-a--open { display: block; }

/* Contact form */
.gp-form { background: rgba(248,249,250,0.72); backdrop-filter: blur(12px); border: 1px solid var(--gp-ink-200); border-radius: 16px; padding: 2rem; }
.gp-form-row { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.gp-field { margin-bottom: 1.25rem; }
.gp-field label { display: block; font-size: 0.875rem; font-weight: 500; margin-bottom: 0.375rem; }
.gp-field input, .gp-field select, .gp-field textarea {
  width: 100%; padding: 0.625rem 1rem; border: 1px solid var(--gp-ink-200); border-radius: 8px;
  background: #fff; font-size: 0.875rem; color: var(--gp-ink-900); transition: border-color 0.2s;
}
.gp-field input:focus, .gp-field select:focus, .gp-field textarea:focus { border-color: var(--gp-ink-400); outline: none; }
.gp-form-success { text-align: center; padding: 2rem; }
.gp-form-success__icon { width: 3.5rem; height: 3.5rem; margin: 0 auto; background: var(--gp-ink-950); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; }
.gp-form-error { background: #fef2f2; color: #991b1b; padding: 0.75rem 1rem; border-radius: 8px; font-size: 0.875rem; margin-bottom: 1rem; display: flex; align-items: center; gap: 0.5rem; }

/* Footer */
.gp-footer { border-top: 1px solid var(--gp-ink-200); background: var(--gp-ink-50); padding: 4rem 0 2rem; }
.gp-footer__grid { display: grid; gap: 2.5rem; }
@media (min-width: 1024px) { .gp-footer__grid { grid-template-columns: 4fr 8fr; } }
.gp-footer__links { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem 2rem; }
@media (min-width: 768px) { .gp-footer__links { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1024px) { .gp-footer__links { grid-template-columns: repeat(5, 1fr); gap: 1.5rem; } }
.gp-footer__col h3 { font-size: 0.875rem; font-weight: 700; margin-bottom: 0.75rem; }
.gp-footer__col ul { list-style: none; }
.gp-footer__col li a { font-size: 0.8125rem; color: var(--gp-ink-600); }
.gp-footer__col li a:hover { color: var(--gp-ink-950); }

/* Social media icons (black brand icons, white circles) */
.gp-footer__social { display: flex; gap: 0.6rem; margin-top: 1.5rem; flex-wrap: wrap; }
.gp-social__link {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--gp-ink-200);
  background: #fff;
  color: var(--gp-ink-950);
  font-size: 0.875rem;
  text-decoration: none;
  transition: all 0.2s ease;
}
.gp-social__link:hover {
  background: var(--gp-ink-950);
  border-color: var(--gp-ink-950);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(9, 9, 11, 0.18);
}
.gp-footer__bottom { border-top: 1px solid var(--gp-ink-200); margin-top: 3.5rem; padding-top: 2rem; display: flex; flex-direction: column; gap: 1rem; justify-content: space-between; }
@media (min-width: 640px) { .gp-footer__bottom { flex-direction: row; align-items: center; } }

/* Accessibility */
:focus-visible { outline: 2px solid var(--gp-ink-950); outline-offset: 2px; border-radius: 4px; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); white-space: nowrap; }
.skip-link { position: absolute; left: -9999px; top: 0; z-index: 100; background: #000; color: #fff; padding: 0.75rem 1.5rem; }
.skip-link:focus { left: 1rem; top: 1rem; }

/* Breadcrumb */
.gp-breadcrumb { display: flex; flex-wrap: wrap; gap: 0.5rem; font-size: 0.875rem; color: var(--gp-ink-500); }
.gp-breadcrumb a:hover { color: var(--gp-ink-950); }

/* Grid noise pattern */
.gp-noise { background-image: radial-gradient(circle at 1px 1px, rgba(9,9,11,0.05) 1px, transparent 0); background-size: 32px 32px; }

/* Animations */
@keyframes gp-slide-down { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: translateY(0); } }

/* News Ticker — infinite scrolling capability strip */
.gp-ticker { width: 100%; }
.gp-ticker__track {
  display: flex;
  width: max-content;
  animation: gp-ticker-scroll 18s linear infinite;
}
.gp-ticker__item {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  font-size: 20px;
  font-weight: 600;
  color: var(--gp-ink-950);
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: 0 2rem;
  white-space: nowrap;
  flex-shrink: 0;
}
.gp-ticker__item i { font-size: .875rem; opacity: .7; }
@keyframes gp-ticker-scroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-33.333%); }
}
@media (prefers-reduced-motion: reduce) {
  .gp-ticker__track { animation: none; transform: translateX(0); }
}

/* Problem Section — two-column grid + cards */
.gp-problem-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  align-items: start;
}
.gp-problem-cards {
  display: flex;
  flex-direction: column;
  gap: .75rem;
}
.gp-problem-card {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  padding: 1.25rem 1.25rem;
  border-radius: 14px;
  background: #fff;
  border: 1px solid var(--gp-ink-200);
  transition: box-shadow .25s ease, border-color .25s ease;
}
.gp-problem-card:hover {
  border-color: var(--gp-ink-300);
  box-shadow: 0 4px 20px rgba(0,0,0,.06);
}
@media (max-width: 768px) {
  .gp-problem-grid { grid-template-columns: 1fr; gap: 2rem; }
  .gp-problem-card { padding: 1rem; }
}

/* Giant footer wordmark (SEO/STUDIO) — glass blur like header */
.gp-wordmark-wrap { position: relative; margin-top: 4.5rem; padding-inline: clamp(0.75rem, 2vw, 1.5rem); }
.gp-wordmark-wrap::before,
.gp-wordmark-wrap::after {
  content: ""; position: absolute; width: 44%; height: 68%;
  border-radius: 50%; filter: blur(60px); opacity: 0.35; pointer-events: none;
}
.gp-wordmark-wrap::before { left: 3%; top: -12%; background: radial-gradient(circle, #94A3B8, transparent 70%); }
.gp-wordmark-wrap::after { right: 3%; bottom: -14%; background: radial-gradient(circle, #CBD5E1, transparent 70%); }
.gp-wordmark {
  position: relative;
  display: flex; align-items: center; justify-content: center;
  padding: clamp(1.5rem, 4vw, 3rem) 1rem;
  background: rgba(255,255,255,0.55);
  -webkit-backdrop-filter: blur(18px) saturate(160%);
  backdrop-filter: blur(18px) saturate(160%);
  border: 1px solid rgba(9,9,11,0.08);
  border-radius: 24px;
  box-shadow: 0 20px 50px -24px rgba(9,9,11,0.18);
}
.gp-wordmark span {
  font-weight: 800;
  font-size: clamp(2.4rem, 10.5vw, 9.5rem);
  letter-spacing: -0.05em; line-height: 0.95;
  color: var(--gp-ink-950);
  white-space: nowrap;
  max-width: 100%; overflow: hidden; text-overflow: clip;
}
@media (max-width: 480px) { .gp-wordmark span { font-size: clamp(1.6rem, 8.5vw, 2.4rem); } }
.gp-wordmark em { font-style: normal; color: var(--gp-ink-300); }

/* ========================================================
   BLOG — Listing cards
   ======================================================== */
.gp-blog-grid { display: grid; gap: 1.5rem; }
@media (min-width: 768px)  { .gp-blog-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .gp-blog-grid { grid-template-columns: 1fr 1fr 1fr; } }
.gp-blog-card {
  display: flex; flex-direction: column;
  background: #fff; border-radius: 20px; overflow: hidden;
  border: 1px solid var(--gp-ink-100);
  text-decoration: none; color: inherit;
  transition: transform 0.2s ease, box-shadow 0.25s ease, border-color 0.2s ease;
}
.gp-blog-card:hover { transform: translateY(-4px); box-shadow: 0 14px 34px -10px rgba(9,9,11,0.12); border-color: var(--gp-ink-200); }
.gp-blog-card__img {
  position: relative; aspect-ratio: 16/9; overflow: hidden; background: var(--gp-ink-50);
}
.gp-blog-card__thumb { width: 100%; height: 100%; object-fit: cover; }
.gp-blog-card__placeholder {
  width: 100%; height: 100%; display: flex; align-items: center; justify-content: center;
  font-size: 2.5rem; color: var(--gp-ink-300);
}
.gp-blog-card__cat {
  position: absolute; top: 0.75rem; left: 0.75rem;
  background: rgba(255,255,255,0.92); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  padding: 0.2rem 0.75rem; border-radius: 999px;
  font-size: 0.6875rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em;
  color: var(--gp-ink-950); border: 1px solid var(--gp-ink-100);
}
.gp-blog-card__body { padding: 1.5rem; display: flex; flex-direction: column; flex: 1; }
.gp-blog-card__title {
  margin: 0; font-size: 1.125rem; font-weight: 700; color: var(--gp-ink-950);
  line-height: 1.4; letter-spacing: -0.02em;
}
a:hover .gp-blog-card__title { color: var(--gp-accent); }
.gp-blog-card__excerpt {
  margin: 0.5rem 0 0; font-size: 0.875rem; line-height: 1.6; color: var(--gp-ink-500);
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.gp-blog-card__meta {
  margin-top: auto; padding-top: 1rem; display: flex; gap: 1rem; flex-wrap: wrap;
  font-size: 0.75rem; color: var(--gp-ink-400);
}
.gp-blog-card__date { display: inline-flex; align-items: center; gap: 0.35rem; }
.gp-blog-card__date i { font-size: 0.6875rem; }

/* Featured (first) card */
.gp-blog-featured {
  display: grid; gap: 1.75rem; align-items: stretch;
  background: #fff; border-radius: 24px; overflow: hidden;
  border: 1px solid var(--gp-ink-100);
  margin-bottom: 1.5rem;
  transition: border-color 0.2s ease, box-shadow 0.25s ease;
}
.gp-blog-featured:hover { border-color: var(--gp-ink-200); box-shadow: 0 18px 44px -18px rgba(9,9,11,0.14); }
.gp-blog-featured__img { position: relative; display: block; aspect-ratio: 16/9; overflow: hidden; background: var(--gp-ink-50); }
.gp-blog-featured__thumb { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease; }
.gp-blog-featured:hover .gp-blog-featured__thumb { transform: scale(1.03); }
.gp-blog-featured__body { padding: 1.75rem; display: flex; flex-direction: column; justify-content: center; }
.gp-blog-featured__eyebrow {
  font-size: 0.6875rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.14em;
  color: var(--gp-accent); display: inline-flex; align-items: center; gap: 0.5rem; margin: 0 0 0.75rem;
}
.gp-blog-featured__eyebrow::before { content: ""; width: 1.5rem; height: 2px; background: var(--gp-accent); }
.gp-blog-featured__title { margin: 0; font-size: 1.5rem; line-height: 1.3; letter-spacing: -0.025em; }
.gp-blog-featured__title a { color: var(--gp-ink-950); text-decoration: none; }
.gp-blog-featured:hover .gp-blog-featured__title a { color: var(--gp-accent); }
.gp-blog-featured__excerpt {
  margin: 0.625rem 0 0; font-size: 0.9375rem; line-height: 1.65; color: var(--gp-ink-500);
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.gp-blog-featured__cta {
  margin-left: auto; display: inline-flex; align-items: center; gap: 0.4rem;
  font-weight: 700; color: var(--gp-ink-950); font-size: 0.8125rem;
}
.gp-blog-featured:hover .gp-blog-featured__cta { color: var(--gp-accent); }
@media (min-width: 900px) {
  .gp-blog-featured { grid-template-columns: 1.1fr 1fr; }
  .gp-blog-featured__img { aspect-ratio: auto; min-height: 100%; }
  .gp-blog-featured__title { font-size: 1.875rem; line-height: 1.25; }
}

/* ========================================================
   SINGLE POST — Header & meta
   ======================================================== */
.gp-post-header { max-width: 52rem; }
.gp-post-header h1 { margin: 0.75rem 0 0; font-size: clamp(1.875rem, 4vw, 2.75rem); letter-spacing: -0.035em; line-height: 1.12; }
@media (min-width: 900px) { .gp-post-header h1 { font-size: clamp(2rem, 4.5vw, 3rem); } }
.gp-post-excerpt { font-size: 1.25rem; color: var(--gp-ink-500); margin-top: 1rem; max-width: 42rem; line-height: 1.55; }
.gp-post-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin-top: 1.25rem; font-size: 0.875rem; color: var(--gp-ink-500); }
.gp-post-meta span { display: inline-flex; align-items: center; gap: 0.35rem; }
.gp-post-meta i { font-size: 0.8125rem; color: var(--gp-ink-400); }
.gp-post-featured {
  border-radius: 20px; overflow: hidden; margin: 2rem auto; max-width: 70rem;
  box-shadow: 0 12px 38px -10px rgba(9,9,11,0.16);
  border: 1px solid var(--gp-ink-100);
}
.gp-post-featured img { width: 100%; height: auto; display: block; }

/* Share icons */
.gp-post-share {
  display: flex; flex-wrap: wrap; align-items: center; gap: 1rem;
  margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--gp-ink-100);
}
.gp-post-share__label { font-size: 0.8125rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--gp-ink-500); }
.gp-post-share__icons { display: flex; gap: 0.5rem; }
.gp-post-share__icons a {
  width: 2.5rem; height: 2.5rem; border-radius: 999px;
  background: var(--gp-ink-950); color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 0.9375rem; text-decoration: none;
  transition: transform 0.15s ease, background 0.15s ease, color 0.15s ease;
}
.gp-post-share__icons a:hover { transform: translateY(-2px); background: var(--gp-accent); color: #fff; }

/* Author box */
.gp-post-author {
  max-width: 52rem; margin: 2.5rem auto 0;
  display: flex; gap: 1.25rem; align-items: center;
  background: var(--gp-ink-50); border: 1px solid var(--gp-ink-100);
  border-radius: 20px; padding: 1.5rem;
}
.gp-post-author__img {
  flex: 0 0 auto; width: 80px; height: 80px; border-radius: 50%;
  object-fit: cover; border: 3px solid #fff; box-shadow: 0 6px 18px -6px rgba(9,9,11,0.25);
}
.gp-post-author__label { margin: 0; font-size: 0.6875rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.12em; color: var(--gp-ink-400); }
.gp-post-author__name { margin: 0.25rem 0 0; font-size: 1.1875rem; font-weight: 800; letter-spacing: -0.02em; color: var(--gp-ink-950); }
.gp-post-author__role { margin: 0.25rem 0 0; font-size: 0.875rem; color: var(--gp-ink-500); line-height: 1.55; }
.gp-post-author__link {
  display: inline-flex; align-items: center; gap: 0.4rem;
  margin-top: 0.75rem; font-size: 0.8125rem; font-weight: 700; color: var(--gp-ink-950);
  text-decoration: none; border-bottom: 2px solid var(--gp-ink-200); padding-bottom: 2px;
  transition: color 0.15s, border-color 0.15s;
}
.gp-post-author__link:hover { color: var(--gp-accent); border-color: var(--gp-accent); }
@media (max-width: 520px) {
  .gp-post-author { flex-direction: column; align-items: flex-start; text-align: left; }
}

/* ========================================================
   ENTRY CONTENT — Typography & rich blocks
   ======================================================== */
.entry-content, .gp-entry-content {
  font-size: 1.0625rem; line-height: 1.78; color: var(--gp-ink-700);
}
.entry-content > * + *, .gp-entry-content > * + * { margin-top: 1.5rem; }

/* Lead paragraph — bigger first paragraph */
.entry-content > p:first-of-type { font-size: 1.1875rem; line-height: 1.7; color: var(--gp-ink-900); }

/* Headings */
.entry-content h1, .entry-content h2, .entry-content h3,
.entry-content h4, .entry-content h5, .entry-content h6 {
  color: var(--gp-ink-950); font-weight: 800; line-height: 1.25; letter-spacing: -0.03em;
  margin-top: 3rem; margin-bottom: 0.5rem;
}
.entry-content h1 { font-size: clamp(1.75rem, 3.5vw, 2.25rem); }
.entry-content h2 { font-size: clamp(1.5rem, 3vw, 1.875rem); }
.entry-content h3 { font-size: clamp(1.25rem, 2.5vw, 1.5rem); }
.entry-content h4 { font-size: 1.25rem; }
.entry-content h2:first-child, .entry-content h3:first-child { margin-top: 0; }

/* Numbered step blocks with icons (used in rewritten posts) */
.gp-step { margin-top: 2.5rem; }
.gp-step__head { display: flex; align-items: center; gap: 0.875rem; margin-bottom: 0.625rem; }
.gp-step__head h2 { margin: 0; font-size: clamp(1.3rem, 2.6vw, 1.625rem); }
.gp-step__head h3 { margin: 0; font-size: clamp(1.15rem, 2.2vw, 1.375rem); }
.gp-step__num {
  flex: 0 0 auto; width: 2.875rem; height: 2.875rem; border-radius: 14px;
  background: var(--gp-ink-950); color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 1.125rem; box-shadow: 0 8px 20px -8px rgba(9,9,11,0.35);
}
.gp-step__num i { font-size: 1rem; }
.gp-step > *:not(.gp-step__head) { margin-top: 0; }
.gp-step p { margin: 0 0 0.75rem; }

/* Small icon headings (sub-points inside a section) */
.gp-minihead { display: flex; align-items: center; gap: 0.625rem; font-size: 1.1875rem; }
.gp-minihead i {
  display: inline-flex; align-items: center; justify-content: center;
  width: 2rem; height: 2rem; flex: 0 0 auto; border-radius: 10px;
  background: var(--gp-ink-100); color: var(--gp-ink-950); font-size: 0.875rem;
}

/* Paragraphs */
.entry-content p { margin: 0; }

/* Links */
.entry-content a { color: var(--gp-ink-950); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--gp-ink-300); transition: color 0.15s, text-decoration-color 0.15s; }
.entry-content a:hover { color: var(--gp-accent); text-decoration-color: var(--gp-accent); }

/* Bold / strong */
.entry-content strong { color: var(--gp-ink-950); font-weight: 700; }

/* Lists */
.entry-content ul, .entry-content ol {
  padding-left: 1.5rem; margin: 0.5rem 0;
}
.entry-content li { padding: 0.25rem 0; }
.entry-content li::marker { color: var(--gp-ink-400); }
.entry-content ul li::marker { font-size: 0.65em; color: var(--gp-ink-500); }
.entry-content ul li, .entry-content ol li { color: var(--gp-ink-700); }
.entry-content ul li strong, .entry-content ol li strong { color: var(--gp-ink-950); }

/* Blockquote */
.entry-content blockquote, .entry-content .wp-block-quote {
  border-left: 4px solid var(--gp-ink-950);
  background: var(--gp-ink-50);
  border-radius: 0 12px 12px 0;
  padding: 1.25rem 1.5rem;
  margin: 2rem 0;
  position: relative;
}
.entry-content blockquote p, .entry-content .wp-block-quote p {
  font-style: italic; font-size: 1.125rem; line-height: 1.7; color: var(--gp-ink-800); margin: 0;
}
.entry-content blockquote p::before, .entry-content .wp-block-quote p::before {
  content: "\201C"; position: absolute; top: 0.25rem; left: 0.85rem;
  font-size: 3rem; line-height: 1; color: var(--gp-ink-300); font-family: Georgia, serif;
}
.entry-content blockquote p, .entry-content .wp-block-quote p { padding-left: 1.2rem; }

/* Tables */
.entry-content table, .entry-content .wp-block-table table {
  width: 100%; border-collapse: separate; border-spacing: 0;
  border: 1px solid var(--gp-ink-200); border-radius: 12px; overflow: hidden;
  margin: 2rem 0; font-size: 0.9375rem;
}
.entry-content thead th, .entry-content .wp-block-table thead th {
  background: var(--gp-ink-950); color: #fff; font-weight: 700;
  padding: 0.875rem 1rem; text-align: left; font-size: 0.8125rem;
  text-transform: uppercase; letter-spacing: 0.04em;
}
.entry-content tbody td, .entry-content .wp-block-table tbody td {
  padding: 0.75rem 1rem; border-top: 1px solid var(--gp-ink-100);
}
.entry-content tbody tr:nth-child(even), .entry-content .wp-block-table tbody tr:nth-child(even) { background: var(--gp-ink-50); }
.entry-content tbody td:first-child, .entry-content .wp-block-table tbody td:first-child { font-weight: 600; color: var(--gp-ink-900); }
.entry-content tbody tr:hover { background: var(--gp-ink-100); }

/* Images inside content */
.entry-content figure, .entry-content .wp-block-image { margin: 2rem 0; }
.entry-content .wp-block-image img, .entry-content figure img, .entry-content img {
  border-radius: 16px; display: block; width: 100%; height: auto;
  border: 1px solid var(--gp-ink-100);
  box-shadow: 0 12px 32px -14px rgba(9,9,11,0.14);
}
.entry-content .wp-block-image.alignwide { max-width: 90vw; margin-left: auto; margin-right: auto; border-radius: 16px; }
.entry-content .wp-block-image figcaption, .entry-content figure figcaption {
  text-align: center; font-size: 0.8125rem; color: var(--gp-ink-400); margin-top: 0.75rem;
}

/* Code */
.entry-content code {
  background: var(--gp-ink-50); border: 1px solid var(--gp-ink-200);
  border-radius: 6px; padding: 0.15rem 0.4rem; font-size: 0.875em;
}
.entry-content pre {
  background: var(--gp-ink-950); color: var(--gp-ink-100);
  border-radius: 12px; padding: 1.5rem; overflow-x: auto;
  font-size: 0.875rem; line-height: 1.7; margin: 2rem 0;
}
.entry-content pre code { background: none; border: none; color: inherit; padding: 0; }

/* ========================================================
   BLOG — Layout / single post responsive
   ======================================================== */
.single .gp-container { max-width: 78rem; }
@media (min-width: 768px) {
  .entry-content figure.alignwide { margin-left: -4rem; margin-right: -4rem; }
}
@media (max-width: 767px) {
  .gp-post-featured { border-radius: 12px; }
  .entry-content { font-size: 1rem; line-height: 1.75; }
  .entry-content h2 { margin-top: 2rem; }
  /* Tables: scroll inside their own box instead of stretching the page */
  .entry-content table, .entry-content .wp-block-table {
    display: block; width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch;
    border-radius: 12px; font-size: 0.8125rem;
  }
  .entry-content table tbody, .entry-content table thead { display: table; width: 100%; min-width: 26rem; }
}

/* ========================================================
   SINGLE POST — End CTA
   ======================================================== */
.gp-cta-banner { background: var(--gp-ink-950); border-radius: 24px; padding: 3.5rem 2rem; text-align: center; color: #fff; position: relative; overflow: hidden; margin: 4rem auto 5rem; }
.gp-cta-banner h2 { color: #fff; max-width: 32rem; margin: 0 auto; font-size: clamp(1.5rem, 3vw, 2rem); }
.gp-cta-banner p { color: var(--gp-ink-300); margin: 0.75rem auto 0; max-width: 32rem; }
.gp-cta-banner .gp-btn--white { background: #fff; color: var(--gp-ink-950); padding: 0.875rem 1.75rem; border-radius: 999px; font-weight: 600; text-decoration: none; display: inline-flex; align-items: center; gap: 0.5rem; transition: transform 0.15s; }
.gp-cta-banner .gp-btn--white:hover { transform: translateY(-2px); }
