@charset "UTF-8";

/******************************************************************************/
/******************************************************************************/
/**
 * Variables
 */

:root {
  --size-header-height: 4rem;
  --size-footer-height: 28rem;

  --size-limit-width-base: 60rem;
  --size-limit-width-wide: 80rem;
  --size-limit-width-min-padding: 2rem;

  --color-dark-primary: #111;
  --color-dark-primary-text: #fff;
  --color-dark-primary-link-hover: #f33;

  --color-light-primary: #fff;
  --color-light-primary-text: #111;
  --color-light-primary-link-hover: #f33;

  --value-layer-structure: 100;

  --font-sans: "IBM Plex Sans", sans-serif;

  --value-golden-ratio: 1.618;
}

@media screen and (max-width: 48rem) {
  :root {
    --size-limit-width-min-padding: 1.5rem;
  }
}

@media screen and (max-width: 30rem) {
  :root {
    --size-limit-width-min-padding: 1rem;
  }
}

@media screen and (max-width: 30rem) {
  :root {
    --size-header-height: 4rem;
  }
}

/*
 * Reset styles
 */

*,
*::before,
*::after {
  box-sizing: border-box;
}

body {
  margin: 0;
}

figure {
  margin: 0;
}

ul,
ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

dl {
  margin: 0;
  padding: 0;
}

dt,
dd {
  margin: 0;
}

a {
  text-decoration: none;
}

img,
video {
  vertical-align: bottom;
}

p {
  margin: 0;
  line-height: var(--value-golden-ratio);
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;

  font-size: 1rem;
  line-height: 1;
}

/******************************************************************************/
/******************************************************************************/
/*
 * Structure
 */

html {
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--size-header-height) + 8rem);
}

body {
  min-height: 100dvh;

  position: relative;

  font-family: "Noto Sans JP", sans-serif;
}

.header {
  position: fixed;
  top: 0;

  width: 100%;
  height: var(--size-header-height);

  background: var(--color-dark-primary);
  color: var(--color-dark-primary-text);

  z-index: calc(var(--value-layer-structure) + 100);
}

.footer {
  width: 100%;

  z-index: var(--value-layer-structure);
}

/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/**
 * Common styles
 */

.layout-limit-width-child {
  padding-inline: max(
    var(--size-limit-width-min-padding),
    calc((100% - var(--size-limit-width-base)) / 2)
  );
}

.layout-limit-width-child-wide {
  padding-inline: max(
    var(--size-limit-width-min-padding),
    calc((100% - var(--size-limit-width-wide)) / 2)
  );
}

.layout-limit-width-self {
  max-width: min(100%, var(--size-limit-width-base));
}

.layout-limit-width-self-wide {
  max-width: min(100%, var(--size-limit-width-wide));
}

/******************************************************************************/
/*
 * two-column layout
 */

.layout-column-two {
  display: flex;
  flex-direction: row;
  justify-content: center;
  gap: 4rem;
}

@media screen and (max-width: 48rem) {
  .layout-column-two {
    flex-direction: column;
  }
}

.layout-column-two article {
  flex-grow: 1;
  width: 0;
}

@media screen and (max-width: 48rem) {
  .layout-column-two article {
    width: auto;
  }
}

.layout-column-two aside {
  width: min(16rem, calc(100% / 4));
}

@media screen and (max-width: 48rem) {
  .layout-column-two aside {
    width: auto;
  }
}

/******************************************************************************/

strong {
  font-size: 110%;
  font-weight: 700;
}

/*
 * <section> common
 */

.section ~ .section {
  margin-top: 4rem;
}

/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/*
 * Designed parts
 */

/******************************************************************************/
/*
 * General billboard
 */

.section.billboard:not(:has(video)) {
  background-image: url(../img//billboard.jpg);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;

  height: clamp(
    16rem,
    50dvw,
    32rem
  );

  color: var(--color-dark-primary-text);

  display: grid;
  place-items: center;
}

.section.billboard .billboard-title {
  margin-top: 4rem;

  font-family: var(--font-sans);
  font-weight: 700;
}

.section.billboard .billboard-title .category {
  font-size: 2rem;
}

@media screen and (max-width: 48rem) {
  .section.billboard .billboard-title .category {
    font-size: 1.5rem;
  }
}

@media screen and (max-width: 30rem) {
  .section.billboard .billboard-title .category {
    font-size: 1rem;
  }
}

.section.billboard .billboard-title .title {
  font-size: 6.25rem;
}

@media screen and (max-width: 48rem) {
  .section.billboard .billboard-title .title {
    font-size: 4rem;
  }
}

@media screen and (max-width: 30rem) {
  .section.billboard .billboard-title .title {
    font-size: 3rem;
  }
}

/******************************************************************************/
/******************************************************************************/
/*
 * Design
 */

/******************************************************************************/

.header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.header-logo {
  display: inline-block;

  width: 15rem;
}

@media screen and (max-width: 48rem) {
  .header-logo {
    width: 12rem;
  }
}

@media screen and (max-width: 30rem) {
  .header-logo {
    width: 10rem;
  }
}

/******************************************************************************/

.footer {
  margin-top: 8rem;

  padding-block: 2rem;
  background: var(--color-dark-primary);
  color: var(--color-dark-primary-text);
}

@media screen and (max-width: 48rem) {
  .footer {
    margin-top: 4rem;
  }
}

.footer .footer-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto 1fr;

  padding: 1rem;
}

@media screen and (max-width: 48rem) {
  .footer .footer-layout {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.5rem;
  }
}

.footer .footer-layout .company-information {
  grid-row: 1 / 4;
  grid-column: 1 / 2;

  display: flex;
  flex-direction: column;
  align-items: start;
  gap: 1rem;
}

@media screen and (max-width: 30rem) {
  .footer .footer-layout .company-information {
    align-items: center;
    width: 100%;
    margin: 0 auto;
  }
}

footer .footer-layout .footer-logo {
  display: inline-block;

  width: 20rem;
}

@media screen and (max-width: 30rem) {
  footer .footer-layout .footer-logo {
    width: 15rem;
  }
}

.footer .footer-layout .company-caption {
  font-size: 1.05rem;
}

@media screen and (max-width: 30rem) {
  .footer .footer-layout .company-caption {
    font-size: .8rem;
  }
}

.footer .footer-layout .sns-links {
  display: flex;
  justify-content: start;
  gap: 1rem;
}

@media screen and (max-width: 30rem) {
  .footer .footer-layout .sns-links {
    margin: 0 auto;

    width: 100%;

    justify-content: center;
  }
}

.footer .footer-layout .sns-links .sns-link {
  width: 4rem;
}

@media screen and (max-width: 48rem) {
  .footer .footer-layout .sns-links .sns-link {
    width: 3rem;
  }
}

@media screen and (max-width: 30rem) {
  .footer .footer-layout .sns-links .sns-link {
    width: 2.5rem;
  }
}

.footer .footer-layout .footer-nav {
  grid-row: 2 / 3;
  grid-column: 2 / 3;

  min-width: 10rem;
  min-height: 5rem;

  display: flex;
  flex-direction: row;
  justify-content: space-between;
}

.footer .footer-layout .footer-nav .nav-links {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto auto;
  place-items: center start;
  gap: 1rem;

  padding-top: 3rem;
}

.footer .footer-layout .footer-nav a {
  color: var(--color-dark-primary-text);

  font-family: var(--font-sans);
  font-size: 1rem;
}

.footer .footer-layout .footer-nav a:hover {
  color: var(--color-dark-primary-link-hover);
}

.footer .copyright {
  margin: 2rem auto 0;

  font-family: var(--font-sans);
  font-size: 1rem;
  text-align: center;
}

@media screen and (max-width: 48rem) {
  .footer .copyright {
    font-size: .825rem;
  }
}

@media screen and (max-width: 30rem) {
  .footer .copyright {
    font-size: .625rem;
  }
}

/******************************************************************************/
/******************************************************************************/
/*
 * Header navigation on PC
 */

.header .header-nav {
  min-width: 40%;
  height: 100%;

  color: var(--color-dark-primary-text);
  font-family: var(--font-sans);

  position: relative;
}

.header-nav > .categories {
  height: 100%;

  display: flex;
  align-items: center;
  justify-content: end;
  gap: 1rem;

  background: inherit;
}

@media screen and (max-width: 48rem) {
  /* mobile */
  .header-nav > .categories {
    background: var(--color-dark-primary)
  }
}

.header-nav > .categories > .category {
  height: 100%;

  position: relative;
  display: grid;
  place-content: center;
}

@media screen and (max-width: 48rem) {
  /* mobile */
  .header-nav > .categories > .category {
    border-bottom: 1px solid #fff;
    height: auto;

    display: inherit;
    padding: .5rem 1rem;
  }
}

.header-nav > .categories > .category > .label {
  padding: .5rem 0;
}

.header-nav > .categories > .category > .label ~ * {
  position: absolute;
  top: calc(50% + 1.5rem);

  display: none;

  background: var(--color-dark-primary);
  box-shadow:
    .25rem .5rem 1rem rgba(255, 255, 255, .2),
    -.25rem .5rem 1rem rgba(255, 255, 255, .2);
}

@media screen and (max-width: 48rem) {
  /* mobile */
  .header-nav > .categories > .category > .label ~ * {
    position: static;

    display: block;

    box-shadow: none;
  }
}

.header-nav > .categories > .category > .label ~ *.align-right {
  right: -.5rem;
}

.header-nav > .categories > .category:hover > .label ~ * {
  display: inline-block;

  white-space: nowrap;

  z-index: 1;
}

@media screen and (max-width: 48rem) {
  .header-nav > .categories > .category:hover > .label ~ * {
    display: inherit;
  }
}

.header-nav .categories ul > li {
  border-top: 1px solid #fff;
}

@media screen and (max-width: 48rem) {
  .header-nav .categories ul > li {
    border-top: none;
  }
}

.header-nav a {
  color: var(--color-dark-primary-text);
}

.header-nav .link:not(.label) > a {
  display: inline-block;
  width: 100%;

  padding: .5rem 1rem;
}

@media screen and (max-width: 48rem) {
  .header-nav .links a {
    padding: .1rem 1rem;
  }
}

.header-nav .category a:visited {
  color: var(--color-dark-primary-text);
}

.header-nav .category .links a::before {
  content: "-";

  margin-inline-end: .5rem;
  display: inline-block;
}

.header-nav .category a:hover {
  color: var(--color-dark-primary-link-hover);
}

/* -------------------------------------------------------------------------- */
/*
 * Header navigation concerning products
 */

.header-nav .category .products .product > .label {
  padding: .5rem 1rem;
}

@media screen and (max-width: 48rem) {
  .header-nav .category .products .product > .label {
    padding: .1rem 1rem;
  }
}

/* -------------------------------------------------------------------------- */
/*
 * Header navigation on mobile
 */

.header .nav-toggle-label {
  display: none;

  height: 100%;
  display: grid;
  place-items: center end;
}

.header .nav-toggle-label > img {
  grid-column: 1 / 2;
  grid-row: 1 / 2;

  width: 1.5rem;
  height: 1.5rem;

  display: none;
}

@media screen and (max-width: 48rem) {
  .header .nav-toggle-label > img {
    display: inline-block;
  }
}

.header-nav .nav-toggle:not(:checked) ~ .nav-toggle-label > .cross,
.header-nav .nav-toggle:checked ~ .nav-toggle-label > .hamburger {
  display: none;
}

