@import url('https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+New:wght@300;400;500;700;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=DotGothic16&display=swap');
@import url("default.css");

/* =========================================================
   寝耳にたくろう LP  ―  style.css
   Breakpoints:  PC / TB(1024) / SP(767)
   ========================================================= */

:root {
	--green:      #29a93f;
	--green-dark: #1c9b3a;
	--yellow:     #feef02;
	--yellow-d:   #fded35;
	--cream:      #fffde5;
	--orange:     #f15a24;
	--ink:        #000000;
	--gray-ph:    #cccccc;
	--hero-bg:    #e9edf1;
	--onair-h:    80px;   /* ファーストビュー最下部の放送帯の高さ */
}

* { -webkit-text-size-adjust: 100%; box-sizing: border-box; }

a:link, a:visited, a:hover, a:active { text-decoration: none; color: var(--ink); }

.grecaptcha-badge { opacity: 0; pointer-events: none; }
.full-width { margin-left: calc(-50vw + 50%); margin-right: calc(-50vw + 50%); }
.allWrapper { overflow: hidden; }
html.is-sp-scale,
html.is-sp-scale body,
html.is-sp-scale .allWrapper {
	width: 375px;
}

body {
	font-size: 15px; line-height: 1.75; color: var(--ink); background: #fff;
	font-family: "Zen Kaku Gothic New", sans-serif; font-weight: 400; font-style: normal;
}
img { max-width: 100%; height: auto; vertical-align: bottom; }

.container { max-width: 1080px; margin: 0 auto; padding: 0 24px; position: relative; }
.section { position: relative; }

