/*-----------
reset
-----------*/
* {margin: 0;padding: 0; box-sizing: border-box;}

.cf { zoom: 1; }
.cf:before,.cf:after { content: ""; display: table;}
.cf:after { clear: both;}

li{list-style: none;}
/*-----------
body
-----------*/
body{
    color: var(--color);
    font-size: var(--font-size); 
    width: 100%; 
    line-height: 1.8; 
    font-family: "IBM Plex Mono", "Noto Sans JP", "Hiragino Sans", "Yu Gothic", "Meiryo", sans-serif;
    font-optical-sizing: auto; 
    font-weight: 400;
    background: url(../images/bk.jpg) 0 0 repeat;
    background-size: cover;
    background-attachment: fixed;
  }
img{height: auto;}

@media screen and (max-width: 720px){
	body{width: 100%;}
	img{width: 100%;}
}

/*-----------
commone
-----------*/
a{color: var(--color-a);text-decoration: none;}
a:hover{text-decoration: underline;}
a:hover img{filter:alpha(opacity=1); -moz-opacity: 1; opacity: 1;}
a.nolink{pointer-events: none;cursor: default;}

/*flex box*/
.flex{display: flex; align-items: flex-start; flex-wrap: wrap;}
.flex img{align-items: flex-start;}
.mleft{margin-left: auto;}
.mright{margin-right: auto;}
.mtop{margin-top: auto;}
.mbottom{margin-bottom: auto;}
.spacer {width: 100%; display: block;}

/*SP-on*/
.pc{display: block;}
.sp{display: none;}

@media screen and (max-width: 720px){
    .pc{display: none;}
    .sp{display: block;}
}
.fadein {
    opacity: 0;
    transform: translate(0,0);
    transition: all 1.5s;
  &.fadein-left{
      transform: translate(-30px,0);
  }
  &.fadein-right{
      transform: translate(30px,0);
  }
  &.fadein-up{
      transform: translate(0,-30px);
  }
  &.fadein-bottom{
      transform: translate(0,30px);
  }
  &.scrollin{
    opacity: 1 !important;
    transform: translate(0, 0) !important;
  }
}
@keyframes floatInOut {
  0%   { opacity: 0; transform: scale(0.7) rotate(var(--rot)); }
  20%  { opacity: 1; transform: scale(1)   rotate(var(--rot)); }
  80%  { opacity: 1; transform: scale(1)   rotate(var(--rot)); }
  100% { opacity: 0; transform: scale(0.7) rotate(var(--rot)); }
}
/*-----------
ボタン
-----------*/
a.btn{
    position: relative;
    display: block;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='13' fill='none' viewBox='0 0 13 13'%3E%3Cpath stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' d='M9 .5h3.5V4m-.75-2.75L8 5M6.5 1.5H2A1.5 1.5 0 0 0 .5 3v8A1.5 1.5 0 0 0 2 12.5h8a1.5 1.5 0 0 0 1.5-1.5V6.5'/%3E%3C/svg%3E");
    background-color: var(--nendoroid-orange);
    background-size: 17px auto;
    background-repeat: no-repeat;
    background-position: 90% 50%;
    color: #FFF;
    text-align: center;
    padding: 1em;
    max-width: 550px;
    width: 100%;
    margin: 0 auto;
    text-decoration: none;
    font-weight: bold;
    z-index: 4;
    font-size: var(--font-size2);
    transition: 0.3s;
    border-radius: 100px;
    border: 1px solid var(--nendoroid-orange);
}
a.btn:hover { 
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='13' fill='none' viewBox='0 0 13 13'%3E%3Cpath stroke='%23F39800' stroke-linecap='round' stroke-linejoin='round' d='M9 .5h3.5V4m-.75-2.75L8 5M6.5 1.5H2A1.5 1.5 0 0 0 .5 3v8A1.5 1.5 0 0 0 2 12.5h8a1.5 1.5 0 0 0 1.5-1.5V6.5'/%3E%3C/svg%3E");
    background-color: #FFF;
    color: var(--nendoroid-orange);
}
/*---------
　Font
---------*/
.noto_sans_jp{
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-style: normal;
  font-weight: 600;
}
.nova_flat_regular {
  font-family: "Nova Flat", system-ui;
  font-weight: 400;
  font-style: normal;
}
/*-----------
scroll
-----------*/
.window-scroll,.window-open{transform: translateY(100px); opacity: 0;}
.window-open.up,.window-scroll.up{animation: up01 1s ease forwards; transform: translateY(0); opacity: 1;}