@media screen and (max-width: 48rem) {
  body:has(.header-nav .nav-toggle:checked) {
    overflow: hidden;
  }

  .header-nav .categories {
    position: fixed;
    top: 0;
    left: 150dvw;

    display: block;

    width: 100vw;
    height: 100%;

    padding-top: var(--size-header-height);
    padding-inline: 1.5rem;
    z-index: -1;
    transition: left .3s ease-in-out;

    overflow: auto;
  }

  .header-nav > .categories * {
    display: inherit;
  }

  .header-nav .category > .label a::before {
    content: "-";

    margin-inline-end: .5rem;
    display: inline-block;
  }
}

.header-nav .nav-toggle {
  display: none;
}

.header-nav .nav-toggle:checked ~ .categories {
  left: 0;
}

/******************************************************************************/
/*
 * Home common style
 */

.home .section .title {
  border: none;
}

/******************************************************************************/
/*
 * Home billboard video
 */

.home .section.billboard {
  width: 100%;
}

.home .section.billboard .billboard-video {
  width: 100%;
}

.header {
  transition: background .3s ease-in-out;
}

.header.transparent {
  background: transparent;
}

/******************************************************************************/
/*
 * Home tagline
 */

.home .section.tagline .tagline-segment {
  display: flex;
}

@media screen and (max-width: 48rem) {
  .home .section.tagline .tagline-segment {
    display: block;
  }
}

.home .section.tagline .tagline-segment.text-image {
  flex-direction: row;
}

.home .section.tagline .tagline-segment.image-text {
  flex-direction: row-reverse;
}

.home .section.tagline .tagline-segment .phrase-layout {
  width: 50%;

  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: .75rem;
}

@media screen and (max-width: 48rem) {
  .home .section.tagline .tagline-segment .phrase-layout {
    width: 100%;
    padding: 4rem 0;
  }
}

.home .section.tagline .tagline-segment .phrase-layout .title {
  margin: 0;

  font-family: var(--font-sans);
  font-size: 1.6rem;
  font-weight: 700;
}

.home .section.tagline .tagline-segment .phrase-layout .phrase {
  display: inline;
  font-size: 1.2rem;
  text-align: center;
}

.home .section.tagline .tagline-segment .image-mask {
  width: 50%;
}

/* -------------------------------------------------------------------------- */
/*
 * Home tagline slide in intersection animation
 */

/* -------------------------------------------------------------------------- */
/*
 * Slide in animation
 */

.slide-in,
.fade-in-text {
  transition: all .75s ease-in-out;
}

.slide-in-from-right {
  transform: translateX(100%);
}

.slide-in-from-left {
  transform: translateX(-100%);
}

.slide-in-from-right.active,
.slide-in-from-left.active {
  transform: translateX(0%);
}

/* -------------------------------------------------------------------------- */
/*
 * Fade in animation
 */

.fade-in-text {
  opacity: 0;
  transform: translateY(5rem);
}

.fade-in-text.active {
  opacity: 1;
  transform: translateY(0);
}

/* -------------------------------------------------------------------------- */
/*
 * Hover zoom animation
 */

.home .section.tagline .tagline-segment img:hover {
  transition: transform .3s ease-in-out;
  transform: scale(1.1);
}

.home .section.tagline .tagline-segment .image-mask {
  overflow: hidden;
  width: 50%;
}

@media screen and (max-width: 48rem) {
  .home .section.tagline .tagline-segment .image-mask {
    width: 100%;
  }
}

/******************************************************************************/
/*
 * Home latest news section
 */

.home .section.latest-news {
  margin-top: 4rem;
}

.home .section.latest-news > * + * {
  margin-top: 3rem;
}

.home .section.latest-news .title {
  font-family: var(--font-sans);
  font-size: 1.6rem;
  font-weight: 700;

  text-align: center;
}

.home .section.latest-news .unit.link {
  text-align: center;
}

/******************************************************************************/
/*
 * Home gallery section
 */

.home .section.gallery {
  margin-top: 4rem;
}

.home .section.gallery .title {
  margin: 0 auto;

  font-family: var(--font-sans);
  text-align: center;
}

.gallery-container {
  margin: 2rem auto 0;
  max-width: 72rem;

  display: flex;
  align-items: center;
  justify-content: center;
}

.gallery-guide {
  width: 1rem;

  display: inline-block;
}

.gallery-guide img {
  height: 3rem;
  filter: brightness(0);
}

.gallery-guide:last-of-type img {
  transform: rotate(180deg);
}

.gallery-container.first .gallery-guide:nth-of-type(1) {
  visibility: hidden;
}

.gallery-container.last .gallery-guide:last-of-type {
  visibility: hidden;
}

.gallery-frame {
  margin: 0 auto;

  max-width: min(72rem, calc(100% - 3rem));

  display: flex;
  flex-wrap: nowrap;
  overflow-x: auto;
  gap: .2rem;

  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
}

.gallery-frame > * {
  scroll-snap-align: start;

  flex-shrink: 0;

  width: 100%;
  height: 100%;

  font-size: 10rem;
  text-align: center;
}

.gallery-panel {
  display: grid;

  gap: .2rem;
}

.gallery-panel img {
  width: 100%;
  height: 100%;

  user-select: none;
}

.gallery-panel > [id$="1"] {
  grid-row: 2 / 4;
  grid-column: 1 / 2;
}

.gallery-panel > [id$="2"] {
  grid-row: 1 / 3;
  grid-column: 3 / 4;
}

.gallery-panel > [id$="3"] {
  grid-row: 1 / 2;
  grid-column: 1 / 2;
}

.gallery-panel > [id$="4"] {
  grid-row: 1 / 2;
  grid-column: 2 / 3;
}

.gallery-panel > [id$="5"] {
  grid-row: 2 / 3;
  grid-column: 2 / 3;
}

.gallery-panel > [id$="6"] {
  grid-row: 3 / 4;
  grid-column: 2 / 3;
}

.gallery-panel > [id$="7"] {
  grid-row: 3 / 4;
  grid-column: 3 / 4;
}

/* Gallery Dialog */

.gallery-dialog {
  position: fixed;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;

  display: grid;
  place-items: center;

  background: rgba(0, 0, 0, .5);

  visibility: hidden;

  z-index: 200;
}

.gallery-modal-active {
  visibility: visible;
}

.gallery-modal-image {
  margin: auto;

  border: .5rem rgb(225, 225, 225) solid;

  max-height: 90dvh;
  max-width: 92dvw;

  box-shadow: 0 0 3rem 2rem rgba(0, 0, 0, 0.8);
}

.modal-body {
  overflow: hidden;
}

/******************************************************************************/
/*
 * Home technical supporters and partners section
 */

.home .section.associates {
  margin-top: 4rem;
}

.home .associates-container {
  margin: 5rem auto 3rem;

  max-width: 80rem;
  width: min(50rem, 100%);

  padding: 0 1rem;
  text-align: center;
}

.home .associates-container a {
  text-decoration: none;

  color: #000;
}

.home .associates-container a[href]:hover {
  opacity: .75;
}

.home .associates-container .section-title {
  margin: 3rem auto 1.5rem;
  border-inline-start: none; /* ❌ TODO: purge here */

  font-family: var(--font-sans);
  font-size: 1.25rem;

  font-weight: 700;
  text-align: center;
}

.home .associates-frame {
  width: 100%;

  display: flex;
  flex-wrap: wrap;

  justify-content: center;

  gap: 1rem;
}

.home .associate-item {
  height: 8rem;

  display: grid;
  grid-template-rows: 1fr auto;
  place-items: center;
}

.home .associate-item img {
  flex-grow: 1;

  margin: .5rem 0;

  max-width: 10rem;
}

.home .associate-item div {
  width: 100%;
  height: 100%;

  font-family: var(--font-sans);
  font-size: .75rem;
  font-weight: bold;
}

/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/******************************************************************************/

/*
 * Archax
 */

/******************************************************************************/
/*
 * Tagline section
 */

.archax .section.tagline {
  color: var(--color-dark-primary-text);
  background: var(--color-dark-primary);

  padding: 4rem 1rem;
}

.archax .section.tagline .logo-layout {
  margin: auto;

  width: min(22rem, 100%);
}

.archax .section.tagline .logo-layout .logo {
  width: 100%;
}

.archax .section.tagline .description {
  text-align: center;
}

.archax .section.tagline .description p {
  margin-top: calc(1rem * var(--value-golden-ratio));
}

/******************************************************************************/
/**
 * Specification section
 */

.archax .section.specification {
  margin-bottom: 4rem;

  background: var(--color-dark-primary);
  color: var(--color-dark-primary-text);
  font-family: var(--font-sans);
}

.section-specification-container {
  margin: 0 auto;

  max-width: min(60rem, 100%);

  padding-top: 2rem;
  display: grid;
}

.section-specification-container .specification-caption-layer {
  grid-column: 1 / 2;
  grid-row: 1 / 2;

  padding-left: 2rem;
}

@media screen and (max-width: 48rem) {
  .section-specification-container .specification-caption-layer {
    justify-self: center;
  }
}

.section-specification-container .title {
  margin: 0;
  border-left: .25rem white solid;

  padding-left: 1.5rem;

  font-size: 2.5rem;
}

@media screen and (max-width: 30rem) {
  .section-specification-container .title {
    font-size: 1.5rem;
  }
}

.section-specification-container .specs-list {
  margin: 2rem 1.5rem;
  padding: 0;

  list-style: none;

  font-size: 1rem;

  display: grid;
  grid-template-columns: auto auto 1fr;
}

@media screen and (max-width: 30rem) {
  .section-specification-container .specs-list {
    margin: 2rem .5rem;

    font-size: .8rem;
  }
}

.section-specification-container .specs-list .label {
  text-align: right;
}

.section-specification-container .specs-list .separator {
  padding: 0 .5rem;

  text-align: center;
}

.section-specification-container .specs-list .description {
  text-align: left;
}

.specification-image {
  grid-column: 1 / 2;
  grid-row: 1 / 2;
  justify-self: end;

  height: 100%;
  max-width: 50%;

  overflow: hidden;
}

@media screen and (max-width: 48rem) {
  .specification-image {
    grid-row: 2 / 3;
    justify-self: center;

    max-width: 100%;
  }
}

.specification-image img {
  display: inline;

  height: 30rem;
}

/******************************************************************************/
/**
 * Concept section
 */

.archax .section.concept {
  background: var(--color-light-primary);
  color: var(--color-light-primary-text);
  font-family: var(--font-sans);
}

.archax .section.concept .title {
  margin-inline-start: 2rem;
  border-inline-start: .5rem var(--color-dark-primary) solid;

  font-size: 2.5rem;
  font-weight: 700;
  padding-left: 1rem;
}

@media screen and (max-width: 48rem) {
  .archax .section.concept .title {
    margin-inline-start: auto;
    font-size: 2rem;
  }
}

@media screen and (max-width: 30rem) {
  .archax .section.concept .title {
    font-size: 1.75rem;
  }
}

.archax .section.concept .section-segment {
  margin: 3rem 0;
  display: flex;
  flex-direction: row;
  justify-content: center;
  gap: 1rem;
}

.archax .section.concept .section-segment > * {
  flex-grow: 1;
  width: 0;
}

.archax .section.concept .section-segment .caption {
  max-width: 50%;
}

.archax .section.concept .section-segment .caption .lead {
  display: inline-block;
  background: var(--color-dark-primary);
  color: var(--color-dark-primary-text);
  font-size: 1rem;
  white-space: nowrap;

  padding: .25rem 1rem;
}

.archax .section.concept .section-segment .caption .description {
  font-size: 1rem;
  line-height: var(--value-golden-ratio);
  overflow: visible;
}

@media screen and (max-width: 30rem) {
  .archax .section.concept .section-segment .caption .description {
    font-size: .875rem;
  }
}

