/* =========================================================
   project-jshi2027-responsive.css
   JSHI2027 レスポンシブ差分のみ
   ※ 配色・フォント・PC基準レイアウトなどの基本設定は
      project-jshi2027.css で管理する
========================================================= */

@media (max-width: 999px) {
	.layout-conference .site-bg::before {
		content: none;
	}
}

@media (max-width: 767px) {
	.page-registration .registration-flow {
		grid-template-columns: 1fr;
		background: none;
	}
	.page-registration .registration-flow > li {
		min-height: 58px;
		padding: 0.75em 1em 0.75em 3.2em;
		font-size: 1.4rem;
	}
	.page-registration .registration-flow > li:not(:last-child)::after,
	.page-registration .registration-flow > li:not(:first-child)::before {
		content: none;
	}
	.page-registration .registration-flow > li + li {
		margin-top: 4px;
	}
	.page-registration .registration-flow > li span {
		left: 0.25em;
		font-size: 4rem;
		z-index: 0;
	}
	.page-registration .registration-flow > li {
		z-index: 0;
	}
	.page-registration .registration-flow > li strong br {
		display: none;
	}
}

@media (max-width: 999px) {
	.layout-conference {
		border-top: none;
	}
	.layout-conference .site-bg {
		max-width: none;
		display: block;
	}
	/* -----------------------------------------
	   SP header / logo / nav
	----------------------------------------- */
	.layout-conference .header {
		width: 100%;
		position: absolute;
		top: 0;
		left: 0;
		z-index: var(--top-sp-z-header);
		background: transparent;
		pointer-events: none;
	}
	.layout-conference .header__inner {
		width: 100%;
		min-height: var(--top-mobile-header-height);
		background: transparent;
		position: relative;
		margin-top: 0;
		padding-top: 0;
		padding-bottom: 0;
	}
	.layout-conference:not(.page-home) .header__inner {
		background: transparent;
	}
	/* 通常時：ロゴはスクロール追従しない */
	.layout-conference .site-title {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: var(--top-mobile-header-height);
		margin: 0;
		line-height: 1;
		z-index: var(--top-sp-z-title);
		pointer-events: none;
		display: block;
	}
	/* ロゴリンクのクリック範囲を画像幅に限定 */
	.layout-conference .site-logo {
		position: absolute;
		top: 10px;
		left: 50%;
		width: min(calc(100vw - 84px), 380px);
		height: auto;
		padding: 0;
		background: transparent;
		display: block;
		line-height: 0;
		text-align: center;
		transform: translateX(-50%);
		pointer-events: auto;
		z-index: var(--top-sp-z-logo);
	}
	.layout-conference .site-logo picture,
	.layout-conference .site-logo img {
		display: block;
		width: 100%;
		height: auto;
	}
	.layout-conference .site-logo img {
		max-width: 100%;
		max-height: 44px;
		margin: 0 auto;
		object-fit: contain;
	}
	/* メニュー展開時：ロゴだけ一時的にfixed */
	.layout-conference.is-nav-open .site-title {
		position: fixed;
		top: 0;
		left: 0;
		z-index: var(--top-sp-z-title);
		background: #212c57;
		pointer-events: none;
		display: block;
	}
	.layout-conference.is-nav-open .site-logo {
		position: fixed;
		top: 10px;
		left: 50%;
		transform: translateX(-50%);
		z-index: var(--top-sp-z-logo);
		pointer-events: auto;
	}
	/* TOPは通常時のみロゴ非表示。メニュー展開時は表示 */
	.layout-conference .site-title {
		transform: translateX(0);
	}
	.layout-conference.page-home .site-title {
		display: none;
	}
	.layout-conference.is-nav-open .site-title {
		display: block;
	}
	.layout-conference .site-title::after {
		display: none;
	}
	/* hamburger */
	.layout-conference .nav-toggle {
		position: fixed;
		top: 0;
		right: 0;
		display: flex;
		justify-content: center;
		width: 60px;
		height: 60px;
		background: #f8fcff;
		border: 0;
		cursor: pointer;
		z-index: var(--top-sp-z-toggle);
		padding: 0;
		pointer-events: auto;
	}
	.layout-conference .nav-toggle span {
		display: block;
		position: absolute;
		width: 30px;
		height: 2px;
		left: 15px;
		background: #212c57;
		color: #212c57;
		transition: 0.3s ease-in-out;
	}
	.layout-conference .nav-toggle span:nth-child(1) {
		top: 12px;
	}
	.layout-conference .nav-toggle span:nth-child(2) {
		top: 21px;
	}
	.layout-conference .nav-toggle span:nth-child(3) {
		top: 30px;
	}
	.layout-conference .nav-toggle.is-active span:nth-child(1) {
		top: 21px;
		transform: rotate(45deg);
	}
	.layout-conference .nav-toggle.is-active span:nth-child(2) {
		opacity: 0;
	}
	.layout-conference .nav-toggle.is-active span:nth-child(3) {
		top: 21px;
		transform: rotate(-45deg);
	}
	.layout-conference .nav-toggle__label {
		top: auto !important;
		bottom: 8px;
		left: 0 !important;
		width: 100% !important;
		height: auto !important;
		background: none !important;
		font-size: 1rem;
		font-weight: 700;
		text-align: center;
	}
	/* SP menu */
	.layout-conference .site-nav {
		display: none;
		position: fixed;
		top: var(--top-mobile-header-height);
		left: 0;
		width: 100%;
		height: calc(100vh - var(--top-mobile-header-height));
		border: 0;
		border-radius: 0;
		background: rgba(255, 255, 255, 0.98);
		box-shadow: none;
		overflow-y: auto;
		z-index: var(--top-sp-z-nav);
		pointer-events: auto;
	}
	.layout-conference .site-nav.is-open {
		display: block;
	}
	.layout-conference.is-nav-open {
		overflow: hidden;
	}
	.site-nav__list {
		background: #f8fcff;
		display: flex;
		flex-direction: column;
		gap: 0;
		margin: 0;
		padding: 6px;
		border: none;
		border-radius: 0;
		box-shadow: none;
	}
	.site-nav__item {
		border-bottom: 1px solid #8598cc;
	}
	.site-nav__item:first-of-type {
		border-radius: 0;
	}
	.site-nav__item:last-of-type {
		border-radius: 0;
	}
	/* -----------------------------------------
	SP layout
	----------------------------------------- */
	.layout-conference .site-main {
		width: 100%;
		padding-top: 0;
	}
	.layout-conference .hero__image {
		min-height: 520px;
	}
	.layout-conference .hero__meta {
		left: 24px;
		right: 24px;
		bottom: 24px;
		max-width: none;
		margin-left: 0;
	}
	.layout-conference .content-block__inner {
		width: min(100% - 24px, 720px);
		padding-block: 20px 28px;
		margin: 0 auto;
	}
	.layout-conference:not(.page-home) .site-main {
		padding-top: 60px;
	}
	.layout-conference:not(.page-home) .content-block__inner {
		width: min(96%, 840px);
		padding-block: 0 32px;
	}
	.layout-conference:not(.page-home) .page-content__head {
		padding: 28px 24px 28px;
	}
	.layout-conference:not(.page-home) .c-heading-page::after {
		top: -28px;
	}
	.layout-conference:not(.page-home) .page-content__body {
		border-radius: 0 0 1em 1em;
	}
	.layout-conference .footer__inner {
		width: min(100% - 8%, 1000px);
	}
	.contact-list__title {
		font-size: 1.6rem;
	}
	.layout-conference .site-nav__banners {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: 10px;
	}
	.layout-conference .site-nav__banner {
		width: calc((100% - 10px) / 2);
		min-width: 140px;
		max-width: 260px;
	}
	.layout-conference .c-side-banner {
		width: 100%;
	}
	.hero + .content-block .content-block__inner {
		padding-left: 0px;
	}
	.layout-conference .hero__image img {
		width: 100%;
		height: auto;
		margin-left: 0;
	}
	.page-event .c-note-box--event {
		grid-template-columns: 30% 1fr;
		gap: 1em;
		padding: 0.7em;
	}
	.page-event .c-note-box--event__content dl {
		grid-template-columns: 5.2em 1fr;
		gap: 0.6em 0.75em;
	}
	.page-event .c-note-box--event__content dt {
		font-size: 0.9em;
	}
	.page-event .c-note-box--event__content dd {
		font-size: 0.92em;
	}
}

