:root { --container: 1200px; }

.footer-grid { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: var(--sp-8) var(--sp-10); }
.footer-links { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--sp-3) var(--sp-6); max-width: 34em; }
.footer-links a { color: var(--muted); font-size: var(--fs-sm); font-weight: 600; }
.footer-links a:hover { color: var(--accent-strong); }
@media (max-width: 47.5em) {
	.footer-grid { align-items: flex-start; }
	.footer-links { justify-content: flex-start; max-width: none; }
}

/*
 * Cross-document view transitions leave Messenger's in-app browser on a blank
 * page after the first tap. The rule in styles.css stays; this turns it off.
 */
@media (prefers-reduced-motion: no-preference) {
	@view-transition { navigation: none; }
}
@view-transition { navigation: none; }

@media (max-width: 66.25em) {
	.sidebar { display: none; }
}

.container > .pagetools { margin-bottom: var(--sp-4); }

.site-header { box-shadow: none; border-bottom: var(--hair) solid var(--line); }
[data-theme="dark"] .site-header { box-shadow: none; }
.header-main { gap: calc(var(--app-em)*1.625); min-height: calc(var(--app-em)*4.375); padding-block: calc(var(--app-em)*0.5); }
.site-header .brand { gap: calc(var(--app-em)*0.75); flex: none; }
.site-header .brand__mark { width: calc(var(--app-em)*2.625); height: calc(var(--app-em)*2.625); border-radius: calc(var(--app-em)*0.8125); color: var(--accent); }
.site-header .brand__mark .icon { width: calc(var(--app-em)*1.5); height: calc(var(--app-em)*1.5); }
.site-header .brand__name { font-size: calc(var(--app-em)*1.43); }
.site-header .brand__tagline { margin-top: calc(var(--app-em)*0.0625); font-size: var(--font-size-xs); letter-spacing: .05em; line-height: 1.3; }
.primary-nav { flex: 1 1 auto; min-width: 0; gap: 0; }
.primary-nav a::after { content: none; }
.primary-nav .category-scroll { min-height: 0; width: 100%; }
.primary-nav .category-menu { gap: calc(var(--app-em)*0.125); }
.primary-nav .category-link { min-height: calc(var(--app-em)*2.375); padding: calc(var(--app-em)*0.5625) calc(var(--app-em)*0.6875); border-radius: calc(var(--app-em)*0.5625); color: var(--muted); }
.primary-nav .category-link:hover,
.primary-nav .category-link.is-active,
.primary-nav .category-menu__row:has(.category-link.is-active),
.site-header.is-menu-open .primary-nav .category-link:hover,
.site-header.is-menu-open .primary-nav .category-link.is-active { background: var(--accent-soft); color: var(--accent-strong); }

@media (min-width: 56.251em) {
	.primary-nav .category-scroll { overflow-x: auto; scrollbar-width: none; }
	.primary-nav .category-scroll::-webkit-scrollbar { display: none; }
	.primary-nav .category-menu { width: max-content; flex-wrap: nowrap; }
}

@media (max-width: 66.25em) and (min-width: 56.251em) {
	.primary-nav { display: flex; }
	.menu-button { display: none; }
	.site-header.is-menu-open .primary-nav { position: static; display: flex; padding: 0; border-radius: 0; background: transparent; box-shadow: none; }
}

.search-panel { border-top: var(--hair) solid var(--line); padding: 0; }
.search-form { padding-block: var(--sp-4); }

@media (max-width: 56.25em) {
	.site-header.is-menu-open .primary-nav { top: calc(var(--app-em)*4.75); display: block; max-height: calc(100vh - var(--head-offset)); overflow-y: auto; border-radius: var(--r-lg); box-shadow: var(--shadow-menu); }
	.site-header.is-menu-open .category-scroll { display: block; overflow: visible; }
	.site-header.is-menu-open .category-menu { flex-direction: column; align-items: stretch; gap: var(--sp-1); width: auto; }
	.site-header.is-menu-open .category-menu__item { width: 100%; }
	.site-header.is-menu-open .category-link { width: 100%; justify-content: flex-start; }
	.site-header.is-menu-open .category-menu > .category-menu__item > .category-menu__submenu { position: static; inset: auto; max-width: none; margin-block: var(--sp-1); box-shadow: var(--shadow-tiny); }
}

@media (max-width: 47.5em) {
	.header-main { gap: calc(var(--app-em)*0.75); min-height: calc(var(--app-em)*4); }
	.site-header .brand__tagline { display: none; }
	.site-header .brand__mark { width: calc(var(--app-em)*2.375); height: calc(var(--app-em)*2.375); border-radius: var(--r-md); }
	.site-header .brand__name { font-size: calc(var(--app-em)*1.3125); }
	.site-header.is-menu-open .primary-nav { top: calc(var(--app-em)*4.375); }
}

