/* IgA nephropathy project theme – base_sample Eleventy/Nunjucks */
:root {
	--blue: #286296;
	--cyan: #3e9eb9;
	--orange: #ed8a32;
	--red: #c94f51;
	--text: #333;
	--border: #e4e4e4;
}
* {
	box-sizing: border-box;
}
html {
	scroll-behavior: smooth;
}
body {
	margin: 0;
	color: var(--text);
	font-family: var(--font-base, "BIZ UDPGothic", "Meiryo", "メイリオ", "Noto Sans JP", sans-serif);
	font-size: clamp(15px, 1.2vw, 16px);
	line-height: 1.75;
}
img {
	max-width: 100%;
	height: auto;
}
a {
	color: inherit;
	text-decoration: none;
}
button,
input {
	font: inherit;
}
h1,
h2,
h3,
p {
	margin-top: 0;
}
.wrap {
	width: min(1240px, calc(100% - 40px));
	margin: auto;
}
.iga-header {
	border-top: 4px solid var(--blue);
	background: white;
}
.header-top {
	display: flex;
	align-items: center;
	gap: 14px;
	min-height: 65px;
}
.logo {
	display: block;
	flex: 0 0 190px;
}
.logo img {
	display: block;
	width: 100%;
	max-height: 55px;
}
.site-tag {
	font-size: 12px;
	color: #fff;
	background: var(--orange);
	padding: 9px 14px;
}
.theme-medical .site-tag {
	background: var(--cyan);
}
.header-actions {
	margin-left: auto;
	display: flex;
	align-items: center;
	gap: 15px;
}
.header-actions form {
	display: flex;
	border: 1px solid #ccc;
	width: 210px;
	height: 35px;
}
.header-actions input {
	width: 100%;
	border: 0;
	min-width: 0;
	padding: 4px 9px;
	font-size: 12px;
}
.header-actions button {
	border: 0;
	background: white;
	color: #777;
	font-size: 24px;
}
.head-switch {
	display: inline-block;
	padding: 7px 17px;
	color: white;
	font-size: 13px;
	text-align: center;
	white-space: nowrap;
}
.blue {
	background: var(--cyan);
}
.orange {
	background: var(--orange);
}
.red {
	background: var(--red);
}
.globe {
	margin-left: auto;
	background: var(--blue);
	padding: 4px 25px;
	font-size: 24px;
}
.globe small {
	display: block;
	font-size: 12px;
}
.nav-toggle {
	display: none;
}
.main-nav {
	border-bottom: 3px solid var(--orange);
}
.theme-medical .main-nav {
	border-bottom-color: var(--cyan);
	background: var(--cyan);
	color: #fff;
}
.nav-row {
	display: flex;
}
.nav-row > a {
	flex: 1;
	text-align: center;
	border-left: 1px solid #ddd;
	padding: 13px 8px;
	font-size: 12px;
	white-space: nowrap;
}
.nav-row > a:last-child {
	border-right: 1px solid #ddd;
}
.theme-general .nav-row > a[aria-current="page"],
.theme-general .nav-row > a:hover {
	background: var(--orange);
	color: #fff;
}
.theme-medical .nav-row > a[aria-current="page"],
.theme-medical .nav-row > a:hover {
	background: #fff;
	color: var(--cyan);
}
.iga-footer {
	background: var(--blue);
	color: white;
	padding: 46px 0 33px;
}
.iga-footer strong {
	display: block;
	font-size: 18px;
}
.iga-footer small {
	display: block;
	font-size: 10px;
	font-weight: bold;
}
.footer-bottom {
	display: flex;
	align-items: end;
	justify-content: space-between;
	margin-top: 34px;
	gap: 18px;
}
.footer-bottom nav {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
}
.footer-bottom nav a {
	font-size: 11px;
}
.footer-bottom span {
	color: #92b1ce;
	font-size: 10px;
}
.sponsors {
	background: #f7f8fa;
	padding: 22px 0;
}
.sponsor-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
}
.sponsor {
	background: white;
	box-shadow: 0 0 9px #ddd;
	aspect-ratio: 3/1;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	color: #777;
	text-align: center;
	font-size: 16px;
	line-height: 1.2;
}
.gate {
	padding: 95px 0 115px;
	background: #e8e8e8;
	text-align: center;
}
.gate h1 {
	font-size: 55px;
	letter-spacing: 0.03em;
	color: var(--blue);
	margin-bottom: 20px;
}
.gate > div > p {
	font-size: 20px;
	margin-bottom: 55px;
}
.gate-cards {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 40px;
}
.gate-card {
	height: 400px;
	position: relative;
	overflow: hidden;
	border-radius: 13px;
	box-shadow: 0 2px 16px #bbb;
	background: #fff;
}
.gate-card img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.gate-btn {
	position: absolute;
	bottom: 44px;
	left: 16%;
	width: 68%;
	border-radius: 30px;
	padding: 9px;
	color: white;
	font-size: 20px;
}
.modal-overlay {
	display: none;
	position: fixed;
	inset: 0;
	background: #0009;
	z-index: 99;
	align-items: center;
	justify-content: center;
	padding: 20px;
}
.modal-overlay.is-open {
	display: flex;
}
.modal-box {
	position: relative;
	background: white;
	padding: 35px;
	max-width: 540px;
	width: 100%;
	text-align: center;
	border-radius: 10px;
	box-shadow: 0 8px 30px #2225;
}
.modal-close {
	position: absolute;
	right: 15px;
	top: 5px;
	font-size: 28px;
	background: none;
	border: 0;
	cursor: pointer;
}
.modal-buttons {
	display: flex;
	gap: 20px;
	justify-content: center;
	margin-top: 25px;
}
.btn {
	display: inline-block;
	padding: 9px 22px;
	color: #fff;
	border: 0;
	border-radius: 5px;
	font-weight: 700;
	font-size: 13px;
	cursor: pointer;
}
.btn.outline {
	background: white;
	color: var(--blue);
	border: 1px solid var(--blue);
}
.site-hero {
	background: #e8e8e8;
	padding: 15px 0;
}
.hero-panel {
	height: 370px;
	background-size: cover;
	background-position: center;
	border: 4px solid white;
	box-shadow: 0 1px 8px #bbb;
	border-radius: 5px;
	display: flex;
	align-items: center;
}
.hero-caption {
	margin-left: 2.5%;
	max-width: 520px;
	color: #245779;
	font-weight: 600;
}
.hero-caption h1 {
	display: inline-block;
	background: white;
	font-size: 29px;
	padding: 5px 20px;
	margin-bottom: 18px;
}
.hero-caption p {
	font-size: clamp(14px, 1.25vw, 16px);
	line-height: 2;
}
.pad {
	padding: 58px 0 72px;
}
.light-orange {
	background: #fff8ef;
}
.light-blue {
	background: #e5f0f1;
}
.section-header {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 20px;
}
.section-header h2,
.icon-head {
	font-size: 25px;
}
.section-header h2:before,
.icon-head:before {
	content: "▮";
	color: var(--orange);
	margin-right: 9px;
}
.theme-medical .section-header h2:before,
.theme-medical .icon-head:before {
	color: var(--cyan);
}
.section-header p {
	font-size: 13px;
}
.grid {
	display: grid;
	gap: 32px;
}
.grid.three {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
.grid.two {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}
.video-thumb {
	aspect-ratio: 16/9;
	background: #d3d3d3;
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 47px;
	color: #fff;
}
.video-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.video-item h3 {
	font-size: 16px;
	margin: 7px 0 2px;
}
.pill {
	color: white;
	background: #f6b187;
	border-radius: 12px;
	padding: 4px 9px;
	font-size: 11px;
	white-space: nowrap;
}
.theme-medical .pill {
	background: #8cc2cf;
}
.video-item p {
	font-size: 13px;
}
.info-cards a {
	box-shadow: 0 2px 9px #ddd;
	text-align: center;
	border-radius: 5px;
	overflow: hidden;
}
.info-cards img {
	display: block;
	width: 100%;
	aspect-ratio: 1.8;
	object-fit: cover;
}
.info-cards h3 {
	font-size: 16px;
	padding: 12px;
	margin: 0;
}
.border-top {
	border-top: 1px solid #e4e4e4;
}
.news-list {
	padding: 0;
	list-style: none;
	border-top: 1px solid #ddd;
}
.news-list li {
	padding: 13px 2px;
	border-bottom: 1px solid #ddd;
	font-size: 13px;
}
.news-list time {
	color: #999;
	margin-right: 10px;
}
.crumb {
	font-size: 11px;
	height: 35px;
	display: flex;
	align-items: center;
}
.page-heading {
	background: #e8e8e8;
	padding: 30px 0;
}
.page-heading h1 {
	font-size: 30px;
	margin: 0;
}
.topic-cards {
	gap: 32px;
}
.topic-card {
	display: flex;
	gap: 18px;
	align-items: center;
	justify-content: space-between;
	background: #fafafd;
	border: 2px solid var(--orange);
	border-radius: 7px;
	min-height: 250px;
	padding: 24px;
}
.topic-card > div:first-child {
	display: flex;
	flex-direction: column;
	align-items: start;
	min-height: 190px;
}
.topic-card h2 {
	font-size: 24px;
	margin: 0 0 7px;
}
.topic-card p {
	font-size: 13px;
}
.topic-card .btn {
	margin-top: auto;
}
.topic-card > img,
.topic-card > .placeholder {
	width: 42%;
	height: 172px;
	object-fit: contain;
}
.placeholder {
	background: #dedede;
	color: #888;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	border-radius: 5px;
	font-size: 14px;
}
.more-placeholder {
	text-align: center;
	color: #999;
	font-size: 18px;
	margin-top: 35px;
}
.article-body {
	font-size: clamp(14px, 1.25vw, 16px);
}
.feature-box {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 30px;
	border: 1px solid var(--orange);
	background: #fafafd;
	border-radius: 6px;
	padding: 25px;
	margin-bottom: 30px;
}
.feature-box > img {
	max-height: 330px;
	margin: auto;
}
.feature-box h2 {
	font-size: 24px;
}
.feature-box ol {
	padding: 0;
	list-style: none;
}
.feature-box li {
	border: 1px solid #ddd;
	border-radius: 5px;
	padding: 9px 15px;
	margin: 6px 0;
}
.feature-box li b {
	color: var(--orange);
}
.subhead {
	font-size: 21px;
	margin: 40px 0 15px;
}
.subhead:before {
	content: "▸";
	color: var(--cyan);
	margin-right: 7px;
}
.figure-placeholder {
	min-height: 360px;
	border: 2px solid #e5a163;
	border-radius: 6px;
	background: #fafafd;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	color: #999;
}
.note {
	font-size: 12px;
	color: #888;
}
.stage > div {
	border: 1px solid #e8a68f;
	padding: 22px;
	border-radius: 5px;
	background: #fafafd;
}
.stage h3 {
	color: #bd625a;
}
.steps {
	display: flex;
	align-items: center;
	gap: 14px;
	justify-content: space-between;
	margin: 25px 0;
}
.steps span,
.steps strong {
	border: 1px solid #d8a26b;
	border-radius: 5px;
	text-align: center;
	padding: 13px;
	flex: 1;
}
.steps strong {
	background: #489500;
	color: white;
	border: 0;
}
.med-bottom {
	gap: 55px;
}
.trial {
	display: flex;
	align-items: start;
	gap: 15px;
}
.trial > div {
	width: 48%;
	display: grid;
	gap: 10px;
}
.trial a {
	display: block;
	border: 1px solid #aaa;
	padding: 12px;
	color: #999;
}
.trial img {
	width: 52%;
	max-height: 300px;
}
details {
	padding: 15px;
	border-bottom: 1px solid #ddd;
}
details summary {
	cursor: pointer;
	font-weight: bold;
}
@media (max-width: 999px) {
	.header-actions form {
		display: none;
	}
	.nav-row > a {
		font-size: 10px;
		padding: 11px 5px;
	}
	.gate {
		padding: 70px 0;
	}
	.gate-card {
		height: 320px;
	}
	.gate h1 {
		font-size: 40px;
	}
	.hero-panel {
		height: 320px;
	}
	.footer-bottom {
		display: block;
	}
	.footer-bottom span {
		display: block;
		margin-top: 20px;
	}
}
@media (max-width: 768px) {
	.wrap {
		width: 92%;
	}
	.header-top {
		flex-wrap: wrap;
		min-height: 60px;
		padding: 8px 0;
	}
	.logo {
		flex-basis: 150px;
	}
	.site-tag {
		font-size: 10px;
	}
	.header-actions {
		gap: 5px;
	}
	.head-switch {
		font-size: 11px;
		padding: 7px;
	}
	.nav-toggle {
		display: block;
		width: 100%;
		text-align: right;
		background: var(--orange);
		border: 0;
		color: white;
		padding: 9px 20px;
	}
	.theme-medical .nav-toggle {
		background: var(--cyan);
	}
	.main-nav {
		display: none;
	}
	.main-nav.is-open {
		display: block;
	}
	.nav-row {
		display: block;
		width: 100%;
	}
	.nav-row > a {
		display: block;
		text-align: left;
		border-bottom: 1px solid #ddd;
		font-size: 13px;
		padding: 12px 22px;
	}
	.gate {
		padding: 45px 0 65px;
	}
	.gate h1 {
		font-size: 32px;
	}
	.gate > div > p {
		font-size: clamp(14px, 1.25vw, 16px);
		margin-bottom: 27px;
	}
	.gate-cards,
	.grid.two,
	.grid.three {
		grid-template-columns: 1fr;
	}
	.gate-card {
		height: 290px;
	}
	.gate-btn {
		font-size: 16px;
		bottom: 20px;
	}
	.hero-panel {
		height: 320px;
		background-position: 60%;
	}
	.hero-caption {
		max-width: 68%;
	}
	.hero-caption h1 {
		font-size: 21px;
	}
	.hero-caption p {
		font-size: clamp(14px, 1.25vw, 16px);
		background: #ffffffaa;
		padding: 8px;
	}
	.section-header {
		display: block;
	}
	.pad {
		padding: 35px 0;
	}
	.sponsor-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 12px;
	}
	.sponsor {
		font-size: 12px;
	}
	.page-heading h1 {
		font-size: 23px;
	}
	.topic-card {
		min-height: 220px;
	}
	.topic-card h2 {
		font-size: 18px;
	}
	.topic-card > img,
	.topic-card > .placeholder {
		height: 140px;
	}
	.feature-box {
		grid-template-columns: 1fr;
	}
	.steps {
		gap: 5px;
		font-size: 11px;
	}
	.steps span,
	.steps strong {
		padding: 8px 3px;
	}
	.med-bottom {
		gap: 25px;
	}
}
@media (max-width: 480px) {
	.logo {
		flex-basis: 130px;
	}
	.site-tag {
		font-size: 9px;
		padding: 5px;
	}
	.head-switch {
		font-size: 10px;
	}
	.theme-medical .header-actions {
		width: 100%;
		justify-content: flex-end;
	}
	.hero-caption {
		max-width: 90%;
	}
	.hero-panel {
		background-position: 70%;
	}
	.topic-card {
		padding: 14px;
		gap: 10px;
	}
	.topic-card > div:first-child {
		min-height: 170px;
	}
	.topic-card .btn {
		padding: 8px;
		font-size: 11px;
	}
	.footer-bottom nav {
		gap: 7px;
	}
	.gate-card {
		height: 230px;
	}
}
/* IgA: sticky header (desktop / mobile) and in-page anchor offsets */
.iga-header {
	position: -webkit-sticky;
	position: sticky;
	top: 0;
	z-index: 1000;
}
html {
	scroll-padding-top: var(--iga-header-height, 120px);
}
[id] {
	scroll-margin-top: var(--iga-header-height, 120px);
}
@media (max-width: 768px) {
	.iga-header .main-nav.is-open {
		max-height: calc(100dvh - var(--iga-header-base-height, 110px));
		overflow-y: auto;
		overscroll-behavior: contain;
	}
}

