/* Signage Journal Theme — mobile-first production styles. */
:root {
	--color-primary: #1a56db;
	--color-primary-dark: #123fa9;
	--color-primary-light: #2563eb;
	--color-sub: #f0f4ff;
	--color-accent: #ff6b2c;
	--color-accent-hover: #ff824d;
	--color-text: #111827;
	--color-muted: #5f6b7a;
	--color-border: #e5e7eb;
	--color-white: #ffffff;
	--color-surface: #f8fafc;
	--font-heading: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
	--font-body: "Noto Sans JP", "Hiragino Sans", "Yu Gothic", sans-serif;
	--font-latin: "Inter", "Segoe UI", sans-serif;
	--space-1: 0.25rem;
	--space-2: 0.5rem;
	--space-3: 0.75rem;
	--space-4: 1rem;
	--space-5: 1.25rem;
	--space-6: 1.5rem;
	--space-8: 2rem;
	--space-10: 2.5rem;
	--space-12: 3rem;
	--space-16: 4rem;
	--radius: 6px;
	--shadow-sm: 0 2px 8px rgba(17, 24, 39, 0.06);
	--shadow-md: 0 12px 30px rgba(17, 24, 39, 0.1);
	--container: 1180px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
	margin: 0;
	background: var(--color-white);
	color: var(--color-text);
	font-family: var(--font-body);
	font-size: 1rem;
	line-height: 1.8;
	-webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
img { display: block; max-width: 100%; height: auto; }
figure { margin: 0; }
a { color: var(--color-primary); text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
a:hover { color: var(--color-primary-dark); }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
h1, h2, h3, h4, h5, h6 {
	margin-block: 0 0.65em;
	font-family: var(--font-heading);
	font-weight: 700;
	line-height: 1.45;
	letter-spacing: 0.015em;
}
p { margin-block: 0 1.4em; }
::selection { background: #c7d7ff; color: var(--color-text); }
:focus-visible { outline: 3px solid #f59e0b; outline-offset: 3px; }

.container { width: min(calc(100% - 32px), var(--container)); margin-inline: auto; }
.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.skip-link {
	position: fixed; z-index: 9999; top: 8px; left: 8px;
	padding: 10px 16px; transform: translateY(-150%);
	background: var(--color-text); color: var(--color-white); border-radius: var(--radius);
}
.skip-link:focus { transform: translateY(0); color: var(--color-white); }

.site-header { position: relative; z-index: 100; background: var(--color-white); border-bottom: 1px solid var(--color-border); }
.site-header__inner { display: flex; min-height: 64px; align-items: center; justify-content: space-between; gap: var(--space-4); }
.site-branding { min-width: 0; }
.site-branding__text {
	display: inline-flex; align-items: center; gap: 10px;
	color: var(--color-text); font-family: var(--font-heading); font-size: 1.05rem; font-weight: 700; text-decoration: none;
}
.site-branding__mark {
	display: grid; width: 38px; height: 34px; place-items: center;
	background: var(--color-primary); color: var(--color-white); border-radius: 4px; font-family: var(--font-latin); font-size: 0.85rem;
}
.custom-logo-link { display: block; }
.custom-logo { width: auto; max-width: 240px; max-height: 46px; }
.menu-toggle {
	display: grid; width: 44px; height: 44px; padding: 0; place-items: center;
	background: transparent; color: var(--color-text); border: 0; border-radius: var(--radius);
}
.menu-toggle__bars { display: grid; gap: 5px; }
.menu-toggle__bars span { display: block; width: 24px; height: 2px; background: currentColor; transition: transform 0.2s ease, opacity 0.2s ease; }
.menu-toggle[aria-expanded="true"] .menu-toggle__bars span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] .menu-toggle__bars span:nth-child(2) { opacity: 0; }
.menu-toggle[aria-expanded="true"] .menu-toggle__bars span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.primary-nav {
	position: absolute; top: 100%; right: 0; left: 0;
	max-height: 0; overflow: hidden; visibility: hidden;
	background: var(--color-white); border-bottom: 1px solid var(--color-border); box-shadow: var(--shadow-md);
	transition: max-height 0.25s ease, visibility 0.25s;
}
.primary-nav.is-open { max-height: calc(100vh - 64px); overflow-y: auto; visibility: visible; }
.primary-nav__list { width: min(calc(100% - 32px), var(--container)); margin: 0 auto; padding: var(--space-3) 0; list-style: none; }
.primary-nav__list li { position: relative; border-bottom: 1px solid var(--color-border); }
.primary-nav__list a { display: block; padding: 13px 4px; color: var(--color-text); font-weight: 700; text-decoration: none; }
.primary-nav__list a:hover, .primary-nav__list .current-menu-item > a { color: var(--color-primary); }
.primary-nav__list .sub-menu { margin: 0; padding: 0 0 var(--space-2) var(--space-4); list-style: none; }
.primary-nav__search { width: min(calc(100% - 32px), var(--container)); margin: 0 auto; padding: var(--space-3) 0 var(--space-5); }

.search-form { position: relative; display: flex; width: 100%; }
.search-form__label { display: block; width: 100%; }
.search-form__input { width: 100%; height: 44px; padding: 0 48px 0 14px; background: var(--color-white); border: 1px solid #c7cdd6; border-radius: var(--radius); color: var(--color-text); }
.search-form__input:focus { border-color: var(--color-primary); box-shadow: 0 0 0 3px rgba(26, 86, 219, 0.14); outline: 0; }
.search-form__button { position: absolute; top: 0; right: 0; display: grid; width: 44px; height: 44px; padding: 0; place-items: center; background: transparent; color: var(--color-primary); border: 0; }

.hero { position: relative; min-height: 480px; display: grid; align-items: center; overflow: hidden; color: var(--color-white); background: linear-gradient(135deg, #174bbf 0%, #1a56db 48%, #2563eb 100%); isolation: isolate; }
.hero::before { position: absolute; inset: 0; z-index: -2; content: ""; background-image: var(--hero-image); background-position: center; background-size: cover; opacity: 0; }
.hero--has-image::before { opacity: 1; }
.hero::after { position: absolute; inset: 0; z-index: -1; content: ""; background: linear-gradient(90deg, rgba(12, 47, 133, 0.92), rgba(26, 86, 219, 0.62)); }
.hero--has-image::after { background: linear-gradient(90deg, rgba(7, 31, 91, 0.68) 0%, rgba(10, 45, 124, 0.46) 32%, rgba(10, 45, 124, 0.18) 48%, rgba(10, 45, 124, 0.03) 60%, rgba(10, 45, 124, 0) 70%); }
.hero__inner { position: relative; z-index: 2; padding-block: 72px; }
.hero__eyebrow { margin-bottom: var(--space-4); color: #dce7ff; font-family: var(--font-latin); font-size: 0.76rem; font-weight: 700; letter-spacing: 0.16em; }
.hero__title { max-width: 820px; margin-bottom: var(--space-5); font-size: clamp(2rem, 8vw, 3.75rem); line-height: 1.28; letter-spacing: 0.02em; }
.hero__title-line { display: block; }
.hero__subtitle { max-width: 660px; margin-bottom: var(--space-8); color: #f3f7ff; font-size: 1.06rem; line-height: 1.9; }
.button { display: inline-flex; min-height: 48px; padding: 11px 22px; align-items: center; justify-content: center; gap: 8px; border: 2px solid transparent; border-radius: var(--radius); font-family: var(--font-heading); font-weight: 700; line-height: 1.5; text-align: center; text-decoration: none; transition: color 0.2s ease, background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease; }
.button:hover { transform: translateY(-2px); }
.button--accent { background: var(--color-accent); color: #fff; box-shadow: 0 8px 18px rgba(174, 52, 0, 0.22); }
.button--accent:hover { background: var(--color-accent-hover); color: #fff; }
.button--primary { background: var(--color-primary); color: #fff; }
.button--primary:hover { background: var(--color-primary-dark); color: #fff; }
.button--block { width: 100%; }
.text-link { display: inline-flex; flex: none; align-items: center; font-weight: 700; text-decoration: none; }

.breadcrumb { overflow: hidden; padding-block: 13px; }
.breadcrumb__list { display: flex; margin: 0; padding: 0; align-items: center; gap: 8px; overflow: hidden; list-style: none; color: var(--color-muted); font-size: 0.78rem; white-space: nowrap; }
.breadcrumb__item { display: flex; min-width: 0; align-items: center; gap: 8px; }
.breadcrumb__item:not(:last-child)::after { color: #9ca3af; content: "/"; }
.breadcrumb__item:last-child { overflow: hidden; text-overflow: ellipsis; }
.breadcrumb a { color: var(--color-muted); }

.section { padding-block: 54px; }
.section--tinted { background: var(--color-sub); }
.section--cta { padding-top: 20px; }
.section-heading { display: flex; margin-bottom: var(--space-6); align-items: end; justify-content: space-between; gap: var(--space-4); }
.section-heading__eyebrow, .page-header__eyebrow { margin-bottom: 5px; color: var(--color-primary); font-family: var(--font-latin); font-size: 0.76rem; font-weight: 800; letter-spacing: 0.15em; }
.section-title { position: relative; margin: 0 0 var(--space-6); padding-left: 14px; font-size: clamp(1.5rem, 5vw, 2rem); }
.section-heading .section-title { margin-bottom: 0; }
.section-title::before { position: absolute; top: 0.18em; bottom: 0.18em; left: 0; width: 4px; content: ""; background: var(--color-primary); border-radius: 3px; }

.post-grid { display: grid; gap: var(--space-6); }
.post-card { min-width: 0; overflow: hidden; background: var(--color-white); border: 1px solid var(--color-border); border-radius: var(--radius); box-shadow: var(--shadow-sm); transition: transform 0.2s ease, box-shadow 0.2s ease; }
.post-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.post-card__media { display: block; overflow: hidden; background: #dce7ff; aspect-ratio: 16 / 9; }
.post-card__image { width: 100%; height: 100%; object-fit: cover; transition: transform 0.35s ease; }
.post-card:hover .post-card__image { transform: scale(1.035); }
.post-card__placeholder { display: grid; width: 100%; height: 100%; place-items: center; background: linear-gradient(135deg, #e7efff, #c9d9ff); }
.post-card__placeholder span { display: grid; width: 64px; height: 54px; place-items: center; background: var(--color-primary); color: #fff; border-radius: var(--radius); font-family: var(--font-latin); font-weight: 800; }
.post-card__body { padding: var(--space-5); }
.post-card__categories { display: flex; margin-bottom: 9px; flex-wrap: wrap; gap: 6px; }
.post-card__categories a, .article__categories a { display: inline-block; padding: 3px 9px; background: var(--color-sub); color: var(--color-primary-dark); border-radius: 3px; font-size: 0.72rem; font-weight: 700; line-height: 1.6; text-decoration: none; }
.post-card__title { margin-bottom: 10px; font-size: 1.08rem; line-height: 1.6; }
.post-card__title a { color: var(--color-text); text-decoration: none; }
.post-card__title a:hover { color: var(--color-primary); }
.post-card__excerpt { margin-bottom: var(--space-4); color: var(--color-muted); font-size: 0.88rem; line-height: 1.75; }
.post-card__meta { display: flex; padding-top: 12px; justify-content: space-between; gap: 8px; border-top: 1px solid var(--color-border); color: #6b7280; font-family: var(--font-latin); font-size: 0.73rem; }

.category-grid { display: grid; gap: 12px; }
.category-card { display: grid; min-height: 82px; padding: 16px; grid-template-columns: auto 1fr auto; align-items: center; gap: 14px; background: var(--color-white); color: var(--color-text); border: 1px solid #d6e0f5; border-radius: var(--radius); text-decoration: none; transition: border-color 0.2s, transform 0.2s, box-shadow 0.2s; }
.category-card:hover { transform: translateY(-2px); color: var(--color-primary); border-color: var(--color-primary); box-shadow: var(--shadow-sm); }
.category-card__icon { display: grid; width: 38px; height: 38px; place-items: center; background: var(--color-sub); color: var(--color-primary); border-radius: 50%; font-family: var(--font-latin); font-weight: 800; }
.category-card strong, .category-card small { display: block; }
.category-card small { margin-top: 2px; color: var(--color-muted); font-size: 0.72rem; }
.category-card__arrow { color: var(--color-primary); font-size: 1.2rem; }

.about-section { background: #f8fafc; }
.about-section__inner { display: grid; gap: var(--space-8); align-items: center; }
.about-section__visual { position: relative; display: grid; min-height: 250px; place-items: center; overflow: hidden; background: linear-gradient(135deg, #dfe9ff, var(--color-sub)); border-radius: var(--radius); }
.about-section__visual::before, .about-section__visual::after { position: absolute; content: ""; border: 2px solid rgba(26, 86, 219, 0.15); border-radius: 50%; }
.about-section__visual::before { width: 180px; height: 180px; top: -70px; right: -40px; }
.about-section__visual::after { width: 110px; height: 110px; bottom: -40px; left: -25px; }
.about-section__screen { position: relative; z-index: 1; display: grid; width: 185px; height: 115px; place-items: center; background: var(--color-primary); color: #fff; border: 9px solid #fff; border-radius: 9px; box-shadow: var(--shadow-md); font-family: var(--font-latin); font-size: 2rem; font-weight: 800; }
.about-section__stand { position: absolute; z-index: 0; top: calc(50% + 46px); width: 72px; height: 55px; border-bottom: 9px solid #fff; border-left: 9px solid transparent; border-right: 9px solid transparent; }
.about-section__content .section-title { margin-bottom: var(--space-5); }
.about-section__text { color: #374151; }

.cta-box { position: relative; display: grid; padding: 28px 22px; align-items: center; gap: var(--space-6); overflow: hidden; background: linear-gradient(120deg, #123fa9, #1a56db); color: #fff; border-radius: var(--radius); box-shadow: var(--shadow-md); }
.cta-box::after { position: absolute; right: -60px; bottom: -100px; width: 240px; height: 240px; content: ""; border: 35px solid rgba(255, 255, 255, 0.08); border-radius: 50%; }
.cta-box__content { position: relative; z-index: 1; }
.cta-box__eyebrow { margin-bottom: 4px; color: #cbdafe; font-family: var(--font-latin); font-size: 0.72rem; font-weight: 800; letter-spacing: 0.16em; }
.cta-box__title { margin-bottom: 8px; font-size: 1.45rem; }
.cta-box p:last-child { margin-bottom: 0; color: #eaf0ff; }
.cta-box .button { position: relative; z-index: 1; }

.page-header { padding-block: 36px 42px; border-bottom: 1px solid var(--color-border); }
.page-header h1 { margin-bottom: 10px; font-size: clamp(1.85rem, 7vw, 2.7rem); }
.page-header > p:last-child, .page-header__description { margin: 0; color: var(--color-muted); }
.content-layout { display: grid; padding-block: 42px 70px; gap: 42px; align-items: start; }
.content-layout__main { min-width: 0; }

.sidebar { display: grid; min-width: 0; gap: var(--space-6); }
.sidebar-widget { padding: 20px; background: var(--color-white); border: 1px solid var(--color-border); border-radius: var(--radius); }
.sidebar-widget__title { margin: -20px -20px 16px; padding: 13px 18px; background: var(--color-sub); border-bottom: 1px solid #d8e3fa; border-left: 4px solid var(--color-primary); font-size: 1.05rem; }
.sidebar-posts, .ranking-list, .category-list { margin: 0; padding: 0; list-style: none; }
.sidebar-posts__item { padding: 11px 0; border-bottom: 1px solid var(--color-border); }
.sidebar-posts__item:last-child { padding-bottom: 0; border-bottom: 0; }
.sidebar-posts__item a { display: block; color: var(--color-text); font-size: 0.9rem; font-weight: 700; line-height: 1.6; text-decoration: none; }
.sidebar-posts__item a:hover { color: var(--color-primary); }
.sidebar-posts__item time { display: block; margin-top: 3px; color: var(--color-muted); font-size: 0.7rem; }
.ranking-list { counter-reset: rank; }
.ranking-list li { display: grid; padding: 10px 0; grid-template-columns: 28px 1fr; align-items: start; gap: 8px; border-bottom: 1px solid var(--color-border); }
.ranking-list li:last-child { border-bottom: 0; }
.ranking-list__number { display: grid; width: 24px; height: 24px; place-items: center; background: var(--color-primary); color: #fff; border-radius: 50%; font-family: var(--font-latin); font-size: 0.72rem; font-weight: 800; }
.ranking-list a { color: var(--color-text); font-size: 0.88rem; font-weight: 700; line-height: 1.55; text-decoration: none; }
.category-list li { border-bottom: 1px solid var(--color-border); color: var(--color-muted); }
.category-list li:last-child { border-bottom: 0; }
.category-list a { display: inline-block; padding: 8px 0; color: var(--color-text); text-decoration: none; }
.sidebar-cta { background: linear-gradient(145deg, #173c94, var(--color-primary)); color: #fff; border: 0; }
.sidebar-cta h2 { margin-bottom: 8px; font-size: 1.25rem; }
.sidebar-cta p { color: #e3ebff; font-size: 0.88rem; }
.sidebar-cta__label { margin-bottom: 4px !important; font-family: var(--font-latin); font-size: 0.68rem !important; font-weight: 800; letter-spacing: 0.15em; }
.sidebar-widget__empty { margin: 0; color: var(--color-muted); font-size: 0.85rem; }

.article__header { margin-bottom: var(--space-8); }
.article__terms { display: flex; margin-bottom: var(--space-4); flex-wrap: wrap; align-items: center; gap: 12px; }
.article__categories { display: flex; flex-wrap: wrap; gap: 6px; }
.article__tags { display: flex; flex-wrap: wrap; gap: 8px; }
.article__tags a { color: var(--color-muted); font-size: 0.78rem; text-decoration: none; }
.article__tags a::before { content: "#"; }
.article__title { margin-bottom: var(--space-5); font-size: clamp(1.65rem, 3.4vw, 2.15rem); line-height: 1.5; }
.article__meta { display: flex; padding-block: 12px; flex-wrap: wrap; gap: 5px 18px; border-top: 1px solid var(--color-border); border-bottom: 1px solid var(--color-border); color: var(--color-muted); font-size: 0.78rem; }
.article__featured { margin-bottom: var(--space-8); overflow: hidden; border-radius: var(--radius); }
.article__featured img { width: 100%; }
.article__content { color: #1f2937; line-height: 1.95; overflow-wrap: anywhere; }
.article__content > *:first-child { margin-top: 0; }
.article__content h2 { position: relative; margin-top: 2.4em; padding: 0.65em 0 0.65em 16px; border-bottom: 2px solid var(--color-border); font-size: 1.55rem; }
.article__content h2::before { position: absolute; top: 0.64em; bottom: 0.64em; left: 0; width: 5px; content: ""; background: var(--color-primary); border-radius: 3px; }
.article__content h3 { margin-top: 2em; padding-bottom: 0.4em; border-bottom: 1px solid var(--color-border); font-size: 1.25rem; }
.article__content h4 { margin-top: 1.8em; color: var(--color-primary-dark); font-size: 1.1rem; }
.article__content a { font-weight: 600; }
.article__content ul, .article__content ol { margin-block: 1.5em; padding-left: 1.5em; }
.article__content li + li { margin-top: 0.45em; }
.article__content blockquote { margin: 1.7em 0; padding: 18px 20px; background: var(--color-sub); border-left: 4px solid var(--color-primary); }
.article__content blockquote > :last-child { margin-bottom: 0; }
.article__content table { width: 100%; margin-block: 1.8em; border-spacing: 0; border-collapse: collapse; font-size: 0.9rem; }
.article__content th, .article__content td { padding: 10px; border: 1px solid #cfd5de; text-align: left; }
.article__content th { background: var(--color-sub); }
.article__content pre { padding: 18px; overflow-x: auto; background: #111827; color: #f9fafb; border-radius: var(--radius); font-size: 0.85rem; line-height: 1.65; }
.article__content code { font-family: "SFMono-Regular", Consolas, monospace; }
.article__content :not(pre) > code { padding: 0.16em 0.35em; background: #f1f3f5; color: #b42318; border-radius: 3px; }
.article__content iframe { max-width: 100%; }
.article__content .wp-block-image { margin-block: 1.8em; }
.article__content .wp-block-details { margin-block: 1em; padding: 14px 16px; border: 1px solid var(--color-border); border-radius: var(--radius); }
.article__content .wp-block-details summary { color: var(--color-primary-dark); font-weight: 700; cursor: pointer; }
.article__cta { margin-block: 52px; }

.toc { margin-bottom: var(--space-8); padding: 18px 20px; background: #f8faff; border: 1px solid #cfdcf8; border-radius: var(--radius); }
.toc__header { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.toc__title { margin: 0; font-size: 1.1rem; }
.toc__toggle { padding: 4px 10px; background: var(--color-white); color: var(--color-primary-dark); border: 1px solid #b9c9ec; border-radius: 4px; font-size: 0.75rem; }
.toc__list { margin: 14px 0 0; padding: 14px 0 0 1.45em; border-top: 1px solid #d7e1f5; }
.toc__list[hidden] { display: none; }
.toc__list li + li { margin-top: 7px; }
.toc__list li.toc__item--h3 { margin-left: 16px; font-size: 0.9rem; }
.toc__list a { color: #263550; text-decoration: none; }
.toc__list a:hover { color: var(--color-primary); text-decoration: underline; }

.author-box { display: grid; margin-block: 44px; padding: 22px; gap: 18px; background: #f8fafc; border: 1px solid var(--color-border); border-radius: var(--radius); }
.author-box__avatar img { border-radius: 50%; }
.author-box__label { margin-bottom: 2px; color: var(--color-primary); font-size: 0.75rem; font-weight: 700; }
.author-box h2 { margin-bottom: 5px; font-size: 1.2rem; }
.author-box p:last-child { margin-bottom: 0; }
.author-box__reviewer { padding-top: 8px; border-top: 1px solid var(--color-border); color: var(--color-muted); font-size: 0.83rem; }
.related-posts { margin-top: 54px; padding-top: 42px; border-top: 1px solid var(--color-border); }
.related-posts .post-card__excerpt { display: none; }
.related-posts .post-card__title { font-size: 0.97rem; }
.article--page { max-width: 820px; }
.page-links { margin-block: var(--space-8); }

.navigation.pagination { margin-top: 40px; }
.nav-links { display: flex; flex-wrap: wrap; gap: 8px; }
.page-numbers { display: grid; min-width: 40px; min-height: 40px; padding: 5px 10px; place-items: center; color: var(--color-text); border: 1px solid var(--color-border); border-radius: 4px; text-decoration: none; }
.page-numbers.current, a.page-numbers:hover { background: var(--color-primary); color: #fff; border-color: var(--color-primary); }
.empty-state { padding: 32px; background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius); color: var(--color-muted); text-align: center; }
.empty-state > :last-child { margin-bottom: 0; }

.error-page { max-width: 720px; padding-block: 50px 90px; text-align: center; }
.error-page__code { margin: 0; color: #dce7ff; font-family: var(--font-latin); font-size: clamp(5rem, 25vw, 10rem); font-weight: 900; line-height: 1; }
.error-page h1 { font-size: clamp(1.8rem, 7vw, 2.5rem); }
.error-page > p:not(.error-page__code) { color: var(--color-muted); }
.error-page__search { max-width: 520px; margin: 28px auto; }

.site-footer { margin-top: 50px; background: #101827; color: #cbd5e1; }
.site-footer__inner { display: grid; padding-block: 42px; gap: 28px; }
.site-footer__title { display: inline-block; margin-bottom: 8px; color: #fff; font-family: var(--font-heading); font-size: 1.25rem; font-weight: 700; text-decoration: none; }
.site-footer__logo-link { display: inline-block; margin-bottom: 12px; }
.site-footer__logo { width: auto; max-width: min(260px, 100%); max-height: 72px; object-fit: contain; object-position: left center; }
.site-footer__brand p { margin: 0; font-size: 0.85rem; }
.footer-nav__list, .social-links { display: flex; margin: 0; padding: 0; flex-wrap: wrap; gap: 10px 20px; list-style: none; }
.footer-nav__list a, .social-links a { color: #d8e0ec; font-size: 0.85rem; text-decoration: none; }
.footer-nav__list a:hover, .social-links a:hover { color: #fff; text-decoration: underline; }
.site-footer__bottom { padding-block: 16px; background: #0a101c; color: #94a3b8; font-family: var(--font-latin); font-size: 0.74rem; text-align: center; }

.alignwide { width: min(100%, 1060px); max-width: 1060px; }
.alignfull { width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); }
.wp-caption-text, figcaption { margin-top: 7px; color: var(--color-muted); font-size: 0.78rem; text-align: center; }
.gallery { display: grid; gap: var(--space-4); }

@media (min-width: 640px) {
	.container { width: min(calc(100% - 48px), var(--container)); }
	.hero { min-height: 520px; }
	.hero__inner { padding-block: 90px; }
	.post-grid, .post-grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cta-box { padding: 36px; }
	.author-box { grid-template-columns: 96px 1fr; }
	.site-footer__inner { grid-template-columns: minmax(220px, 1.3fr) 1fr; }
}

@media (min-width: 768px) {
	.section { padding-block: 70px; }
	.hero::before { background-color: #0c2a59; background-position: right center; background-repeat: no-repeat; background-size: auto 100%; }
	.category-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.about-section__inner { grid-template-columns: minmax(280px, 0.9fr) minmax(0, 1.1fr); gap: 52px; }
	.about-section__visual { min-height: 340px; }
	.cta-box { grid-template-columns: minmax(0, 1fr) auto; padding: 40px 46px; }
	.cta-box .button { min-width: 180px; }
	.site-footer__inner { grid-template-columns: 1.6fr 1fr auto; align-items: start; }
}

@media (min-width: 1024px) {
	body.menu-open { overflow: auto; }
	.site-header { position: sticky; top: 0; }
	.site-header__inner { min-height: 74px; }
	.menu-toggle { display: none; }
	.primary-nav { position: static; display: flex; max-height: none; align-items: center; overflow: visible; visibility: visible; background: transparent; border: 0; box-shadow: none; }
	.primary-nav__list { display: flex; width: auto; margin: 0; padding: 0; align-items: center; gap: 2px; }
	.primary-nav__list li { border: 0; }
	.primary-nav__list a { padding: 24px 12px; font-size: 0.88rem; }
	.primary-nav__list > li > a::after { display: block; width: 0; height: 2px; margin: 4px auto -6px; content: ""; background: var(--color-primary); transition: width 0.2s ease; }
	.primary-nav__list > li > a:hover::after, .primary-nav__list > .current-menu-item > a::after { width: 100%; }
	.primary-nav__list .sub-menu { position: absolute; top: 100%; left: 0; display: none; min-width: 220px; padding: 7px 0; background: #fff; border: 1px solid var(--color-border); border-radius: 0 0 var(--radius) var(--radius); box-shadow: var(--shadow-md); list-style: none; }
	.primary-nav__list li:hover > .sub-menu, .primary-nav__list li:focus-within > .sub-menu { display: block; }
	.primary-nav__list .sub-menu a { padding: 9px 14px; }
	.primary-nav__search { width: 190px; margin: 0 0 0 12px; padding: 0; }
	.primary-nav__search .search-form__input { height: 38px; font-size: 0.82rem; }
	.primary-nav__search .search-form__button { width: 38px; height: 38px; }
	.hero { min-height: 570px; }
	.hero__inner { padding-block: 108px; }
	.post-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.post-grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.content-layout { grid-template-columns: minmax(0, 1fr) 310px; gap: 48px; }
	.content-layout--full { grid-template-columns: minmax(0, 1fr); }
	.content-layout--single { grid-template-columns: minmax(0, 800px) 310px; }
	.sidebar { position: sticky; top: 98px; }
	.site-footer { margin-top: 70px; }
}

@media (min-width: 1280px) {
	.container { width: min(calc(100% - 64px), var(--container)); }
	.primary-nav__list a { padding-inline: 15px; }
	.content-layout { grid-template-columns: minmax(0, 1fr) 330px; gap: 58px; }
	.content-layout--full { grid-template-columns: minmax(0, 1fr); }
	.content-layout--single { grid-template-columns: minmax(0, 800px) 330px; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; }
}

@media print {
	.site-header, .site-footer, .sidebar, .breadcrumb, .article__cta, .related-posts, .toc__toggle { display: none !important; }
	.content-layout { display: block; padding: 0; }
	a { color: inherit; text-decoration: none; }
	.article__content { font-size: 11pt; }
}