.visually-hidden {
	position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* --------- shared: dot / rounded font helpers --------- */
.font-dot { font-family: "DotGothic16", monospace; }
.font-round { }

/* =========================================================
   Section title
   ========================================================= */
.sec-title {

	font-weight: 900; font-size: 55px; line-height: 1.1; color: var(--ink);
	letter-spacing: .05em; margin-bottom: 75px;
}
.sec-title__en {
	display: block; font-family: "DotGothic16", monospace; font-weight: 400;
	font-size: 14px; letter-spacing: .02em; margin-top: 10px; color: var(--ink);
}
.sec-title--center { text-align: center; }
.sec-title--white, .sec-title--white .sec-title__en { color: #fff; }

/* Lower-page content enters without changing its settled layout. */
.page-reveal {
	opacity: 0;
	transform: translate3d(0, 32px, 0);
	transition: opacity .95s ease, transform .95s cubic-bezier(.16, .95, .3, 1);
	transition-delay: var(--page-reveal-delay, 0ms);
}
.page-reveal.is-revealed { opacity: 1; transform: translate3d(0, 0, 0); }

/* =========================================================
   TOP PAGE MOTION
   ========================================================= */
@keyframes home-hero-scale-in {
	from { opacity: 0; transform: scale(1.035); }
	to { opacity: 1; transform: scale(1); }
}
@keyframes home-hero-pop-in {
	from { opacity: 0; transform: translateY(20px) scale(.9) rotate(-2deg); }
	to { opacity: 1; transform: translateY(0) scale(1) rotate(0); }
}
@keyframes home-hero-slide-in {
	from { opacity: 0; transform: translateY(16px); }
	to { opacity: 1; transform: translateY(0); }
}
@keyframes home-hero-catch-in {
	from {
		opacity: 0;
		-webkit-clip-path: inset(0 0 100% 0);
		clip-path: inset(0 0 100% 0);
		transform: translateY(-18px);
	}
	to {
		opacity: 1;
		-webkit-clip-path: inset(0 0 0 0);
		clip-path: inset(0 0 0 0);
		transform: translateY(0);
	}
}
@keyframes home-float {
	0%, 100% { transform: translate3d(0, 0, 0); }
	6.25% { transform: translate3d(2px, -1px, 0); }
	12.5% { transform: translate3d(4px, -3px, 0); }
	18.75% { transform: translate3d(5px, -6px, 0); }
	25% { transform: translate3d(4px, -9px, 0); }
	31.25% { transform: translate3d(2px, -11px, 0); }
	37.5% { transform: translate3d(-1px, -12px, 0); }
	43.75% { transform: translate3d(-3px, -10px, 0); }
	50% { transform: translate3d(-5px, -7px, 0); }
	56.25% { transform: translate3d(-6px, -4px, 0); }
	62.5% { transform: translate3d(-5px, -2px, 0); }
	68.75% { transform: translate3d(-2px, -3px, 0); }
	75% { transform: translate3d(1px, -5px, 0); }
	81.25% { transform: translate3d(4px, -6px, 0); }
	87.5% { transform: translate3d(5px, -4px, 0); }
	93.75% { transform: translate3d(-2px, 1px, 0); }
}
@keyframes home-float-alt-a {
	0%, 100% { transform: translate3d(0, 0, 0); }
	6.25% { transform: translate3d(-1px, -2px, 0); }
	12.5% { transform: translate3d(-3px, -4px, 0); }
	18.75% { transform: translate3d(-5px, -5px, 0); }
	25% { transform: translate3d(-6px, -8px, 0); }
	31.25% { transform: translate3d(-4px, -11px, 0); }
	37.5% { transform: translate3d(-1px, -13px, 0); }
	43.75% { transform: translate3d(3px, -12px, 0); }
	50% { transform: translate3d(6px, -10px, 0); }
	56.25% { transform: translate3d(7px, -7px, 0); }
	62.5% { transform: translate3d(6px, -4px, 0); }
	68.75% { transform: translate3d(3px, -2px, 0); }
	75% { transform: translate3d(0, -3px, 0); }
	81.25% { transform: translate3d(-2px, -5px, 0); }
	87.5% { transform: translate3d(-3px, -4px, 0); }
	93.75% { transform: translate3d(1px, 2px, 0); }
}
@keyframes home-float-alt-b {
	0%, 100% { transform: translate3d(0, 0, 0); }
	6.25% { transform: translate3d(3px, -1px, 0); }
	12.5% { transform: translate3d(5px, -3px, 0); }
	18.75% { transform: translate3d(4px, -6px, 0); }
	25% { transform: translate3d(1px, -8px, 0); }
	31.25% { transform: translate3d(-2px, -10px, 0); }
	37.5% { transform: translate3d(-5px, -9px, 0); }
	43.75% { transform: translate3d(-7px, -6px, 0); }
	50% { transform: translate3d(-6px, -3px, 0); }
	56.25% { transform: translate3d(-3px, -1px, 0); }
	62.5% { transform: translate3d(0, -2px, 0); }
	68.75% { transform: translate3d(3px, -5px, 0); }
	75% { transform: translate3d(5px, -7px, 0); }
	81.25% { transform: translate3d(4px, -5px, 0); }
	87.5% { transform: translate3d(2px, -3px, 0); }
	93.75% { transform: translate3d(-3px, 1px, 0); }
}
@keyframes home-float-alt-c {
	0%, 100% { transform: translate3d(0, 0, 0); }
	6.25% { transform: translate3d(-2px, -1px, 0); }
	12.5% { transform: translate3d(-4px, -2px, 0); }
	18.75% { transform: translate3d(-5px, -5px, 0); }
	25% { transform: translate3d(-4px, -8px, 0); }
	31.25% { transform: translate3d(-1px, -10px, 0); }
	37.5% { transform: translate3d(3px, -9px, 0); }
	43.75% { transform: translate3d(5px, -7px, 0); }
	50% { transform: translate3d(6px, -4px, 0); }
	56.25% { transform: translate3d(5px, -1px, 0); }
	62.5% { transform: translate3d(2px, -2px, 0); }
	68.75% { transform: translate3d(-1px, -4px, 0); }
	75% { transform: translate3d(-4px, -6px, 0); }
	81.25% { transform: translate3d(-6px, -4px, 0); }
	87.5% { transform: translate3d(-5px, -2px, 0); }
	93.75% { transform: translate3d(2px, 1px, 0); }
}
@keyframes home-handwritten-exclaim {
	0% { opacity: 0; transform: translateY(42px) rotate(-14deg) scale(.35); filter: drop-shadow(0 0 0 transparent); }
	42% { opacity: 1; transform: translateY(-18px) rotate(7deg) scale(1.28); filter: drop-shadow(0 9px 0 rgba(0, 0, 0, .16)); }
	58% { transform: translateY(7px) rotate(-5deg) scale(.9); }
	72% { transform: translateY(-5px) rotate(3deg) scale(1.1); }
	84% { transform: translateY(2px) rotate(-1deg) scale(.98); }
	100% { opacity: 1; transform: translateY(0) rotate(0) scale(1); filter: drop-shadow(0 0 0 transparent); }
}
@keyframes home-nexttime-exclaim {
	0% { opacity: 1; transform: translateY(42px) rotate(-14deg) scale(.35); filter: drop-shadow(0 0 0 transparent); }
	42% { opacity: 1; transform: translateY(-18px) rotate(7deg) scale(1.28); filter: drop-shadow(0 9px 0 rgba(0, 0, 0, .16)); }
	58% { transform: translateY(7px) rotate(-5deg) scale(.9); }
	72% { transform: translateY(-5px) rotate(3deg) scale(1.1); }
	84% { transform: translateY(2px) rotate(-1deg) scale(.98); }
	100% { opacity: 1; transform: translateY(0) rotate(0) scale(1); filter: drop-shadow(0 0 0 transparent); }
}
@keyframes home-handwritten-tick {
	0%, 24%, 100% { translate: 0 0; }
	34% { translate: 0 -7px; }
	44% { translate: 0 0; }
	54% { translate: 0 -4px; }
	64% { translate: 0 0; }
}
@keyframes home-archive-circle-float {
	0%, 100% { transform: translate3d(0, 0, 0) scale(1); }
	25% { transform: translate3d(14px, -10px, 0) scale(1.04); }
	50% { transform: translate3d(6px, -20px, 0) scale(.98); }
	75% { transform: translate3d(-12px, -8px, 0) scale(1.03); }
}
.hero__bg { animation: home-hero-scale-in 1.1s cubic-bezier(.22, .8, .3, 1) both; }
.hero__logo { animation: home-hero-pop-in .7s cubic-bezier(.22, 1.25, .45, 1) .18s both; }
.hero__tver { animation: home-hero-slide-in .55s ease-out .45s both; }
.hero__catch { animation: home-hero-catch-in .8s cubic-bezier(.22, .8, .3, 1) .5s both; }
.onair { animation: home-hero-slide-in .5s ease-out .65s both; }

.home-reveal {
	opacity: 0;
	transform: translate3d(0, 52px, 0) scale(.97);
	transition: opacity .82s ease, transform .82s cubic-bezier(.16, .95, .3, 1);
	transition-delay: var(--home-reveal-delay, 0ms);
}
.home-reveal.is-revealed { opacity: 1; transform: translate3d(0, 0, 0); }
.cast-row.home-reveal { transform: translate3d(0, 76px, 0) scale(.94); }
.cast-row.home-reveal.is-revealed { transform: translate3d(0, 0, 0) scale(1); }
.decor-reveal {
	opacity: 0;
	translate: 0 52px;
	transition: opacity .82s ease, translate .82s cubic-bezier(.16, .95, .3, 1);
	transition-delay: var(--decor-reveal-delay, 0ms);
	will-change: opacity, translate;
}
.decor-reveal.is-decor-revealed {
	opacity: 1;
	translate: 0 0;
}
.cast__orange,
.cast__circle {
	--cast-float-x: 0px;
	--cast-float-y: 0px;
	--cast-float-rotate: 0deg;
	--cast-float-scale: 1;
	transform: translate3d(var(--cast-float-x), var(--cast-float-y), 0) rotate(var(--cast-float-rotate)) scale(var(--cast-float-scale));
	will-change: transform;
}
.archive__circle { animation: home-archive-circle-float 7.5s ease-in-out infinite; }
.archive__circle--2 { animation-delay: -2.4s; animation-duration: 8.6s; }
.archive__circle--3 { animation-delay: -4.8s; animation-duration: 9.4s; }
.home-handwritten { opacity: 0; }
.home-handwritten.is-written {
	animation: home-handwritten-exclaim 1.2s cubic-bezier(.16, .9, .28, 1.2) both, home-handwritten-tick 3.6s 1.45s ease-in-out infinite;
}
.nexttime__hw.home-handwritten.is-written { animation-name: home-nexttime-exclaim, home-handwritten-tick; }

/* =========================================================
   HEADER
   ========================================================= */
.site-header {
	position: fixed; left: 0; top: 0; width: 100%; z-index: 100; transition: .3s;
}
.site-header__inner {
	display: flex; align-items: center; justify-content: space-between;
	margin: 0 auto;
	background: #fff; border-radius: 0 0 39px 39px;
	padding: 15px 48px; box-shadow: 0 5.7845px 10.412px rgba(34, 24, 21, .35); height: 80px;
}
.site-header__logo { margin: 0; line-height: 0; }
.site-header__logo img { width: 135px; height: auto; }

.gnav { display: flex; align-items: center; gap: 17px; }
.gnav__inner { display: flex; align-items: center; gap: 17px; }
.gnav__list { display: flex; align-items: center; }
.gnav__list li { position: relative; padding: 0 25px; }
.gnav__list li::after {
	content: ""; position: absolute; right: 0; top: 50%; transform: translateY(-50%);
	width: 1px; height: 13px; background: #000000;
}
.gnav__list a {
	font-weight: 900;
	font-size: 17px; letter-spacing: .06em; padding: 8px 0; display: block; position: relative;
}
.gnav__list a:hover::before { width: 100%; }
.gnav__list a { transition: color .25s; }
.gnav__list a:hover { color: var(--green); }

.gnav__sns { display: flex; align-items: center; gap: 15px; }
.gnav__sns a {
	display: flex; align-items: center; justify-content: center;
	color: var(--ink); transition: .25s;
}
.gnav__sns a img { display: block; width: auto; height: 17px; }  /* 高さ基準＋幅autoで縦横比を維持 */
.gnav__sns a:hover { color: var(--green); transform: translateY(-2px); }
.gnav__menu-logo,
.gnav__cta,
.gnav__catch,
.gnav__onair,
.gnav__duo,
.gnav__orange { display: none; }

/* hamburger */
.menu-trg-area {
	position: fixed; top: 14px; right: 15px; display: none;
	width: 46px; height: 46px; background: var(--green); border-radius: 10px; cursor: pointer; z-index: 120;
}
.menu-trigger, .menu-trigger span { display: inline-block; transition: all .4s; box-sizing: border-box; }
.menu-trigger { position: absolute; inset: 0; margin: auto; width: 22px; height: 16px; }
.menu-trigger span { position: absolute; left: 0; width: 100%; height: 2px; background: #fff; border-radius: 2px; }
.menu-trigger span:nth-of-type(1) { top: 0; }
.menu-trigger span:nth-of-type(2) { top: 7px; }
.menu-trigger span:nth-of-type(3) { bottom: 0; }
.menu-trigger.active span:nth-of-type(1) { transform: translateY(7px) rotate(-45deg); }
.menu-trigger.active span:nth-of-type(2) { opacity: 0; }
.menu-trigger.active span:nth-of-type(3) { transform: translateY(-7px) rotate(45deg); }

/* =========================================================
   HERO
   ========================================================= */
.hero { background: var(--hero-bg); }
.hero__inner { position: relative; margin: 0 auto; }
.hero__bg { display: block; width: 100%; }

/* 左半分(50%)の中で、ロゴとTVerボタンを左右中央揃え
   放送帯(onair)の高さ分を下に確保し、ボタンをonairの上に配置する */
.hero__left {
	position: absolute; left: 0; top: 0; width: 50%; height: 100%;
	display: flex; flex-direction: column; align-items: center; justify-content: end;
	padding-bottom: var(--onair-h);
	z-index: 2;
}

/* タイトルロゴ */
.hero__logo { width: 390px; max-width: 86%; margin: 0; }
.hero__logo img { display: block; width: 100%; }

/* 縦キャッチ「ここから先は、全編無茶振り。」 */
.hero__catch { position: absolute; right: 16.5%; top: 20%; width: 126px; margin: 0; }
.hero__catch img { display: block; width: 100%; }

/* TVerボタン
   前面：白背景＋緑ボーダー / 背面：黄背景＋緑ボーダー を重ね、
   hoverで前面が背面(黄)に覆いかぶさりながら下へ動く */
.hero__tver { position: relative; width: 321px; height: 60px; margin: 45px 0 35px; z-index: 3; }
/* 背面の黄色レイヤー */
.hero__tver::before {
	content: ""; position: absolute; inset: 0; z-index: 1;
	background: var(--yellow); border: 2px solid rgba(0, 128, 0, 0.61); border-radius: 100px;
	transform: translate(7px, 5px);
}
/* 前面の白ボタン */
.tver-btn {
	position: absolute; inset: 0; z-index: 2;
	display: flex; align-items: center; justify-content: center; gap: 5px;
	background: #fff; border: 2px solid rgba(0, 128, 0, 0.61); border-radius: 100px;
	transition: transform .25s ease;
}
.tver-btn:hover,
.tver-btn:active { transform: translate(7px, 5px); }
.tver-btn__logo { width: 54px; height: auto; flex: 0 0 auto; }
.tver-btn__text {
	font-weight: 700;
	font-size: 15px; color: var(--green); letter-spacing: .04em; white-space: nowrap;
}
.tver-btn__arrow {
	width: 15px; height: 15px; background: var(--green); border-radius: 50%; flex: 0 0 auto;
	display: inline-flex; align-items: center; justify-content: center; line-height: 1;
}
.tver-btn__arrow img { display: block; width: 4px; height: auto; margin-left: 1px; }

/* =========================================================
   BROADCAST BAND
   ========================================================= */
.onair {
	position: absolute; left: 0; bottom: 0; width: 100%; z-index: 1;
	height: var(--onair-h); padding: 0 16px;
	background: var(--yellow); text-align: center;
	display: flex; align-items: center; justify-content: center;
}
.onair__text { margin: 0; line-height: 0; }
.onair__text img { display: block; height: 40px; width: auto; max-width: 100%; }
.onair__box {
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--green-dark); color: #fff; width: 1.1em; height: 1.1em;
	border-radius: 6px; margin: 0 2px;
}
.onair__big { font-size: 1.5em; margin: 0 .04em; }
.onair__sp { display: inline-block; width: .5em; }

/* ---- 次回予告 ---- */
.nexttime { padding: 0; }
.nexttime__bg { padding: 100px 0 70px; background-color: var(--cream); }
.nexttime .container { max-width: calc(850px + 48px); }   /* 次回予告のコンテンツ幅 850px + 左右padding48px */
.nexttime__head { margin-bottom: 40px; }
.nexttime__deco {
	position: absolute; right: 25px; top: -215px; width: 353px; text-align: center; pointer-events: none; z-index: 2;
}
.nexttime__hw { width: 100%; display: block; margin: 0 auto 4px; mix-blend-mode: multiply; }
/* 出演者：schedule-cardの後ろ（右下に少しはみ出す） */
.nexttime__duo { position: absolute; right: -125px; top: -248px; width: 663px; z-index: 0; margin: 0; }

.schedule-card {
	position: relative; z-index: 1;
	max-width: 900px; margin: 0 auto;
}
.schedule-card__inner {
	position: relative; z-index: 1;
	background: #fff; border: 3px solid var(--green); border-radius: 40px;
	display: flex; overflow: hidden;
	box-shadow: 5.7845px 5.7845px 10.412px rgba(34, 24, 21, .35);
}
.schedule-card__thumb {
	position: relative; flex: 0 0 45%; background: #fff; display: flex; align-items: center; justify-content: center;
	min-width: 0; min-height: 0; aspect-ratio: 16 / 9; overflow: hidden;
}
.schedule-card__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.schedule-card__thumb video, .schedule-card__thumb iframe{
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	max-width: 100%;
	max-height: 100%;
	object-fit: cover;
	border: 0;
	outline: none;
	box-shadow: none;
}
.schedule-card__thumb video:focus,
.schedule-card__thumb video:focus-visible { outline: none; }
.schedule-card__thumb span, .news-card__thumb span, .archive-item__thumb span, .gallery-item__thumb span {
	font-family: "DotGothic16", monospace; color: #fff; font-size: 20px; letter-spacing: .1em;
}
.schedule-card__body { flex: 1; padding: 16px 40px 16px 28px; display: flex; flex-direction: column; justify-content: center; }
.schedule-card__meta {
	display: flex;
	align-items: flex-start;
	gap: 24px;
	padding-bottom: 13px;
	border-bottom: 3px solid var(--green);
}
.schedule-card__labels,
.schedule-card__values {
	display: flex;
	flex-direction: column;
}
.schedule-card__labels {
	align-items: flex-start;
	gap: 9px;
}
.schedule-card__values {
	gap: 15px;
}
.schedule-card__label {
	font-family: "DotGothic16", monospace; color: var(--green); font-size: 27px; letter-spacing: .06em; line-height: 1; margin-left: 5px;
}
.schedule-card__date {
	font-family: "DotGothic16", monospace; color: var(--green); font-size: 40px; line-height: 1; letter-spacing: .008em; white-space: nowrap;
}
.schedule-card__date-dot {
	display: inline-block;
	margin-left: 0;
	margin-right: -.1em;
}
.schedule-card__time { font-family: "DotGothic16", monospace; color: var(--green); font-size: 26px; line-height: 1; letter-spacing: .01em; white-space: nowrap; }
.schedule-card__time-group,
.schedule-card__time-colon,
.schedule-card__time-sep {
	display: inline-block;
}
.schedule-card__time-group { letter-spacing: .02em; }
.schedule-card__time-colon { margin-left: -.05em; }
.schedule-card__time-sep { margin-right: -.05em; }
.pill-green {
	width: 170px; height: 49px; display: inline-flex; align-items: center; justify-content: center;
	background: var(--green); color: #fff; font-weight: 700; letter-spacing: .06em; padding: 0; padding-bottom: 1px;
	font-size: 29px; line-height: 1.5; border-radius: 100px; white-space: nowrap;
}
.schedule-card__desc { margin: 12px 0 0; font-size: 18px; font-weight: 500; line-height: 1.666; }

/* ---- お知らせ ---- */
.news {
	--news-bg-color: var(--cream);
	--news-bg-height: calc(100% - 0px);
	position: relative;
	padding: 0;
	z-index: 1;
}
.news::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: calc(100% - 265px);
	background-color: var(--news-bg-color);
	pointer-events: none;
	z-index: 0;
}
.news__bg { position: relative; z-index: 1; padding: 30px 0 140px; }
.news .sec-title { margin-bottom: 40px; }
.news__bottom {
	display: block;
	width: 100%;
	height: auto;
	margin-top: 0;
}
.news > picture {
	display: block;
	line-height: 0;
	margin-top: -140px;
}
.news__list {
	margin-bottom: -140px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 50px; max-width: 900px; margin: 0 auto;
}
.news-card {
	background: #fff; border: 3px solid var(--green); border-radius: 30px; overflow: hidden;
	box-shadow: 5.7845px 5.7845px 10.412px rgba(34, 24, 21, .35);
	transition: .3s;
}
.news-card:only-child {
	grid-column: 1 / -1;
	justify-self: center;
	width: calc((100% - 50px) / 2);
}
.news-card:hover { transform: translateY(-4px); box-shadow: 5.7845px 5.7845px 10.412px rgba(34, 24, 21, .35); }
.news-card__thumb { background: var(--gray-ph); aspect-ratio: 16 / 9; display: flex; align-items: center; justify-content: center; }
.news-card__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.news-card__body { padding: 28px 38px 30px; }
.news-card__body .pill-green { line-height: 0; margin-bottom: 20px; font-size: 17px; width: 150px; height: 27px; }
.news-card__title { margin: 0; font-size: 18px; font-weight: 700; line-height: 1.6666; }
.news .btn-follow { font-weight: 700; letter-spacing: .04em; width: 210px; justify-content: center; gap: 20px; }

.btn-wrap { text-align: center; margin-top: 40px; margin-bottom: -140px; }
.btn-more {
	display: inline-flex; align-items: center; gap: 26px;
 font-weight: 800; font-size: 17px;
	background: #fff; border: 2px solid var(--green); border-radius: 100px;
	padding: 16px 30px 16px 40px; box-shadow: 0 6px 0 var(--green); transition: .15s;
}
.btn-more:hover { transform: translateY(3px); box-shadow: 0 3px 0 var(--green); }
.btn-more__arrow {
	width: 26px; height: 26px; background: var(--green); color: #fff; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center; font-size: 16px; line-height: 1;
}

/* ---- バックナンバー ---- */
.archive { margin-top: -265px; padding: 340px 0 130px; background-image: linear-gradient(rgba(199, 200, 201, 0.125) 1px, transparent 1px), linear-gradient(90deg, rgba(199, 200, 201, 0.125) 1px, transparent 1px); background-size: 12px 12px; }
.archive .sec-title { position: relative; z-index: 2; margin-bottom: 45px; }
.archive__head { position: relative; margin-bottom: 46px; }
.archive__duo {
	position: absolute; left: -125px; top: -114px; width: 465px; z-index: 0; pointer-events: none;
}
.archive__circle { position: absolute; border-radius: 50%; background: var(--yellow); z-index: 1; }
.archive__circle--1 { width: 137px; height: 137px; right: 115px; top: 530px; }
.archive__circle--2 { width: 252px; height: 252px; left: -36px; top: 862px; }
.archive__circle--3 { width: 303px; height: 303px; right: -165px; top: 1000px; }

.archive__list { max-width: 850px; margin: 0 auto; position: relative; z-index: 2; display: grid; gap: 25px; }
.archive-item a {
	display: flex; align-items: stretch; background: var(--cream);
	border: 3px solid #000; border-radius: 30px; overflow: hidden;
	box-shadow: 5px 5px 9px rgba(34, 24, 21, .35); transition: .15s;
}
.archive-item a:hover { transform: translateY(-3px); box-shadow: 5px 5px 9px rgba(34, 24, 21, .35); }
.archive-item__thumb {
	flex: 0 0 282px; background: var(--gray-ph); display: flex; align-items: center; justify-content: center; min-height: 160px;
}
.archive .archive-item__thumb {
	min-height: 0;
	aspect-ratio: 16 / 9;
}
.archive-item__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.archive-item__thumb span { font-size: 17px; }
.archive-item__body { flex: 1; padding: 22px 45px 22px 20px; display: flex; flex-direction: column; justify-content: center; gap: 20px; }
.archive-item__body .pill-green { width: 146px; height: 27px; font-size: 17px; line-height: 1; padding: 0; }
.archive-item__content { display: flex; align-items: center; gap: 20px; }
.archive-item__title { margin: 0; font-weight: 700; font-size: 18px; line-height: 1.666; letter-spacing: 0; }
.archive-item__arrow {
	flex: 0 0 auto; margin: 0;
	width: 31px; height: 31px; background: var(--green); border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center; line-height: 1;
}
.archive-item__arrow img { display: block; width: 8px; height: auto; margin-left: 1px; }

/* Back-number cards only: keep the arrow vertically centered independently of the title length. */
@media (min-width: 768px) {
	.archive .archive-item a,
	.archive-page__item a { position: relative; }
	.archive .archive-item__body,
	.archive-page__item .archive-item__body { padding-right: 125px; }
	.archive .archive-item__arrow,
	.archive-page__item .archive-item__arrow {
		position: absolute;
		top: 50%;
		right: 45px;
		transform: translateY(-50%);
	}
}
.archive__actions { max-width: 850px; margin: 40px auto 0; position: relative; z-index: 2; }
.archive__list-btn { text-align: center; }
.archive .btn-follow { width: 210px; justify-content: center; gap: 20px; font-weight: 700; letter-spacing: .04em; }

/* ---- 見逃し配信 CTA ---- */
.miss-cta { text-align: center; padding: 70px 0 0; }
.miss-cta__frame {
	--miss-cta-offset: 8px;
	position: relative;
	display: block;
	width: 100%;
}
.miss-cta__frame::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background: var(--yellow);
	border: 3px solid var(--ink);
	border-radius: 100px;
	transform: translate(var(--miss-cta-offset), var(--miss-cta-offset));
}
.miss-cta__btn {
	position: relative;
	z-index: 1;
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	width: 100%; font-weight: 700; font-size: 36px; color: var(--ink);
	background: #fff; border: 3px solid var(--ink); border-radius: 100px;
	padding: 19px 40px; transition: transform .25s ease; max-width: 100%;
}
.miss-cta__btn:hover,
.miss-cta__btn:active { transform: translate(var(--miss-cta-offset), var(--miss-cta-offset)); }
.miss-cta__icon { line-height: 0; flex: 0 0 auto; }
.miss-cta__icon img { display: block; width: 105px; height: auto; }
.miss-cta__label { display: inline-block; }
.miss-cta__arrow {
	width: 34px; height: 34px; background: var(--yellow); border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center; line-height: 1; flex: 0 0 auto;
}
.miss-cta__arrow img { display: block; width: 9px; height: auto; margin-left: 1px; }