/* IgA supplied SVG icons / font precedence / research society pages */
body {
	font-family: "BIZ UDPGothic", "Meiryo", "メイリオ", "Noto Sans JP", sans-serif;
}
.iga-icon {
	width: 1em;
	height: 1em;
	display: inline-block;
	vertical-align: -0.1em;
	object-fit: contain;
}
.header-actions form button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	cursor: pointer;
}
.header-actions form .iga-icon {
	width: 19px;
	height: 19px;
	opacity: 0.55;
}
.head-switch.globe > .iga-icon {
	display: block;
	margin: auto;
	width: 30px;
	height: 30px;
	filter: invert(1);
}
.nav-row .iga-login {
	background: var(--red);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	flex-direction: column;
	line-height: 1.2;
}
.nav-row .iga-login > img {
	width: 18px;
	height: 18px;
	filter: invert(1);
}
.nav-row .iga-login:hover {
	background: #b53b41;
	color: #fff;
}
.crumb .iga-icon {
	width: 13px;
	height: 13px;
	margin-right: 5px;
}
.society-link-list {
	list-style: none;
	margin: 15px 0 30px;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 15px;
}
.society-link-list a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	border: 1px solid #cddde1;
	padding: 19px;
	border-radius: 5px;
	background: #f8fafb;
	font-weight: 700;
}
.society-link-list a:hover {
	border-color: var(--cyan);
	color: var(--cyan);
}
.society-link-list .iga-icon {
	width: 14px;
	height: 14px;
}
.content-pending {
	padding: 28px;
	background: #f6f8f9;
	border: 1px dashed #bcc5ca;
	border-radius: 5px;
}
.society-article code {
	word-break: break-all;
	font-size: 12px;
}
@media (max-width: 768px) {
	.society-link-list {
		grid-template-columns: 1fr;
	}
	.nav-row .iga-login {
		flex-direction: row;
		justify-content: flex-start;
	}
}