.archax .section.concept .section-segment .caption .description > p {
  margin-top: 1rem;
}

.archax .section.concept .section-segment .image {
  max-width: 14rem;
  max-height: 20rem;
}

.archax .section.concept .section-segment .image img {
  max-width: 100%;
  max-height: 100%;
}

@media screen and (max-width: 48rem) {
  .archax .section.concept .section-segment .image img {
    margin-top: 3rem;
  }
}

/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/**
 * 360 View section
 */

.archax .section .archax360view {
  border: 3px solid #000;
}

/******************************************************************************/
/******************************************************************************/

/* 360 view */

:root {
  --steps-of-360-view: 18;
}

.section-title {
  margin-inline-start: 2rem;
  border-inline-start: .5rem var(--color-dark-primary) solid;

  padding-left: 1rem;

  font-family: var(--font-sans);
  font-size: 2.5rem;
  font-weight: 700;

  line-height: 1;

  grid-row: 1 / 2;
  grid-column: 1 / 3;
}

@media screen and (max-width: 48rem) {
  .section-title {
    margin-inline-start: 1rem;
    margin-bottom: 2rem;

    padding-left: .5rem;

    font-size: 2rem;
  }
}

@media screen and (max-width: 30rem) {
  .section-title {
    border-width: .25rem;

    font-size: 1.75rem;
  }
}

.frame-360-view {
  margin: 0 auto;

  max-width: 60rem;

  padding: 0 1rem;

  display: grid;
  grid-template-columns: 25% 1fr;
}

@media screen and (max-width: 48rem) {
  .frame-360-view {
    width: 100%;

    padding: 0 .5rem;

    display: flex;
    flex-direction: column;
  }
}

.handle-robot-angle {
  opacity: 0;

  position: absolute;
  top: 0;

  margin: 0;

  height: 100%;
  width: 100%;
}

/* <input range> */
input[type="range"] {
  cursor: grab;
}

input[type="range"]:active {
  cursor: grabbing;
}

.pseudo-slider-container {
  margin-bottom: -1rem;
  height: 3.4rem;
  width: 100%;

  grid-row: 3 / 4;
  grid-column: 2 / 3;

  display: grid;

  cursor: grab;
}

.pseudo-slider-container:active {
  cursor: grabbing;
}

.pseudo-slider-container::before { /* track of slider */
  content: "";
  display: block;

  margin: 1.5rem 0;
  background-color: gray;
  height: .4rem;
  width: 100%;

  grid-row: 1 / 2;
  grid-column: 1 / 2;

  z-index: -200;
}

.pseudo-slider-container::after {
  display: none;
}

.pseudo-slider-thumb {
  margin: auto;
  grid-row: 1 / 2;
  grid-column: 1 / 2;

  width: 1rem;

  z-index: -100;

  user-select: none;
}

[x-angle="000"] ~ .pseudo-slider-container .pseudo-slider-thumb { margin-left: calc((100% - 1rem) / var(--steps-of-360-view) * 0); }
[x-angle="020"] ~ .pseudo-slider-container .pseudo-slider-thumb { margin-left: calc((100% - 1rem) / var(--steps-of-360-view) * 1); }
[x-angle="040"] ~ .pseudo-slider-container .pseudo-slider-thumb { margin-left: calc((100% - 1rem) / var(--steps-of-360-view) * 2); }
[x-angle="060"] ~ .pseudo-slider-container .pseudo-slider-thumb { margin-left: calc((100% - 1rem) / var(--steps-of-360-view) * 3); }
[x-angle="080"] ~ .pseudo-slider-container .pseudo-slider-thumb { margin-left: calc((100% - 1rem) / var(--steps-of-360-view) * 4); }
[x-angle="100"] ~ .pseudo-slider-container .pseudo-slider-thumb { margin-left: calc((100% - 1rem) / var(--steps-of-360-view) * 5); }
[x-angle="120"] ~ .pseudo-slider-container .pseudo-slider-thumb { margin-left: calc((100% - 1rem) / var(--steps-of-360-view) * 6); }
[x-angle="140"] ~ .pseudo-slider-container .pseudo-slider-thumb { margin-left: calc((100% - 1rem) / var(--steps-of-360-view) * 7); }
[x-angle="160"] ~ .pseudo-slider-container .pseudo-slider-thumb { margin-left: calc((100% - 1rem) / var(--steps-of-360-view) * 8); }
[x-angle="180"] ~ .pseudo-slider-container .pseudo-slider-thumb { margin-left: calc((100% - 1rem) / var(--steps-of-360-view) * 9); }
[x-angle="200"] ~ .pseudo-slider-container .pseudo-slider-thumb { margin-left: calc((100% - 1rem) / var(--steps-of-360-view) * 10); }
[x-angle="220"] ~ .pseudo-slider-container .pseudo-slider-thumb { margin-left: calc((100% - 1rem) / var(--steps-of-360-view) * 11); }
[x-angle="240"] ~ .pseudo-slider-container .pseudo-slider-thumb { margin-left: calc((100% - 1rem) / var(--steps-of-360-view) * 12); }
[x-angle="260"] ~ .pseudo-slider-container .pseudo-slider-thumb { margin-left: calc((100% - 1rem) / var(--steps-of-360-view) * 13); }
[x-angle="280"] ~ .pseudo-slider-container .pseudo-slider-thumb { margin-left: calc((100% - 1rem) / var(--steps-of-360-view) * 14); }
[x-angle="300"] ~ .pseudo-slider-container .pseudo-slider-thumb { margin-left: calc((100% - 1rem) / var(--steps-of-360-view) * 15); }
[x-angle="320"] ~ .pseudo-slider-container .pseudo-slider-thumb { margin-left: calc((100% - 1rem) / var(--steps-of-360-view) * 16); }
[x-angle="340"] ~ .pseudo-slider-container .pseudo-slider-thumb { margin-left: calc((100% - 1rem) / var(--steps-of-360-view) * 17); }
[x-angle="360"] ~ .pseudo-slider-container .pseudo-slider-thumb { margin-left: calc((100% - 1rem) / var(--steps-of-360-view) * 18); }

/* Shift angle */

.shift-formation-container {
  position: relative; /* for position:absolute of <input type=range> */

  max-width: 50rem;

  grid-row: 2 / 3;
  grid-column: 2 / 3;

  cursor: grab;
}

.shift-formation-container:active {
  cursor: grabbing;
}

.shift-formation-container * {
  pointer-events: none;
}

.shift-formation {
  margin: 0 auto;

  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;

  position: relative;
}

.shift-formation img {
  width: 100%;
  visibility: hidden;
  position: absolute;
}

[x-angle="000"] .shift-formation img { margin-top: calc(100% / 4 * 3 * -7); }
[x-angle="020"] .shift-formation img { margin-top: calc(100% / 4 * 3 * -8); }
[x-angle="040"] .shift-formation img { margin-top: calc(100% / 4 * 3 * -9); }
[x-angle="060"] .shift-formation img { margin-top: calc(100% / 4 * 3 * -10); }
[x-angle="080"] .shift-formation img { margin-top: calc(100% / 4 * 3 * -11); }
[x-angle="100"] .shift-formation img { margin-top: calc(100% / 4 * 3 * -12); }
[x-angle="120"] .shift-formation img { margin-top: calc(100% / 4 * 3 * -13); }
[x-angle="140"] .shift-formation img { margin-top: calc(100% / 4 * 3 * -14); }
[x-angle="160"] .shift-formation img { margin-top: calc(100% / 4 * 3 * -15); }
[x-angle="180"] .shift-formation img { margin-top: calc(100% / 4 * 3 * -16); }
[x-angle="200"] .shift-formation img { margin-top: calc(100% / 4 * 3 * -17); }
[x-angle="220"] .shift-formation img { margin-top: calc(100% / 4 * 3 * -0); }
[x-angle="240"] .shift-formation img { margin-top: calc(100% / 4 * 3 * -1); }
[x-angle="260"] .shift-formation img { margin-top: calc(100% / 4 * 3 * -2); }
[x-angle="280"] .shift-formation img { margin-top: calc(100% / 4 * 3 * -3); }
[x-angle="300"] .shift-formation img { margin-top: calc(100% / 4 * 3 * -4); }
[x-angle="320"] .shift-formation img { margin-top: calc(100% / 4 * 3 * -5); }
[x-angle="340"] .shift-formation img { margin-top: calc(100% / 4 * 3 * -6); }
[x-angle="360"] .shift-formation img { margin-top: calc(100% / 4 * 3 * -7); }

/* color select radio buttons */

.color-control-input,
.formation-control-input {
  display: none;
}

input[type="radio"][id="color-blue"]:checked ~ * .shift-formation img.palette-blue,
input[type="radio"][id="color-white"]:checked ~ * .shift-formation img.palette-white,
input[type="radio"][id="color-red"]:checked ~ * .shift-formation img.palette-red,
input[type="radio"][id="color-green"]:checked ~ * .shift-formation img.palette-green,
input[type="radio"][id="color-purple"]:checked ~ * .shift-formation img.palette-purple {
  visibility: inherit;
}

/* formation select radio buttons */

.formation-selector-frame {
  margin-top: 1rem;

  display: flex;
  flex-direction: column;
  justify-content: start;
  align-items: center;

  grid-row: 2 / 4;
  grid-column: 1 / 2;
}

@media screen and (max-width: 48rem) {
  .formation-selector-frame {
    flex-direction: row;
    justify-content: center;
  }
}

.formation-robot,
.formation-vehicle {
  visibility: hidden;
}

input[type="radio"][id="formation-robot"]:checked ~ * .formation-robot,
input[type="radio"][id="formation-vehicle"]:checked ~ * .formation-vehicle {
  visibility: inherit;
}

.formation-selector-frame > * {
  margin-top: 2rem;
  max-width: min(16rem, 100%);
  width: 100%;

  display: flex;
  flex-direction: column;
  align-items: center;

  opacity: .3;

  cursor: pointer;
}

@media screen and (max-width: 48rem) {
  .formation-selector-frame > * {
  display: flex;
  flex-direction: column;
  align-items: center;
  }
}

@media screen and (max-width: 48rem) {
  .formation-selector-frame img {
  max-height: 4rem;
  }
}

.formation-selector-frame .label {
  font-size: 1rem;
  font-weight: 600;

  text-align: center;
}

input[type="radio"][id="formation-robot"]:checked ~ .formation-selector-frame [for="formation-robot"],
input[type="radio"][id="formation-vehicle"]:checked ~ .formation-selector-frame [for="formation-vehicle"] {
  opacity: 1;
}

/* color selector */

.color-item {
  margin-bottom: -2.5rem;

  flex-grow: 1;

  display: grid;
  place-items: center;

  padding-bottom: 2.5rem;

  cursor: pointer;
}

.color-item::before {
  content: "";
  margin-bottom: .2rem;
  display: block;
  border-radius: 50%;
  height: 1.5rem;
  width: 1.5rem;
}

.color-item[for$="blue"]::before { background: blue; }
.color-item[for$="white"]::before { background: lightgray; }
.color-item[for$="red"]::before { background: red; }
.color-item[for$="green"]::before { background: green; }
.color-item[for$="purple"]::before { background: purple; }

.color-palette-frame {
  max-width: 25rem;
  min-width: min(25rem, 80%);

  margin: 1.5rem auto .5rem;
  display: flex;

  grid-row: 4 / 5;
  grid-column: 2 / 3;
}

@media screen and (max-width: 48rem) {
  .color-palette-frame {
  min-width: 100%;
  }
}

.color-palette-frame label .title {
  font-size: .8rem;
  opacity: 0;
}