@media (min-width: 2000px) {
	.layout-conference .hero__image {
		min-height: var(--top-hero-stage-height);
		display: flex;
		align-items: flex-end;
	}
	.layout-conference .hero__image picture {
		display: block;
		width: 100%;
		margin-top: 0;
	}
	.layout-conference .hero__image img {
		display: block;
		width: 100%;
		height: auto;
		margin-left: 0;
	}
}

@media (max-width: 999px) {
	.top-news::before {
		display: none;
	}
}

@media (max-width: 767px) {
	.layout-conference .site-nav__item a {
		padding: 14px 28px 10px 12px;
	}
	.layout-conference .hero__image {
		min-height: 420px;
		background-position: center center;
	}
	.layout-conference .hero__meta {
		left: 20px;
		right: 20px;
		bottom: 20px;
	}
	.layout-conference .hero__date {
		font-size: 2.1rem;
	}
	.layout-conference .hero__place {
		font-size: 1.7rem;
	}
	.layout-conference .hero__chair {
		font-size: 1.4rem;
	}
	.layout-conference .hero__chair span {
		display: block;
		margin-top: 4px;
		margin-left: 0;
	}
	.layout-conference .content-block__inner {
		width: min(100% - 8%, 100%);
	}
	.layout-conference:not(.page-home) .page-content__head {
		padding: 22px 20px 18px;
	}
	.layout-conference:not(.page-home) .c-heading-section {
		padding-inline: 0.5em;
	}
	.layout-conference .top-news__item {
		grid-template-columns: 1fr;
		gap: 0;
		padding: 14px 0;
	}
	.layout-conference .top-news__date {
		width: 6.5em;
		padding: 0 0.5em;
		font-size: 1.4rem;
	}
	.layout-conference .top-news__text {
		margin: 0;
		font-size: 1.4rem;
		line-height: 1.7;
	}
	.layout-conference .top-news__inlineLink {
		text-decoration: underline;
		text-underline-offset: 0.12em;
	}
	.layout-conference .top-news__inlineLink:hover {
		color: #dd6d22;
	}
	.category_list {
		grid-template-columns: 1fr;
	}
	.category_list_col + .category_list_col {
		margin-left: 0;
		margin-top: -1px;
	}
	.category_list_col li {
		height: auto;
		min-height: 3.5em;
	}
	.page-event .c-note-box--event {
		grid-template-columns: 1fr;
		gap: 1em;
		padding: 0.75em;
	}
	.page-event .c-note-box--event__image {
		max-width: 480px;
		margin: 0 auto;
	}
	.page-event .c-note-box--event__image img {
		aspect-ratio: 8 / 5;
	}
	.page-event .c-note-box--event__content dl {
		grid-template-columns: 5.5em 1fr;
	}
	.contact-list {
		border-left: none;
	}
	.contact-list__item {
		border-right: none;
	}

	/* -----------------------------------------
	SP layout
	----------------------------------------- */
	.footer-office {
		flex-direction: column;
		gap: 0.75em;
	}
	.footer-office__label {
		width: 100%;
	}
	.footer-office__body {
		text-align: center;
	}
	.footer-office__address {
		justify-content: center;
	}
}