.section-header h2:before,
.icon-head:before {
	content: "";
	display: inline-block;
	width: 0.75em;
	height: 0.85em;
	background: var(--orange);
	mask: url("../img/icon/icon_info.svg") center/contain no-repeat;
	vertical-align: -0.05em;
}
.theme-medical .section-header h2:before,
.theme-medical .icon-head:before {
	background: var(--cyan);
}

/* Home section heading icons: supplied SVG assets */
.section-header h2.heading-icon-movie::before,
.icon-head.heading-icon-movie::before {
	mask-image: url("../img/icon/icon_movie.svg");
}
.section-header h2.heading-icon-info::before,
.icon-head.heading-icon-info::before {
	mask-image: url("../img/icon/icon_info.svg");
}
.section-header h2.heading-icon-microscope::before,
.icon-head.heading-icon-microscope::before {
	mask-image: url("../img/icon/icon_microscope.svg");
}
.section-header h2.heading-icon-question::before,
.icon-head.heading-icon-question::before {
	mask-image: url("../img/icon/icon_question.svg");
}

/* Main navigation: fill available width, variable content-based item widths */
@media (min-width: 1280px) {
	.theme-general .nav-row,
	.theme-medical .nav-row {
		display: flex;
		width: min(1240px, calc(100% - 40px));
		flex-wrap: nowrap;
		align-items: stretch;
	}
	.theme-general .nav-row > a,
	.theme-medical .nav-row > a {
		display: flex;
		flex: 1 1 auto; /* intrinsic text width + equal distribution of spare room */
		align-items: center;
		justify-content: center;
		box-sizing: border-box;
		width: auto;
		min-width: 0;
		padding: 13px 9px;
		font-size: 15px;
		line-height: 1.4;
		text-align: center;
		white-space: normal;
	}
	.theme-medical .nav-row > a.iga-login {
		flex-direction: column;
		gap: 5px;
	}
}
@media (max-width: 768px) {
	.theme-general .nav-row > a,
	.theme-medical .nav-row > a {
		font-size: 15px;
		width: auto;
	}
}