input[type="radio"][id="color-blue"]:checked ~ .color-palette-frame [for="color-blue"] .title,
input[type="radio"][id="color-white"]:checked ~ .color-palette-frame [for="color-white"] .title,
input[type="radio"][id="color-red"]:checked ~ .color-palette-frame [for="color-red"] .title,
input[type="radio"][id="color-green"]:checked ~ .color-palette-frame [for="color-green"] .title,
input[type="radio"][id="color-purple"]:checked ~ .color-palette-frame [for="color-purple"] .title {
  opacity: 1;
}

input[type="radio"][id="color-blue"]:checked ~ .color-palette-frame [for="color-blue"]::before,
input[type="radio"][id="color-white"]:checked ~ .color-palette-frame [for="color-white"]::before,
input[type="radio"][id="color-red"]:checked ~ .color-palette-frame [for="color-red"]::before,
input[type="radio"][id="color-green"]:checked ~ .color-palette-frame [for="color-green"]::before,
input[type="radio"][id="color-purple"]:checked ~ .color-palette-frame [for="color-purple"]::before {
  outline: 3px black solid;
  outline-offset: .2rem;
}

.color-label-frame {
  grid-row: 5 / 6;
  grid-column: 2 / 3;

  text-align: center;

  font-size: 1.5rem;
  font-weight: 600;

  pointer-events: none;
}

.color-label-frame > * {
  display: none;
}

input[type="radio"][id="color-blue"]:checked ~ .color-label-frame .color-label-blue,
input[type="radio"][id="color-white"]:checked ~ .color-label-frame .color-label-white,
input[type="radio"][id="color-red"]:checked ~ .color-label-frame .color-label-red,
input[type="radio"][id="color-green"]:checked ~ .color-label-frame .color-label-green,
input[type="radio"][id="color-purple"]:checked ~ .color-label-frame .color-label-purple {
  display: inherit;
}

/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/******************************************************************************/

/*
 * Menu section
 */

body {
  --content-cap-width: 60rem;
}

.product-footer-menu-section {
  margin: 5rem 0;

  background: #000;

  overflow: hidden;
}

/* ---------------------------------------------- */

.product-footer-menu-container {
  margin: 0 auto;

  height: 100%;
  max-width: min(var(--content-cap-width), 100%);

  display: grid;
}

/* ---------------------------------------------- */

.product-footer-menu-layer {
  grid-column: 1 / 2;
  grid-row: 1 / 2;

  margin: auto calc(min(var(--content-cap-width), 100%) / 30);
  padding-inline-start: 1rem;

  display: flex;
  flex-direction: column;
}

.product-footer-menu-layer .title {
  margin: 0 0 1rem;

  border-left: .25rem white solid;
  padding-left: 1.5rem;

  color: #fff;
  font-size: 2.5rem;
}

.product-footer-menu-layer a {
  margin: .25rem 0 .25rem 1.5rem;

  color: #fff;
  font-size: 1.2rem;
  text-decoration: none;
  white-space: nowrap;
}

.product-footer-menu-layer a:hover {
  color: #f00;
}

/* ---------------------------------------------- */

.product-footer-menu-image {
  grid-column: 1 / 2;
  grid-row: 1 / 2;

  height: 100%;

  display: grid;
  place-items: end;
}

.product-footer-menu-image img {
  aspect-ratio: 4 / 3;

  margin-right: calc(100% / -10);
  max-height: 40rem;
}

/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/******************************************************************************/

/*
 * Video section
 */

.section.video {
  text-align: center;
}

.section.video .video-player {
  max-width: min(35rem, 100%);
  max-height: 100%;

  padding: 0 .5rem;
  aspect-ratio: 560 / 315;
}

/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/******************************************************************************/

/*
 * Degree of Freedom section @MOVEMENT
 */

.movement .section.degree-of-freedom .title {
  margin-inline-start: 2rem;
  border-inline-start: .5rem var(--color-dark-primary) solid;

  font-size: 2.5rem;
  font-weight: 700;

  padding: .8rem 1rem;
}

@media screen and (max-width: 48rem) {
  .movement .section.degree-of-freedom .title {
    margin-inline-start: 1.5rem;
    font-size: 2.5rem;
  }
}

@media screen and (max-width: 30rem) {
  .movement .section.degree-of-freedom .title {
    margin-inline-start: 1rem;
    font-size: 1.5rem;
  }
}

.movement .section.degree-of-freedom .description {
  margin: 4rem;

  font-size: 1.4rem;
}

@media screen and (max-width: 48rem) {
  .movement .section.degree-of-freedom .description {
    margin: 2rem;

    font-size: 1.2rem;
  }
}

@media screen and (max-width: 30rem) {
  .movement .section.degree-of-freedom .description {
    margin: 1rem;

    font-size: 1rem;
  }
}

.movement .section.degree-of-freedom .description p {
  margin-top: calc(1rem * var(--value-golden-ratio));
  line-height: var(--value-golden-ratio);
}

/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/******************************************************************************/

/*
 * Annotated links section
 */

.annotated-links-container {
  margin: 3rem auto;

  max-height: 40rem;
  max-width: 50rem;

  display: grid;
  place-items: center;

  background-color: #000;
}

.annotated-links-container img {
  grid-column: 1 / 1;
  grid-row: 1 / 1;

  max-height: 100%;
  max-width: 100%;
  opacity: .25;
}

.annotated-links-container .annotated-links-layer {
  grid-column: 1 / 1;
  grid-row: 1 / 1;

  height: 100%;
  width: 100%;

  position: relative;
}

.annotated-links-layer [class^="annotated-link-"] {
  position: absolute;
  display: inline-block;

  padding: .5rem 1rem;

  color: #fff;
  font-weight: 800;
  text-decoration: none;
  text-shadow:
    .5px .5px 0 rgba(0, 0, 0, .5),
    -.5px -.5px 0 rgba(0, 0, 0, .5),
    -.5px .5px 0 rgba(0, 0, 0, .5),
    .5px -.5px 0 rgba(0, 0, 0, .5),
    0px .5px 0 rgba(0, 0, 0, .5),
    -.5px 0 rgba(0, 0, 0, .5),
    -.5px 0 0 rgba(0, 0, 0, .5),
    .5px 0 0 rgba(0, 0, 0, .5);

  display: flex;
  align-items: center;

  transform-origin: 0 0;
}

@media screen and (max-width: 45rem) {
  .annotated-links-layer [class^="annotated-link-"] {
    transform: scale(80%);
  }
}

@media screen and (max-width: 30rem) {
  .annotated-links-layer [class^="annotated-link-"] {
    transform: scale(60%);
  }
}

.annotated-links-layer [class^="annotated-link-"]::before {
  content: "";

  margin-right: .5rem;

  border: 2px solid rgb(160, 140, 255);
  border-radius: 50%;

  height: 1rem;
  width: 1rem;

  display: inline-block;
  background: #fff;

  opacity: .2;
}

.annotated-links-layer [class^="annotated-link-"] span {
  opacity: 0;
}

.annotated-links-layer .annotated-link-head {
  top: 8%;
  left: 45%;
}

.annotated-links-layer .annotated-link-hatch {
  top: 25%;
  left: 40%;
}

.annotated-links-layer .annotated-link-body {
  top: 35%;
  left: 50%;
}

.annotated-links-layer .annotated-link-arm {
  top: 33%;
  left: 63%;
}

.annotated-links-layer .annotated-link-hand {
  top: 47%;
  left: 65%;
}

.annotated-links-layer .annotated-link-waist {
  top: 48%;
  left: 39%;
}

.annotated-links-layer .annotated-link-front-leg {
  top: 68%;
  left: 23%;
}

.annotated-links-layer .annotated-link-rear-leg {
  top: 64%;
  left: 62%;
}

/* ------------------- */

.content-container {
  margin: 0 auto;

  max-width: 50rem;

  background: #111;
  color: white;

  display: grid;
  place-items: center;

  padding: 2rem 3rem 3rem;
  position: relative;
}

@media screen and (max-width: 40rem) {
  .content-container {
    padding: 1rem;
  }
}

.content-container .content-body {
  grid-row: 1 / 2;
  grid-column: 1 / 2;

  height: 100%;
  width: 100%;

  display: grid;
  grid-template-columns: auto 35%;
  grid-template-rows: auto 1fr auto;
  place-items: center;

  color: #fff;

  opacity: 0;

  transition: all linear .2s;
  transition-delay: .4s;
}

#annotated-link-head:target,
#annotated-link-hatch:target,
#annotated-link-body:target,
#annotated-link-arm:target,
#annotated-link-hand:target,
#annotated-link-waist:target,
#annotated-link-front-leg:target,
#annotated-link-rear-leg:target {
  opacity: 1;

  transition-delay: .8s;
}

/* ------------------- */

.content-container .content-body .title {
  grid-row: 1 / 2;
  grid-column: 1 / 3;

  margin: 0;

  height: 3rem;
  width: 100%;
  font-size: 2rem;

  display: grid;
  place-items: center;
}

.content-container .content-body .caption-main {
  grid-row: 2 / 3;
  grid-column: 1 / 3;

  /* height: 100%; */
  max-width: 25rem;
  width: 100%;

  padding: 1rem 0;
  font-size: 1rem;
  text-align: justify;
}

.content-container .content-body .caption-main p::first-letter {
  margin-left: 1rem;
}

.content-container .content-body .caption-main strong {
  margin: 0 .2rem;

  color: #f00;
  font-size: 1.2rem;
  font-weight: bold;
}

.content-container .content-body img {
  grid-row: 3 / -1;
  grid-column: 1 / 2;

  width: 100%;
}

.content-container .content-body .caption-part {
  grid-row: 3 / -1;
  grid-column: 2 / 3;

  padding-left: .75rem;
  font-size: 1rem;
}

@media screen and (max-width: 30rem) {
  .content-container .content-body .caption-part {
    font-size: .75rem;
  }
}

/* ------------------- */

.shown img {
  animation-name: image-annotated-links-on-intersection;
  animation-duration: 1.5s;
  animation-delay: 0s;
  animation-timing-function: linear;
  animation-fill-mode: forwards;
  animation-iteration-count: 1;
  animation-direction: normal;
}

@keyframes image-annotated-links-on-intersection {
  0% {
    opacity: .25;
  }
  75% {
    opacity: .25;
  }
  100% {
    opacity: 1;
  }
}

.shown .annotated-links-layer [class^="annotated-link-"] span {
  animation-name: label-annotated-links-on-intersection;
  animation-duration: .4s;
  animation-delay: .4s;
  animation-timing-function: ease-in-out;
  animation-fill-mode: forwards;
  animation-iteration-count: 1;
  animation-direction: normal;

  transform-origin: center;
}

