/* Layout only: brand presets stay editable in Global Styles. */
.hpj-header { border-bottom:1px solid var(--wp--preset--color--sage); padding-block:var(--wp--preset--spacing--40); }
.hpj-header-row { gap:1.25rem 2rem; }
.hpj-brand { min-width:0; gap:0.85rem; flex:1 1 16rem; }
.hpj-brand > .wp-block-group { min-width:0; }
.hpj-brand .wp-block-site-logo { flex-shrink:0; }
.hpj-brand .wp-block-site-title { overflow-wrap:anywhere; line-height:1.2; }
.hpj-brand .wp-block-site-tagline { margin-block:0.25rem 0; }
.hpj-navigation { flex:0 1 auto; }
.hpj-header-search-row { margin-block-start:1rem; }
.hpj-header-search-row > .hpj-search { max-width:28rem; margin-inline:auto 0; }
.hpj-search .wp-block-search__inside-wrapper { border:1px solid var(--wp--preset--color--primary); border-radius:6px; background:var(--wp--preset--color--surface); padding:4px; }
.hpj-search .wp-block-search__input { min-width:0; min-height:44px; width:100%; font:inherit; font-size:1rem; color:var(--wp--preset--color--text); background:transparent; border:0; padding:0.5rem; }
.hpj-search .wp-block-search__button { margin-inline-start:4px; min-height:44px; padding:0.65rem 0.85rem; font-size:1rem; border:0; border-radius:4px; background:var(--wp--preset--color--primary); color:var(--wp--preset--color--surface); cursor:pointer; }
.hpj-header .wp-block-navigation-item__content, .hpj-footer .wp-block-navigation-item__content { padding-block:0.45rem; }
.hpj-header .wp-block-navigation__responsive-container-open, .hpj-header .wp-block-navigation__responsive-container-close { min-width:44px; min-height:44px; align-items:center; justify-content:center; }
.hpj-header :where(a,button,input):focus-visible, .hpj-footer :where(a,button,input):focus-visible { outline:3px solid var(--wp--preset--color--primary); outline-offset:4px; }
.hpj-footer { padding-block:var(--wp--preset--spacing--60); margin-block-start:0; }
.hpj-footer .wp-block-columns { gap:2rem; }
.hpj-footer .wp-block-column { min-width:0; }
.hpj-footer .wp-block-site-title { overflow-wrap:anywhere; }
.hpj-footer .wp-block-navigation { align-items:flex-start; }
@media(max-width:599px) {
  .hpj-brand { flex:1 1 0; }
  .hpj-brand .wp-block-site-title { font-size:1.4rem; }
  .hpj-brand .wp-block-site-logo img { max-width:44px; height:auto; }
  .hpj-brand .wp-block-site-tagline { font-size:0.875rem; }
  .hpj-header-search-row > .hpj-search { max-width:none; }
}