@keyframes up01{
	0%{transform: translateY(100px); opacity: 0;}
}

/*-----------
Header
-----------*/
header {
  position: fixed;
  top: 0;
  left: 0;
  display: flex;
  flex-direction: column; 
  align-items: center;
  height: 100%;
  width: 350px;
  z-index: 2;
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-width: thin;
}
header::-webkit-scrollbar {
  width: 4px;
}
header::-webkit-scrollbar-thumb {
  background: #ddd;
  border-radius: 4px;
}
header .inner {
  padding: 30px 0; 
  margin: 0 auto;
  width: 80%;
  height: auto;
}
header .logo ul {
  display: flex;
  align-items: center;
}
header .logo ul li { 
  margin: 0 1em 0 0;
  color: #000;
  font-size: 120%;
  font-weight: 700;
  width: auto;
  height: 45px;
  line-height: 45px;
}
header .logo ul li img { width: auto; height: 45px; }
header .logo ul li a{
  display:inline-flex;
  align-items:center;
  height:100%;
}

h1 {
  display: flex;
  flex-direction: column;
  font-size: 12px;
  align-items: center;
  font-weight: normal;
  color: #7E7E7E;
  margin-bottom: 2em;
}
/* G.S.Collection logo (wide lockup) over the gray "Scale Figure Gallery" subheader. The link
   (back to the top page) is layout-transparent so the h1 flex rules still apply to its children. */
h1 a,
h1 a:hover {
  display: contents;
  color: inherit;
  text-decoration: none; /* no underline on the subheader (global a:hover underlines) */
}
h1 img {
  width: auto;
  height: 56px;
  margin-bottom: 10px;
}
.accordion_menu {

}
.accordion_toggle {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  width: 100%;
  background: none;
  border: none;
  text-align: left;
  font: inherit;
  cursor: pointer;
  padding: 0;
  flex-direction: row-reverse;
  margin-bottom: .5em;
  color: var(--color);
}
.accordion_toggle::after {
	content: "";
	width: 0;
	height: 0;
	border-style: solid;
	border-right: 5px solid transparent;
	border-left: 5px solid transparent;
	border-top: 5px solid #000000;
	border-bottom: 0;
	margin-right: 8px;
	flex-shrink: 0;
	transition: transform 0.3s ease;
  transform: rotate(-90deg);
}
.accordion_toggle:not(.is_open)::after {
	transform: rotate(0deg);
}
@media (prefers-reduced-motion: reduce) {
	.accordion_toggle::after {
		transition: none;
	}
}
.accordion_body {
	overflow: hidden;
	max-height: 1000px;
	transition: max-height 0.3s ease;
}

.accordion_body.is_closed {
	max-height: 0;
}

/* Sidebar headings (rework 2026-09-24): BRAND is a plain always-open heading — the collapse
   arrow confused more than it helped. PRODUCT keeps an arrow, but with real semantics: it
   toggles between the full year list and a 3-date collapsed state (see gallery.js, which also
   auto-collapses when the viewport cannot fit the default range down to ~2009). Both reuse the
   old accordion_toggle look; final.js's generic accordion binding no longer applies to either. */
.side_heading {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  width: 100%;
  flex-direction: row-reverse;
  margin-bottom: .5em;
  color: var(--color);
}
.year_toggle {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  width: 100%;
  background: none;
  border: none;
  text-align: left;
  font: inherit;
  cursor: pointer;
  padding: 0;
  flex-direction: row-reverse;
  margin-bottom: .5em;
  color: var(--color);
}
.year_toggle::after {
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-right: 5px solid transparent;
  border-left: 5px solid transparent;
  border-top: 5px solid #000000;
  border-bottom: 0;
  margin-right: 8px;
  flex-shrink: 0;
  transition: transform 0.3s ease;
  transform: rotate(-90deg);
}
.year_toggle[aria-expanded="false"]::after {
  transform: rotate(0deg);
}
/* Collapsed year list: exactly three rows, no scroll — expand to see the rest. */
header ul.product.years_collapsed {
  max-height: calc(3 * 2.3em);
  overflow-y: hidden;
  flex: none;
  min-height: 0;
}
ul.product {
  margin-bottom: 15px;
}
/* Desktop: the year list is the scroll container — the sidebar itself stays put, and the
   black-on-transparent scrollbar is the "more years" indicator (replaces the View More fold).
   Flex chain (inner → nav → menu → list) hands the list the leftover viewport height. */