@keyframes label-annotated-links-on-intersection {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

.shown .annotated-links-layer [class^="annotated-link-"]::before {
  animation-name: pointer-annotated-links-on-intersection;
  animation-duration: .4s;
  animation-delay: 0s;
  animation-timing-function: ease-in-out;
  animation-fill-mode: forwards;
  animation-iteration-count: 1;
  animation-direction: normal;

  transform-origin: center;
}

@keyframes pointer-annotated-links-on-intersection {
  0% {
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(255, 255, 255, 0);
    opacity: .2;
  }
  50% {
    transform: scale(1.4);
    box-shadow: 0 0 .25rem .25rem rgba(255, 255, 255, .5);
    opacity: 1;
  }
  100% {
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(255, 255, 255, 0);
    opacity: 1;
  }
}

.shown .annotated-links-layer [class^="annotated-link-"]::before {
  animation-name: flickering-annotated-links-on-intersection;
  animation-duration: 1s;
  animation-delay: 0s;
  animation-timing-function: linear;
  animation-fill-mode: alternate;
  animation-iteration-count: infinite;
  animation-direction: normal;

  transform-origin: center;
}

@keyframes flickering-annotated-links-on-intersection {
  0% {
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(255, 255, 255, 0);
    opacity: 1;
  }
  50% {
    transform: scale(1.2);
    box-shadow: 0 0 .2rem .2rem rgba(255, 255, 255, .5);
    opacity: 1;
  }
  100% {
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(255, 255, 255, 0);
    opacity: 1;
  }
}

/* ------------------- */

.content-guide {
  position: absolute;
  top: 2rem;
  height: 3rem;

  cursor: pointer;
}

@media screen and (max-width: 40rem) {
  .content-guide {
    top: 1rem;
    height: 3rem;
  }
}

.content-guide.previous {
  left: 3rem;
}

@media screen and (max-width: 40rem) {
  .content-guide.previous {
    left: 1rem;
  }
}

.content-guide.next {
  right: 3rem;
}

@media screen and (max-width: 40rem) {
  .content-guide.next {
    right: 1rem;
  }
}

.content-guide img {
  height: 100%;
}

.content-guide.next img {
  transform: rotateZ(180deg);
  transform-origin: center;
}

.content-container:has(.content-guide:hover) .content-body {
  transition-delay: 0s;
}

.content-container:has(.content-guide:hover) #annotated-link-head:target,
.content-container:has(.content-guide:hover) #annotated-link-hatch:target,
.content-container:has(.content-guide:hover) #annotated-link-body:target,
.content-container:has(.content-guide:hover) #annotated-link-arm:target,
.content-container:has(.content-guide:hover) #annotated-link-hand:target,
.content-container:has(.content-guide:hover) #annotated-link-waist:target,
.content-container:has(.content-guide:hover) #annotated-link-front-leg:target,
.content-container:has(.content-guide:hover) #annotated-link-rear-leg:target {
  transition-delay: .4s;
}

/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/******************************************************************************/

/*
 * Cockpit section
 */

.cockpit .section + .section .title {
  margin-inline-start: 2rem;
  border-inline-start: .5rem var(--color-dark-primary) solid;

  font-size: 2.5rem;
  font-weight: 700;

  padding: .8rem 1rem;
}

@media screen and (max-width: 48rem) {
  .cockpit .section + .section .title {
    margin-inline-start: 1.5rem;

    font-size: 2.5rem;
  }
}

@media screen and (max-width: 30rem) {
  .cockpit .section + .section .title {
    margin-inline-start: 1rem;

    font-size: 1.5rem;
  }
}

.cockpit .section.hatch .description {
  margin: 4rem;

  font-size: 1.4rem;
}

@media screen and (max-width: 48rem) {
  .cockpit .section.hatch .description {
    margin: 1rem;

    font-size: 1.2rem;
  }
}

@media screen and (max-width: 30rem) {
  .cockpit .section.hatch .description {
    margin: 1rem;

    font-size: 1rem;
  }
}

.cockpit .section.hatch .description p {
  margin-top: calc(1rem * var(--value-golden-ratio));
}

.cockpit .section.hatch .hatch-image {
  margin-top: 2rem;
  text-align: center;
}

.cockpit .section.hatch .hatch-image img {
  max-width: min(36rem, 100%);
}

/******************************************************************************/

.cockpit .section.ladder {
  background: var(--color-light-primary);
  color: var(--color-light-primary-text);
  font-family: var(--font-sans);
}

.cockpit .section.ladder .title {
  margin-inline-start: 2rem;
  border-inline-start: .5rem var(--color-dark-primary) solid;

  font-size: 2.5rem;
  font-weight: 700;
  padding-left: 1rem;
}

@media screen and (max-width: 48rem) {
  .cockpit .section.ladder .title {
    margin-inline-start: auto;
    font-size: 2rem;
  }
}

@media screen and (max-width: 30rem) {
  .cockpit .section.ladder .title {
    font-size: 1.75rem;
  }
}

.cockpit .section.ladder .section-segment {
  margin: 3rem 0;
  display: flex;
  flex-direction: row;
  justify-content: center;
  gap: 1rem;
}

.cockpit .section.ladder .section-segment > * {
  flex-grow: 1;
  width: 0;
}

.cockpit .section.ladder .section-segment .caption {
  max-width: 50%;
}

.cockpit .section.ladder .section-segment .caption .lead {
  display: inline-block;
  background: var(--color-dark-primary);
  color: var(--color-dark-primary-text);
  font-size: 1rem;
  white-space: nowrap;

  padding: .25rem 1rem;
}

.cockpit .section.ladder .section-segment .caption .description {
  font-size: 1rem;
  line-height: var(--value-golden-ratio);
  overflow: visible;
}

@media screen and (max-width: 30rem) {
  .cockpit .section.ladder .section-segment .caption .description {
    font-size: .875rem;
  }
}

.cockpit .section.ladder .section-segment .caption .description > p {
  margin-top: 1rem;
}

.cockpit .section.ladder .section-segment .image {
  max-width: 14rem;
  max-height: 20rem;
}

.cockpit .section.ladder .section-segment .image img {
  max-width: 100%;
  max-height: 100%;
}

@media screen and (max-width: 48rem) {
  .cockpit .section.ladder .section-segment .image img {
    margin-top: 3rem;
  }
}

/******************************************************************************/
/******************************************************************************/

.section > .title {
  border-inline-start: .5rem var(--color-dark-primary) solid;

  font-size: 2.5rem;
  font-weight: 700;

  padding: .8rem 1rem;
}

@media screen and (max-width: 48rem) {
  .section > .title {
    margin-inline-start: auto;
    font-size: 2rem;
  }
}

@media screen and (max-width: 30rem) {
  .section > .title {
    font-size: 1.75rem;
  }
}

/******************************************************************************/
/******************************************************************************/

/******************************************************************************/
/**
 * Interior section
 */

.cockpit .section.interior {
  background: var(--color-light-primary);
  color: var(--color-light-primary-text);
  font-family: var(--font-sans);
}

.cockpit .section.interior .unit {
  margin: 3rem 0;
  display: flex;
  flex-direction: row;
  justify-content: center;
  gap: 1rem;
}

.cockpit .section.interior .unit > * {
  flex-grow: 1;
  width: 0;
}

.cockpit .section.interior .unit .caption {
  max-width: 50%;
}

.cockpit .section.interior .unit .caption .lead {
  display: inline-block;
  background: var(--color-dark-primary);
  color: var(--color-dark-primary-text);
  font-size: 1rem;
  white-space: nowrap;

  padding: .25rem 1rem;
}

.cockpit .section.interior .unit .caption .description {
  font-size: 1rem;
  line-height: var(--value-golden-ratio);
  overflow: visible;
}

@media screen and (max-width: 30rem) {
  .cockpit .section.interior .unit .caption .description {
    font-size: .875rem;
  }
}

.cockpit .section.interior .unit .caption .description > p {
  margin-top: 1rem;
}

.cockpit .section.interior .unit .image {
  max-width: 14rem;
  max-height: 20rem;
}

.cockpit .section.interior .unit .image img {
  max-width: 100%;
  max-height: 100%;
}

@media screen and (max-width: 48rem) {
  .cockpit .section.interior .unit .image img {
    margin-top: 3rem;
  }
}

/******************************************************************************/
/******************************************************************************/

/******************************************************************************/
/**
 * Mode Change section
 */

.mode-change .section.mode-change .image-segment {
  margin: 2rem auto;
  width: min(48rem, 100%);
}

.mode-change .section.mode-change .image-segment img {
  width: 100%;
}

.mode-change .section.mode-change .image-segment .desktop {
  display: inline-block;
}

.mode-change .section.mode-change .image-segment .mobile {
  display: none;
}

@media screen and (max-width: 48rem) {
  .mode-change .section.mode-change .image-segment .desktop {
    display: none;
  }

  .mode-change .section.mode-change .image-segment .mobile {
    display: inline-block;
  }
}

.mode-change .section.mode-change .unit {
  margin-top: 2rem;
}

.mode-change .section.mode-change .unit .lead {
  display: inline-block;
  background: var(--color-dark-primary);
  color: var(--color-dark-primary-text);
  font-size: 1rem;
  white-space: nowrap;

  padding: .25rem 1rem;
}

.mode-change .section.mode-change .unit .description {
  padding: 2rem 4rem;
}

@media screen and (max-width: 48rem) {
  .mode-change .section.mode-change .unit .description {
    padding: 1rem 2rem;
  }
}

@media screen and (max-width: 30rem) {
  .mode-change .section.mode-change .unit .description {
    padding: .5rem 1rem;
  }
}

.mode-change .section.mode-change .unit .description > p + p {
  margin-top: calc(1rem * var(--value-golden-ratio));
}

/******************************************************************************/
/**
 * Posture Change section
 */
.mode-change .section.posture-change .unit {
  margin-top: 2rem;
}

.mode-change .section.posture-change .unit .lead {
  display: inline-block;
  background: var(--color-dark-primary);
  color: var(--color-dark-primary-text);
  font-size: 1rem;
  white-space: nowrap;

  padding: .25rem 1rem;
}

.mode-change .section.posture-change .unit .description {
  margin-top: 1rem;
}

/* -------------------------------------------------------------------------- */

.mode-change .section.posture-change .card-layout {
  margin: 2rem auto;
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: stretch;

  gap: 2rem;
}

@media screen and (max-width: 48rem) {
  .mode-change .section.posture-change .card-layout {
    flex-direction: column;
    align-items: center;

    max-width: 24rem;
  }
}

.mode-change .section.posture-change .card-layout > * {
  width: 0;
}

@media screen and (max-width: 48rem) {
  .mode-change .section.posture-change .card-layout > * {
    width: auto;
  }
}

.mode-change .section.posture-change .card-layout > .robot {
  flex-grow: 160;
}

.mode-change .section.posture-change .card-layout > .vehicle {
  flex-grow: 214;
}

.mode-change .section.posture-change .card-layout .card .image {
  width: 100%;
}

.mode-change .section.posture-change .card-layout .card .image img {
  width: 100%;
}

.mode-change .section.posture-change .card-layout .card .caption {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: auto 1fr;
  place-items: center;

  padding: 1rem;
  background-color: #d9d9d9;
}

/******************************************************************************/
/**
 * Movement Performance section
 */

.mode-change .section.movement-performance .layout {
  margin-top: 2rem;

  display: flex;
  flex-direction: row;
  align-items: stretch;
  gap: 1rem;
}

@media screen and (max-width: 48rem) {
  .mode-change .section.movement-performance .layout {
    flex-direction: column;
    align-items: center;
  }
}

.mode-change .section.movement-performance .layout > .switch-segment {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 2rem;

  font-family: var(--font-sans);
  text-align: center;
}

@media screen and (max-width: 48rem) {
  .mode-change .section.movement-performance .layout > .switch-segment {
    flex-direction: row;
  }
}

.mode-change .section.movement-performance .layout > .panel-segment {
  height: 100%;

  flex-grow: 1;
}

/* -------------------------------------------------------------------------- */
/*
 * Switch function
 */

.mode-change .section.movement-performance .movement-performance-control-input {
  display: none;
}

[for="movement-performance-robot"],
[for="movement-performance-vehicle"] {
  opacity: .3;

  cursor: pointer;
}

input[type="radio"][id="movement-performance-robot"]:checked ~ .layout [for="movement-performance-robot"],
input[type="radio"][id="movement-performance-vehicle"]:checked ~ .layout [for="movement-performance-vehicle"] {
  opacity: 1;
}

.mode-change .section.movement-performance .panel-segment .panel {
  visibility: hidden;
}