@media (max-width: 480px) {
	.layout-conference .site-logo {
		width: min(calc(100vw - 84px), 280px);
		top: 10px;
		left: 4%;
		transform: translateX(0);
	}
	.layout-conference.is-nav-open .site-logo {
		top: 8px;
		left: 4%;
		transform: translateX(0);
	}
	.layout-conference .site-logo img {
		margin: 0 auto 0 0;
	}
	.layout-conference .site-nav__banners {
		gap: 8px;
	}
	.layout-conference .site-nav__banner {
		width: calc((100% - 8px) / 2);
		min-width: 0;
	}
	.page-greetings .greeting-profile {
		grid-template-columns: 1fr;
		gap: 16px;
		justify-content: center;
		text-align: center;
	}
	.page-greetings .greeting-profile__image {
		max-width: 160px;
		margin: 0 auto;
	}
	.page-event .c-note-box--event {
		border-width: 3px;
		border-radius: 8px;
		padding: 0.65em;
	}
	.page-event .c-note-box--event__content dl {
		display: block;
	}
	.page-event .c-note-box--event__content dt {
		width: 100%;
		min-height: auto;
		margin-top: 1em;
		margin-bottom: 0.35em;
		padding: 0em 0.5em 0.35em 0;
		color: #2f94d1;
		background-color: transparent;
		border-bottom: 2px solid #2f94d1;
		border-radius: 0;
		justify-content: flex-start;
	}
	.page-event .c-note-box--event__content dt:first-child {
		margin-top: 0;
	}
	.page-event .c-note-box--event__content dd {
		font-size: 0.92em;
		line-height: 1.65;
	}
	.page-event .c-note-box--event__content .c-list-disc {
		padding-left: 1.15em;
	}
	.layout-conference .top-news__title {
		display: flex;
		justify-content: start;
		align-items: start;
		gap: 4px;
		min-height: 48px;
		height: auto;
		margin: 0 0 0;
		padding: 1em 24px 0.5em 0;
		color: #a17402;
		font-family: var(--font-serif-jp);
		font-size: 2em;
		line-height: 1.25;
		position: relative;
	}
}

/* [PAGE] greeting profile (mobile) */
@media (max-width: 480px) {
	.page-greeting .grt_info,
	.page-greeting .greeting-profile {
		grid-template-columns: 1fr;
		gap: 14px;
		text-align: center;
	}
	.page-greeting .grt_image,
	.page-greeting .greeting-profile__image {
		width: min(170px, 55%);
		margin-inline: auto;
		grid-column: auto;
		grid-row: auto;
	}
	.page-greeting .greeting-profile__meta {
		grid-column: auto;
		grid-row: auto;
		text-align: center;
	}
}