/* =========================================================
   ギャラリー  (yellow, scalloped)
   ========================================================= */
.gallery {
	--gallery-base-w: 1280px;
	--gallery-back-h: 205px;
	--gallery-card-w: 400px;
	--gallery-gap: 54px;
	--gallery-rail-angle: -9.068deg;
	--gallery-wave-duration: 5s;
	background: transparent; padding: 100px 0 100px; margin-top: -1px;
	overflow: visible; z-index: 2;
}
.gallery .container {
	max-width: calc(850px + 48px);
}
.gallery .sec-title {
	text-align: left;
	margin-bottom: 0;
}
.gallery__bg {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: calc(100% - var(--gallery-back-h) + 1px);
	background: var(--yellow);
	z-index: 0;
	pointer-events: none;
}
.gallery__back {
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: var(--gallery-back-h);
	background: var(--yellow);
	clip-path: polygon(0 0, 100% 0, 100% 24px, 0 100%);
	z-index: 0;
	pointer-events: none;
}
.gallery::before {
	content: "";
	position: absolute;
	left: 0;
	top: -39px;
	width: 100%;
	height: 40px;
	background-image: radial-gradient(circle at 45.5px 45.5px, var(--yellow) 45.5px, transparent 46px);
	background-size: 91px 91px;
	background-repeat: repeat-x;
	animation: gallery-wave-flow var(--gallery-wave-duration) linear infinite;
	z-index: 1;
}
.gallery__bottom-wave {
	position: absolute;
	left: -8%;
	bottom: -140px;
	width: 116%;
	height: 164px;
	background-image: radial-gradient(circle at 45.5px 45.5px, var(--yellow) 45.5px, transparent 46px);
	background-size: 91px 91px;
	background-repeat: repeat-x;
	animation: gallery-wave-flow-reverse var(--gallery-wave-duration) linear infinite;
	transform: rotate(-8.068deg);
	transform-origin: left center;
	z-index: 1;
	pointer-events: none;
}
.cast::before {
	content: none;
}

@keyframes gallery-wave-flow {
	from { background-position: 0 0; }
	to { background-position: 91px 0; }
}

@keyframes gallery-wave-flow-reverse {
	from { background-position: 91px 0; }
	to { background-position: 0 0; }
}

@keyframes gallery-wave-flow-sp {
	from { background-position: 0 0; }
	to { background-position: 40px 0; }
}

@keyframes gallery-wave-flow-reverse-sp {
	from { background-position: 40px 0; }
	to { background-position: 0 0; }
}

@keyframes gallery-wave-flow-reverse-sp-bottom {
	from { background-position: 47px 0; }
	to { background-position: 0 0; }
}