input[type="radio"][id="movement-performance-robot"]:checked ~ .layout .panel.robot,
input[type="radio"][id="movement-performance-vehicle"]:checked ~ .layout .panel.vehicle {
  visibility: visible;
}

/* -------------------------------------------------------------------------- */
/*
 * Panel design
 */

.mode-change .section.movement-performance .panel-segment {
  display: grid;
  place-items: center;
  gap: 1rem;
}

.mode-change .section.movement-performance .panel-segment > * {
  grid-row: 1 / 2;
  grid-column: 1 / 2;

  width: 100%;
  height: 100%;
}

.mode-change .section.movement-performance .panel-segment > * > .title {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;

  font-size: 1.5rem;
}

.mode-change .section.movement-performance .panel-segment > * > .title::before,
.mode-change .section.movement-performance .panel-segment > * > .title::after {
  content: '';

  margin: 0 1rem;

  display: inline-block;

  height: .25rem;
  width: auto;

  flex-grow: 1;

  background: var(--color-light-primary-text);
}

.mode-change .section.movement-performance .panel-segment .details > .title {
  border-inline-start: .25rem var(--color-light-primary-text) solid;
  padding-inline-start: .5rem;
}

.mode-change .section.movement-performance .panel-segment .panel {
  display: grid;
  grid-template-columns: auto auto;
  grid-template-rows: auto auto auto;
  gap: 1.5rem;
}

.mode-change .section.movement-performance .panel-segment .panel > .title {
  grid-row: 1 / 2;
  grid-column: 1 / 3;
}

.mode-change .section.movement-performance .panel-segment .panel .description {
  grid-row: 2 / 3;
  grid-column: 1 / 2;
}

.mode-change .section.movement-performance .panel-segment .panel .description > p + p {
  margin-top: 1rem;
}

@media screen and (max-width: 48rem) {
  .mode-change .section.movement-performance .panel-segment .panel .description {
    grid-row: 2 / 3;
    grid-column: 1 / 3;
  }
}

.mode-change .section.movement-performance .panel-segment .panel .image {
  grid-row: 2 / 4;
  grid-column: 2 / 3;
}

@media screen and (max-width: 48rem) {
  .mode-change .section.movement-performance .panel-segment .panel .image {
    grid-row: 3 / 4;
    grid-column: 2 / 3;
  }
}

.mode-change .section.movement-performance .panel-segment .panel .image img {
  width: 100%;
}

.mode-change .section.movement-performance .panel-segment .panel .details {
  grid-row: 3 / 4;
  grid-column: 1 / 2;
}

.mode-change .section.movement-performance .panel-segment .panel .details .caption {
  padding: .5rem;
}

/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/**
 * EXTERIOR of Archax
 */

/* -------------------------------------------------------------------------- */
/*
 * Exterior section
 */

.exterior .section.exterior {
  display: grid;
  grid-template-rows: auto 1fr;
  grid-template-columns: 1fr auto auto;

  place-items: top;
}

@media screen and (max-width: 30rem) {
  .exterior .section.exterior {
    display: block;
  }
}

.exterior .section.exterior .title {
  grid-row: 1 / 2;
  grid-column: 1 / 2;
}

.exterior .section.exterior .description {
  grid-row: 2 / 3;
  grid-column: 1 / 3;
}

.exterior .section.exterior .description p + p {
  margin-top: calc(1rem * var(--value-golden-ratio));
  line-height: var(--value-golden-ratio);
}

.exterior .section.exterior .image {
  grid-row: 1 / 3;
  grid-column: 2 / 4;
}

.exterior .section.exterior .description {
  max-width: 80%;
  padding: 4rem;
}

@media screen and (max-width: 48rem) {
  .exterior .section.exterior .description {
    padding: 2rem;
  }
}

@media screen and (max-width: 30rem) {
  .exterior .section.exterior .description {
    padding: 1rem;
  }
}

.exterior .section.exterior .image {
  max-width: 100%;
  max-height: 40rem;

  z-index: -10;
}

@media screen and (max-width: 30rem) {
  .exterior .section.exterior .image {
    margin-top: 1rem;
    text-align: center;
  }
}

.exterior .section.exterior .image img {
  width: 100%;
  max-height: 100%;
}

/* -------------------------------------------------------------------------- */
/*
 * Coloring section
 */

.exterior .section.coloring {
  background: var(--color-light-primary);
  color: var(--color-light-primary-text);
  font-family: var(--font-sans);
}

.exterior .section.coloring .section-segment {
  margin-top: 3rem;
  display: flex;
  flex-direction: row;
  justify-content: center;
  gap: 1rem;
}

@media screen and (max-width: 48rem) {
  .exterior .section.coloring .section-segment {
    margin-top: auto;
    flex-direction: column;
  }
}

.exterior .section.coloring .section-segment > * {
  flex-grow: 1;
  width: 0;
}

@media screen and (max-width: 48rem) {
  .exterior .section.coloring .section-segment > * {
    width: auto;
  }
}

.exterior .section.coloring .section-segment .caption {
  max-width: 50%;
}

@media screen and (max-width: 48rem) {
  .exterior .section.coloring .section-segment .caption {
    max-width: 100%;
  }
}

.exterior .section.coloring .section-segment .caption .lead {
  display: inline-block;
  background: var(--color-dark-primary);
  color: var(--color-dark-primary-text);
  font-size: 1rem;
  white-space: nowrap;

  padding: .25rem 1rem;
}

.exterior .section.coloring .section-segment .caption .description {
  font-size: 1rem;
  line-height: var(--value-golden-ratio);

  padding-inline: 4rem;
  overflow: visible;
}

@media screen and (max-width: 48em) {
  .exterior .section.coloring .section-segment .caption .description {
    padding: 2rem;
  }
}

@media screen and (max-width: 30rem) {
  .exterior .section.coloring .section-segment .caption .description {
    font-size: .875rem;
    padding: 1rem;
  }
}

.exterior .section.coloring .section-segment .caption .description p + p {
  margin-top: calc(1rem * var(--value-golden-ratio));
}

.exterior .section.coloring .section-segment .caption .description > p {
  margin-top: 1rem;
}

.exterior .section.coloring .section-segment .image {
  text-align: center;
}

.exterior .section.coloring .section-segment .image img {
  max-width: min(40rem, 100%);
  width: 100%;
}

/******************************************************************************/

.exterior .section.coloring .section-segment.card-layout {
  margin: 3rem auto 0;
  width: 80%;

  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: stretch;
  gap: 2rem;
}

@media screen and (max-width: 48em) {
  .exterior .section.coloring .section-segment.card-layout {
    width: 90%;

    gap: 1.5rem;
  }
}

@media screen and (max-width: 30rem) {
  .exterior .section.coloring .section-segment.card-layout {
    width: 100%;

    gap: 1rem;

    font-size: .875rem;
  }
}

.exterior .section.coloring .section-segment.card-layout > * {
  width: calc((100% - 2rem) / 2);
}

.exterior .section.coloring .section-segment.card-layout > .card .image {
  width: 100%;
}

.exterior .section.coloring .section-segment.card-layout > .card .image img {
  width: 100%;
}

.exterior .section.coloring .section-segment.card-layout > .card .image-caption {
  padding: .5rem 1rem;
}

@media screen and (max-width: 48em) {
  .exterior .section.coloring .section-segment.card-layout > .card .image-caption {
    padding: .5rem;
  }
}

/******************************************************************************/
/*
 * Progress section
 */

.exterior .section.progress {
  background: var(--color-light-primary);
  color: var(--color-light-primary-text);
}

.exterior .section.progress .unit {
  margin-top: 2rem;

  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;

  padding-inline: 4rem;
}

@media screen and (max-width: 48em) {
  .exterior .section.progress .unit {
    display: flex;
    flex-direction: column;
    align-items: center;

    padding-inline: 0;
  }
}

.exterior .section.progress .unit .image {
  width: 100%;

  text-align: center;
}

.exterior .section.progress .unit .image img {
  max-width: min(40rem, 100%);
}

/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/*
 * Frame section
 */

.frame .section.frame {
  background: var(--color-light-primary);
  color: var(--color-light-primary-text);
  font-family: var(--font-sans);
}

.frame .section.frame .title {
  margin-inline-start: 2rem;
  border-inline-start: .5rem var(--color-dark-primary) solid;

  font-size: 2.5rem;
  font-weight: 700;
  padding-left: 1rem;
}

@media screen and (max-width: 48rem) {
  .frame .section.frame .title {
    margin-inline-start: auto;
    font-size: 2rem;
  }
}

@media screen and (max-width: 30rem) {
  .frame .section.frame .title {
    font-size: 1.75rem;
  }
}

.frame .section.frame .section-segment {
  margin: 3rem 0;
  display: flex;
  flex-direction: row;
  justify-content: center;
  gap: 1rem;
}

.frame .section.frame .section-segment > * {
  flex-grow: 1;
  width: 0;
}

.frame .section.frame .section-segment .caption {
  max-width: 50%;
}

.frame .section.frame .section-segment .caption .lead {
  display: inline-block;
  background: var(--color-dark-primary);
  color: var(--color-dark-primary-text);
  font-size: 1rem;
  white-space: nowrap;

  padding: .25rem 1rem;
}

.frame .section.frame .section-segment .caption .description {
  font-size: 1rem;
  line-height: var(--value-golden-ratio);
  overflow: visible;
}

@media screen and (max-width: 30rem) {
  .frame .section.frame .section-segment .caption .description {
    font-size: .875rem;
  }
}

.frame .section.frame .section-segment .caption .description > p {
  margin-top: 1rem;
}

.frame .section.frame .section-segment .image {
  max-width: 14rem;
  max-height: 20rem;
}

.frame .section.frame .section-segment .image img {
  max-width: 100%;
  max-height: 100%;
}

@media screen and (max-width: 48rem) {
  .frame .section.frame .section-segment .image img {
    margin-top: 3rem;
  }
}

/******************************************************************************/
/*
 * Progress section
 */

.frame .section.progress {
  background: var(--color-light-primary);
  color: var(--color-light-primary-text);
}

.frame .section.progress .unit {
  margin-top: 2rem;

  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;

  padding-inline: 4rem;
}

@media screen and (max-width: 48em) {
  .frame .section.progress .unit {
    display: flex;
    flex-direction: column;
    align-items: center;

    padding-inline: 0;
  }
}

.frame .section.progress .unit .image {
  width: 100%;

  text-align: center;
}

.frame .section.progress .unit .image img {
  max-width: min(40rem, 100%);
}

/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/*
 * Safety section
 */

.safety .section.two-column {
  background: var(--color-light-primary);
  color: var(--color-light-light-text);
  font-family: var(--font-sans);
}

.safety .section.two-column .unit {
  margin: 2rem;

  display: flex;
  flex-direction: row;
  gap: 2rem;
}

@media screen and (max-width: 48em) {
  .safety .section.two-column .unit {
    margin: 2rem auto;

    display: flex;
    flex-direction: column;
    align-items: center;
  }
}

@media screen and (max-width: 48em) {
  .safety .section.two-column .unit > * {
    width: auto;
  }
}

.safety .section.two-column .unit > .image {
  flex-grow: 1;
  width: 0;
  min-width: 50%;

  text-align: center;
}

@media screen and (max-width: 48em) {
  .safety .section.two-column .unit > .image {
    width: auto;
  }
}

.safety .section.two-column .unit > .image img {
  width: 100%;
  max-width: 30rem;
}

.safety .section.two-column .unit > .description {
  max-width: 40%;
}

@media screen and (max-width: 48em) {
  .safety .section.two-column .unit > .description {
    max-width: 28rem;
  }
}