@media (min-width: 901px) {
  header .inner {
    display: flex;
    flex-direction: column;
    height: 100%;
  }
  header .header_nav {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    /* Fixed, not content-sized: the column used to take its width from the widest brand logo,
       so swapping logos resized every button. 206px = the original G.S.Collection-logo width. */
    width: 206px;
  }
  /* Everything except the year accordion keeps its natural height — only the year list is
     allowed to give up space. */
  header .header_nav > *:not(:first-child) {
    flex-shrink: 0;
  }
  header .header_top {
    flex-shrink: 0;
  }
  header .header_nav > .accordion_menu:first-child {
    display: flex;
    flex-direction: column;
    /* Explicit em floor (NOT content-derived — flex min-content with a scroll-container child
       balloons): PRODUCT toggle + three year rows always stay visible; past that the blocks
       below push into the sidebar's own scroll. overflow guards against paint-over. */
    min-height: calc(2.5em + 3 * 2.3em);
    overflow: hidden;
  }
  header ul.product {
    overflow-y: auto;
    /* Floor of ~3 rows: below this the list stops shrinking and the sidebar itself scrolls
       (header has overflow-y) — the flex squeeze used to make the blocks below overlap. */
    min-height: calc(3 * 2.3em);
    scrollbar-width: thin;
    /* Thumb is invisible until the pointer is over the list — scrolling needs the cursor
       there anyway, so hover ≒ "while using the sidebar scroll". WebKit scrollbar pseudos
       can't transition, so the fade rides on `color` (animatable) and the thumb paints with
       currentColor. Year text is unaffected: it sits in <a>, which has its own color. */
    color: rgba(0, 0, 0, 0);
    transition: color 0.25s ease;
    scrollbar-color: transparent transparent;
    /* Slight fade at the list's bottom edge as a "more years below" cue. mask, not an
       overlay: it works over the textured page background. */
    mask-image: linear-gradient(to bottom, #000 calc(100% - 24px), transparent);
    -webkit-mask-image: linear-gradient(to bottom, #000 calc(100% - 24px), transparent);
  }
  /* --color-a is undefined, so <a> falls back to inherited color — pin the year links or
     they would ride the scrollbar fade above. */
  header ul.product a {
    color: var(--color);
  }
  header ul.product:hover {
    color: rgba(0, 0, 0, 0.22);
    /* Firefox has no scrollbar animation path — it snaps in. */
    scrollbar-color: rgba(0, 0, 0, 0.22) transparent;
  }
  header ul.product::-webkit-scrollbar {
    width: 6px;
  }
  header ul.product::-webkit-scrollbar-track {
    background: transparent;
  }
  header ul.product::-webkit-scrollbar-thumb {
    background-color: currentColor;
    border-radius: 3px;
  }
}
ul.product li {
 padding-left: 1em;
  display: flex;
  align-items: center;
  justify-content:space-between;
  margin-bottom: .5em;
}
ul.product li.active {
  background: #F2F2F2;
  padding-left: 2em;
}
ul.product li.active::after {
  content: "";
	width: 0;
	height: 0;
	border-style: solid;
	border-right: 5px solid transparent;
	border-left: 5px solid transparent;
	border-top: 5px solid #000000;
	border-bottom: 0;
	margin-right: 8px;
  transform: rotate(-90deg);
}
ul.product li a {
  transition: .3s ease;
}
/* ---- もっと見る ---- */
ul.product li.year_more_item {
	display: block;
	padding-left: 0;
	margin-bottom: 0;
}

.year_more_list {
	max-height: 0;
	overflow: hidden;
	transition: max-height .3s ease;
}
.year_more_list.is_open {
	/* Tall enough for the full 2006+ archive; the fixed sidebar itself scrolls (overflow-y). */
	max-height: 1200px;
}
.year_more_list li {
	padding-left: 0; 
	margin-bottom: .5em;
}
.year_more_list li.active {
	background: #F2F2F2;
}
.year_more_list li.active::after {
	content: "";
	width: 0;
	height: 0;
	border-style: solid;
	border-right: 5px solid transparent;
	border-left: 5px solid transparent;
	border-top: 5px solid #000000;
	border-bottom: 0;
	margin-right: 8px;
	transform: rotate(-90deg);
}
.year_more_btn {
  font-size: 12px !important; 
	background: none;
	border: none;
	font: inherit;
	color: #999;
	padding-left: 1em;
	cursor: pointer;
	display: flex;
	align-items: center;
	gap: 6px;
	width: 100%;
}
.year_more_icon {
	flex-shrink: 0;
	transition: transform .3s ease;
}
.year_more_btn[aria-expanded="true"] .year_more_icon {
	transform: rotate(180deg);
}


ul.brand li {
  background: #FFF;
  text-align: center;
  margin-bottom:10px;
}
ul.brand li img {
  height: 45px;
  width: auto;
  display: block; 
  margin: 0 auto;
}
ul.brand li a {
  display: block;
  padding: 10px;
  border-radius: 20px;
  border: 1px solid #E8E8E8;
  transition: .3s ease;
}
ul.brand li a:hover {
  background-color: #E8E8E8;
}
.header_btn,
.language {
  border: 1px solid #E8E8E8;
  display: block;
  width: 100%;
  text-align: center;
  background: #FFF;
  border-radius: 100px;
  margin-bottom: 10px;
  padding: 3px;
  font-size: 14px;
  transition: .3s ease;
}
.header_btn {
  background: url(../images/blank.png) 95% 50% no-repeat;
  background-size: 10px auto;
}
.header_btn:hover {
  background: url(../images/blank.png) 95% 50% no-repeat #E8E8E8;
  background-size: 10px auto;
}
.header_btn:last-of-type{
  margin-bottom: 15px;
}
ul.language  {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
ul.language li a {
  transition: .3s ease;
}
ul.language li:first-child::after {
  content: "|";
  font-size: 90%;
  margin-left: 8px;
}
ul.language li.active a,
ul.language li a:hover {
  color: #EE7800;
}


/*-----------
 Main List
-----------*/
.list {
  padding-left: 350px;
  margin-top: 30px;
}
.list .inner {
  width: 92%;
  max-width: 1100px;
  margin: 0 auto 50px auto;
  background: #FFF;
  padding: 50px 100px;
  border-radius: 20px;
  border: 1px solid #E8E8E8;
}
.list hr {
  margin-bottom: 30px;
  background-color: #E8E8E8;
  height: 1px;
  border: none;
}
.feature_site_area img {
  max-width: 100%;
  height: auto;
}
.list h2,
.list h3 {
  font-weight: normal;
}
.list h2 {
  font-size: 16px;
  margin-top: 20px;
  margin-bottom: 15px;
  color: #7E7E7E;
}
.list .brand h2 {
  margin-top: 25px;
}
.list h2:first-child {
  margin-top: 0;
}
.list h3 {
  display: inline-block;
  margin: 8px auto;
  font-size: 16px;
}
.feature_site {
  margin-bottom: 30px;
}
.feature_site a.site_image {
  border: 1px solid #E8E8E8;
  display: block;
  margin-bottom: 20px;
  overflow: hidden;
}
.feature_site img {
  display: block;
  /* Sizing lived on .feature_site_area img; the card now also renders inline in .figure_list,
     so it must constrain itself wherever it appears. */
  max-width: 100%;
  height: auto;
  transition: transform .3s ease;
}
.feature_site img:hover {
  transform: scale(1.03);
}
.feature_site .date {
  display: flex;
  justify-content: space-between;
  color: #7E7E7E;
}
.credit {
  font-size: 14px;
  display: flex;
}
.credit dt {
  background: url(../images/tag.png) 0 50% no-repeat;
  background-size: 15px;
  /* min, not fixed: EN labels (Paintwork) are wider than 5em and would run into the credit. */
  min-width: calc(5em + 20px);
  padding-left: 20px;
  margin-right: .5em;
  /* The label itself must never wrap (原型制/作 splits looked broken on long credits). */
  white-space: nowrap;
  flex-shrink: 0;
}
.credit dt:lang(en) {
  min-width: calc(5.5em + 20px); /* fits "Paintwork" so EN rows line up */
  color: #7E7E7E; /* Latin label next to a Latin name blurs together; JA kanji labels don't */
}
.credit dd {
  min-width: 0;
}
/* Card credits (feature + brand cards) come wrapped in one .credit_block: a shared grid, so
   every name starts at the same x whatever the longest label on the card (Illustration,
   Character Design, …). Each row's <dl> dissolves into it. Unwrapped .credit rows (pages built
   before this) keep the flex layout above. */
.credit_block {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr);
  font-size: 14px;
}
.credit_block .credit {
  display: contents;
}

.figure_list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-bottom: 30px;
}

/* List area crossfade + slide: year switches (and the first paint) swap content behind a
   short fade with a little upward motion; the reveal also waits briefly for above-the-fold
   images (see selectYear / revealWhenReady in scripts/gallery.js). */
.figure_list_area {
  transition: opacity .22s ease, transform .22s ease;
}
.figure_list_area.is_switching {
  opacity: 0;
  transform: translateY(14px);
}

/* Brand pages: one flat list, two per row; [SC] badge overlays the photo's top-right corner.
   The white SC logo sits on a dark chip so it reads on light product shots. */
.figure_list.brand_list {
  grid-template-columns: repeat(2, 1fr);
}
.card_caption {
  padding: 10px 2px 0;
}
/* Figure/illustration swap (covers): chip in the frame's bottom-right, above the link. */
.thumb_wrap .img_toggle {
  position: absolute;
  bottom: 8px;
  right: 8px;
  background: rgba(0, 0, 0, 0.55);
  color: #FFF;
  border: none;
  border-radius: 50%;
  width: 30px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 1;
}
.thumb_wrap .img_toggle:hover {
  background: rgba(0, 0, 0, 0.75);
}
/* Manual coming-soon frames reuse thumb_wrap as a non-link span. */
span.thumb_wrap {
  cursor: default;
}
.card_caption .card_name {
  font-size: 15px;
  margin-bottom: 6px;
}

/* A feature-site card inline in the month list spans the full row (see scripts/gallery.js). */
.figure_list .feature_inline {
  grid-column: 1 / -1;
}
.figure_list .feature_inline .feature_site {
  margin-bottom: 0;
}
/* Short hairline between the feature block and the plain grid (rendered by gallery.js) —
   deliberately much shorter than the full-width month <hr> so it can't read as a month break. */
.figure_list .feature_separator {
  grid-column: 1 / -1;
  width: 40px;
  height: 1px;
  background: #E8E8E8;
}

/* Status pills (予約受付中 / 再販). pill_list flows under a feature card's credits;
   pill_badge floats on a plain card's image corner and fades behind the hover overlay. */
.pill {
  display: inline-block;
  background: #E8E8E8;
  color: #333;
  font-size: 12px;
  line-height: 1;
  padding: 5px 10px;
  border-radius: 999px;
  white-space: nowrap;
}
.pill_list {
  display: flex;
  gap: 6px;
  margin-top: 10px;
}
.thumb_wrap .pill_badge {
  position: absolute;
  top: 8px;
  left: 8px;
  /* bounded + wrapping: EN "Preorders Open Now" + "Rerelease" outgrow a card's width on one
     line, so the second pill drops below instead of running off the image */
  right: 8px;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 6px;
  transition: opacity .25s ease;
}
.thumb_wrap:hover .pill_badge {
  opacity: 0;
}

.thumb_wrap {
  position: relative;
  overflow: hidden;
  display: block;
  text-decoration: none;
  color: inherit;
}

.thumb_wrap img {
  display: block;
  width: 100%;
  /* Uniform cells: 5:7 is GSC's standard product shot (750x1050), so most thumbnails render
     uncropped; other ratios get a center crop. */
  aspect-ratio: 5 / 7;
  object-fit: cover;
  transition: transform .3s ease;
}

.thumb_overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, .6);
  color: #FFF;
  display: flex;
  flex-direction: column;
  justify-content: flex-end; 
  align-items: flex-start;
  text-align: left; 
  padding: 1.2em;
  opacity: 0;
  transition:.3s ease;
}

