/* ============================================================
   AGFOCERT theme — chrome & page layouts
   (tokens + components come from agfocert.css / agfocert-components.css)
   ============================================================ */

.agfo-main { display: block; }

/* ---------------- Top bar ---------------- */
.agfo-topbar { background: var(--navy-950); color: var(--navy-300); font-size: 13px; }
.agfo-topbar__inner { display: flex; align-items: center; justify-content: space-between; height: 40px; }
.agfo-topbar__left { display: flex; align-items: center; gap: 18px; }
.agfo-topbar__left span { display: inline-flex; align-items: center; gap: 6px; }
.agfo-topbar__accred { font-family: var(--font-mono); font-size: 11.5px; letter-spacing: 0.04em; color: var(--navy-300); }

/* ---------------- Header ---------------- */
.agfo-header { position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,0.92); backdrop-filter: blur(10px); border-bottom: 1px solid var(--color-border); }
.agfo-header__inner { display: flex; align-items: center; justify-content: space-between; height: 76px; gap: 24px; }
.agfo-brand { display: inline-flex; align-items: center; }
.agfo-brand img { height: 44px; width: auto; display: block; }
.custom-logo-link img { height: 44px; width: auto; }

.agfo-nav { display: flex; align-items: center; gap: 28px; }
.agfo-nav__list { display: flex; align-items: center; gap: 26px; list-style: none; margin: 0; padding: 0; }
.agfo-nav__list a { font-family: var(--font-display); font-weight: var(--fw-semibold); font-size: 15.5px; color: var(--color-text); text-decoration: none; transition: color var(--dur-fast) var(--ease-standard); }
.agfo-nav__list a:hover { color: var(--color-accent); }
.agfo-nav__list .current-menu-item > a, .agfo-nav__list .current_page_item > a { color: var(--color-primary); }
.agfo-nav__actions { display: flex; align-items: center; gap: 10px; }