/* Header links: visible hover/focus feedback without changing layout */
.iga-header .logo,
.iga-header .head-switch,
.iga-header .nav-row > a,
.iga-header .header-actions form button {
	transition:
		background-color 0.2s ease,
		color 0.2s ease,
		box-shadow 0.2s ease,
		opacity 0.2s ease;
}
.iga-header .logo:hover,
.iga-header .logo:focus-visible {
	opacity: 0.7;
}
.iga-header .head-switch:hover,
.iga-header .head-switch:focus-visible {
	box-shadow: inset 0 0 0 100px rgb(0 0 0 / 16%);
}
.iga-header .header-actions form button:hover,
.iga-header .header-actions form button:focus-visible {
	background-color: #e6f2f6;
}
.iga-header .header-actions form button:hover .iga-icon,
.iga-header .header-actions form button:focus-visible .iga-icon {
	opacity: 1;
}
.iga-header .nav-row > a:focus-visible,
.iga-header .head-switch:focus-visible,
.iga-header .logo:focus-visible,
.iga-header .header-actions form button:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: -3px;
}
/* Login icon uses the same currentColor as the text in every state. */
.theme-medical .nav-row > a.iga-login > img {
	display: none;
}
.theme-medical .nav-row > a.iga-login::before {
	content: "";
	display: block;
	flex: 0 0 18px;
	width: 18px;
	height: 18px;
	background-color: currentColor;
	-webkit-mask: url("../img/icon/icon_login.svg") center / contain no-repeat;
	mask: url("../img/icon/icon_login.svg") center / contain no-repeat;
}
.theme-medical .nav-row > a.iga-login:hover,
.theme-medical .nav-row > a.iga-login:focus-visible {
	background-color: #fff;
	color: var(--red);
}
/* Heading icons: match the surrounding h2 font size */
.section-header h2::before,
.icon-head::before {
	width: 1em;
	height: 1em;
	margin-right: 0.35em;
	vertical-align: -0.12em;
	-webkit-mask-size: contain;
	mask-size: contain;
}
@media (prefers-reduced-motion: reduce) {
	.iga-header .logo,
	.iga-header .head-switch,
	.iga-header .nav-row > a,
	.iga-header .header-actions form button {
		transition: none;
	}
}