.safety .section.two-column .unit > .description > p + p {
  margin-top: calc(1rem * var(--value-golden-ratio));
}

/******************************************************************************/
/*
 * Status Lamp section
 */

.safety .section.status-lamp .unit {
  margin: 2rem 4rem;

  display: grid;
  grid-template-rows: auto auto;
  grid-template-columns: 1fr 1fr;

  gap: 2rem;
}

@media screen and (max-width: 48em) {
  .safety .section.status-lamp .unit {
    margin: 2rem auto;

    display: flex;
    flex-direction: column;
    align-items: center;
  }
}

.safety .section.status-lamp .unit > .description p {
  margin-top: calc(1rem * var(--value-golden-ratio));
}

.safety .section.status-lamp .unit > * {
  width: calc(100% - 2rem) / 2;
}

.safety .section.status-lamp .unit > .image img {
  width: 100%;
}

/******************************************************************************/
/*
 * Reference Standard section
 */

.safety .section.reference-standard .unit dt ~ dt {
  margin-top: 2rem;
}

.safety .section.reference-standard .unit dd {
  margin-top: .5rem;
  margin-inline-start: 1rem;
}

/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/*
 * COMPANY
 */

/******************************************************************************/
/*
 * ABOUT US
 */

/******************************************************************************/
/*
 * Tagline section
 */

.about-us .section.tagline {
  margin-top: 0;

  padding-block: 4rem 3rem;
  color: var(--color-dark-primary-text);
  font-family: var(--font-sans);

  background-image: url(../img/company/about-us-tagline.jpg);
  background-size: cover;
  background-repeat: no-repeat;
  background-position: right;

  display: grid;
  grid-template-rows: auto 1fr;
  grid-template-columns: auto;
  place-items: start;
}

.about-us .section.tagline .watermark {
  grid-row: 1 / 3;
  grid-column: 1 / 2;

  width: 100%;

  color: rgba(0, 0, 0, .4);
  font-size: 6rem;
  font-family: Impact;
  font-weight: 600;

  overflow: hidden;
  text-align: center;
}

.about-us .section.tagline .title {
  grid-row: 1 / 2;
  grid-column: 1 / 2;

  margin: 0;
  border: none;

  padding: 0 1rem;
}

.about-us .section.tagline .unit {
  grid-row: 2 / 3;
  grid-column: 1 / 2;

  margin-top: 2rem;
}

.about-us .section.tagline .unit .lead {
  display: inline-block;

  font-size: 1.5rem;
  padding: 0 .5rem;
}

.about-us .section.tagline .unit .description {
  font-size: 1rem;
  padding: 1rem 1.5rem;
}

.about-us .section.tagline .unit .description p + p {
  margin-top: .5rem;
}

/******************************************************************************/
/*
 * About Us section
 */

.about-us .section.about-us {
  padding-bottom: 14rem;
}

.about-us .section.about-us .unit {
  background: var(--color-dark-primary);
  color: var(--color-dark-primary-text);

  padding: 2rem 4rem 4rem;
  position: relative;
}

@media screen and (max-width: 48rem) {
  .about-us .section.about-us .unit {
    padding: 2rem 3rem 4rem;
  }
}

@media screen and (max-width: 30rem) {
  .about-us .section.about-us .unit {
    padding: 2rem 1.5rem 4rem;
  }
}

.about-us .section.about-us .lead {
  font-size: 2rem;

  text-align: center;
}

@media screen and (max-width: 48rem) {
  .about-us .section.about-us .lead {
    font-size: 1.5rem;
  }
}

.about-us .section.about-us .description {
  margin-top: 2rem;

  font-size: 1.2rem;
}

.about-us .section.about-us .description p + p {
  margin-top: 1rem;
}

.about-us .section.about-us .image {
  position: absolute;
  top: calc(100% - 2rem);
  right: 0;

  width: 26rem;
}

@media screen and (max-width: 48rem) {
  .about-us .section.about-us .image {
    width: 20rem;
  }
}

@media screen and (max-width: 30rem) {
  .about-us .section.about-us .image {
    width: 80%;

    right: 10%;
  }
}

.about-us .section.about-us .image img {
  width: 100%;
}

/******************************************************************************/
/*
 * Naming section
 */

.about-us .section.naming {
  padding-bottom: 14rem;
}

.about-us .section.naming .description {
  padding: 2rem 1rem;
}

.about-us .section.naming .description p + p {
  margin-top: 1rem;
}

.about-us .section.naming .image {
  text-align: left;
}

@media screen and (max-width: 30rem) {
  .about-us .section.naming .image {
    text-align: center;
  }
}

.about-us .section.naming .image img {
  max-width: calc(80% - 2rem);
}

/******************************************************************************/
/*
 * Archax project section
 */

.about-us .section.archax-project {
  padding-bottom: 14rem;
}

.about-us .section.archax-project .description {
  padding: 2rem 1rem;
}

.about-us .section.archax-project .description p + p {
  margin-top: 1rem;
}

.about-us .section.archax-project .image {
  text-align: left;
}

@media screen and (max-width: 48rem) {
  .about-us .section.archax-project .image {
    text-align: center;
  }
}

.about-us .section.archax-project .image img {
  max-width: min(50%, calc(100% - 2rem));
}

@media screen and (max-width: 48rem) {
  .about-us .section.archax-project .image img {
    max-width: calc(100% - 2rem);
  }
}

/******************************************************************************/
/*
 * Social significance section
 */

.about-us .section.social-significance {
  padding-bottom: 14rem;
}

.about-us .section.social-significance .description {
  padding: 2rem 1rem;
}

.about-us .section.social-significance .description p + p {
  margin-top: 1rem;
}

.about-us .section.social-significance .image {
  text-align: left;
}

@media screen and (max-width: 48rem) {
  .about-us .section.social-significance .image {
    text-align: center;
  }
}

.about-us .section.social-significance .image img {
  max-width: min(50%, calc(100% - 2rem));
}

@media screen and (max-width: 48rem) {
  .about-us .section.social-significance .image img {
    max-width: calc(100% - 2rem);
  }
}

/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/*
 * Overview
 */

/******************************************************************************/
/*
 * Tagline section
 */

.overview .section.tagline {
  margin-top: 0;

  padding-block: 4rem 3rem;
  color: var(--color-dark-primary-text);
  font-family: var(--font-sans);

  background-image: url(../img/company/about-us-tagline.jpg);
  background-size: cover;
  background-repeat: no-repeat;
  background-position: right;

  display: grid;
  grid-template-rows: auto 1fr;
  grid-template-columns: auto;
  place-items: start;
}

.overview .section.tagline .watermark {
  grid-row: 1 / 3;
  grid-column: 1 / 2;

  width: 100%;

  color: rgba(0, 0, 0, .4);
  font-size: 6rem;
  font-family: Impact;
  font-weight: 600;

  overflow: hidden;
  text-align: center;
}

.overview .section.tagline .title {
  grid-row: 1 / 2;
  grid-column: 1 / 2;

  margin: 0;
  border: none;

  padding: 0 1rem;
}

.overview .section.tagline .unit {
  grid-row: 2 / 3;
  grid-column: 1 / 2;

  margin-top: 2rem;
}

.overview .section.tagline .unit .lead {
  display: inline-block;

  font-size: 1.5rem;
  padding: 0 .5rem;
}

.overview .section.tagline .unit .description {
  font-size: 1rem;
  padding: 1rem 1.5rem;
}

.overview .section.tagline .unit .description p + p {
  margin-top: .5rem;
}

/******************************************************************************/
/*
 * Member section
 */

.overview {
  --size-member-max-width: min(40rem, 100%);
}

.overview .section.member .unit {
  margin-top: 2rem;

  display: flex;
  flex-direction: column;
  align-items: center;
}

.overview .section.member .unit .image {
  max-width: var(--size-member-max-width);
}

.overview .section.member .unit .image img {
  max-width: 100%;
}

.overview .section.member .unit .introduction {
  margin-top: -3rem;
  width: calc(var(--size-member-max-width) - 4rem);

  background-color: var(--color-dark-primary);
  color: var(--color-dark-primary-text);

  padding: 1rem 2rem;
  text-align: center;
}

.overview .section.member .unit .introduction .member-title {
  color: #555;
  font-family: var(--font-sans);
  font-size: 1.875rem;
}

.overview .section.member .unit .introduction .name {
  font-family: var(--font-sans);
  font-size: 1.5rem;
}

.overview .section.member .unit .introduction .history {
  margin-top: 1rem;

  text-align: left;
}

/******************************************************************************/
/*
 * Company overview section
 */

.overview .section.company-overview .unit {
  margin-top: 2rem;
  margin-inline: 4rem;

  display: flex;
  flex-direction: column;
}

@media screen and (max-width: 48rem) {
  .overview .section.company-overview .unit {
    margin-inline: 2rem;
  }
}

@media screen and (max-width: 30rem) {
  .overview .section.company-overview .unit {
    margin-inline: 0;
  }
}

.overview .section.company-overview .unit .segment {
  border-bottom: 1px solid #555;

  padding-block: 1rem;

  display: flex;
  flex-direction: row;
}

@media screen and (max-width: 30rem) {
  .overview .section.company-overview .unit .segment {
    flex-direction: column;
  }
}

.overview .section.company-overview .unit .segment .label {
  margin-bottom: .5rem;
  width: 10rem;

  font-weight: 600;
}

@media screen and (max-width: 48rem) {
  .overview .section.company-overview .unit .segment .label {
    width: 7rem;
  }
}

.overview .section.company-overview .unit .segment .value {
  flex-grow: 1;
}

/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/*
 * CONTACT
 */

/*
 * Email section
 */

.contact .section.email .unit {
  margin-top: 2rem;
  margin-inline: 4rem;

  display: flex;
  flex-direction: column;
}

@media screen and (max-width: 48rem) {
  .contact .section.email .unit {
    margin-inline: 2rem;
  }
}

@media screen and (max-width: 30rem) {
  .contact .section.email .unit {
    margin-inline: 0;
  }
}

.contact .section.email .unit .segment {
  border-bottom: 1px solid #555;

  padding-block: 1rem;

  display: flex;
  flex-direction: column;
}

.contact .section.email .unit .segment .label {
  margin-bottom: .5rem;

  font-weight: 600;
}

.contact .section.email .unit .segment .value {
  flex-grow: 1;
}

.contact .section.email .unit .notice {
  margin-top: 1rem;

  font-size: .875rem;
}

/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/*
 * RECRUIT
 */

.content.recruit .unit + .unit {
  margin-top: 3rem;
}

.content.recruit .unit > .title {
  font-size: 2rem;
}

.content.recruit .unit > .title + * {
  margin-top: 2rem;
}

.content.recruit .description {
  padding-inline: 0.5rem;
}}

.content.recruit .description p {
  font-size: 1rem;
  line-height: var(--value-golden-ratio);
}

.content.recruit .description p + p {
  margin-top: 1rem;
}

.content.recruit .description > ul {
  margin-top: 1rem;
}

.content.recruit .description > ul {
  margin-inline-start: 2rem;

  list-style: circle;
}

.content.recruit .description > ul > li + li {
  margin-block: 0.5rem;
}

.content.recruit .description > h3 {
  margin-block-start: 2rem;

  font-size: 1.5rem;
  font-weight: bold;
}

.content.recruit .description > h3 + * {
  margin-block-start: 1.5rem;
}

.content.recruit .description > .verse > p {
  margin-block-start: 1.5rem;
}

.content.recruit .description > .verse > ul {
  margin-inline-start: 2rem;

  list-style: circle;
}