.thumb_wrap:hover .thumb_overlay {
  opacity: 1;
}

.thumb_wrap:hover img {
  transform: scale(1.05);
}

.work_name {
  font-size: 12px;
  margin-bottom: .2em;
}

.item_name {
  margin-bottom: .6em;
}

/* Label column sizes to the widest label (5em minimum keeps the JA look; EN labels are wider). */
.credit_list {
  font-size: 12px;
  display: grid;
  grid-template-columns: minmax(5em, auto) 1fr;
  column-gap: .5em;
}

.credit_list dt {
  color: #CCC;
}

.credit_list dd {
  margin-bottom: .2em;
}

/*-----------
 footer
-----------*/
.back_to_top{
  position: fixed;
  right: 32px;
  bottom: 32px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 22px;
  background: var(--btn_bg);
  border: none;
  border-radius: 8px;
  color: var(--ink);
  font-family: "SFMono-Regular", "Menlo", "Consolas", monospace;
  font-size: 13px;
  letter-spacing: 0.12em;
  cursor: pointer;
  transition: transform 0.25s cubic-bezier(0.22,1,0.36,1),
              box-shadow 0.25s ease,
              background 0.25s ease,
              opacity 0.3s ease,
              visibility 0.3s ease;
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
}

.back_to_top.is_visible{
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.back_to_top:hover{
  transform: translateY(-3px);
}

.back_to_top:active{
  transform: translateY(-1px);
}

.back_to_top_icon{
  display:flex;
  align-items: center;
  font-size: 15px;
  font-weight: 700;
  line-height: 1;
  transition: transform 0.25s cubic-bezier(0.22,1,0.36,1);
}

.back_to_top:hover .back_to_top_icon{
  transform: translateY(-2px);
}

.back_to_top_label{
  line-height: 1;
  white-space: nowrap;
}

footer {
  padding: 0 0 50px 0;
}

.copyright {
  font-size: 12px;
  text-align: center;
}

/*-----------
 Brand
-----------*/
.brand_mv img {
  display: block;
  max-width: 100%;
  height: auto;
}
.text_link {
  display:inline-block;
  padding-left: 1.5em;
  position: relative;
}
.brand p {
  margin-bottom: 15px;
}
.text_link::after {
  position: absolute;
  top: 11px;
  left: 4px;
	content: "";
	width: 0;
	height: 0;
	border-style: solid;
	border-right: 5px solid transparent;
	border-left: 5px solid transparent;
	border-top: 5px solid #000000;
	border-bottom: 0;
	flex-shrink: 0;
	transition: transform 0.3s ease;
  transform: rotate(-90deg);
}


/*-----------
Responsive
-----------*/
@media (max-width:1200px){
  .list .inner {
    padding: 50px;
  }
}

@media (max-width:900px){
body{
    background: url(../images/bk_sp.jpg) 0 0 repeat;
  }
  header{
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: auto;
    flex-direction: row;
    overflow: visible;
    z-index: 100;
    background: #FFF;
    border-bottom: 1px solid #E8E8E8;
  }
  header .inner{
    width: 100%;
    padding: 12px 4%;
    margin: 0;
  }
  .header_top{
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
  }
  h1{
    flex-direction: row;
    align-items: center;
    margin-bottom: 0;
    font-size: 11px;
  }
  h1 img{
    width: auto;
    height: 32px;
    margin-bottom: 0;
    margin-right: 10px;
  }

  /* ナビ本体はJSで #mobileMenuBody へ移動する。JS無効時はここで非表示にしておく */
  .header_nav{
    display: none;
  }

  .list{
    padding-left: 0;
    margin-top: 68px;
  }

  .list .inner {
    margin-top: 100px;
  }

  .figure_list{
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }

  /* Phone menu: the year list scrolls in place (5 rows + a peek at the 6th says "more"), so the
     language, buttons and brand logos fit on one screen instead of the whole menu scrolling. */
  .mobile_menu_body ul.product {
    max-height: calc(5.5 * 2.3em);
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  .mobile_menu_body ul.product.years_collapsed {
    max-height: calc(3 * 2.3em);
    overflow-y: hidden;
  }
  .mobile_menu_body ul.brand li { margin-bottom: 8px; }
  .mobile_menu_body ul.brand li a { padding: 8px; }
  .mobile_menu_body ul.brand li img { height: 36px; }
}

@media (max-width:600px){
  /* No hover on phones: the overlay is always on, as a fade over the lower part of the photo
     with just series + product name. */
  .thumb_overlay,
  .thumb_wrap:hover .thumb_overlay {
    opacity: 1;
    background: linear-gradient(to top, rgba(0, 0, 0, .5), transparent 50%);
    padding: .8em;
  }
  .thumb_overlay .item_name {
    margin-bottom: 0;
  }
  .thumb_overlay .credit_list {
    display: none;
  }
  /* Brand pages: one product per row on phones (two is too small to read the credits). */
  .figure_list.brand_list {
    grid-template-columns: 1fr;
  }
  .list .inner{
    padding: 28px 0 0 0;
    border-radius: 0;
    border: none;
    background: none;
    margin-top: 0;
  }
  .feature_site .date{
    gap: 2px;
  }
  .back_to_top{
    right: 16px;
    bottom: 16px;
    padding: 12px 16px;
    font-size: 12px;
  }
  .credit,
  .credit_block {
    font-size: 12px;
  }
}

@media (max-width:320px){
  .figure_list{
    grid-template-columns: 1fr;
  }
}