/* Part 4 homepage */
.hpj-home { padding-block: var(--wp--preset--spacing--50) var(--wp--preset--spacing--60); }
.hpj-home-intro { text-align:center; margin-block-end:2.5rem; }
.hpj-home-intro h1 { font-size:clamp(2rem,4vw,3.25rem); margin-block:0 0.75rem; }
.hpj-topics { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:1.5rem; padding-block:0.5rem 2.5rem; }
.hpj-topics > .hpj-topic { margin:0; min-width:0; width:100%; }
.hpj-topic-image { margin:0 auto; max-width:140px; }
.hpj-topic-image img { display:block; width:100%; height:auto; aspect-ratio:1; border-radius:50%; object-fit:cover; }
.hpj-topic p { margin-block:0.75rem 0; font-size:1rem; line-height:1.4; }
.hpj-topic a { text-decoration:none; }
.hpj-topic a:hover { text-decoration:underline; }
.hpj-home-section { padding-block:2rem; border-top:1px solid var(--wp--preset--color--sage); }
.hpj-home-section > h2 { margin-block:0 0.75rem; }
.hpj-post-grid .wp-block-post-template { gap:1.5rem; margin-block-start:1.5rem; }
.hpj-post-card .wp-block-post-title { line-height:1.3; margin-block:1rem 0.5rem; }
.hpj-post-card .wp-block-post-featured-image { margin:0; }
.hpj-post-card .wp-block-post-date { margin-block-start:0.5rem; }
.hpj-home-search { background:var(--wp--preset--color--sage); padding:clamp(1.25rem,4vw,3rem); border-radius:12px; margin-block:2rem; }
.hpj-home-search h2 { text-align:center; margin-block:0 1.25rem; }
.hpj-about { background:var(--wp--preset--color--surface); padding:clamp(1.25rem,4vw,3rem); border-radius:12px; margin-block:2rem; }
.hpj-about-photo img { width:100%; height:auto; aspect-ratio:1; object-fit:cover; border-radius:50%; }
.hpj-about .wp-block-columns { gap:clamp(1.5rem,4vw,3.5rem); }
.hpj-home :where(a,button,input):focus-visible { outline:3px solid var(--wp--preset--color--primary); outline-offset:4px; }
@media(max-width:900px) {
 .hpj-topics { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .hpj-post-grid .wp-block-post-template { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:480px) {
 .hpj-topics { gap:1.25rem 0.75rem; }
 .hpj-topic p { font-size:0.875rem; }
 .hpj-post-grid .wp-block-post-template { grid-template-columns:1fr; }
 .hpj-home-search .wp-block-search__button { padding-inline:0.5rem; }
}

/* Part 5 articles */
.hpj-single { padding-block:var(--wp--preset--spacing--60); }
.hpj-article-columns { gap:clamp(2rem,5vw,4rem); }
.hpj-article-columns > .wp-block-column { min-width:0; }
.hpj-article > .wp-block-post-title { margin-block:0.75rem 1.25rem; overflow-wrap:anywhere; }
.hpj-byline { gap:0.5rem 1.25rem; padding-bottom:1rem; }
.hpj-article .wp-block-post-content { margin-block-start:2rem; }
.hpj-article .wp-block-post-content :where(h2,h3,h4) { margin-block-start:2.5rem; scroll-margin-top:2rem; }
.hpj-article .wp-block-post-content :where(img,video,iframe) { max-width:100%; }
.hpj-article .wp-block-post-content :where(pre,.wp-block-table) { overflow:auto; }
.hpj-article .wp-block-post-content :where(p,li,a) { overflow-wrap:anywhere; }
.hpj-article .wp-block-post-content li { margin-block:0.5rem; }
.hpj-author-card { padding:1.5rem; background:var(--wp--preset--color--sage); border-radius:12px; }
.hpj-author-card .wp-block-avatar img { border-radius:50%; }
.hpj-author-card .wp-block-post-author-name { font-family:var(--wp--preset--font-family--heading); }
.hpj-sidebar-browse { margin-top:2rem; }
.hpj-sidebar-browse .wp-block-categories-list { padding-inline-start:1.25rem; }
.hpj-sidebar-browse li { padding-block:0.3rem; }
.hpj-post-navigation { border-block:1px solid var(--wp--preset--color--sage); padding-block:1.5rem; margin-block:2.5rem; gap:1.5rem; }
.hpj-post-navigation > div { flex:1 1 13rem; overflow-wrap:anywhere; }
.hpj-post-navigation .post-navigation-link-next { text-align:end; }
.hpj-related-section { margin-top:3rem; padding-top:2rem; border-top:1px solid var(--wp--preset--color--sage); }
.hpj-related-grid .wp-block-post-template { gap:2rem; }
.hpj-related-grid .wp-block-post-title { line-height:1.3; }
.hpj-comment { padding-block:1.5rem; border-bottom:1px solid var(--wp--preset--color--sage); }
.hpj-comments :where(input:not([type=checkbox]):not([type=submit]),textarea) { box-sizing:border-box; max-width:100%; width:100%; padding:0.75rem; border:1px solid var(--wp--preset--color--primary); border-radius:4px; color:var(--wp--preset--color--text); background:var(--wp--preset--color--surface); font:inherit; }
.hpj-comments label { display:block; }
.hpj-comments .comment-form-cookies-consent label { display:inline; }
.hpj-single :where(a,button,input,textarea,summary):focus-visible { outline:3px solid var(--wp--preset--color--primary); outline-offset:4px; }
@media(max-width:781px) {
 .hpj-article-columns { flex-direction:column; }
 .hpj-related-grid .wp-block-post-template { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:480px) {
 .hpj-related-grid .wp-block-post-template { grid-template-columns:1fr; }
 .hpj-post-navigation .post-navigation-link-next { text-align:start; }
}

/* Part 6 writing patterns */
.hpj-guide-jump { background:var(--wp--preset--color--sage); border-inline-start:3px solid var(--wp--preset--color--primary); padding:1.25rem 1.5rem; border-radius:0 8px 8px 0; }
.hpj-guide-jump > p { margin-block:0 0.75rem; }
.hpj-guide-jump ul { margin:0; padding-inline-start:1.25rem; }
.hpj-guide-tip,.hpj-guide-checklist { background:var(--wp--preset--color--sage); padding:1.5rem; border-radius:8px; margin-block:2rem; }
.hpj-guide-tip > h3,.hpj-guide-checklist > h2 { margin-block-start:0 !important; }
.hpj-guide-body [id] { scroll-margin-top:2rem; }
.hpj-guide-body table { border-collapse:collapse; width:100%; }
.hpj-guide-body :where(th,td) { text-align:start; padding:0.75rem; border:1px solid var(--wp--preset--color--sage); overflow-wrap:anywhere; }
.hpj-guide-body th { background:var(--wp--preset--color--sage); }
.hpj-guide-body .wp-block-details,.hpj-guide-faq .wp-block-details { border-block-end:1px solid var(--wp--preset--color--sage); padding-block:1rem; }
.hpj-guide-body summary,.hpj-guide-faq summary { cursor:pointer; font-weight:700; padding-block:0.5rem; }
.hpj-guide-body summary:focus-visible,.hpj-guide-faq summary:focus-visible { outline:3px solid var(--wp--preset--color--primary); outline-offset:4px; }

/* Part 7 browsing */
.hpj-browse { padding-block:var(--wp--preset--spacing--60); }
.hpj-browse > .wp-block-template-part { max-width:var(--wp--style--global--wide-size); width:100%; }
.hpj-browse-intro { margin-block-end:2.5rem; }
.hpj-browse-intro > h1 { margin-block:0 1rem; overflow-wrap:anywhere; }
.hpj-browse-intro > .hpj-search { margin-block-start:1.5rem; }
.hpj-browse-grid .wp-block-post-template { gap:2.5rem 2rem; }
.hpj-browse-card { min-width:0; }
.hpj-browse-card .wp-block-post-featured-image { margin:0; }
.hpj-browse-card .wp-block-post-title { margin-block:0.75rem; line-height:1.3; overflow-wrap:anywhere; }
.hpj-browse-card .wp-block-post-terms { margin-block-start:1rem; }
.hpj-browse-card .wp-block-post-excerpt { font-size:1rem; }
.hpj-browse-card .wp-block-post-date { margin-block-start:1rem; }
.hpj-pagination { margin-block-start:3rem; gap:0.75rem; border-top:1px solid var(--wp--preset--color--sage); padding-block-start:1.5rem; }
.hpj-pagination .page-numbers { display:inline-flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; padding:0.25rem; border-radius:6px; }
.hpj-pagination .page-numbers.current { background:var(--wp--preset--color--primary); color:var(--wp--preset--color--surface); }
.hpj-pagination :where(.wp-block-query-pagination-previous,.wp-block-query-pagination-next) { padding:0.75rem; }
.hpj-browse-empty { background:var(--wp--preset--color--sage); padding:clamp(1.25rem,4vw,2.5rem); border-radius:12px; }
.hpj-browse-empty > h2 { margin-block-start:0; }
.hpj-browse :where(a,button,input):focus-visible { outline:3px solid var(--wp--preset--color--primary); outline-offset:4px; }
@media(max-width:900px) { .hpj-browse-grid .wp-block-post-template { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:540px) { .hpj-browse-grid .wp-block-post-template { grid-template-columns:1fr; } }

/* Part 8 supporting pages */
.hpj-page { padding-block:var(--wp--preset--spacing--60); }
.hpj-page > .wp-block-post-title { margin-block:0 2rem; overflow-wrap:anywhere; }
.hpj-page-support > .wp-block-post-title,.hpj-page-support > .wp-block-post-content { max-width:960px; }
.hpj-page-support .hpj-support-body { max-width:960px; }
.hpj-page-policy > .wp-block-post-title,.hpj-page-policy > .wp-block-post-content { max-width:760px; }
.hpj-support-body .wp-block-columns { gap:2rem; margin-block:2.5rem; }
.hpj-page-photo img { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:cover; border-radius:12px; }
.hpj-integration-slot { background:var(--wp--preset--color--sage); border-radius:12px; padding:1.5rem; margin-block:2rem; }
.hpj-policy-jump { background:var(--wp--preset--color--sage); padding:1.25rem 1.5rem; border-radius:8px; }
.hpj-policy-body h2,.hpj-support-body h2 { margin-block-start:2.5rem; scroll-margin-top:2rem; }
.hpj-policy-body li,.hpj-support-body li { margin-block:0.5rem; }
.hpj-page :where(p,li,a) { overflow-wrap:anywhere; }
.hpj-page :where(a,button,input,textarea):focus-visible { outline:3px solid var(--wp--preset--color--primary); outline-offset:4px; }

/* Part 9: native forms. */
.hpj-form { position: relative; text-align: left; }
.hpj-form label { display: block; margin-bottom: .5rem; font-weight: 600; }
.hpj-form input:not([type=checkbox]):not([type=hidden]), .hpj-form textarea { box-sizing: border-box; width: 100%; border: 1px solid #65756a; border-radius: 4px; padding: .8rem; background: #fff; color: #25312b; font: inherit; }
.hpj-form .hpj-consent { display: flex; gap: .6rem; align-items: flex-start; font-weight: 400; }
.hpj-form input[type=checkbox] { width: 1.2rem; height: 1.2rem; flex: 0 0 auto; }
.hpj-form button { padding: .85rem 1.25rem; border: 0; border-radius: 4px; background: #315c45; color: #fff; font: inherit; cursor: pointer; }
.hpj-form :is(input,textarea,button):focus-visible { outline: 3px solid #315c45; outline-offset: 3px; }
.hpj-form-trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