.content.recruit .description > .engineer-details-layout {
  margin-block-start: 1rem;

  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: start;
  justify-items: center;
  gap: 0.5rem;
}

.content.recruit .description > .engineer-details-layout > * {
  border: 1px solid #000;

  min-width: max(8rem, 30%);

  padding-block: 0.5rem;
  padding-inline: 1rem;
}

/******************************************************************************/
/*
 * article list <section>
 */
.content.recruit dl.table {
  margin: 2rem 1rem 0;

  display: grid;
  grid-template-columns: auto 1fr;
  gap: .5rem;

  @media screen and (max-width: 30rem) {
    margin: 2rem 0 0;
  }
}


.content.recruit dl.table > dt {
  font-weight: 600;

  display: inline-flex;
  justify-content: space-between;
}

.content.recruit dl.table > dt::after {
  content: ':';

  margin-inline: .25rem;
}

/******************************************************************************/

.content.recruit .recruitment-type details {
  margin-top: 2rem;
}

.content.recruit .recruitment-type summary {
  font-size: 2rem;

  border: bolder;
}

.content.recruit .recruitment-type summary + .verse {
  margin-block-start: 1.5rem;
  margin-inline-start: 1rem;
}

.content.recruit .recruitment-type .verse + .verse {
  margin-block-start: 1.5rem;
  margin-inline-start: 1rem;
}

.content.recruit .recruitment-type .verse > h4 {
  font-size: 1.5rem;

  border: bolder;
}

.content.recruit .recruitment-type .verse > h4 + *{
  margin-block-start: 1rem;
}

.content.recruit .recruitment-type .verse > ul {
  margin-inline-start: 2rem;

  list-style: circle;
}

/******************************************************************************/

.content.recruit .description .email {
  margin-block-start: 1rem;
  margin-inline-start: 0.5rem;

  border: 1px solid #000;

  padding-block: 0.5rem;
  padding-inline: 1rem;
}

/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/*
 * News article
 */

/******************************************************************************/
/*
 * <article> of News article
 */

/* article content area below billboard */
.news-article .content {
  margin-block-start: 4rem;
}

/* article title */
.news-article article > h1 {
  margin-bottom: 2rem;

  padding: .25rem 1rem;
  background-color: var(--color-dark-primary);
  color: var(--color-dark-primary-text);
  font-size: 1.5rem;
  line-height: var(--value-golden-ratio);
}

/* article date */
.news-article article > h1 + time {
  margin-inline-start: 1rem;

  color: var(--color-light-primary-text);
  font-size: .875rem;
  font-family: var(--font-sans);
  font-weight: 600;
}

/* article <section> */
.news-article article > section {
  margin-top: 4rem;
}

.news-article article > section > h2 {
  margin-inline: .5rem;
  border-bottom: 1px solid #555;

  font-size: 1.5rem;

  padding-bottom: .5rem;
}

.news-article article > section > p {
  margin-top: 1rem;
  margin-inline: 1rem;

  font-size: 1rem;
  line-height: var(1rem * var(--value-golden-ratio));
  text-align: justify;
}

.news-article article > section > p::first-letter {
  margin-inline-start: .5rem;
}

/* article wide image <section> */
.news-article article > section > img {
  margin-top: 1rem;

  max-width: 100%;

  box-shadow: .125rem .125rem .5rem rgba(17, 17, 17, .3);
}

/******************************************************************************/

/* article figure */
.news-article article > section figure {
  max-width: 100%;

  box-shadow: .125rem .125rem .5rem rgba(17, 17, 17, .3);
}

.news-article article > section > figure {
  margin-top: 2rem;
}

.news-article article figure > img {
  width: 100%;
}

.news-article article figure > figcaption {
  padding: .5rem 1rem;
  font-size: .875rem;
  line-height: var(1rem * var(--value-golden-ratio));
}

/******************************************************************************/
/*
 * article gallery <section>
 */
.news-article article .layout-gallery {
  margin-top: 2rem;

  display: flex;
  justify-content: center;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 1rem;
}

.news-article article .layout-gallery > * {
  max-width: calc((100% - 3rem) / 2);
}

/******************************************************************************/
/*
 * article list <section>
 */
.news-article article > section > dl {
  margin: 2rem 1rem 0;

  display: grid;
  grid-template-columns: auto 1fr;
  gap: .5rem;
}

@media screen and (max-width: 30rem) {
  .news-article article > section > dl {
    margin: 2rem 0 0;
  }
}

.news-article article > section > dl > dt {
  font-weight: 600;

  display: inline-flex;
  justify-content: space-between;
}

.news-article article > section > dl > dt::after {
  content: ':';

  margin-inline: .25rem;
}

/******************************************************************************/

.news-article article > section > a {
  margin-top: 1.5rem;
}

/******************************************************************************/
/*
 * <aside> of News article
 */

/* aside <h2> */
.news-article aside > h2 {
  border-bottom: 1px solid #555;

  padding-bottom: .5rem;

  font-family: var(--font-sans);
  font-size: 1.125rem;
}

/* -------------------------------------------------------------------------- */

/* aside news-card layout */

.news-article aside > .part--news-card-layout {
  margin-top: 2rem;
}

@media not screen and (max-width: 48rem) {
  .news-article aside > .part--news-card-layout > * {
    width: 100%;
  }
}

/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/******************************************************************************/

/*
 * Privacy policy section
 */

.privacy-policy .section + .section .title {
  margin-inline-start: 2rem;
  border-inline-start: .5rem var(--color-dark-primary) solid;

  font-size: 2.5rem;
  font-weight: 700;

  padding: .8rem 1rem;
}

@media screen and (max-width: 48rem) {
  .privacy-policy .section + .section .title {
    margin-inline-start: 1.5rem;

    font-size: 2.5rem;
  }
}

@media screen and (max-width: 30rem) {
  .privacy-policy .section + .section .title {
    margin-inline-start: 1rem;

    font-size: 1.5rem;
  }
}

.privacy-policy .section + .section .description {
  margin: 2rem;

  font-size: 1rem;
}

@media screen and (max-width: 48rem) {
  .privacy-policy .section + .section .description {
    margin: 1rem;

    font-size: 1rem;
  }
}

@media screen and (max-width: 30rem) {
  .privacy-policy .section + .section .description {
    margin: 0rem;

    font-size: 1rem;
  }
}

.privacy-policy .section + .section .description p {
  margin-top: calc(1rem * var(--value-golden-ratio));
}

.privacy-policy .section + .section .description ol {
  margin-top: 1rem;
  margin-left: 1rem;
  list-style: decimal;
}

.privacy-policy .section + .section .description ol > li {
  margin-top: .75rem;
}

.privacy-policy .section + .section .description ul {
  margin-top: .5rem;
  margin-left: 1rem;
  list-style: disc;
}

.privacy-policy .section + .section .description ul > li {
  margin-top: .5rem;
}

/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/******************************************************************************/

/*
 * Merchandise section
 */

.merchandise-cards .section-title {
  margin-inline-start: 0;
  margin-block-end: 2rem;

  padding-block: .75rem;
}


/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/******************************************************************************/

/*
 * Merchandise archax-scale-model
 */

.merchandise-content .blindfold {
  display: none;
}

.merchandise-content .blindfold + * {
  display: none;
}

/******************************************************************************/
/*
 * <article> of Merchandise archax-scale-model
 */

.merchandise-content .section.billboard .billboard-title .title {
  font-size: 3rem;
}

@media screen and (max-width: 48rem) {
  .merchandise-content .section.billboard .billboard-title .title {
    font-size: 2rem;
  }
}

@media screen and (max-width: 30rem) {
  .merchandise-content .section.billboard .billboard-title .title {
    font-size: 1rem;
  }
}

/* article content area below billboard */
.merchandise-content .content {
  margin-block-start: 4rem;
}

/* article title */
.merchandise-content article > h1 {
  margin-bottom: 2rem;

  padding: .25rem 1rem;
  background-color: var(--color-dark-primary);
  color: var(--color-dark-primary-text);
  font-size: 1.5rem;
  line-height: var(--value-golden-ratio);
}

/* article date */
.merchandise-content article > h1 + time {
  margin-inline-start: 1rem;

  color: var(--color-light-primary-text);
  font-size: .875rem;
  font-family: var(--font-sans);
  font-weight: 600;
}

/* article <section> */
.merchandise-content article > section {
  margin-top: 4rem;
}

.merchandise-content article > section > h2 {
  margin-inline: .5rem;
  border-bottom: 1px solid #555;

  font-size: 1.5rem;

  padding-bottom: .5rem;
}

.merchandise-content article > section > p {
  margin-top: 1rem;
  margin-inline: 1rem;

  font-size: 1rem;
  line-height: var(1rem * var(--value-golden-ratio));
  text-align: justify;
}

.merchandise-content article > section > p::first-letter {
  margin-inline-start: .5rem;
}

/* article wide image <section> */
.merchandise-content article > section > img {
  margin-top: 1rem;

  max-width: 100%;

  box-shadow: .125rem .125rem .5rem rgba(17, 17, 17, .3);
}

/******************************************************************************/

/* article figure */
.merchandise-content article > section figure {
  max-width: 100%;

  box-shadow: .125rem .125rem .5rem rgba(17, 17, 17, .3);
}

.merchandise-content article > section > figure {
  margin-top: 2rem;
}

.merchandise-content article figure > img {
  width: 100%;
}

.merchandise-content article figure > figcaption {
  padding: .5rem 1rem;
  font-size: .875rem;
  line-height: var(1rem * var(--value-golden-ratio));
}

/******************************************************************************/
/*
 * article gallery <section>
 */
.merchandise-content article .layout-gallery {
  margin-top: 2rem;

  display: flex;
  justify-content: center;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 1rem;
}

.merchandise-content article .layout-gallery > * {
  max-width: calc((100% - 3rem) / 2);
}

/******************************************************************************/
/*
 * article list <section>
 */
.merchandise-content article > section > dl {
  margin: 2rem 1rem 0;

  display: grid;
  grid-template-columns: auto 1fr;
  gap: .5rem;
}

@media screen and (max-width: 30rem) {
  .merchandise-content article > section > dl {
    margin: 2rem 0 0;
  }
}

.merchandise-content article > section > dl > dt {
  font-weight: 600;

  display: inline-flex;
  justify-content: space-between;
}

.merchandise-content article > section > dl > dt::after {
  content: ':';

  margin-inline: .25rem;
}

/******************************************************************************/

.merchandise-content article > section > a {
  margin-top: 1.5rem;
}

/******************************************************************************/
/*
 * <aside> of News article
 */

/* aside <h2> */
.merchandise-content aside > h2 {
  border-bottom: 1px solid #555;

  padding-bottom: .5rem;

  font-family: var(--font-sans);
  font-size: 1.125rem;
}

/* -------------------------------------------------------------------------- */

/* aside news-card layout */

.merchandise-content aside > .part--news-card-layout {
  margin-top: 2rem;
}

@media not screen and (max-width: 48rem) {
  .merchandise-content aside > .part--news-card-layout > * {
    width: 100%;
  }
}


/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/******************************************************************************/

/*
 * SNS section (Twitter, Instagram)
 */

.share-layout {
  margin-block-end: 4rem;

  display: flex;
  flex-direction: row;
  align-items: start;
  justify-content: center;

  gap: 1rem;

  @media (max-width: 48rem) {
    flex-direction: column;
  }
}

.share-layout > * {
  width: calc(100% / 2);
  min-height: 640px;

  @media (max-width: 48rem) {
    width: min(30rem, 100%);
  }
}

.share-layout > * > .sns {
  padding-block-end: 1rem;

  font-size: 2rem;
  text-align: center;
  white-space: nowrap;
}