/* New movie listing card, aligned with the two thumbnail cards */
.video-all {
	aspect-ratio: 16/9;
	background: color-mix(in srgb, var(--orange) 10%, white);
	border: 2px solid var(--orange);
	border-radius: 5px;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	gap: 12px;
	color: var(--orange);
	text-align: center;
	font-size: 21px;
	font-weight: 700;
	transition:
		background-color 0.2s,
		color 0.2s;
}
.theme-medical .video-all {
	background: color-mix(in srgb, var(--cyan) 10%, white);
	color: var(--cyan);
	border-color: var(--cyan);
}
.video-all:hover,
.video-all:focus-visible {
	background: var(--orange);
	color: #fff;
}
.theme-medical .video-all:hover,
.theme-medical .video-all:focus-visible {
	background: var(--cyan);
	color: #fff;
}
.video-all__arrow {
	font-size: 32px;
	line-height: 1;
}
.video-thumb--pending {
	font-size: 18px;
	color: #777;
}
.movie-list .video-item {
	min-width: 0;
}
.movie-list .video-thumb {
	overflow: hidden;
}
.movie-list .video-thumb img {
	display: block;
}
.pending-content {
	min-height: 240px;
	padding: 55px 0;
	text-align: center;
}
.pending-content p {
	font-size: 20px;
	color: #777;
}

/* Sponsor image banners */
.sponsor-link {
	overflow: hidden;
	transition:
		opacity 0.2s ease,
		box-shadow 0.2s ease;
}
.sponsor-link img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}
.sponsor-link:hover {
	opacity: 0.75;
	box-shadow: 0 2px 12px #bbb;
}
.sponsor-link:focus-visible {
	outline: 3px solid var(--blue);
	outline-offset: 3px;
}

/* IgA nephropathy: 6-topic PDF cards */
.topic-card {
	transition:
		box-shadow 0.2s ease,
		transform 0.2s ease;
}
.topic-card:hover,
.topic-card:focus-visible {
	box-shadow: 0 5px 18px #0002;
	transform: translateY(-2px);
}
.theme-medical .topic-card {
	border-color: var(--cyan);
}
.topic-card > .topic-card__content {
	flex: 1;
	min-width: 0;
}
.topic-card > img {
	background: #ecf1f6;
	border-radius: 4px;
	object-fit: cover;
	aspect-ratio: 16/9;
	height: auto;
}
.topic-card h2 {
	font-size: 20px;
	line-height: 1.45;
}
.topic-card p {
	line-height: 1.7;
}
.topic-detail {
	max-width: 960px;
}
.topic-lead {
	font-size: 17px;
	line-height: 1.9;
}
.topic-document {
	max-width: 720px;
	margin: 30px auto;
	padding: 12px;
	background: #f1f4f8;
	border-radius: 8px;
}
.topic-document img {
	display: block;
	width: 100%;
	height: auto;
}
@media (max-width: 768px) {
	.topic-card h2 {
		font-size: 18px;
	}
}
@media (max-width: 480px) {
	.topic-card {
		align-items: stretch;
		flex-direction: column;
	}
	.topic-card > img {
		width: 100%;
		height: auto;
		order: -1;
	}
	.topic-card > .topic-card__content {
		min-height: unset;
	}
	.topic-card .btn {
		margin-top: 12px;
	}
}

/* Society information pages */
.society-article .society-h3 {
	font-size: 1.1rem;
	margin: 1.5em 0 0.5em;
	font-weight: 700;
	color: #21608a;
}
.society-article .society-note {
	font-size: 0.9em;
	color: #626b74;
	margin: 1em 0;
}
.society-article .society-document {
	padding: 1em 1.25em;
	background: #f3f8fb;
	border: 1px solid #d5e5ec;
	border-radius: 6px;
	margin: 0.8em 0;
}
.society-article .society-transcript {
	white-space: pre-wrap;
	overflow-wrap: anywhere;
	line-height: 1.85;
	margin: 1em 0 2em;
	padding: 1.2em;
	background: #fafbfc;
	border: 1px solid #e1e6eb;
	border-radius: 5px;
}
.society-article .society-data {
	margin: 1.5em 0;
	max-width: 900px;
	border-top: 1px solid #d9e2e8;
}
.society-article .society-data-row {
	display: grid;
	grid-template-columns: minmax(110px, 24%) 1fr;
	border-bottom: 1px solid #d9e2e8;
}
.society-article .society-data-row > strong,
.society-article .society-data-row > span {
	padding: 0.75em 1em;
}
.society-article .society-data-row > strong {
	background: #edf5f9;
}
.society-article .society-event {
	display: flex;
	gap: 1em;
	flex-wrap: wrap;
	margin-top: 1.2em;
	font-size: 1.05em;
}
.society-article .society-return {
	margin-top: 2.5em;
}
@media (max-width: 480px) {
	.society-article .society-data-row {
		grid-template-columns: 1fr;
	}
	.society-article .society-data-row > span {
		padding: 0.5em 1em;
	}
}