.gallery__slider {
	margin: 24px calc(50% - (var(--gallery-base-w) / 2)) 0;
	width: var(--gallery-base-w);
	padding: 150px 0 0;
}
.gallery__rail {
	width: max-content;
	transform: rotate(var(--gallery-rail-angle));
	transform-origin: left center;
}
.gallery__marquee {
	display: flex;
	align-items: flex-start;
	gap: var(--gallery-gap);
	width: max-content;
	max-width: none;
	will-change: transform;
	transform: translate3d(0, 0, 0);
	transition: transform .7s cubic-bezier(.22, .8, .3, 1);
	cursor: grab;
	touch-action: pan-y;
	user-select: none;
}
.gallery__marquee.is-resetting,
.gallery__marquee.is-pressing,
.gallery__marquee.is-dragging { transition: none; }
.gallery__marquee.is-dragging { cursor: grabbing; }
.gallery__marquee.is-dragging .gallery-item { cursor: grabbing; }
.gallery__track {
	display: flex;
	align-items: flex-start;
	gap: var(--gallery-gap);
	width: max-content;
	max-width: none;
}
.gallery-item {
	margin: 0;
	flex: 0 0 var(--gallery-card-w);
	width: var(--gallery-card-w);
	transform: rotate(calc(-1 * var(--gallery-rail-angle)));
	transform-origin: center center;
	cursor: pointer;
}
.gallery-item--1,
.gallery-item--2,
.gallery-item--3,
.gallery-item--4 { margin-top: 0; }
.gallery-item__trigger {
	display: block;
	width: 100%;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
}
.gallery-item__trigger:focus,
.gallery-item__trigger:focus-visible { outline: none; }
.gallery-item__thumb {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	border-radius: 0;
	aspect-ratio: auto;
	overflow: visible;
}
.gallery-item__thumb img {
	display: block;
	width: 46%;
	height: auto;
	max-width: 100%;
	object-fit: contain;
	border-radius: 0;
	-webkit-user-drag: none;
	user-select: none;
}
.gallery-item figcaption {
	margin-top: 50px;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.666;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
	text-overflow: ellipsis;
}
.gallery-modal[hidden] { display: none; }
.gallery-modal {
	position: fixed;
	inset: 0;
	z-index: 250;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 32px 24px;
	opacity: 0;
	transition: opacity .3s ease;
}
.gallery-modal.is-open { opacity: 1; }
.gallery-modal__backdrop {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, .8);
}
.gallery-modal__dialog {
	position: relative;
	z-index: 1;
	width: min(695px, calc(100vw - 48px));
	transform: translateY(18px) scale(.98);
	transition: transform .3s ease;
}
.gallery-modal.is-open .gallery-modal__dialog { transform: translateY(0) scale(1); }
.gallery-modal__content {
	width: 100%;
}
.gallery-modal__image {
	display: block;
	width: 46%;
	max-width: 320px;
	height: auto;
	margin: 0 auto;
	border-radius: 0;
}
.gallery-modal__text {
	margin: 25px 0 0;
	color: #fff;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.666;
	text-align: left;
}
.gallery-modal__close {
	position: absolute;
	top: 40px;
	right: 50px;
	z-index: 2;
	width: 50px;
	height: 50px;
	border: 0;
	border-radius: 50%;
	background: #fff;
	cursor: pointer;
}
.gallery-modal__close:focus,
.gallery-modal__close:focus-visible { outline: none; }
.gallery-modal__close::before,
.gallery-modal__close::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 24px;
	height: 3px;
	background: #000;
	border-radius: 999px;
	transform-origin: center;
}
.gallery-modal__close::before { transform: translate(-50%, -50%) rotate(45deg); }
.gallery-modal__close::after { transform: translate(-50%, -50%) rotate(-45deg); }
html.is-gallery-modal-open,
body.is-gallery-modal-open {
	overflow: hidden;
}

@media (prefers-reduced-motion: reduce) {
	.hero__bg,
	.hero__logo,
	.hero__tver,
	.hero__catch,
	.onair,
	.cast__orange,
	.cast__circle,
	.archive__circle,
	.home-handwritten { animation: none; }
	.home-reveal {
		opacity: 1;
		transform: none;
		transition: none;
	}
	.page-reveal {
		opacity: 1;
		transform: none;
		transition: none;
	}
	.decor-reveal {
		opacity: 1;
		translate: none;
		transition: none;
	}
	.home-handwritten { opacity: 1; }
	.gallery__marquee {
		transition: none;
		transform: translate3d(0, 0, 0);
	}
}

/* =========================================================
   出演者紹介  (green, scalloped)
   ========================================================= */
.cast {
	margin-top: -170px;
	background-color: var(--green);
	background-image: linear-gradient(rgba(199, 200, 201, 0.125) 1px, transparent 1px), linear-gradient(90deg, rgba(199, 200, 201, 0.125) 1px, transparent 1px);
	background-size: 12px 12px;
	padding: 290px 0 120px;
	color: #fff;
	overflow: hidden;
	z-index: 1;
}
.cast .container { max-width: calc(820px + 48px); }
.cast .sec-title { margin-bottom: 35px; }
.cast .sec-title__en { color: rgba(255, 255, 255, 0.5); }
.cast::before { color: var(--green); }
.cast__orange,
.cast__circle { position: absolute; z-index: 1; pointer-events: none; }
.cast__orange--1 { width: 180px; top: 200px; right: 78px; }
.cast__orange--2 { width: 145px; top: 540px; left: -30px; }
.cast__orange--3 { width: 90px; top: 690px; left: 100px; }
.cast__orange--4 { width: 50px; top: 405px; left: calc(50% - 120px); }
.cast__orange--5 { width: 96px; top: 515px; right: 20px; }
.cast__orange--6 { width: 80px; top: 630px; left: calc(50% - 90px); z-index: 4; }
.cast__orange--7 { width: 134px; top: 980px; right: 180px; }
.cast__circle { display: block; border-radius: 50%; background: var(--yellow); }
.cast__circle--1 { width: 140px; height: 140px; top: 820px; left: -68px; }
.cast__circle--2 { width: 305px; height: 305px; top: 910px; right: -155px; }

.cast-row {
	display: flex; align-items: flex-start; gap: 34px; max-width: 820px; margin: 0 auto;
	position: relative; z-index: 3;
}
.cast-row + .cast-row { margin-top: 8px; }
.cast-row--reverse { flex-direction: row-reverse; }
.cast-row--reverse .cast-row__photo {
	/* Pull the second portrait up so its circle overlaps the first cast block. */
	transform: translateY(-70px);
}
.cast-row__photo {
	position: relative;
	isolation: isolate;
	z-index: 1;
	flex: 0 0 370px; height: 370px; border-radius: 50%;
	display: flex; align-items: flex-end; justify-content: center;
}
.cast-row__photo-inner {
	position: absolute;
	left: 50%;
	bottom: 0;
	z-index: 1;
	display: block;
	width: auto;
	height: 410px;
	max-width: none;
	transform: translateX(-50%);
}
.cast-row__photo-inner--02 {
	width: 387px;
	height: 415px;
	bottom: 0;
}

.cast-row__info {
	position: relative;
	z-index: 0;
	flex: 1;
	min-width: 0;
	padding-top: 26px;
}
.cast-row__num {
	display: grid;
	grid-template-columns: 90px minmax(0, 1fr);
	grid-template-rows: auto auto;
	row-gap: 2px;
	align-items: end;
	margin: 0;
	position: relative;
	padding-bottom: 15px;
}
.cast-row__num::after {
	content: "";
	position: absolute;
	left: -92px;
	bottom: 0;
	width: calc(100% + 92px);
	height: 2px;
	background: #fff;
}
.cast-row--reverse .cast-row__num::after {
	left: 0;
	width: calc(100% + 92px);
}
.cast-row__ttl {
	grid-column: 1;
	grid-row: 1;
	font-family: "DotGothic16", monospace;
	font-size: 25px;
	line-height: 1;
	letter-spacing: 0;
	margin-bottom: 5px;
}
.cast-row__no {
	grid-column: 1;
	grid-row: 2;
	font-family: "DotGothic16", monospace;
	font-size: 63px;
	line-height: 1;
	margin-right: 0;
}
.cast-row__name {
	grid-column: 2;
	grid-row: 2;
	font-weight: 900;
	font-size: 35px;
	line-height: 1;
	display: inline-flex;
	align-items: flex-end;
	gap: 15px;
	white-space: nowrap;
}
.cast-row__name small {
	font-family: "DotGothic16", monospace;
	font-size: 15px;
	letter-spacing: 0;
	line-height: 1;
	letter-spacing: .04em;
}
.cast-row__data { margin: 0; display: grid; gap: 10px; padding-top: 25px; }
.cast-row__data > div { display: flex; align-items: center; gap: 10px; }
.cast-row__data dt {
	min-width: 86px;
	min-height: 30px;
	background: #fff;
	color: #000;
	font-weight: 700;
	font-size: 20px;
	line-height: 1;
	padding: 5px 10px;
	border-radius: 100px;
	white-space: nowrap;
	letter-spacing: .1em;
	text-align: center;
}
.cast-row__data dd { margin: 0; font-weight: 700; font-size: 20px; letter-spacing: .04em; }

/* =========================================================
   SNS  (yellow)  ―  ページ最下部
   ========================================================= */
.sns {
	position: relative; z-index: 2;
	background: var(--yellow);
	border-radius: 100px 100px 0 0;   /* 左上・右上を100px */
	margin-top: -100px;                /* 上の緑セクションに重ね、角丸から緑を覗かせる */
	padding: 90px 0 0;
	min-height: 818px;
	overflow: hidden;
}
/* 手書き「僕らは何も知りません！」右上 */
.sns__hw { position: absolute; top: 95px; right: 15%; width: 421px; z-index: 3; pointer-events: none; }
/* 出演者：フッター幅いっぱい(100%)・最下部 */
.sns__duo { position: absolute; left: 0; right: 0; bottom: 0; width: 100%; z-index: 2; pointer-events: none; }
.sns__duo-sp { display: none; }

.sns__body { position: relative; z-index: 3; text-align: left; max-width: calc(860px + 48px); }  /* コンテンツ幅860px + 左右padding48px */
.sns .sec-title { font-size: 65px; line-height: 1; margin-bottom: 0; letter-spacing: .1em; }
.sns__lead { font-weight: 700; font-size: 24px; margin: 50px 0 100px; letter-spacing: .05em; }