input[type="text"], input[type="password"], input[type="email"], input[type="search"], input[type="url"],
input[type="tel"], input[type="number"], input[type="date"], input[type="datetime-local"], input[type="time"],
input[type="color"], select, textarea, .form-control {
	width: 100%; min-width: 0; max-width: 100%;
	min-height: var(--control-h); padding: calc(var(--app-em)*0.5) calc(var(--app-em)*0.875);
	border: var(--hair) solid var(--line); border-radius: var(--r-md);
	background: var(--surface-soft); color: var(--text);
	font-size: var(--fs-ui); line-height: 1.45;
	transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
textarea { min-height: calc(var(--app-em)*7.5); line-height: 1.6; resize: vertical; }
input:focus, select:focus, textarea:focus, .form-control:focus {
	outline: none; border-color: var(--accent); background: var(--surface); box-shadow: 0 0 0 var(--sp-1) var(--accent-soft);
}
input::placeholder, textarea::placeholder { color: var(--muted); opacity: .75; }
input[type="checkbox"], input[type="radio"] {
	width: calc(var(--app-em)*1.2); height: calc(var(--app-em)*1.2); min-height: 0; flex: none;
	margin: 0; padding: 0; accent-color: var(--accent-strong); cursor: pointer;
}

.text { color: var(--news-text); line-height: 1.55; }
.text p, .text h1, .text h2, .text h3, .text h4, .text h5, .text h6, .text ul, .text ol, .text hr { margin: 0 0 var(--sp-3); }
.text > :last-child { margin-bottom: 0; }
.text h1 { font-size: 1.528em; }
.text h2 { font-size: 1.389em; }
.text h3 { font-size: 1.25em; }
.text h4 { font-size: 1.11em; }
.text h5 { font-size: 1em; }
.text h6 { font-size: .89em; }
.text a { color: var(--accent-strong); text-decoration: underline; text-underline-offset: calc(var(--app-em)*0.25); }
.text a:hover { text-decoration-thickness: calc(var(--app-em)*0.125); }
.text ul, .text ol { padding-left: var(--sp-6); }
.text img { height: auto; border-radius: var(--r-md); }
.text figure { margin: var(--sp-5) 0; }
.text figcaption { margin-top: var(--sp-2); color: var(--muted); font-size: var(--fs-meta); }
.text hr { height: var(--hair); margin: var(--sp-6) 0; border: 0; background: var(--line); }
.text table { width: 100%; border-collapse: collapse; margin: 0 0 var(--sp-4); font-size: var(--fs-sm); }
.text th, .text td { padding: var(--sp-2) var(--sp-3); border: var(--hair) solid var(--line); text-align: left; }
.text th { background: var(--surface-soft); font-weight: 600; }
blockquote { margin: var(--app-em) 0; padding: calc(var(--app-em)*0.625); background: var(--surface-soft); color: var(--text); border-inline-start: calc(var(--app-em)*0.1875) solid var(--accent); border-start-end-radius: var(--r-md); border-end-end-radius: var(--r-md); }
pre, code, kbd, samp { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: calc(var(--app-em)*0.9); }
pre { display: block; margin: 0 0 var(--sp-4); padding: var(--sp-4); overflow-x: auto; border-radius: var(--r-md); background: var(--surface-sunk); color: var(--text); line-height: 1.55; }
:not(pre) > code { padding: calc(var(--app-em)*0.125) var(--sp-1); border-radius: var(--r-xs); background: var(--surface-sunk); }

table.calendar, .calendar, #wp-calendar { width: 100%; border-collapse: collapse; table-layout: fixed; text-align: center; font-size: var(--fs-sm); }
#wp-calendar th.monthselect { padding: 0 0 var(--sp-3); color: var(--text); font-size: var(--fs-sm); }
.monthselect-inner { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-2); }
.monthselect-title { font-size: var(--fs-sm); font-weight: 600; color: var(--text); }
.monthlink { display: inline-grid; place-items: center; width: calc(var(--app-em)*1.75); height: calc(var(--app-em)*1.75); border-radius: var(--r-sm); background: var(--surface-soft); color: var(--muted); }
a.monthlink:hover { background: var(--accent-soft); color: var(--accent-strong); }
span.monthlink { opacity: .4; }
#wp-calendar th.weekday, #wp-calendar td.weekday { color: var(--negative); }
#wp-calendar caption, .calendar tr th.monthselect { padding-bottom: var(--sp-3); font-size: var(--fs-sm); font-weight: 600; color: var(--text); }
.calendar tr th, #wp-calendar th { padding: calc(var(--app-em)*0.3125) 0; color: var(--muted); font-size: var(--fs-meta); font-weight: 600; }
.calendar tr td, #wp-calendar td { padding: calc(var(--app-em)*0.1875) 0; color: var(--muted); }
#wp-calendar td#today, .calendar tr td.day-current { font-weight: 700; color: var(--text); }
.calendar tr td a, #wp-calendar td a {
	display: grid; place-items: center; width: var(--sp-8); height: var(--sp-8); margin: auto;
	border-radius: var(--r-sm); background: var(--accent-soft); color: var(--accent-strong); font-weight: 600;
}
.calendar tr td a:hover, #wp-calendar td a:hover { background: var(--accent); color: var(--accent-ink); }
#wp-calendar tfoot td { padding-top: var(--sp-3); }
#wp-calendar tfoot a { color: var(--accent-strong); font-weight: 600; }
a.archives { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); padding: var(--sp-2) 0; border-bottom: var(--hair) solid var(--line); color: var(--text); font-size: var(--fs-sm); }
a.archives:hover { color: var(--accent-strong); }
a.archives b { font-weight: 500; }
a.archives > span { color: var(--muted); }

