/* Shared page edges — 1320px content, 28px gutters / 12px mobile.
 * Source of truth: assets/css/base.css (--cg-container-width).
 * Page templates own the outer gutters; components own only internal spacing.
 * New sections should use .cg-page-container or .cg-container instead
 * of defining independent max-widths and horizontal padding.
 * Legacy About shortcode overrides below remain until their PHP is migrated.
 */
.cg-page-shell > .wp-block-post-content,
.site-header .site-header__inner {
  box-sizing: border-box;
  width: var(--cg-container-width);
  max-width: none;
  margin-inline: auto;
  padding-inline: 0;
}
/* Also covers editor-saved page templates that predate cg-page-shell. */
.wp-site-blocks main.wp-block-group > .wp-block-post-content {
  box-sizing: border-box;
  width: var(--cg-container-width);
  max-width: none;
  margin-inline: auto;
  padding-inline: 0;
}
/* The outer page owns the gutters. Nested containers do not add them again. */
.wp-block-post-content .cg-container {
  width: 100%;
  max-width: var(--cg-content-width);
  margin-inline: auto;
}
/* Existing WPCode About snippets: override their embedded width rules. */
.wp-block-post-content .cg-company-intro,
.wp-block-post-content .cg-team-v1,
.wp-block-post-content .cg-team-v11 {
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  margin-inline: auto;
  padding-inline: 0;
}
/* Self-contained shortcodes outside post content use the shared container. */
.cg-company-intro,
.cg-team-v1,
.cg-team-v11 {
  width: var(--cg-container-width) !important;
  max-width: none !important;
  padding-inline: 0 !important;
}
.wp-block-post-content .cg-company-intro,
.wp-block-post-content .cg-team-v1,
.wp-block-post-content .cg-team-v11 {
  width: 100% !important;
}

/* Reusable edge-to-edge image/hero wrapper: .cg-full-bleed.
 * Pages containing this class lift only their outer content constraint.
 * Keep their text/body sections inside .cg-page-container or a scoped container.
 * Use width:100% rather than 100vw to avoid scrollbar overflow.
 */
.wp-site-blocks main.wp-block-group:has(.cg-full-bleed),
.wp-site-blocks main.wp-block-group > .wp-block-post-content:has(.cg-full-bleed) {
    width: 100% !important;
    max-width: none !important;
    padding-inline: 0 !important;
}
.cg-full-bleed {
    box-sizing: border-box;
    width: 100%;
    max-width: none !important;
    margin-inline: 0 !important;
}
.cg-full-bleed > img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}


/* Gutenberg 404 template: shared by the front end and Site Editor. */
.cg-not-found {
    box-sizing: border-box;
    width: var(--cg-container-width);
    max-width: none !important;
    margin: 0 auto !important;
    padding: clamp(36px, 6vw, 88px) 0;
}
.cg-not-found__columns { gap: clamp(28px, 5vw, 72px); margin: 0; }
.cg-not-found__eyebrow {
    display: inline-block;
    padding: 6px 0;
    border-bottom: 3px solid #FFC72C;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .12em;
}
.cg-not-found__title { font-size: clamp(32px, 3.8vw, 52px); line-height: 1.12; margin: 22px 0; max-width: 560px; }
.cg-not-found__intro { color: #4D4D4F; font-size: 18px; line-height: 1.65; max-width: 480px; }
.cg-not-found__actions { gap: 12px; margin-top: 28px; }
.cg-not-found__actions .wp-block-button__link { font-size: 15px; padding: 14px 20px; border-radius: 4px; }
.cg-not-found__actions .is-style-outline .wp-block-button__link { border: 1px solid #b8b8b8; background: transparent; }
.cg-not-found__actions .wp-block-button__link:hover { background: #e9b51f; color: #000; }
.cg-not-found__actions .wp-block-button__link:focus-visible,
.cg-not-found__back a:focus-visible { outline: 3px solid #000; outline-offset: 4px; }
.cg-not-found__back { margin-top: 24px; font-size: 14px; }
.cg-not-found__back a { color: #4D4D4F; text-decoration: underline; text-underline-offset: 4px; }
.cg-not-found__back a:hover { color: #000; }
.cg-not-found__photo { margin: 0; }
.cg-not-found__photo img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 8px; }
@media (max-width: 781px) {
    .cg-not-found__actions { flex-direction: column; align-items: stretch; }
    .cg-not-found__actions .wp-block-button,
    .cg-not-found__actions .wp-block-button__link { width: 100%; box-sizing: border-box; text-align: center; }
    .cg-not-found__photo img { aspect-ratio: 16 / 10; }
}

/* Align Gutenberg post titles with the global content container. */
.wp-site-blocks .wp-block-post-title {
    box-sizing: border-box;
    width: var(--cg-container-width);
    max-width: none;
    margin-inline: auto;
}