.agfo-header__toggle { display: none; align-items: center; justify-content: center; width: 44px; height: 44px; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: #fff; color: var(--color-primary); cursor: pointer; }

@media (max-width: 980px) {
	.agfo-header__toggle { display: inline-flex; }
	.agfo-nav { position: absolute; top: 100%; left: 0; right: 0; flex-direction: column; align-items: stretch; gap: 0; background: #fff; border-bottom: 1px solid var(--color-border); box-shadow: var(--shadow-lg); padding: 12px 0; display: none; }
	.agfo-nav.is-open { display: flex; }
	.agfo-nav__list { flex-direction: column; align-items: stretch; gap: 0; }
	.agfo-nav__list a { display: block; padding: 12px var(--gutter, 24px); padding-inline: clamp(20px,4vw,48px); }
	.agfo-nav__actions { padding: 12px clamp(20px,4vw,48px); gap: 10px; }
	.agfo-nav__actions .agfo-btn { flex: 1; }
}

/* ---------------- Trust strip ---------------- */
.agfo-trust { background: var(--color-surface); border-bottom: 1px solid var(--color-border); }
.agfo-trust__inner { display: flex; align-items: center; gap: 28px; flex-wrap: wrap; justify-content: center; padding-block: 22px; }
.agfo-trust__label { font-family: var(--font-display); font-size: 12.5px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--color-text-subtle); font-weight: var(--fw-bold); }
.agfo-trust__item { font-family: var(--font-display); font-weight: var(--fw-extrabold); font-size: 18px; color: var(--ink-400); letter-spacing: -0.01em; }

/* ---------------- Hero media chip ---------------- */
.agfo-hero__media { position: relative; }
.agfo-hero__chip { position: absolute; left: -26px; bottom: 28px; width: 250px; background: #fff; color: var(--color-text); border-radius: var(--radius-lg); box-shadow: var(--shadow-xl); padding: 16px; display: flex; gap: 12px; align-items: center; }
.agfo-hero__chip-ic { width: 42px; height: 42px; border-radius: 50%; background: var(--color-valid); color: #fff; display: inline-flex; align-items: center; justify-content: center; flex: none; }
.agfo-hero__chip-num { font-family: var(--font-mono); font-size: 11.5px; color: var(--color-text-subtle); }
.agfo-hero__chip-title { font-family: var(--font-display); font-weight: var(--fw-bold); font-size: 15px; }
.agfo-hero__chip-meta { font-size: 12.5px; color: var(--color-text-muted); }
@media (max-width: 900px) { .agfo-hero__chip { left: auto; right: 16px; } }
@media (max-width: 560px) { .agfo-hero__chip { display: none; } }

/* ---------------- Page hero ---------------- */
.agfo-pagehero { background: var(--color-surface-brand); color: #fff; padding-block: var(--space-12); }
.agfo-pagehero__title { font-size: var(--text-h1); color: #fff; margin-top: var(--space-3); }
.agfo-pagehero__intro { font-size: var(--text-lead); line-height: 1.6; color: var(--color-text-on-brand); margin-top: var(--space-4); max-width: 44rem; }

/* ---------------- Prose ---------------- */
.agfo-prose { max-width: var(--container-prose); font-size: var(--text-body); line-height: 1.7; color: var(--color-text); }
.agfo-prose > * + * { margin-top: 1.1em; }
.agfo-prose h2 { font-size: var(--text-h2); margin-top: 1.6em; }
.agfo-prose h3 { font-size: var(--text-h3); margin-top: 1.4em; }
.agfo-prose a { color: var(--color-text-link); text-decoration: underline; text-underline-offset: 3px; }
.agfo-prose ul, .agfo-prose ol { padding-left: 1.3em; }
.agfo-prose li + li { margin-top: 0.4em; }

/* ---------------- Process steps ---------------- */
.agfo-step__n { font-family: var(--font-display); font-weight: var(--fw-extrabold); font-size: 30px; color: var(--color-accent); }
.agfo-step__rule { height: 2px; background: var(--color-border); margin: 14px 0; }

/* ---------------- About ---------------- */
.agfo-about__grid { display: grid; grid-template-columns: 1.4fr 0.9fr; gap: 48px; align-items: start; }
.agfo-deflist { list-style: none; margin: 16px 0 0; padding: 0; }
.agfo-deflist li { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 11px 0; border-top: 1px solid var(--color-border); font-size: 15px; }
.agfo-deflist li span { color: var(--color-text-muted); }
.agfo-deflist li strong { font-family: var(--font-display); color: var(--color-text); text-align: right; }
@media (max-width: 860px) { .agfo-about__grid { grid-template-columns: 1fr; } }

/* ---------------- Contact ---------------- */
.agfo-contact__grid { display: grid; grid-template-columns: 1.2fr 0.8fr; gap: 40px; align-items: start; }
.agfo-contact__aside { display: flex; flex-direction: column; gap: 22px; }
.agfo-contact__block h3 { margin-bottom: 6px; }
.agfo-contact__line { display: flex; align-items: center; gap: 8px; font-size: 15px; color: var(--color-text); margin-top: 6px; }
.agfo-contact__line svg { color: var(--color-accent); }
.agfo-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 16px; }
.agfo-form .agfo-field { margin-bottom: 16px; }
.agfo-form__note { font-size: 13px; color: var(--color-text-subtle); margin-top: 12px; }
@media (max-width: 860px) { .agfo-contact__grid { grid-template-columns: 1fr; } .agfo-form__row { grid-template-columns: 1fr; } }

/* ---------------- Footer ---------------- */
.agfo-footer { background: var(--navy-950); color: var(--navy-300); }
.agfo-footer__inner { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 40px; padding-block: var(--space-12); }
.agfo-footer__brand img { height: 42px; width: auto; margin-bottom: 16px; }
.agfo-footer__blurb { font-size: 14.5px; line-height: 1.6; color: var(--navy-300); max-width: 30ch; }
.agfo-footer__accred { font-family: var(--font-mono); font-size: 11.5px; color: var(--navy-400); margin-top: 14px; line-height: 1.5; }
.agfo-footer__col h4 { font-family: var(--font-display); font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; color: #fff; margin-bottom: 14px; }
.agfo-footer__col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.agfo-footer__col a { color: var(--navy-300); font-size: 14.5px; text-decoration: none; }
.agfo-footer__col a:hover { color: #fff; }
.agfo-footer__bar { border-top: 1px solid rgba(255,255,255,0.08); }
.agfo-footer__bar-inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-block: 18px; font-size: 12.5px; color: var(--navy-400); flex-wrap: wrap; }
.agfo-footer__cols { display: contents; }
@media (max-width: 860px) { .agfo-footer__inner { grid-template-columns: 1fr 1fr; } .agfo-footer__brand { grid-column: 1 / -1; } }
@media (max-width: 520px) { .agfo-footer__inner { grid-template-columns: 1fr; } }

/* ---------------- Posts / pagination ---------------- */
.agfo-post__thumb { display: block; margin: -8px -8px 14px; border-radius: var(--radius-md); overflow: hidden; }
.agfo-pagination { margin-top: 32px; }
.agfo-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; padding: 0 10px; border: 1px solid var(--color-border); border-radius: var(--radius-md); margin-right: 6px; color: var(--color-primary); font-family: var(--font-display); font-weight: var(--fw-semibold); text-decoration: none; }
.agfo-pagination .page-numbers.current { background: var(--color-primary); color: #fff; border-color: var(--color-primary); }

.agfo-hide-sm { }
@media (max-width: 600px) { .agfo-hide-sm { display: none; } }

/* ============================================================
   v1.1.0 additions — a11y, blog, search, single, comments
   ============================================================ */

/* ---------------- Accessibility helpers ---------------- */
.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	height: 1px; width: 1px; margin: -1px; padding: 0; overflow: hidden;
	position: absolute !important; word-wrap: normal !important;
}
.agfo-skip-link {
	position: absolute; left: -9999px; top: 0; z-index: 100000;
	background: var(--color-primary); color: #fff;
	font-family: var(--font-display); font-weight: var(--fw-semibold); font-size: 15px;
	padding: 12px 18px; border-radius: 0 0 var(--radius-md) 0; text-decoration: none;
}
.agfo-skip-link:focus { left: 0; color: #fff; box-shadow: var(--shadow-lg); }
.agfo-main:focus { outline: none; }

/* ---------------- Blog two-column layout ---------------- */
.agfo-blog { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 48px; align-items: start; }
.agfo-no-sidebar .agfo-blog { grid-template-columns: minmax(0, 1fr); }
.agfo-blog__main { min-width: 0; }
.agfo-blog__aside { display: flex; flex-direction: column; gap: 20px; position: sticky; top: 96px; }
.agfo-blog__aside .widget-title { margin-bottom: 12px; }
.agfo-blog__aside ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.agfo-blog__aside ul a { color: var(--color-text); font-size: 15px; text-decoration: none; }
.agfo-blog__aside ul a:hover { color: var(--color-accent); }
@media (max-width: 900px) {
	.agfo-blog { grid-template-columns: 1fr; }
	.agfo-blog__aside { position: static; }
}

/* ---------------- Search form ---------------- */
.agfo-searchform__row { display: flex; gap: 8px; }
.agfo-searchform__row .agfo-input { flex: 1; }
.agfo-searchform__row .agfo-btn { flex: none; padding-inline: 0.9rem; }

/* ---------------- Single post ---------------- */
.agfo-single__hero { margin: 0 0 28px; border-radius: var(--radius-lg); overflow: hidden; }
.agfo-single__hero img { width: 100%; height: auto; display: block; }

.agfo-postnav { display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap;
	margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--color-border); }
.agfo-postnav a { font-family: var(--font-display); font-weight: var(--fw-semibold);
	font-size: 15px; color: var(--color-primary); text-decoration: none; }
.agfo-postnav a:hover { color: var(--color-accent); }
.agfo-postnav__next { text-align: right; margin-left: auto; }

/* ---------------- Comments ---------------- */
.agfo-comments { margin-top: 48px; padding-top: 32px; border-top: 1px solid var(--color-border); }
.agfo-comments__title { font-family: var(--font-display); font-size: var(--text-h3);
	font-weight: var(--fw-bold); margin-bottom: 20px; }
.agfo-comments__list { list-style: none; margin: 0 0 32px; padding: 0; }
.agfo-comments__list ol.children { list-style: none; margin: 16px 0 0 24px; padding: 0; }
.agfo-comments__list .comment-body { padding: 16px 0; border-top: 1px solid var(--color-border); }
.agfo-comments__list .comment-author { display: flex; align-items: center; gap: 10px;
	font-family: var(--font-display); font-weight: var(--fw-bold); font-size: 15px; }
.agfo-comments__list .comment-author img { border-radius: 50%; }
.agfo-comments__list .comment-meta { font-size: 13px; color: var(--color-text-subtle); margin: 4px 0 8px; }
.agfo-comments__list .comment-meta a { color: var(--color-text-subtle); }
.agfo-comments__list .comment-content { font-size: 15.5px; line-height: 1.6; color: var(--color-text); }
.agfo-comments__list .reply { margin-top: 8px; }
.agfo-comments__list .reply a { font-family: var(--font-display); font-weight: var(--fw-semibold);
	font-size: 13.5px; color: var(--color-primary); }
.agfo-comments__closed { font-size: 14px; color: var(--color-text-subtle); margin-bottom: 24px; }
.agfo-comments__reply-title { margin-bottom: 16px; }
.agfo-comments__form .comment-form-author,
.agfo-comments__form .comment-form-email { display: inline-block; width: calc(50% - 8px); }
.agfo-comments__form .comment-form-email { margin-left: 12px; }
.agfo-comments__form label { font-family: var(--font-display); font-size: var(--text-sm);
	font-weight: var(--fw-semibold); color: var(--color-text); display: block; margin-bottom: 6px; }
.agfo-comments__form input[type="text"],
.agfo-comments__form input[type="email"],
.agfo-comments__form input[type="url"] {
	width: 100%; font-family: var(--font-body); font-size: var(--text-body); color: var(--color-text);
	background: var(--color-surface); border: 1px solid var(--color-border-strong);
	border-radius: var(--radius-md); padding: 0.625rem 0.875rem; margin-bottom: 16px;
}
.agfo-comments__form .form-submit { margin-top: 4px; }
@media (max-width: 560px) {
	.agfo-comments__form .comment-form-author,
	.agfo-comments__form .comment-form-email { width: 100%; margin-left: 0; }
}

/* ---------------- Widget tweaks ---------------- */
.widget { font-size: 15px; }
.widget select, .widget input[type="search"] { width: 100%; }