.sns__list { display: flex; gap: 33px; }
.sns-item { display: flex; flex-direction: column; align-items: center; gap: 39px; }
.sns-item__icon {
	width: 124px; height: 124px; border-radius: 50%; background: #fff; border: 3px solid var(--ink);
	display: flex; align-items: center; justify-content: center; color: var(--ink); transition: .25s;
}
.sns-item__icon:hover { transform: translateY(-5px); }
.sns-item__icon img { width: 40px; }
.sns-item__name { display: none; }
/* フォローする：前面(白＋3pxボーダー) / 背面(緑＋3pxボーダー) の2レイヤー */
.follow { position: relative; display: inline-block; }
.follow::before {
	content: ""; position: absolute; inset: 0; z-index: 0;
	background: var(--green); border: 3px solid var(--ink); border-radius: 100px;
	transform: translate(5px, 5px);
}
.btn-follow {
	position: relative; z-index: 1;
	display: inline-flex; align-items: center; gap: 10px;
	font-weight: 800; font-size: 20px; color: var(--ink);
	background: #fff; border: 3px solid var(--ink); border-radius: 100px;
	padding: 11px 16px 11px 22px; transition: transform .25s ease;
}
.btn-follow:hover,
.btn-follow:active { transform: translate(5px, 5px); }
.btn-follow__arrow {
	width: 19px; height: 19px; background: var(--green); border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center; line-height: 1; flex: 0 0 auto;
}
.btn-follow__arrow img { display: block; width: 5px; height: auto; margin-left: 1px; }

/* =========================================================
   NEWS PAGE
   ========================================================= */
.gnav__list a[aria-current="page"] { color: var(--green); }

.news-page-section {
	min-height: 100vh;
	background: var(--cream);
	padding: 140px 0 225px;
}
.news-page__breadcrumb {
	max-width: 900px;
	margin: 0 auto 115px;
}
.news-page__breadcrumb-list {
	display: flex;
	align-items: center;
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 18px;
	font-weight: 900;
	line-height: 1;
	letter-spacing: .02em;
}
.news-page__breadcrumb-list li { display: flex; align-items: center; }
.news-page__breadcrumb-list li + li { gap: 10px; margin-left: 10px; }
.news-page__breadcrumb-list li + li::before {
	content: "";
	display: block;
	flex: 0 0 auto;
	width: 15px;
	height: 13px;
	background: url("../images/icon_arrow_breadcrumb.svg") center / contain no-repeat;
}
.news-page__header {
	max-width: 900px;
	margin: 0 auto 25px;
}
.news-page__header .sec-title { margin-bottom: 0; }
.news-page__list {
	max-width: 900px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 50px;
}
.news-card--page > a {
	display: block;
	height: 100%;
}
.news-card--page .news-card__body {
	min-height: 188px;
	display: flex;
	flex-direction: column;
}
.news-card--page .news-card__meta { margin-bottom: 0; }

