/* Shared content layouts; opt in with .gp-content and the documented component classes. */
.gp-content { box-sizing: border-box; color: var(--gp-ink); background: #fff; }
.gp-content * { box-sizing: border-box; }
.gp-content *::before { box-sizing: border-box; }
.gp-content *::after { box-sizing: border-box; }
.gp-content .wp-block-group { margin: 0; }
.gp-content p { margin: 0; }
.gp-content h1 { margin: 0; }
.gp-content h2 { margin: 0; }
.gp-content h3 { margin: 0; }
.gp-content figure { margin: 0; }
.gp-content .wp-block-buttons { margin: 0; }
.gp-container { width: min(calc(100% - 64px), 1256px); margin-inline: auto !important; }
.gp-content .gp-section { padding-block: clamp(56px, 7vw, 100px); border-top: 1px solid var(--gp-rule); scroll-margin-top: 112px; }
.gp-content h1 { text-wrap: balance; }
.gp-content h2 { text-wrap: balance; }
.gp-content h3 { font-size: var(--wp--preset--font-size--heading-4); }
.gp-content p { color: var(--gp-muted); }
.gp-content figcaption { font-size: var(--wp--preset--font-size--small); line-height: 1.6; color: var(--gp-muted); }
.gp-content .gp-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 24px; }
.gp-content a:focus-visible { outline: 3px solid var(--gp-focus); outline-offset: 4px; }
.gp-content button:focus-visible { outline: 3px solid var(--gp-focus); outline-offset: 4px; }
.gp-section-heading { display: grid; gap: 20px; }
.gp-section > h2 { margin-bottom: 24px; }
.gp-content .gp-section-description { max-width: 760px; margin-bottom: 40px; }
.gp-content .gp-grid-four { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 32px; margin-top: 40px; }
.gp-content .gp-grid-three { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 32px; margin-top: 40px; }
.gp-content .gp-split { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.gp-split > .wp-block-group { display: grid; gap: 20px; }
.gp-split > figure img { aspect-ratio: 1.16; object-fit: cover; border-radius: var(--gp-radius-content, 16px); }
.gp-content figcaption { margin-top: 12px; font-size: 12px; }
.gp-content .gp-grid-three + p { margin-top: 32px; }
.gp-content .gp-resource-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0 40px; }
@media (max-width: 1000px) {
  .gp-content .gp-split { gap: 32px; }

  .gp-content .gp-grid-four { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 800px) {
  .gp-container { width: calc(100% - 40px); }

  .gp-content .gp-split { grid-template-columns: 1fr; }

  .gp-content .gp-resource-grid { grid-template-columns: 1fr 1fr; gap: 0 24px; }

  .gp-content .gp-grid-three { grid-template-columns: 1fr; gap: 24px; }

  .gp-split > figure img { aspect-ratio: 1.5; }
}
@media (max-width: 480px) {
  .gp-content .gp-grid-four { grid-template-columns: 1fr; }

  .gp-content .gp-resource-grid { grid-template-columns: 1fr; }
}

/* Shared mobile hero sequence: title, media, then supporting copy/actions.
 * Flatten only the presentation wrapper; text-only heroes keep their normal flow.
 */
@media (max-width:800px) {
 .gp-content .gp-section:is(.gp-home__hero,.gp-features__hero,.gp-specifications__hero,.gp-tow-hero,.gp-resource-hero):has(> figure, > .gp-home__hero-media) { display:grid; grid-template-columns:minmax(0,1fr); gap:24px; }
 .gp-content .gp-section:is(.gp-home__hero,.gp-features__hero,.gp-specifications__hero,.gp-tow-hero,.gp-resource-hero):has(> figure, > .gp-home__hero-media) > :is(.gp-home__hero-copy,.gp-section-heading,.gp-resource-hero-copy) { display:contents; }
 .gp-content .gp-section:is(.gp-home__hero,.gp-features__hero,.gp-specifications__hero,.gp-tow-hero,.gp-resource-hero):has(> figure, > .gp-home__hero-media) > :is(.gp-home__hero-copy,.gp-section-heading,.gp-resource-hero-copy) > * { order:2; margin-block:0; }
 .gp-content .gp-section:is(.gp-home__hero,.gp-features__hero,.gp-specifications__hero,.gp-tow-hero,.gp-resource-hero):has(> figure, > .gp-home__hero-media) > :is(.gp-home__hero-copy,.gp-section-heading,.gp-resource-hero-copy) > h1 { order:0; }
 .gp-content .gp-section:is(.gp-home__hero,.gp-features__hero,.gp-specifications__hero,.gp-tow-hero,.gp-resource-hero) > :is(figure,.gp-home__hero-media) { order:1; min-width:0; margin:0; }
}
@media (max-width:800px) {
 /* Some recovered guide introductions contain additional editorial groups. */
 .gp-content .gp-section.gp-resource-hero:has(> figure) :is(.gp-resource-hero-copy,.gp-resource-flow):has(h1) { display:contents; }
 .gp-content .gp-section.gp-resource-hero:has(> figure) :is(.gp-resource-hero-copy,.gp-resource-flow):has(h1) > * { order:2; margin-block:0; }
 .gp-content .gp-section.gp-resource-hero:has(> figure) :is(.gp-resource-hero-copy,.gp-resource-flow) > h1 { order:0; }
}
