/* Gutenberg-native PCG Impact pattern system. */
.pcg-gutenberg-site .pcg-gb-hero,
.pcg-gb-hero {
  --pcg-gb-ink: #20332d;
  --pcg-gb-paper: #fbf8f2;
  --pcg-gb-terracotta: #c9654a;
  --pcg-gb-moss: #73836a;
  --pcg-gb-gold: #d9ac5c;
  --pcg-gb-line: #d8cfbf;
}

.pcg-gb-hero { margin: 0; color: #f6f1e8; }
.pcg-gb-hero .wp-block-cover__inner-container { width: min(1180px, calc(100% - 3rem)); margin: 0 auto; }
.pcg-gb-hero__inner { max-width: 720px; padding: clamp(4rem, 11vw, 9rem) 0; }
.pcg-gb-eyebrow { color: inherit; font: 700 .72rem/1.3 "DM Sans", sans-serif; letter-spacing: .13em; text-transform: uppercase; margin: 0 0 1rem; }
.pcg-gb-eyebrow--ink { color: var(--pcg-gb-moss); }
.pcg-gb-hero__heading,
.pcg-gb-section-heading,
.pcg-gb-band__heading,
.pcg-gb-story-card__heading { font-family: "Fraunces", Georgia, serif; letter-spacing: -.04em; }
.pcg-gb-hero__heading { color: #f6f1e8; font-size: clamp(3rem, 7vw, 6.25rem); line-height: .98; margin: 0 0 1.5rem; }
.pcg-gb-hero__heading em,
.pcg-gb-section-heading em,
.pcg-gb-band__heading em { font-weight: 400; }
.pcg-gb-hero__lead { color: #f6f1e8; font-size: clamp(1.15rem, 2vw, 1.5rem); line-height: 1.45; max-width: 39rem; }
.pcg-gb-hero__copy { color: #e3e9e2; max-width: 40rem; font-size: 1.05rem; line-height: 1.7; }

.pcg-gb-section { max-width: none !important; margin: 0; padding: clamp(4rem, 8vw, 7.5rem) max(1.5rem, calc((100vw - 1180px) / 2)); }
.pcg-gb-section > * { max-width: 1180px; margin-left: auto; margin-right: auto; }
.pcg-gb-section--paper { background: var(--pcg-gb-paper); }
.pcg-gb-section-number { color: var(--pcg-gb-terracotta); font: 700 .75rem/1 "DM Sans", sans-serif; letter-spacing: .13em; }
.pcg-gb-section-heading { color: var(--pcg-gb-ink); font-size: clamp(2.35rem, 4.8vw, 4.8rem); line-height: 1.03; margin: 0 0 1.5rem; max-width: 850px; }
.pcg-gb-lead { color: #46564f; font-size: clamp(1.1rem, 2vw, 1.35rem); line-height: 1.55; max-width: 720px; }
.pcg-gb-copy__body { color: #53625b; max-width: 650px; line-height: 1.7; }

.pcg-gb-split { gap: clamp(2rem, 6vw, 7rem); }
.pcg-gb-split > .wp-block-column { min-width: 0; }
.pcg-gb-image { margin: 0; }
.pcg-gb-image img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.pcg-gb-card-grid { gap: 1px; background: var(--pcg-gb-line); border: 1px solid var(--pcg-gb-line); margin-top: 2.5rem; }
.pcg-gb-card-grid > .wp-block-column { background: #fffdfa; margin: 0 !important; padding: clamp(1.5rem, 3vw, 2.5rem); min-width: 0; }
.pcg-gb-card__number { color: var(--pcg-gb-terracotta); font: 700 .72rem/1 "DM Sans", sans-serif; letter-spacing: .12em; }
.pcg-gb-card__heading { color: var(--pcg-gb-ink); font-family: "Fraunces", Georgia, serif; font-size: 1.55rem; line-height: 1.12; margin: 3.5rem 0 1rem; }
.pcg-gb-card__copy { color: #586860; line-height: 1.62; }
.pcg-gb-card .pcg-gb-actions { margin-top: 1.5rem; }

.pcg-gb-button .wp-block-button__link { background: var(--pcg-gb-ink); border: 1px solid var(--pcg-gb-ink); border-radius: 0; color: #f6f1e8; font: 700 .72rem/1.1 "DM Sans", sans-serif; letter-spacing: .08em; padding: .95rem 1.2rem; text-transform: uppercase; transition: transform .16s ease, background-color .16s ease; }
.pcg-gb-button .wp-block-button__link:hover { background: var(--pcg-gb-terracotta); border-color: var(--pcg-gb-terracotta); transform: translateY(-2px); }
.pcg-gb-button--light .wp-block-button__link { background: transparent; border-color: #f6f1e8; color: #f6f1e8; }
.pcg-gb-button--light .wp-block-button__link:hover { background: #f6f1e8; color: var(--pcg-gb-ink); }

.pcg-gb-band { background: var(--pcg-gb-ink); color: #f6f1e8; max-width: none !important; margin: 0; padding: clamp(4rem, 8vw, 7.5rem) max(1.5rem, calc((100vw - 1180px) / 2)); }
.pcg-gb-band__inner { gap: clamp(2rem, 7vw, 8rem); max-width: 1180px; margin: 0 auto; }
.pcg-gb-band__heading { color: #f6f1e8; font-size: clamp(2.25rem, 4.4vw, 4.6rem); line-height: 1.02; margin: 0; }
.pcg-gb-band__copy { color: #d5ded8; font-size: 1.12rem; line-height: 1.7; margin: 0; }

.pcg-gb-story-grid { gap: clamp(1.5rem, 3vw, 3rem); }
.pcg-gb-story-grid > .wp-block-column { min-width: 0; }
.pcg-gb-story-card__image { margin: 0 0 1.4rem; }
.pcg-gb-story-card__image img { display: block; width: 100%; aspect-ratio: 1.12 / 1; object-fit: cover; }
.pcg-gb-story-card__heading { color: var(--pcg-gb-ink); font-size: clamp(1.7rem, 3vw, 2.55rem); line-height: 1.08; margin: 0; }
.pcg-gb-contact-layout { gap: clamp(2rem, 7vw, 7rem); }
.pcg-gb-contact-card { min-width: 0; background: var(--pcg-gb-paper); border: 1px solid var(--pcg-gb-line); padding: clamp(1.5rem, 3vw, 2.75rem); }
.pcg-gb-contact-card .wp-block-shortcode,
.pcg-gb-contact-card .wpcf7,
.pcg-gb-contact-card form.wpcf7-form,
.pcg-gb-contact-card form.wpcf7-form > p,
.pcg-gb-contact-card .wpcf7-form-control-wrap { display: block; width: 100%; min-width: 0; max-width: none; }
.pcg-gb-contact-card form.wpcf7-form { margin: 0; }
.pcg-gb-contact-card form.wpcf7-form > p { margin-right: 0; margin-left: 0; }
.pcg-gb-contact-card .wpcf7-form-control { display: block; box-sizing: border-box; width: 100%; min-width: 0; max-width: none; }
.pcg-gb-contact-card input,
.pcg-gb-contact-card textarea,
.pcg-gb-contact-card select { width: 100%; min-width: 0; max-width: none; }
.pcg-gb-contact-details { line-height: 1.65; }

@media (max-width: 781px) {
  .pcg-gb-hero .wp-block-cover__inner-container { width: min(100% - 2.5rem, 1180px); }
  .pcg-gb-hero__inner { padding: 3.5rem 0; }
  .pcg-gb-section, .pcg-gb-band { padding-left: 1.25rem; padding-right: 1.25rem; }
  .pcg-gb-split, .pcg-gb-story-grid, .pcg-gb-band__inner, .pcg-gb-contact-layout { gap: 2rem; }
  .pcg-gb-image img { aspect-ratio: 1.25 / 1; }
  .pcg-gb-card__heading { margin-top: 2.25rem; }
}