/* Topic pages: richer text layout + cropped thumbnails */
.topic-cards {
	align-items: stretch;
}
.topic-card {
	transition:
		box-shadow 0.2s ease,
		transform 0.2s ease;
	align-items: stretch;
}
.topic-card:hover,
.topic-card:focus-visible {
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.1);
	transform: translateY(-2px);
}
.theme-medical .topic-card {
	border-color: var(--cyan);
}
.topic-card__content {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}
.topic-card__thumb {
	width: 42%;
	min-width: 220px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.topic-card__thumb img {
	display: block;
	width: 100%;
	height: 170px;
	object-fit: cover;
	border-radius: 6px;
	background: #ecf1f6;
}
.topic-card h2 {
	font-size: 21px;
	line-height: 1.45;
}
.topic-card p {
	line-height: 1.8;
}
.topic-card .btn {
	margin-top: auto;
}
.topic-article {
	max-width: 1040px;
}
.topic-feature {
	display: grid;
	grid-template-columns: 1.1fr 0.9fr;
	gap: 28px;
	border: 2px solid var(--orange);
	background: #fafafd;
	border-radius: 8px;
	padding: 22px 22px 18px;
	margin-bottom: 34px;
}
.topic-feature--medical {
	border-color: var(--cyan);
}
.topic-feature__media {
	display: flex;
	align-items: center;
	justify-content: center;
}
.topic-feature__media img {
	max-height: 400px;
	object-fit: contain;
}
.topic-feature h2 {
	font-size: 25px;
	margin-bottom: 12px;
}
.topic-lead {
	font-size: 15px;
	line-height: 2;
	margin-bottom: 16px;
}
.topic-points {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	gap: 10px;
}
.topic-points li {
	display: grid;
	grid-template-columns: 34px 1fr;
	gap: 12px;
	align-items: start;
	padding: 10px 12px;
	border: 1px solid #ddd;
	border-radius: 6px;
	background: #fff;
}
.topic-points__num {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	font-weight: 700;
	color: #fff;
	background: var(--orange);
	margin-top: 2px;
}
.topic-feature--medical .topic-points__num {
	background: var(--cyan);
}
.topic-points strong {
	display: block;
	color: var(--orange);
	font-size: 16px;
	margin-bottom: 2px;
}
.topic-feature--medical .topic-points strong {
	color: var(--cyan);
}
.topic-points p {
	margin: 0;
	font-size: clamp(14px, 1.25vw, 16px);
	line-height: 1.75;
}
.topic-section {
	margin: 26px 0;
}
.topic-section p {
	font-size: clamp(14px, 1.25vw, 16px);
	line-height: 2.05;
	margin: 0 0 1em;
}
.topic-figure {
	margin: 18px 0 20px;
	padding: 14px;
	border: 1px solid #e3b07f;
	border-radius: 8px;
	background: #fcfdff;
}
.theme-medical .topic-figure {
	border-color: #93c2cf;
}
.topic-figure img {
	display: block;
	width: 100%;
	height: auto;
}
.topic-references {
	margin: 0;
	padding-left: 1.2em;
}
.topic-references li {
	margin-bottom: 0.45em;
	font-size: 13px;
	line-height: 1.8;
}
.topic-actions {
	margin-top: 30px;
}
.trial-panel {
	padding-top: 2px;
}
.trial-panel .icon-head {
	margin: 0 0 16px;
}
.trial-status {
	display: inline-block;
	margin-left: 8px;
	padding: 3px 8px;
	background: #8d9398;
	color: #fff;
	font-size: 15px;
	border-radius: 4px;
	vertical-align: middle;
	line-height: 1.3;
}
.trial-panel__body {
	display: grid;
	grid-template-columns: minmax(220px, 280px) 1fr;
	align-items: start;
	gap: 22px;
}
.trial-links {
	display: grid;
	gap: 12px;
	padding-top: 8px;
}
.trial-links a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	border: 1px solid #bbb;
	background: #fff;
	padding: 13px 16px;
	color: #888;
	font-size: 15px;
}
.trial-links a span {
	color: #aaa;
	font-size: 18px;
}
.trial-map img {
	display: block;
	width: 100%;
	max-width: 420px;
	margin-left: auto;
}
.med-bottom {
	align-items: start;
}
.news-list li {
	line-height: 1.8;
}
@media (max-width: 999px) {
	.topic-feature {
		grid-template-columns: 1fr;
	}
	.trial-panel__body {
		grid-template-columns: 1fr;
	}
	.trial-map img {
		max-width: 320px;
		margin: 10px auto 0;
	}
}
@media (max-width: 768px) {
	.topic-card {
		flex-direction: column;
	}
	.topic-card__thumb {
		width: 100%;
		min-width: 0;
		order: -1;
	}
	.topic-card__thumb img {
		height: 200px;
	}
	.topic-feature {
		padding: 18px;
	}
	.topic-feature h2 {
		font-size: 22px;
	}
	.trial-status {
		font-size: 12px;
	}
	.trial-links a {
		font-size: 14px;
	}
}

/* YouTube動画リンク：TOP・動画一覧 */
.video-item .video-link {
	display: block;
	color: inherit;
	text-decoration: none;
}
.video-item .video-link .video-thumb {
	transition: opacity 0.2s ease;
}
.video-item .video-link:hover .video-thumb,
.video-item .video-link:focus-visible .video-thumb {
	opacity: 0.8;
}
.video-item .video-title-link {
	color: inherit;
	text-decoration: none;
}
.video-item .video-title-link:hover,
.video-item .video-title-link:focus-visible {
	text-decoration: underline;
}
.video-item .video-published {
	margin: 0.6em 0 0;
	font-size: 0.9em;
	color: #666;
}

/* Main navigation breakpoint: desktop >=1280px; collapsible menu <=1279px.
   Other page layouts retain their existing tablet/smartphone breakpoints. */
@media (min-width: 769px) and (max-width: 1279px) {
	.iga-header .nav-toggle {
		display: block;
		width: 100%;
		text-align: right;
		background: var(--orange);
		color: #fff;
		border: 0;
		padding: 9px 20px;
		cursor: pointer;
	}
	.theme-medical .nav-toggle {
		background: var(--cyan);
	}
	.iga-header .main-nav {
		display: none;
	}
	.iga-header .main-nav.is-open {
		display: block;
		max-height: calc(100dvh - var(--iga-header-base-height, 110px));
		overflow-y: auto;
		overscroll-behavior: contain;
	}
	.theme-general .nav-row,
	.theme-medical .nav-row {
		display: block;
		width: 100%;
	}
	.theme-general .nav-row > a,
	.theme-medical .nav-row > a {
		display: block;
		width: auto;
		text-align: left;
		border-bottom: 1px solid #ddd;
		padding: 12px 22px;
		font-size: 15px;
	}
	.nav-row .iga-login {
		flex-direction: row;
		justify-content: flex-start;
	}
}