.comment-respond { margin-top: var(--sp-4); padding: var(--sp-6); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow-soft); }
.comment-respond .reply-form { margin-top: var(--sp-4); padding: 0; background: transparent; box-shadow: none; }
.thread .children { display: grid; gap: calc(var(--app-em)*0.875); margin: calc(var(--app-em)*0.875) 0 0 var(--sp-6); }
.comment-form-cookies-consent { display: flex; align-items: center; gap: var(--sp-2); margin-top: var(--sp-4); color: var(--muted); font-size: var(--fs-meta); }
.comment-form-cookies-consent label { cursor: pointer; }

.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) {
	.admin-bar .site-header { top: 46px; }
}

.front { display: grid; gap: var(--sp-10); }
.front-latest { display: grid; gap: var(--sp-4); }
.front-block { padding-top: var(--sp-6); border-top: var(--hair) solid var(--line); }

.front-open,
.front-rubric { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-4); align-items: stretch; }
.front-rubric--solo { grid-template-columns: minmax(0, 1fr); }

.front-feature { display: grid; grid-template-rows: auto 1fr; min-width: 0; height: 100%; border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow-soft); overflow: hidden; }
.front-feature__media { display: block; aspect-ratio: 16 / 9; overflow: hidden; background: var(--surface-sunk); }
.front-feature__media .cover-image,
.front-feature__media .visual { width: 100%; height: 100%; transition: transform .5s cubic-bezier(.22,1,.36,1); }
.front-feature:hover .cover-image,
.front-feature:hover .visual { transform: scale(1.04); }
.front-feature__body { display: flex; flex-direction: column; align-items: flex-start; gap: var(--sp-3); min-width: 0; padding: var(--sp-5) var(--sp-6) var(--sp-6); }
.front-feature__title { font-size: var(--fs-h3); font-weight: 700; line-height: 1.25; letter-spacing: -.02em; }
.front-feature__title a:hover { color: var(--accent-strong); }
.front-rubric .front-feature__media { aspect-ratio: 16 / 10; }
.front-rubric .front-feature__body { padding: var(--sp-4) var(--sp-5) var(--sp-5); }

.front-wire { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-4); }
.front-block .front-wire { margin-top: var(--sp-4); }
.front-tile { display: grid; grid-template-rows: auto 1fr; gap: var(--sp-3); min-width: 0; height: 100%; padding: var(--sp-3); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow-tiny); }
.front-tile:hover { box-shadow: var(--shadow-soft); }
.front-tile__media { display: block; aspect-ratio: 16 / 10; border-radius: var(--r-md); overflow: hidden; background: var(--surface-sunk); }
.front-tile__media .cover-image,
.front-tile__media .visual { width: 100%; height: 100%; transition: transform .5s cubic-bezier(.22,1,.36,1); }
.front-tile:hover .cover-image,
.front-tile:hover .visual { transform: scale(1.04); }
.front-tile__body { display: grid; gap: var(--sp-2); align-content: start; min-width: 0; }
.front-tile__title { font-size: var(--fs-body); font-weight: 700; line-height: 1.35; letter-spacing: -.015em; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.front-tile__title a:hover { color: var(--accent-strong); }

@media (max-width: 66.25em) {
	.front-open, .front-rubric { grid-template-columns: 1fr; }
	.front-wire { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 47.5em) {
	.front-wire { grid-template-columns: 1fr; }
	.front-feature__body { padding: var(--sp-4); }
}
.fullstory__head .story-top { width: 100%; }
.google-follow { margin-left: auto; display: inline-flex; align-items: center; gap: var(--sp-2); height: calc(var(--app-em)*1.6875); padding: 0 calc(var(--app-em)*0.75); border-radius: var(--r-sm); background: var(--surface-soft); color: var(--text); font-size: var(--fs-meta); font-weight: 600; white-space: nowrap; }
.google-follow svg { width: var(--sp-4); height: var(--sp-4); flex: none; }
.google-follow:hover { background: var(--accent-soft); color: var(--accent-strong); }

@media (prefers-reduced-motion: reduce) {
	.front-feature:hover .cover-image, .front-feature:hover .visual,
	.front-tile:hover .cover-image, .front-tile:hover .visual { transform: none; }
}
