/* =============================================================
   AFRC content templates — generic pages, posts, archives,
   search, 404, comments. Everything is scoped under .afrc-page-header
   / .afrc-content / .afrc-archive / .afrc-notice etc. so it can never
   bleed into the pixel-ported hero pages (homepage-2,
   play-rugby-in-tokyo), which carry their own dedicated stylesheets.
   Uses the brand tokens from base.css.
   ============================================================= */

/* ---------- Masthead band (flows under the sticky navy header) ---------- */
.afrc-page-header {
	background: var(--afrc-navy);
	color: #fff;
	padding: clamp(28px, 5vw, 56px) clamp(16px, 4vw, 40px);
	border-bottom: 3px solid var(--afrc-red);
}
.afrc-page-header__inner { max-width: 1080px; margin: 0 auto; }
.afrc-page-header__kicker {
	margin: 0 0 .55rem;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--afrc-cream);
}
.afrc-page-header__title {
	margin: 0;
	font-size: clamp(1.8rem, 4vw, 2.9rem);
	font-weight: 800;
	letter-spacing: -.02em;
	line-height: 1.08;
}
.afrc-page-header__meta { margin: .85rem 0 0; font-size: .9rem; color: rgba(255,255,255,.74); }
.afrc-page-header__meta a { color: #fff; }

/* ---------- Article / page content ---------- */
.afrc-content {
	max-width: 760px;
	margin: 0 auto;
	padding: clamp(28px, 5vw, 56px) clamp(16px, 4vw, 24px);
	color: var(--afrc-navy-deep);
	font-size: 1.05rem;
	line-height: 1.7;
}
.afrc-content--wide { max-width: 1080px; }

.afrc-content h2 { font-size: 1.6rem;  font-weight: 800; letter-spacing: -.01em; margin: 2.2rem 0 .8rem; color: var(--afrc-navy-deep); }
.afrc-content h3 { font-size: 1.28rem; font-weight: 700; margin: 1.8rem 0 .6rem; }
.afrc-content h4 { font-size: 1.08rem; font-weight: 700; margin: 1.5rem 0 .5rem; }
.afrc-content p  { margin: 0 0 1.1rem; }
.afrc-content a  { color: var(--afrc-red); text-decoration: underline; text-underline-offset: 2px; }
.afrc-content a:hover { color: var(--afrc-navy); }
.afrc-content img { border-radius: 12px; }
.afrc-content ul, .afrc-content ol { margin: 0 0 1.1rem; padding-left: 1.4rem; }
.afrc-content li { margin: .3rem 0; }
.afrc-content blockquote {
	margin: 1.6rem 0;
	padding: .4rem 0 .4rem 1.2rem;
	border-left: 4px solid var(--afrc-red);
	color: #333;
	font-style: italic;
}
.afrc-content figure { margin: 1.6rem 0; }
.afrc-content figcaption { margin-top: .5rem; font-size: .85rem; color: #666; }
.afrc-content table { width: 100%; border-collapse: collapse; margin: 1.4rem 0; }
.afrc-content th, .afrc-content td { padding: .55rem .7rem; border: 1px solid #e3e3e3; text-align: left; }
.afrc-content code { background: #f3f4f7; padding: .12em .4em; border-radius: 5px; font-size: .92em; }
.afrc-content pre  { background: var(--afrc-navy-deep); color: #f3f4f7; padding: 1rem 1.2rem; border-radius: 12px; overflow: auto; }
.afrc-content pre code { background: none; padding: 0; }
.afrc-content hr { border: 0; border-top: 1px solid #e3e3e3; margin: 2rem 0; }
.afrc-page-links { margin: 1.6rem 0; font-weight: 600; }
.afrc-page-links a { color: var(--afrc-red); }

/* Featured image on single posts */
.afrc-entry__thumb { margin: 0 0 1.8rem; }
.afrc-entry__thumb img { width: 100%; border-radius: 14px; object-fit: cover; }

/* ---------- Archive / blog list ---------- */
.afrc-archive {
	max-width: 1080px;
	margin: 0 auto;
	padding: clamp(28px, 5vw, 56px) clamp(16px, 4vw, 24px);
}
.afrc-archive__intro { margin: 0 0 clamp(20px, 3vw, 32px); }
.afrc-archive__grid {
	display: grid;
	gap: clamp(18px, 3vw, 30px);
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
}
.afrc-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid #e7e9ef;
	border-radius: 16px;
	overflow: hidden;
	transition: transform .2s ease, box-shadow .2s ease;
}
.afrc-card:hover { transform: translateY(-3px); box-shadow: 0 16px 40px rgba(7,27,69,.12); }
.afrc-card__thumb { display: block; aspect-ratio: 16 / 9; background: #eef0f5; overflow: hidden; }
.afrc-card__thumb img { width: 100%; height: 100%; object-fit: cover; }
.afrc-card__body { padding: 18px 20px 22px; display: flex; flex-direction: column; gap: .5rem; }
.afrc-card__meta { font-size: .76rem; letter-spacing: .04em; text-transform: uppercase; color: var(--afrc-red); font-weight: 700; }
.afrc-card__title { margin: 0; font-size: 1.22rem; font-weight: 800; line-height: 1.22; letter-spacing: -.01em; }
.afrc-card__title a { color: var(--afrc-navy-deep); text-decoration: none; }
.afrc-card__title a:hover { color: var(--afrc-red); }
.afrc-card__excerpt { margin: 0; color: #444; font-size: .96rem; line-height: 1.6; }
.afrc-card__more { margin-top: .3rem; font-weight: 700; font-size: .85rem; color: var(--afrc-red); text-decoration: none; }
.afrc-card__more:hover { text-decoration: underline; }

/* ---------- Pagination ---------- */
.afrc-pagination {
	max-width: 1080px;
	margin: 10px auto 0;
	padding: 0 clamp(16px, 4vw, 24px) clamp(28px, 5vw, 56px);
}
.afrc-pagination .nav-links { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: center; }
.afrc-pagination .page-numbers {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 42px; height: 42px; padding: 0 12px;
	border: 1px solid #d8dbe5; border-radius: 10px;
	color: var(--afrc-navy-deep); text-decoration: none; font-weight: 600;
	transition: border-color .15s ease, background-color .15s ease, color .15s ease;
}
.afrc-pagination .page-numbers:hover { border-color: var(--afrc-navy); }
.afrc-pagination .page-numbers.current { background: var(--afrc-navy); color: #fff; border-color: var(--afrc-navy); }
.afrc-pagination .page-numbers.dots { border: 0; }

/* ---------- Post navigation (single) ---------- */
.afrc-post-nav {
	max-width: 760px;
	margin: 0 auto;
	padding: 0 clamp(16px, 4vw, 24px) clamp(28px, 5vw, 56px);
}
.afrc-post-nav .nav-links { display: flex; justify-content: space-between; gap: 16px; }
.afrc-post-nav a { color: var(--afrc-navy); text-decoration: none; font-weight: 600; }
.afrc-post-nav a:hover { color: var(--afrc-red); }

/* ---------- Search form ---------- */
.afrc-searchform { display: flex; gap: 8px; max-width: 460px; }
.afrc-searchform input[type="search"] {
	flex: 1; min-width: 0;
	padding: .7rem .9rem;
	border: 1px solid #cfd3e0; border-radius: 10px;
	font: inherit; color: var(--afrc-navy-deep); background: #fff;
}
.afrc-searchform input[type="search"]:focus { outline: 2px solid var(--afrc-navy); outline-offset: 1px; border-color: transparent; }
.afrc-searchform button {
	padding: .7rem 1.2rem;
	border: 0; border-radius: 10px;
	background: var(--afrc-red); color: #fff; font: inherit; font-weight: 700;
	cursor: pointer; transition: background-color .15s ease;
}
.afrc-searchform button:hover { background: var(--afrc-navy); }

/* ---------- 404 / empty states ---------- */
.afrc-notice {
	max-width: 640px;
	margin: 0 auto;
	padding: clamp(40px, 7vw, 90px) clamp(16px, 4vw, 24px);
	text-align: center;
	color: var(--afrc-navy-deep);
}
.afrc-notice__code { font-size: clamp(3.5rem, 12vw, 7rem); font-weight: 800; line-height: 1; color: var(--afrc-navy); letter-spacing: -.04em; }
.afrc-notice__title { margin: .4rem 0 .8rem; font-size: 1.5rem; font-weight: 800; }
.afrc-notice__text { margin: 0 0 1.6rem; color: #555; }
.afrc-notice .afrc-searchform { margin: 0 auto 1.5rem; }
.afrc-btn {
	display: inline-flex; align-items: center; justify-content: center;
	padding: .75rem 1.4rem; border-radius: 10px;
	background: var(--afrc-navy); color: #fff; text-decoration: none; font-weight: 700;
	transition: background-color .15s ease;
}
.afrc-btn:hover { background: var(--afrc-red); }

/* ---------- Comments ---------- */
.afrc-comments {
	max-width: 760px;
	margin: 0 auto;
	padding: 0 clamp(16px, 4vw, 24px) clamp(28px, 5vw, 56px);
}
.afrc-comments__title { font-size: 1.4rem; font-weight: 800; margin: 0 0 1.2rem; color: var(--afrc-navy-deep); }
.afrc-comments ol.comment-list { list-style: none; margin: 0 0 2rem; padding: 0; }
.afrc-comments .comment-body { padding: 1rem 0; border-bottom: 1px solid #ececec; }
.afrc-comments .comment-author { font-weight: 700; color: var(--afrc-navy-deep); }
.afrc-comments .comment-meta { font-size: .8rem; color: #888; }
.afrc-comments .comment-respond { margin-top: 1.5rem; }
.afrc-comments label { display: block; font-weight: 600; font-size: .9rem; margin-top: .8rem; }
.afrc-comments input[type="text"],
.afrc-comments input[type="email"],
.afrc-comments input[type="url"],
.afrc-comments textarea {
	width: 100%; padding: .6rem .8rem; border: 1px solid #cfd3e0; border-radius: 10px; font: inherit; margin-top: .3rem;
}
.afrc-comments .form-submit input {
	padding: .7rem 1.4rem; border: 0; border-radius: 10px;
	background: var(--afrc-red); color: #fff; font-weight: 700; cursor: pointer;
}
.afrc-comments .form-submit input:hover { background: var(--afrc-navy); }

@media (max-width: 600px) {
	.afrc-post-nav .nav-links { flex-direction: column; }
}

.afrc-article-links {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
	margin: 2rem 0 1.2rem;
	padding: 16px 0 0;
	border-top: 1px solid #e7e9ef;
}
.afrc-article-links strong {
	width: 100%;
	color: var(--afrc-navy-deep);
	font-size: .88rem;
	letter-spacing: .08em;
	text-transform: uppercase;
}
.afrc-article-links a {
	display: inline-flex;
	align-items: center;
	min-height: 36px;
	padding: 0 14px;
	border: 1px solid #d8dbe5;
	border-radius: 999px;
	color: var(--afrc-navy-deep);
	font-size: .9rem;
	font-weight: 800;
	text-decoration: none;
}
.afrc-article-links a:hover {
	border-color: var(--afrc-red);
	color: var(--afrc-red);
}