.news-page__pager {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 25px;
	margin-top: 100px;
}
.pager__list {
	display: flex;
	align-items: center;
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.pager__page {
	width: 40px;
	height: 40px;
	-webkit-appearance: none;
	appearance: none;
	border: 0;
	border-radius: 50%;
	display: inline-grid;
	place-items: center;
	background: #bfe5c5;
	color: #29a93f;
	font-size: 17px;
	font-weight: 700;
	line-height: 1;
	padding: 0 0 2px;
	transition: .25s;
	cursor: pointer;
}
.pager__page.is-current {
	background: #29a93f;
	color: #fff;
}
.pager__page:not(.is-current):hover {
	background: #29a93f;
	color: #fff;
}
.pager__page:focus,
.pager__page:focus-visible,
.pager__control:focus,
.pager__control:focus-visible {
	outline: none;
}
.pager__ellipsis {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 40px;
	font-family: "DotGothic16", monospace;
	font-size: 18px;
	line-height: 1;
	color: var(--green);
}
.pager__control {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 3px;
	height: 40px;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
}
.pager__control--first,
.pager__control--last {
	gap: 0;
}
.pager__control--first span + span,
.pager__control--last span + span {
	margin-left: -8px;
}
.pager__control--prev,
.pager__control--last {
	margin-left: -10px;
}
.pager__control span {
	width: 16px;
	height: 16px;
	border-top: 3px solid var(--green);
	border-right: 3px solid var(--green);
	display: block;
	transition: .25s;
}
.pager__control--first span,
.pager__control--prev span {
	transform: rotate(-135deg);
}
.pager__control--last span,
.pager__control--next span {
	transform: rotate(45deg);
}
.pager__control:hover span { border-color: var(--green-dark); }

.news-page__back {
	text-align: center;
	margin-top: 50px;
}
.news-page__back .btn-follow {
	width: 210px;
	justify-content: center;
	gap: 20px;
	font-weight: 700;
	letter-spacing: .04em;
}
.news-page__back .btn-follow:hover,
.news-page__back .btn-follow:active {
	transform: translate(5px, 5px);
}

/* お知らせ詳細 */
.news-single__article {
	max-width: 900px;
	margin: 0 auto;
	padding: 50px 55px 70px;
	background: #fff;
	border: 3px solid var(--green);
	border-radius: 40px;
	box-shadow: 5.7845px 5.7845px 10.412px rgba(34, 24, 21, .35);
}
.news-single__hero-image,
.news-single__body-image {
	overflow: hidden;
	background: var(--gray-ph);
}
.news-single__hero-image {
	aspect-ratio: 16 / 9;
}
.news-single__hero-image img,
.news-single__body-image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.news-single__meta { margin-top: 20px; }
.news-single__meta .pill-green {
	width: 150px;
	height: 27px;
	font-size: 17px;
	line-height: 1;
}
.news-single__title {
	margin: 15px 0 20px;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.6666;
}
.news-single__divider {
	margin: 0 0 24px;
	border-top: 3px solid var(--green);
}
.news-single__body {
	font-size: 14px;
	line-height: 1.17;
}
.news-single__body p { margin: 0; }
.news-single__body-image {
	width: min(100%, 500px);
	aspect-ratio: 16 / 9;
	margin: 30px auto 25px;
}
.news-single__back { margin-top: 90px; }

/* バックナンバー一覧 */
.page-archive { background: #000; }
.archive-page-section {
	position: relative;
	overflow: hidden;
	min-height: 100vh;
	padding: 140px 0 225px;
	background-color: #fff;
	background-image: linear-gradient(rgba(199, 200, 201, 0.125) 1px, transparent 1px), linear-gradient(90deg, rgba(199, 200, 201, 0.125) 1px, transparent 1px);
	background-size: 12px 12px;
}
.archive-page-section .container { position: relative; z-index: 2; }
.archive-page__breadcrumb {
	max-width: 850px;
	margin-bottom: 76px;
	color: #221815;
}
.archive-page__breadcrumb a { color: #221815; }
.archive-page__header {
	max-width: 850px;
	margin: 0 auto 46px;
	color: #221815;
}
.archive-page__header .sec-title { margin: 0; color: inherit; }
.archive-page__header .sec-title__en { color: rgba(34, 24, 21, .55); }
.archive-page__duo {
	position: absolute;
	top: 180px;
	right: 80px;
	width: 420px;
	pointer-events: none;
	z-index: 1;
}
.archive-page__circle { display: none; }
.archive-page__list {
	position: relative;
	z-index: 2;
	max-width: 850px;
	margin: 0 auto;
	display: grid;
	gap: 30px;
	padding: 0;
	list-style: none;
}
.archive-page__item { position: relative; }
.archive-page__item a { position: relative; z-index: 1; }
.archive-page__pager {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 25px;
	margin-top: 80px;
}
.archive-page__back { margin-top: 75px; text-align: center; }
.archive-page__back .btn-follow {
	width: 210px;
	justify-content: center;
	gap: 20px;
	font-weight: 700;
	letter-spacing: .04em;
}
.archive-page__back .btn-follow:hover,
.archive-page__back .btn-follow:active { transform: translate(5px, 5px); }
.archive-page__tver {
	max-width: 850px;
	margin: 0 auto;
}

/* バックナンバー詳細 */
.archive-single__duo {
	position: absolute;
	top: 180px;
	right: 80px;
	width: 420px;
	pointer-events: none;
	z-index: 1;
}
.archive-single__circle { display: none; }
.archive-single__article {
	position: relative;
	z-index: 2;
	max-width: 900px;
	margin: 0 auto;
	padding: 50px 60px 75px;
	background: var(--cream);
	border: 3px solid var(--ink);
	border-radius: 40px;
	box-shadow: 5px 5px 9px rgba(34, 24, 21, .35);
}
.archive-single__hero-image {
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: var(--gray-ph);
}
.archive-single__hero-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.archive-single__meta { margin-top: 20px; }
.archive-single__meta .pill-green { width: 150px; height: 27px; font-size: 17px; }
.archive-single__title { margin: 15px 0 20px; font-size: 18px; font-weight: 700; line-height: 1.65; }
.archive-single__divider { margin: 0 0 24px; border-top: 3px solid var(--ink); }
.archive-single__body { font-size: 14px; line-height: 1.4285; }
.archive-single__body p { margin: 0; }
.archive-single__body p + p { margin-top: 18px; }
.archive-single__back { margin-top: 80px; text-align: center; }
.archive-single__back .btn-follow { width: 210px; justify-content: center; gap: 20px; font-weight: 700; letter-spacing: .04em; }
.archive-single__back .btn-follow:hover,
.archive-single__back .btn-follow:active { transform: translate(5px, 5px); }
.archive-single__tver { max-width: 850px; margin: 0 auto; }

/* 最下部：TAKUROU が右→左へゆっくり無限ループ */
.sns__marquee {
	position: absolute; left: 0; right: 0; bottom: 0; z-index: 1;
	overflow: hidden; pointer-events: none; line-height: 1;
}
.sns__marquee-track {
	display: inline-flex; white-space: nowrap; will-change: transform;
	animation: sns-marquee 100s linear infinite;
}
.sns__marquee-track span {
	font-family: "DotGothic16", monospace; font-size: 156px; line-height: 1; color: #fff;
	padding: 0 47px; letter-spacing: .04em;
	/* DotGothic16は文字の下に余白があるため、その分だけ下げて底に密着させる
	   （下にはみ出た余白は .sns の overflow:hidden で切られる） */
	transform: translateY(.03em);
}
@keyframes sns-marquee {
	from { transform: translateX(0); }
	to   { transform: translateX(-50%); }
}

/* =========================================================
   RESPONSIVE
   ========================================================= */
/* PC(768px〜)：1280pxデザインの比率を保ったまま、画面幅いっぱいに拡大縮小する
   （拡大率は common.js が html の zoom に設定。zoom は単位なし数値のためJSで算出） */

@media (max-width: 767px) {
	/* --- ヘッダー / ハンバーガー --- */
	html.is-menu-open,
	body.is-menu-open { overflow: hidden; }
	.site-header__inner {
		position: relative;
		justify-content: center;
		height: 55px;
		padding: 0 72px;
		border-radius: 0 0 34px 34px;
	}
	.site-header__logo img { width: 123px; }
		.gnav {
			position: fixed; inset: 0;
			display: block;
			width: 100%;
			height: var(--sp-menu-height, 100dvh);
			background: #fe0;
			opacity: 0;
			visibility: hidden;
			pointer-events: none;
			transition: opacity .35s ease, visibility .35s ease;
			overflow-y: auto;
			overflow-x: hidden;
			-webkit-overflow-scrolling: touch;
			overscroll-behavior-y: contain;
			touch-action: pan-y;
			z-index: 110;
		}
	.gnav.active {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
	}
		.gnav__inner {
			position: relative;
			display: block;
			width: 375px;
			/* SPの基準キャンバス高を保ち、zoom時に親高が二重に拡大されるのを防ぐ */
			min-height: 667px;
			margin: 0 auto;
			padding: 0;
			overflow: hidden;
		}
		.gnav__menu-logo {
			display: block;
			position: absolute;
			top: 30px;
			left: 37px;
			z-index: 5;
			width: 212px;
			margin: 0;
			line-height: 0;
		}
		.gnav__menu-logo img {
			display: block;
			width: 100%;
			height: auto;
		}
		.gnav__list {
			display: flex;
			flex-direction: column;
			align-items: flex-start;
			gap: 20px;
			margin: 0;
			padding: 0;
			text-align: left;
			position: absolute;
			left: 43px;
			top: 180px;
			z-index: 4;
		}
		.gnav__list li { padding: 0; }
		.gnav__list li::after { display: none; }
		.gnav__list a {
			font-size: 19px;
			letter-spacing: .04em;
			padding: 0;
			color: var(--ink);
			white-space: nowrap;
		}
		.gnav__list a[aria-current="page"] { color: var(--ink); }
		.gnav__list a[aria-current="page"]::after {
			content: "";
			position: absolute;
			left: 0;
			bottom: -4px;
			width: 100%;
			height: 1px;
			background: var(--ink);
		}
		.gnav__sns {
			display: flex;
			position: absolute;
			left: 43px;
			top: 560px;
			bottom: auto;
			z-index: 5;
			align-items: center;
			gap: 20px;
		}
		.gnav__sns a {
			width: auto;
			height: auto;
			background: transparent;
			border-radius: 0;
			box-shadow: none;
			transform: none;
		}
		.gnav__sns a:hover { transform: none; }
		.gnav__sns a img {
			display: block;
			width: auto;
			height: 23px;
		}
		.gnav__cta { display: none; }
		.gnav__catch {
			display: none;
		}
		.gnav__duo {
			display: block;
			position: absolute;
			right: -50px;
			bottom: -50px;
			width: 310px;
			max-width: none;
			pointer-events: none;
			z-index: 1;
		}
		.gnav__onair {
			display: none;
		}
	.menu-trg-area {
		display: block;
		position: absolute;
		top: 50%;
		right: 22px;
		width: 32px;
		height: 32px;
		margin: 0;
		background: transparent;
		border-radius: 0;
		transform: translateY(-50%);
	}
		.menu-trg-area.active {
			position: fixed;
			top: 30px;
			right: 23px;
			width: 33px;
			height: 33px;
			background: #fff;
			border-radius: 50%;
			transform: none;
			box-shadow: 3.3px 3.3px 5.94px rgba(34, 24, 21, .35);
		}
		.menu-trigger {
			position: absolute;
			inset: 0;
			margin: auto;
			width: 19px;
			height: 15px;
		}
		.menu-trigger span {
			height: 3px;
			background: var(--green);
			border-radius: 999px;
			transform-origin: center;
		}
		.menu-trigger.active { width: 16px; }
		.menu-trg-area.active .menu-trigger span { background: #000; }
		.menu-trigger span:nth-of-type(1) { top: 0; }
		.menu-trigger span:nth-of-type(2) { top: 6px; }
		.menu-trigger span:nth-of-type(3) { bottom: 0; }
		.menu-trigger.active span:nth-of-type(1) { transform: translateY(6px) rotate(-45deg); }
		.menu-trigger.active span:nth-of-type(2) { opacity: 0; transform: scaleX(0); }
		.menu-trigger.active span:nth-of-type(3) { transform: translateY(-6px) rotate(45deg); }

	body { font-size: 14px; }
	.container { padding: 0 25px; }

	.hero__inner { height: 665px; overflow: hidden; }
	.hero__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
	.hero__left { position: absolute; left: 0; top: 0; width: 100%; height: 100%; padding: 0 0 64px; }
	.hero__logo { width: 356px; max-width: none; }
	.hero__catch { display: block; right: 25px; top: 75px; width: 74px; }
	.hero__tver { margin: 31px 0 33px; }
	.onair { position: absolute; width: 100%; height: 64px; padding: 0 16px; }
	.onair__text img { height: 40px; }

	.nexttime { padding: 0; }
	.nexttime__bg { padding-bottom: 34px; padding-top: 45px; }
	.sec-title { font-size: 40px; margin-bottom: 20px; }
	.nexttime__head { display: flex; flex-direction: column; margin-bottom: 160px; }
	.nexttime .sec-title { text-align: center; }
	.nexttime__deco { top: -155px; right: 50%; width: 222px; transform: translateX(50%); }
	.nexttime__hw { width: 100%; }
	.nexttime__duo { top: -120px; right: 50%; bottom: auto; width: 100%; transform: translateX(50%); }

	.schedule-card { margin-top: 6px; }
	.schedule-card__inner {
		flex-direction: column;
		border-radius: 40px;
		border-width: 4px;
		box-shadow: 4.577px 4.577px 8.238px rgba(136, 123, 26, .35);
	}
	.schedule-card__thumb { flex: none; width: 100%; min-height: 0; height: auto; aspect-ratio: 16 / 9; }
	.schedule-card__body { min-height: initial; box-sizing: border-box; padding: 25px 20px 30px; justify-content: flex-start; }
	.schedule-card__meta { gap: 15px; padding-bottom: 18px; }
	.schedule-card__labels { gap: 7px; }
	.schedule-card__values { gap: 7px; }
	.schedule-card__label { margin-left: 0; font-size: 18px; }
	.schedule-card__body .pill-green { width: 118px; height: 33px; font-size: 20px; }
	.schedule-card__date { font-size: 27px; }
	.schedule-card__time { font-size: 17px; }
	.schedule-card__desc { margin-top: 23px; font-size: 15px; line-height: 1.6; }

	.news { padding: 0; }
	.news::before { height: calc(100% - 60px); }
	.news__bg { padding: 6px 0 120px; }
	.news > picture { margin-top: -60px; }
	.news .sec-title { margin-bottom: 27px; }
	.news__list { grid-template-columns: 1fr; gap: 27px; }
	.news-card:only-child { grid-column: auto; width: 100%; }
	.news .news-card { border-width: 4px; border-radius: 28px; box-shadow: 4.577px 4.577px 8.238px rgba(136, 123, 26, .35); }
	.news .news-card:hover { transform: none; box-shadow: 4.577px 4.577px 8.238px rgba(136, 123, 26, .35); }
	.news .news-card > a {
		display: grid;
		grid-template-columns: 113px minmax(0, 1fr);
		align-items: center;
		column-gap: 14px;
		row-gap: 14px;
		padding: 14px 16px;
	}
	.news .news-card__thumb {
		width: 113px;
		height: 75px;
		aspect-ratio: auto;
		grid-column: 1;
		grid-row: 1;
		border-radius: 12px;
		overflow: hidden;
	}
	.news .news-card__body { min-height: 0; padding: 0; display: contents; }
	.news .news-card__body .pill-green {
		width: 120px;
		height: 21px;
		margin: 0;
		font-size: 14px;
		grid-column: 2;
		grid-row: 1;
		justify-self: end;
		align-self: end;
	}
	.news .news-card__title { grid-column: 1 / -1; grid-row: 2; font-size: 15px; line-height: 1.6; }
	.news .follow { display: block; width: 100%; }
	.news .btn-follow { position: relative; width: 100%; min-height: 63px; font-size: 16px; gap: 0; }
	.news .btn-follow__arrow { position: absolute; right: 16px; top: 50%; transform: translateY(-50%); }
	.news .btn-wrap { margin-bottom: 0; margin-top: 30px; }

	.btn-more { font-size: 15px; gap: 16px; padding: 14px 22px 14px 28px; }

	.archive { margin-top: -60px; padding: 110px 0 80px; }
	.archive__head { margin-bottom: 15px; }
	.archive .sec-title { margin-bottom: 15px; }
	.archive__duo { width: 100px; left: -10px; bottom: -55px; top: initial; }
	.archive__circle--1 { width: 82px; height: 82px; right: -18px; top: 500px; }
	.archive__circle--2 { width: 110px; height: 110px; left: -44px; top: 950px; }
	.archive__circle--3 { width: 126px; height: 126px; right: -56px; top: 1220px; }
	.archive__list { gap: 30px; padding: 0; }
	.archive-item { position: relative; }
	.archive-item::before { display: none; }
	.archive-item a {
		position: relative;
		z-index: 1;
		display: flex;
		flex-direction: column;
		border: 4px solid var(--green);
		border-radius: 28px;
		box-shadow: 4.577px 4.577px 8.238px rgba(136, 123, 26, .35);
	}
	.archive-item a:hover { transform: none; box-shadow: 4.577px 4.577px 8.238px rgba(136, 123, 26, .35); }
	.archive-item__thumb { flex: none; width: 100%; min-height: 0; aspect-ratio: 3 / 2; }
	.archive-item__body { position: relative; display: flex; min-height: 108px; padding: 20px 16px 35px 20px; gap: 20px; }
	.archive-item__body .pill-green { width: 120px; height: 21px; font-size: 14px; padding-bottom: 1px; }
	.archive-item__content { width: 100%; align-items: center; gap: 20px; }
	.archive-item__content .archive-item__title { flex: 1 1 auto; }
	.archive-item__title { font-size: 15px; line-height: 1.6; }
	.archive-item__arrow { position: static; flex: 0 0 25px; margin: 0; width: 25px; height: 25px; }
	.archive-item__arrow img { width: 6px; }

	.archive__actions { margin-top: 50px; }
	.archive__list-btn .follow { width: 100%; }
	.archive .btn-follow { width: 100%; min-height: 42px; gap: 0; font-size: 13px; border-width: 2px; }
	.archive .follow::before { border-width: 2px; transform: translate(4px, 4px); }
	.archive .btn-follow:hover,
	.archive .btn-follow:active { transform: translate(4px, 4px); }
	.archive .btn-follow__arrow { position: absolute; right: 14px; top: 50%; width: 13px; height: 13px; transform: translateY(-50%); }
	.archive .btn-follow__arrow img { width: 4px; }
	.miss-cta { padding: 23px 0 0; }
	.miss-cta__frame { --miss-cta-offset: 4px; }
	.miss-cta__btn { min-height: 48px; box-sizing: border-box; font-size: 13px; padding: 10px 14px; gap: 8px; border-width: 2px; }
	.miss-cta__frame::before { border-width: 2px; }
	.miss-cta__icon img { width: 42px; }
	.miss-cta__arrow { width: 20px; height: 20px; }
	.miss-cta__arrow img { width: 5px; }
	.miss-cta__label { text-align: center; }

	.gallery {
		--gallery-back-h: 205px;
		--gallery-card-w: 260px;
		--gallery-gap: 24px;
		--gallery-rail-angle: 0deg;
		--gallery-wave-duration: 8s;
		padding: 60px 0 70px;
	}
	.gallery::before {
		top: -19px;
		height: 20px;
		background-image: radial-gradient(circle at 20px 20px, var(--yellow) 20px, transparent 20.5px);
		background-size: 40px 40px;
		animation-name: gallery-wave-flow-sp;
	}
	.gallery__bg { height: calc(100% - var(--gallery-back-h) + 6px); }
	.gallery__back {
		/* 375px SP canvas: 375 * tan(9.068deg) = 59.8725px. */
		clip-path: polygon(0 0, 100% 0, 100% calc(100% - 59.8725px), 0 100%);
	}
	.gallery__bottom-wave {
		/* Anchor the first circle center to the left end of the 9.068deg cut. */
		left: -26.91px;
		bottom: -27.5px;
		width: calc(100% + 54px);
		height: 47px;
		background-image: radial-gradient(circle at 23.5px 23.5px, var(--yellow) 23.5px, transparent 24px);
		background-size: 47px 47px;
		animation-name: gallery-wave-flow-reverse-sp-bottom;
		transform: rotate(-9.068deg);
		transform-origin: left top;
	}
	.gallery__marquee {
		gap: 0;
	}
	.gallery__track {
		padding-right: var(--gallery-gap);
	}
	.gallery__slider {
		margin: 12px calc(50% - 187.5px) 0;
		width: 375px;
		padding: 28px 0 40px;
		overflow: hidden;
	}
	.gallery-item { flex: 0 0 var(--gallery-card-w); }
	.gallery-item__thumb { border-radius: 0; }
	.gallery-item figcaption {
		max-width: 100%;
		margin-top: 30px;
		font-size: 15px;
		-webkit-line-clamp: 3;
	}
	.gallery-modal {
		align-items: flex-start;
		box-sizing: border-box;
		overflow-y: auto;
		overscroll-behavior: contain;
		padding: 100px 16px 24px;
		touch-action: pan-y;
		-webkit-overflow-scrolling: touch;
	}
	.gallery-modal__dialog { width: calc(100vw - 60px); }
	.gallery-modal__image { width: 46%; margin: 0 auto; border-radius: 0; }
	.gallery-modal__text { margin-top: 30px; font-size: 15px; line-height: 1.6; }
	.gallery-modal__close {
		top: 14px;
		right: 14px;
		width: 32px;
		height: 32px;
	}
	.gallery-modal__close::before,
	.gallery-modal__close::after { width: 16px; height: 2px; }

	.cast { padding: 250px 0 125px; }
	.cast .sec-title { margin-bottom: 40px; }
	.cast__orange--1 { width: 91px; top: 715px; right: -28px; z-index: 4; }
	.cast__orange--2 { width: 100px; top: 900px; left: -22px; }
	.cast__orange--3 { width: 70px; top: 575px; left: 5px; }
	.cast__orange--4 { width: 33px; top: 400px; right: 70px; left: auto; }
	.cast__orange--5 { width: 65px; top: 900px; right: 5px; }
	.cast__orange--6 { width: 53px; top: 535px; right: 25px; left: auto; }
	.cast__orange--7 { width: 97px; top: 1138px; right: 40px; z-index: 4; }
	.cast__circle { display: block; }
	.cast__circle--1 { width: 90px; height: 90px; top: 855px; left: -40px; z-index: 0; }
	.cast__circle--2 { width: 160px; height: 160px; top: 1240px; right: -67px; }
	.cast-row, .cast-row--reverse {
		flex-direction: column;
		align-items: center;
		gap: 0;
		text-align: left;
	}
	.cast-row + .cast-row { margin-top: 70px; }
	.cast-row--reverse .cast-row__photo { transform: none; }
	.cast-row__photo { flex: 0 0 300px; width: 280px; height: 300px; }
	.cast-row__photo-inner,
	.cast-row__photo-inner--02 { width: auto; height: 300px; margin-bottom: -13px; }
	.cast-row__info { width: 280px; padding-top: 0; }
	.cast-row__num {
		grid-template-columns: 50px minmax(0, 1fr);
		column-gap: 22px;
		row-gap: 0;
		max-width: none;
		margin: 0;
		text-align: left;
		padding-bottom: 14px;
	}
	.cast-row__num::after { left: 0; width: 100%; height: 3px; }
	.cast-row:not(.cast-row--reverse) .cast-row__num::after {
		width: calc(100% + 47.5px);
	}
	.cast-row--reverse .cast-row__num::after {
		left: -47.5px;
		width: calc(100% + 47.5px);
	}
	.cast-row__ttl { font-size: 20px; margin-bottom: 2px; }
	.cast-row__no { font-size: 51px; }
	.cast-row__name { font-size: 22px; gap: 10px; white-space: nowrap; margin-bottom: 5px; }
	.cast-row__name small { font-size: 10px; }
	.cast-row__data { gap: 6px; padding-top: 19px; }
	.cast-row__data > div { gap: 10px; }
	.cast-row__data dt { min-width: 61px; min-height: 22px; font-size: 15px; padding: 4px 6px; }
	.cast-row__data dd { font-size: 15px; }

	.sns {
		border-radius: 48px 48px 0 0;
		margin-top: -48px;
		padding: 48px 0 0;
		min-height: 790px;
		text-align: center;
	}
	.sns__body {
		text-align: center;
		padding: 0 28px;
	}
	.sns__hw {
		width: 278px;
		top: 470px;
		left: 50%;
		right: auto;
		transform: translateX(-50%);
	}
	@keyframes home-handwritten-exclaim-sp {
		0% { opacity: 0; transform: translateX(-50%) translateY(42px) rotate(-14deg) scale(.35); filter: drop-shadow(0 0 0 transparent); }
		42% { opacity: 1; transform: translateX(-50%) translateY(-18px) rotate(7deg) scale(1.28); filter: drop-shadow(0 9px 0 rgba(0, 0, 0, .16)); }
		58% { transform: translateX(-50%) translateY(7px) rotate(-5deg) scale(.9); }
		72% { transform: translateX(-50%) translateY(-5px) rotate(3deg) scale(1.1); }
		84% { transform: translateX(-50%) translateY(2px) rotate(-1deg) scale(.98); }
		100% { opacity: 1; transform: translateX(-50%) translateY(0) rotate(0) scale(1); filter: drop-shadow(0 0 0 transparent); }
	}
	.sns__hw.home-handwritten.is-written {
		animation-name: home-handwritten-exclaim-sp, home-handwritten-tick;
	}
	@media (prefers-reduced-motion: reduce) {
		.sns__hw.home-handwritten.is-written { animation: none; }
	}
	.sns .sec-title {
		font-size: 40px;
		line-height: 1;
		letter-spacing: .1em;
	}
	.sns .sec-title__en {
		margin-top: 12px;
		font-size: 14px;
		letter-spacing: .01em;
		color: rgba(0, 0, 0, .55);
	}
	.sns__lead {
		font-size: 19px;
		line-height: 1.45;
		margin: 24px 0 35px;
		letter-spacing: .05em;
	}
	.sns__list {
		justify-content: center;
		gap: 80px;
	}
	.sns-item {
		width: 96px;
		gap: 0;
	}
	.sns-item__icon {
		width: 92px;
		height: 92px;
	}
	.sns-item__icon img { width: 32px; }
	.sns-item__name {
		display: block;
		margin: 16px 0 14px;
		font-weight: 700;
		font-size: 19px;
		line-height: 1.15625;
		letter-spacing: .05em;
		text-align: center;
	}
	.sns-item .follow {
		width: 140px;
	}
	.sns-item .follow::before {
		border-width: 2px;
		transform: translate(4px, 4px);
	}
	.sns-item .btn-follow {
		width: 100%;
		justify-content: center;
		font-size: 15px;
		line-height: 1;
		padding: 12px 10px;
		gap: 4px;
		border-width: 2px;
		white-space: nowrap;
	}
	.sns-item .btn-follow:hover,
	.sns-item .btn-follow:active {
		transform: translate(4px, 4px);
	}
	.sns-item .btn-follow__arrow {
		width: 11px;
		height: 11px;
	}
	.sns-item .btn-follow__arrow img {
		width: 3px;
	}
	.sns__duo {
		display: none;
	}
	.sns__duo-sp {
		display: block;
		position: absolute;
		left: 52%;
		bottom: 0;
		width: 100%;
		max-width: none;
		transform: translateX(-50%);
		z-index: 2;
		pointer-events: none;
	}
	.sns__marquee {
		bottom: 190px;
		overflow: visible;
	}
	.sns__marquee-track span {
		font-size: 64px;
		padding: 0 11px;
		color: #fff;
	}


	.news-card { border-width: 4px; }
	.news-page-section { padding: 120px 0 110px; }
	.news-page__breadcrumb { display: none; }
	.news-page__header {
		margin-bottom: 25px;
	}
	.news-page__header .sec-title {
		font-size: 40px;
		line-height: 1.2;
	}
	.news-page__header .sec-title__en {
		margin-top: 8px;
		font-size: 14px;
		color: rgba(0, 0, 0, .25);
	}
	.news-page__list {
		grid-template-columns: 1fr;
		gap: 25px;
	}
	.news-card--page {
		border-radius: 28px;
		box-shadow: 4.577px 4.577px 8.238px rgba(136, 123, 26, .35);
	}
	.news-card--page:hover { box-shadow: 4.577px 4.577px 8.238px rgba(136, 123, 26, .35); }
	.news-card--page > a {
		display: grid;
		grid-template-columns: 113px minmax(0, 1fr);
		align-items: center;
		column-gap: 14px;
		row-gap: 16px;
		padding: 18px 16px;
	}
	.news-card--page .news-card__thumb {
		width: 113px;
		height: 75px;
		aspect-ratio: auto;
		grid-column: 1;
		grid-row: 1;
		border-radius: 12px;
		overflow: hidden;
	}
	.news-card--page .news-card__body {
		min-height: 0;
		padding: 0;
		display: contents;
	}
	.news-card--page .news-card__meta {
		grid-column: 2;
		grid-row: 1;
		display: flex;
		align-self: end;
		justify-content: flex-end;
		align-items: center;
		margin-bottom: 0;
	}
	.news-card--page .news-card__body .pill-green {
		width: 120px;
		height: 21px;
		margin-bottom: 0;
		font-size: 14px;
	}
	.news-card--page .news-card__title {
		grid-column: 1 / -1;
		grid-row: 2;
		font-size: 15px;
		line-height: 1.6;
	}
	.news-page__pager {
		max-width: 100%;
		gap: 8px;
		margin-top: 44px;
	}
	.pager__list { gap: 12px; }
	.pager__page {
		width: 31px;
		height: 31px;
		font-size: 14px;
		padding: 0 0 1px;
	}
	.pager__control--first span + span, 
	.pager__control--last span + span { margin-left: -5px; }
	.pager__control--prev,
	.pager__control--last {
		margin-left: -4px;
	}
	.pager__item--desktop { display: none; }
	.pager__page--desktop { display: none; }
	.pager__ellipsis {
		display: flex;
		width: 18px;
		height: 38px;
		font-size: 18px;
	}
	.pager__control { min-width: 24px; height: 38px; }
	.pager__control--first,
	.pager__control--last { gap: 0; }
	.pager__control span {
		width: 13px;
		height: 13px;
		border-top-width: 3px;
		border-right-width: 3px;
	}
	.news-page__back {
		margin-top: 42px;
	}
	.news-page__back .follow {
		width: min(100%, 326px);
	}
	.news-page__back .follow::before {
		transform: translate(5px, 6px);
	}
	.news-page__back .btn-follow:hover,
	.news-page__back .btn-follow:active {
		transform: translate(5px, 6px);
	}
	.news-page__back .btn-follow {
		width: 100%;
		min-height: 55px;
		justify-content: center;
		gap: 0;
		padding: 0 48px;
		font-size: 16px;
	}
	.news-page__back .btn-follow__arrow {
		position: absolute;
		right: 24px;
		top: 50%;
		transform: translateY(-50%);
		width: 14px;
		height: 14px;
	}
	.news-page__back .btn-follow__arrow img {
		width: 4px;
	}
	.news-single__article {
		padding: 18px 16px 24px;
		border-width: 4px;
		border-radius: 28px;
		box-shadow: 4.577px 4.577px 8.238px rgba(136, 123, 26, .35);
	}
	.news-single__hero-image,
	.news-single__body-image { border-radius: 20px; }
	.news-single__meta { margin-top: 18px; }
	.news-single__meta .pill-green {
		width: 120px;
		height: 21px;
		font-size: 14px;
	}
	.news-single__title {
		margin: 14px 0 22px;
		font-size: 15px;
		line-height: 1.6;
	}
	.news-single__divider {
		margin-bottom: 24px;
		border-top-width: 3px;
	}
	.news-single__body {
		font-size: 13px;
		line-height: 1.384;
	}
	.news-single__body-image {
		width: 100%;
		margin: 28px auto;
	}
	.archive-page-section {
		padding: 105px 0 110px;
		background-size: 12px 12px;
	}
	.archive-page__breadcrumb { display: none; }
	.archive-page__header {
		margin-bottom: 26px;
	}
	.archive-page__header .sec-title {
		font-size: 40px;
		line-height: 1.2;
	}
	.archive-page__header .sec-title__en {
		margin-top: 12px;
		font-size: 14px;
		color: rgba(34, 24, 21, .55);
	}
	.archive-page__duo {
		top: 158px;
		right: 25px;
		width: 112px;
	}
	.archive-page__circle {
		display: block;
		position: absolute;
		width: 40px;
		height: 40px;
		background: var(--yellow);
		border-radius: 50%;
		z-index: 1;
	}
	.archive-page__circle--1 { top: 140px; right: -5px; }
	.archive-page__circle--2 { top: 410px; left: -80px; width: 160px; height: 160px; }
	.archive-page__circle--3 { top: 1060px; right: -70px; width: 194px; height: 194px; }
	.archive-page__circle--4 { top: 2720px; left: -44px; width: 88px; height: 88px; }
	.archive-page__circle--5 { top: 3080px; right: -70px; width: 162px; height: 162px; }
	.archive-page__circle--1 { --archive-circle-radius: 12px; animation: archive-circle-orbit 7.2s linear infinite; }
	.archive-page__circle--2 { --archive-circle-radius: 18px; animation: archive-circle-orbit 8.4s linear infinite reverse; }
	.archive-page__circle--3 { --archive-circle-radius: 22px; animation: archive-circle-orbit 9.1s linear infinite; }
	.archive-page__circle--4 { --archive-circle-radius: 14px; animation: archive-circle-orbit 6.8s linear infinite reverse; }
	.archive-page__circle--5 { --archive-circle-radius: 20px; animation: archive-circle-orbit 8.7s linear infinite; }
	.archive-page__list {
		gap: 26px;
		padding: 0;
	}
	.archive-page__item a {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: auto auto;
		border-width: 4px;
		border-radius: 28px;
		box-shadow: 4.577px 4.577px 8.238px rgba(136, 123, 26, .35);
	}
	.archive-page__item .archive-item__thumb {
		grid-column: 1;
		grid-row: 1;
		width: 100%;
		min-height: 0;
		aspect-ratio: 3 / 2;
	}
	.archive-page__item .archive-item__body {
		grid-column: 1;
		grid-row: 2;
		position: relative;
		display: flex;
		min-height: 130px;
		padding: 18px 60px 30px 20px;
		gap: 12px;
	}
	.archive-page__item .archive-item__body .pill-green {
		width: 120px;
		height: 21px;
		font-size: 14px;
		padding-bottom: 1px;
	}
	.archive-page__item .archive-item__title {
		font-size: 15px;
		line-height: 1.6;
	}
	.archive-page__item .archive-item__arrow {
		position: static;
		grid-column: 1;
		grid-row: 2;
		justify-self: end;
		align-self: center;
		margin: 0 18px 0 0;
		width: 25px; 
		height: 25px;
	}
	.archive-page__pager { display: none; }
	.archive-page__back { margin-top: 40px; }
	.archive-page__back .follow { width: 100%; }
	.archive-page__back .follow::before { transform: translate(5px, 6px); }
	.archive-page__back .btn-follow {
		width: 100%;
		min-height: 56px;
		padding: 0 38px;
		font-size: 16px;
		gap: 0;
	}
	.archive-page__back .btn-follow:hover,
	.archive-page__back .btn-follow:active { transform: translate(5px, 6px); }
	.archive-page__back .btn-follow__arrow {
		position: absolute;
		right: 16px;
		top: 50%;
		width: 16px;
		height: 16px;
		transform: translateY(-50%);
	}
	.archive-page__back .btn-follow__arrow img { width: 4px; }
	.archive-page__tver { max-width: none; padding-top: 30px; }
	.archive-page__tver .miss-cta__btn { min-height: 56px; padding: 8px 14px; gap: 6px; font-size: 16px; }
	.archive-page__tver .miss-cta__icon img { width: 40px; }
	.archive-page__tver .miss-cta__arrow { width: 18px; height: 18px; }
	.archive-page__tver .miss-cta__arrow img { width: 5px; }

	.archive-single-section .archive-page__header { margin-bottom: 24px; }
	.archive-single__duo { top: 158px; right: 25px; width: 112px; }
	.archive-single__circle {
		display: block;
		position: absolute;
		z-index: 1;
		background: var(--yellow);
		border-radius: 50%;
	}
	.archive-single__circle--1 { top: 140px; right: -5px; width: 40px; height: 40px; }
	.archive-single__circle--2 { top: 410px; left: -80px; width: 160px; height: 160px; }
	.archive-single__circle--3 { top: 1000px; right: -90px; width: 180px; height: 180px; }
	.archive-single__circle--1 { --archive-circle-radius: 12px; animation: archive-circle-orbit 7.2s linear infinite; }
	.archive-single__circle--2 { --archive-circle-radius: 18px; animation: archive-circle-orbit 8.4s linear infinite reverse; }
	.archive-single__circle--3 { --archive-circle-radius: 22px; animation: archive-circle-orbit 9.1s linear infinite; }
	.archive-single__article {
		padding: 20px 20px 30px 20px;
		border-width: 4px;
		border-radius: 28px;
		box-shadow: 4.577px 4.577px 8.238px rgba(136, 123, 26, .35);
	}
	.archive-single__hero-image { border-radius: 20px; }
	.archive-single__meta { margin-top: 18px; }
	.archive-single__meta .pill-green { width: 120px; height: 21px; font-size: 14px; }
	.archive-single__title { margin: 15px 0 20px; font-size: 15px; line-height: 1.6; }
	.archive-single__divider { margin-bottom: 22px; border-top-width: 3px; }
	.archive-single__body { font-size: 13px; line-height: 1.3846; }
	.archive-single__body p + p { margin-top: 17px; }
	.archive-single__back { margin-top: 52px; text-align: center; }
	.archive-single__back .follow { width: 100%; }
	.archive-single__back .follow::before { transform: translate(5px, 6px); }
	.archive-single__back .btn-follow { width: 100%; min-height: 56px; padding: 0 38px; font-size: 16px; gap: 0; }
	.archive-single__back .btn-follow:hover,
	.archive-single__back .btn-follow:active { transform: translate(5px, 6px); }
	.archive-single__back .btn-follow__arrow { position: absolute; right: 16px; top: 50%; width: 16px; height: 16px; transform: translateY(-50%); }
	.archive-single__back .btn-follow__arrow img { width: 4px; }
	.archive-single__tver { display: none; }
	.archive-single__tver .miss-cta__btn { min-height: 56px; padding: 8px 14px; gap: 6px; font-size: 16px; }
	.archive-single__tver .miss-cta__icon img { width: 40px; }
	.archive-single__tver .miss-cta__arrow { width: 18px; height: 18px; }
	.archive-single__tver .miss-cta__arrow img { width: 5px; }
}

@keyframes archive-circle-orbit {
	0% { transform: rotate(0deg) translateX(var(--archive-circle-radius)) scale(1); }
	25% { transform: rotate(90deg) translateX(var(--archive-circle-radius)) scale(1.04); }
	50% { transform: rotate(180deg) translateX(var(--archive-circle-radius)) scale(.98); }
	75% { transform: rotate(270deg) translateX(var(--archive-circle-radius)) scale(1.03); }
	100% { transform: rotate(360deg) translateX(var(--archive-circle-radius)) scale(1); }
}

@media (prefers-reduced-motion: reduce) {
	.archive-page__circle,
	.archive-single__circle { animation: none; }
}

/* Keep existing floating/orbit motion paused until each decoration has revealed. */
.archive__circle.decor-reveal,
.archive-page__circle.decor-reveal,
.archive-single__circle.decor-reveal {
	animation-play-state: paused;
}
.archive__circle.decor-reveal.is-decor-moving,
.archive-page__circle.decor-reveal.is-decor-moving,
.archive-single__circle.decor-reveal.is-decor-moving {
	animation-play-state: running;
}