/* Topic cards: predictable two-area grid; no fixed content heights.
   1150px+: 2 cards per row; 769-1149px: 1 card per row, image to the right;
   768px and below: 1 card per row, full image above text. */
.topic-cards .topic-card {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 200px);
	align-items: center;
	gap: 18px;
	min-width: 0;
	min-height: 235px;
	padding: 20px;
}
.topic-cards .topic-card__content,
.topic-cards .topic-card > div:first-child {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	align-self: stretch;
	min-width: 0;
	min-height: 0;
	width: 100%;
	flex: none;
}
.topic-cards .topic-card h2 {
	font-size: clamp(21px, 1.85vw, 24px);
	line-height: 1.45;
	overflow-wrap: break-word;
	margin-bottom: 7px;
}
.topic-cards .topic-card p {
	font-size: clamp(14px, 1.2vw, 16px);
	line-height: 1.75;
	margin-bottom: 14px;
}
.topic-cards .topic-card .btn {
	margin-top: auto;
	padding: 9px 15px;
	max-width: 100%;
	white-space: nowrap;
}
.topic-cards .topic-card__thumb {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-width: 0;
	min-height: 0;
	max-width: 240px;
	flex: none;
	justify-self: center;
}
.topic-cards .topic-card__thumb img {
	display: block;
	width: 100%;
	max-width: 240px;
	height: 180px;
	max-height: 180px;
	object-fit: contain;
	object-position: center;
	background: transparent;
	border-radius: 4px;
}
@media (min-width: 1150px) {
	.grid.two.topic-cards {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (min-width: 769px) and (max-width: 1149px) {
	.grid.two.topic-cards {
		grid-template-columns: minmax(0, 1fr);
	}
	.topic-cards .topic-card {
		grid-template-columns: minmax(0, 1fr) minmax(0, 240px);
		min-height: 225px;
	}
	.topic-cards .topic-card h2 {
		font-size: clamp(21px, 2vw, 24px);
	}
	.topic-cards .topic-card p {
		font-size: 15px;
	}
}
@media (max-width: 768px) {
	.grid.two.topic-cards {
		grid-template-columns: minmax(0, 1fr);
	}
	.topic-cards .topic-card {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: auto auto;
		min-height: 0;
		align-items: start;
		padding: 18px;
		gap: 14px;
	}
	.topic-cards .topic-card__thumb {
		grid-column: 1;
		grid-row: 1;
		order: initial;
		width: 100%;
		max-width: 240px;
		margin: 0 auto;
	}
	.topic-cards .topic-card__thumb img {
		width: 100%;
		height: 180px;
		max-height: 180px;
		object-fit: contain;
	}
	.topic-cards .topic-card__content,
	.topic-cards .topic-card > div:first-child {
		grid-column: 1;
		grid-row: 2;
		width: 100%;
		min-height: 0;
		height: auto;
		flex: none;
		align-self: start;
	}
	.topic-cards .topic-card h2 {
		font-size: clamp(21px, 2vw, 24px);
	}
	.topic-cards .topic-card p {
		font-size: 15px;
	}
	.topic-cards .topic-card .btn {
		margin-top: 8px;
	}
}

/* Optional break opportunities for topic-card headings.
   Keep one line when space allows; prefer <wbr> when wrapping is needed.
   Long unbreakable strings may still wrap to avoid overflow.
   WordPress editors can insert <wbr> using a Custom HTML block/code editor. */
.topic-cards .topic-card__content {
	min-width: 0;
}

.topic-cards .topic-card h2:has(wbr) {
	width: 100%;
	word-break: keep-all;
	overflow-wrap: normal;
}

/* Keep the text after <wbr> together when it fits on its own line.
   <wbr> remains optional: headings that fit stay on one line. */
.topic-cards .topic-card h2 .topic-card__no-break {
	white-space: nowrap;
}

/* =========================================================
   Short-page footer and readable inline text links
   - Expand main content on pages shorter than the viewport.
   - Keep visual buttons, navigation and banners unchanged.
========================================================= */
.project-iga {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  min-height: 100dvh;
}
.project-iga > main {
  flex: 1 0 auto;
  width: 100%;
}
.project-iga > .sponsors,
.project-iga > .iga-footer {
  flex-shrink: 0;
}

/* Links embedded in prose (unclassed links only). */
.project-iga.theme-general {
  --iga-inline-link: #bb5708;
  --iga-inline-link-hover: #994206;
}
.project-iga.theme-medical {
  --iga-inline-link: #087d9b;
  --iga-inline-link-hover: #07566f;
}
.project-iga :where(main p, main dd, main td, main .article-body, main .page-content__body) a:not([class]) {
  color: var(--iga-inline-link);
  text-decoration: underline;
  text-underline-offset: 0.16em;
  text-decoration-thickness: 1px;
  overflow-wrap: anywhere;
}
.project-iga :where(main p, main dd, main td, main .article-body, main .page-content__body) a:not([class]):is(:hover, :focus-visible) {
  color: var(--iga-inline-link-hover);
  text-decoration-thickness: 2px;
}

/* TOP news: unified date / category / title / right-arrow layout */
.page-general-index .news-list li,
.page-medical-index .news-list li {
	display: grid;
	grid-template-columns: 91px 105px minmax(0, 1fr) 16px;
	align-items: center;
	column-gap: 10px;
	padding: 13px 2px;
}
.page-general-index .news-list time,
.page-medical-index .news-list time {
	margin-right: 0;
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}
.page-general-index .news-list .pill,
.page-medical-index .news-list .pill {
	display: inline-block;
	width: 105px;
	padding: 4px 5px;
	font-size: 10px;
	text-align: center;
	line-height: 1.4;
}
.page-general-index .news-list__text,
.page-medical-index .news-list__text {
	min-width: 0;
	overflow-wrap: anywhere;
}
.page-general-index .news-list__arrow,
.page-medical-index .news-list__arrow {
	justify-self: end;
	white-space: nowrap;
}
@media (max-width: 999px) {
	.page-general-index .news-list li,
	.page-medical-index .news-list li {
		grid-template-columns: 91px 105px minmax(0, 1fr) 16px;
	}
}
@media (max-width: 600px) {
	.page-general-index .news-list li,
	.page-medical-index .news-list li {
		grid-template-columns: 91px 105px minmax(0, 1fr) 16px;
		row-gap: 7px;
	}
	.page-general-index .news-list__text,
	.page-medical-index .news-list__text {
		grid-column: 1 / 4;
		grid-row: 2;
	}
	.page-general-index .news-list__arrow,
	.page-medical-index .news-list__arrow {
		grid-column: 4;
		grid-row: 2;
	}
}

/* News links: make the entire announcement row clickable. */
.page-general-index .news-list li,
.page-medical-index .news-list li {
	padding: 0;
	display: block;
}
.page-general-index .news-list li > .news-list__link,
.page-medical-index .news-list li > .news-list__link {
	display: grid;
	grid-template-columns: 91px 105px minmax(0, 1fr) 16px;
	align-items: center;
	column-gap: 10px;
	padding: 13px 2px;
	color: inherit;
	text-decoration: none;
}
/* Use a subtler 5% theme-color tint on TOP news hover. */
.page-general-index .news-list li > .news-list__link:is(:hover, :focus-visible) {
	background: color-mix(in srgb, var(--orange) 5%, white);
}
.page-medical-index .news-list li > .news-list__link:is(:hover, :focus-visible) {
	background: color-mix(in srgb, var(--cyan) 5%, white);
}
/* Keep dates and category labels unchanged; tint only the news body and arrow. */
.page-general-index .news-list__link:is(:hover, :focus-visible) :is(.news-list__text, .news-list__arrow) {
	color: var(--iga-inline-link);
}
.page-medical-index .news-list__link:is(:hover, :focus-visible) :is(.news-list__text, .news-list__arrow) {
	color: var(--iga-inline-link);
}
.page-general-index .news-list li > .news-list__link:focus-visible,
.page-medical-index .news-list li > .news-list__link:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: -2px;
}
@media (max-width: 600px) {
	.page-general-index .news-list li > .news-list__link,
	.page-medical-index .news-list li > .news-list__link {
		row-gap: 7px;
	}
}


/* Site search (static dist implementation) */
.iga-search{max-width:980px;margin-inline:auto;}
.iga-search__form{display:block;margin-bottom:24px;}
.iga-search__form label{display:block;font-weight:700;margin-bottom:10px;}
.iga-search__field{display:flex;gap:10px;}
.iga-search__field input{flex:1;min-width:0;border:1px solid #b5bfc5;border-radius:6px;background:#fff;color:#222;padding:12px 15px;font:inherit;font-size:16px;}
.iga-search__field button{border:0;border-radius:6px;background:#c45b0b;color:#fff;font:inherit;font-weight:700;padding:12px 24px;cursor:pointer;}
.iga-search__field button:hover{background:#a64b07;}
.iga-search__tabs{display:flex;flex-wrap:wrap;border-bottom:2px solid #e0e5e8;gap:8px;margin-bottom:20px;}
.iga-search__tab{border:0;border-bottom:3px solid transparent;background:transparent;padding:12px 18px;margin-bottom:-2px;color:#333;font:inherit;font-weight:700;cursor:pointer;}
.iga-search__tab:hover{background:#f4f7f8;}
.iga-search__tab[aria-pressed="true"]{color:#a74a00;border-bottom-color:#c45b0b;}
.iga-search__tab[data-search-scope="medical"][aria-pressed="true"]{color:#086b85;border-bottom-color:#087d9b;}
.iga-search__status{margin:0 0 20px;font-weight:700;}
.iga-search__item{padding:22px 0;border-bottom:1px solid #dce2e6;}
.iga-search__item:first-child{border-top:1px solid #dce2e6;}
.iga-search__item a{color:#a74a00;text-decoration:underline;text-underline-offset:3px;font-weight:700;}
.iga-search__item.is-medical a{color:#08718e;}
.iga-search__item h2{font-size:clamp(18px,2vw,22px);line-height:1.5;margin:6px 0 8px;}
.iga-search__item p{margin:0;line-height:1.85;overflow-wrap:anywhere;}
.iga-search__label{font-size:12px;font-weight:700;display:inline-block;color:#924600;background:#fff4e9;padding:3px 10px;border-radius:100px;}
.iga-search__item.is-medical .iga-search__label{color:#08627c;background:#edf7fa;}
.iga-search__pager{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:25px auto;}
.iga-search__pager button{font:inherit;padding:8px 13px;border:1px solid #c9d0d4;border-radius:4px;background:white;cursor:pointer;}
.iga-search__pager button[aria-current="page"]{background:#404e57;color:white;}
.iga-search__note{font-size:13px;color:#666;margin-top:20px;}
@media(max-width:600px){.iga-search__field button{padding-inline:16px}.iga-search__tab{flex:1;padding:12px 5px;font-size:13px;white-space:nowrap;}.iga-search__item{padding:18px 0;}}
