/**
 * 企業概要ページ固有スタイル。
 * 全体を@layer base（base.cssと同じレイヤー）に入れている。
 * Tailwindのユーティリティは@layer utilitiesに入っており、レイヤー無しの通常CSSは
 * 詳細度に関係なく常にどのレイヤーよりも勝ってしまうため、このファイルをレイヤー無しのままにすると
 * 同じ要素にTailwindクラス（mt-◯等）を併用しても効かない事故が起きる。
 * base.cssが各ページでこのファイルより先に読み込まれ@layer baseを宣言しているため、
 * ここで同じ名前のレイヤーを使うことで base → theme → utilities の順（後ろほど優先）に揃う。
 */
@layer base {

main .page-hero--profile {
  background-image: url("/profile/img/main_pc_bg.jpg");
  background-position: right center;
}

main .profile-message {
  margin-block: 80px 200px;
}

main .profile-message__visual {
  position: relative;
  aspect-ratio: 16 / 9;
  background-color: #e3f5fc;
  background-image: url("/profile/img/message_pc_bg.jpg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  overflow: hidden;
}

main .profile-message__photo {
  position: absolute;
  inset: 0;
}

main .profile-message__title {
  position: absolute;
  top: 50%;
  left: 14%;
  margin: 0;
  color: var(--color-site-white);
  font-size: 30px;
  line-height: 1.5;
  transform: translateY(-50%);
}

main .profile-message__summary {
  position: absolute;
  top: 50%;
  left: 49%;
  color: var(--color-site-primary);
  transform: translateY(-50%);
}

main .profile-message__lead {
  margin: 0;
  font-size: 30px;
  line-height: 2.1;
}

main .profile-message__lead-sp {
  display: none;
}

main .profile-message__position {
  margin: 28px 0 0;
  font-size: 16px;
}

main .profile-message__name {
  margin: 8px 0 0;
  font-size: 20px;
  font-weight: 700;
}

main .profile-message__body {
  margin-top: 72px;
  font-size: 16px;
}

main .profile-message__body p + p {
  margin-top: 36px;
}

main .profile-info {
  margin-bottom: 100px;
}

main .profile-info__visual {
  display: block;
  position: relative;
  aspect-ratio: 2.5 / 1;
  overflow: hidden;
}

main .profile-info__visual-image {
  display: block;
  position: absolute;
  top: -40px;
  left: 0;
  width: 100%;
  height: calc(100% + 80px);
  object-fit: cover;
  object-position: center;
  transform: translateY(var(--parallax-y, 0px));
  will-change: transform;
}

main .profile-info__inner {
  margin-top: 110px;
}

main .profile-info__inner > .section-heading {
  margin-bottom: 38px;
}

main .profile-info__business {
  margin-top: 40px;
}

main .profile-info__business .profile-info__business-label {
  margin: 0 0 24px;
  color: var(--color-site-primary);
  font-weight: 700;
}

main .profile-info__diagram,
main .profile-location__map,
main .profile-group__flow {
  display: block;
}

main .profile-info__diagram-image,
main .profile-location__map-image,
main .profile-group__flow-image {
  display: block;
  width: 100%;
  height: auto;
}

main .profile-location__map-panel {
  margin-top: 40px;
  padding: 50px 40px;
}

main .profile-location {
  margin-top: 100px;
  margin-bottom: 100px;
}

main .profile-location__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

main .profile-location__legend {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

main .profile-location__legend-item {
  display: flex;
  align-items: center;
  gap: 6px;
  color: var(--color-site-primary);
  font-size: 11px;
  letter-spacing: 0.05em;
}

main .profile-location__legend-dot {
  display: inline-block;
  flex-shrink: 0;
  width: 11px;
  height: 12px;
}

main .profile-location__legend-dot--fuji-chemical {
  background-color: #b5cefc;
}

main .profile-location__legend-dot--astareal {
  background-color: #b9e6e3;
}

main .profile-location__offices {
  margin-top: 110px;
}

main .profile-location__subheading {
  margin: 0 0 32px;
  color: #333333;
  font-size: 22px;
  line-height: 1.5;
}

main .profile-location__office {
  display: block;
}

main .profile-location__office{
  margin-top: 10px;
  text-indent: -0.7em;
}

main .profile-location__contact-break {
  display: inline;
}

main .profile-location__offices .profile-link-button {
  display: inline-flex;
  align-items: center;
  padding: 5px 16px;
}

main .profile-location__offices .profile-link-button::after {
  position: static;
  flex-shrink: 0;
  width: 13px;
  height: 13px;
  margin-left: 10px;
  background: url("/assets/img/icon/exlink_blue.svg") center / contain no-repeat;
  content: "";
  transform: none;
}

main .profile-link-button {
  display: inline-block;
  position: relative;
  margin-left: 16px;
  padding: 5px 32px;
  border: 1px solid #008dcc;
  color: #007eb8;
  font-size: 13px;
  line-height: 1.2;
  text-decoration: none;
  white-space: nowrap;
}

main .profile-link-button::after {
  position: absolute;
  top: 50%;
  right: 10px;
  width: 13px;
  height: 13px;
  background: url("/assets/img/icon/exlink_blue.svg") center / contain no-repeat;
  content: "";
  transform: translateY(-50%);
}

main .profile-group {
  margin-top: 120px;
  margin-bottom: 120px;
}

main .profile-group__flow {
  margin-top: 40px;
}

main .profile-group__list {
  margin-top: 110px;
  border-top: 1px solid #cbdde6;
}

main .profile-group__item {
  padding-block: 32px;
  border-bottom: 1px solid #cbdde6;
}

main .profile-group__name {
  margin: 0;
  color: #333333;
  font-size: 17px;
  line-height: 1.6;
}

main .profile-group__description {
  margin: 10px 0 0;
  color: #333333;
  font-size: 14px;
}

main .profile-link-button--site {
  min-width: 144px;
  margin: 22px 0 0;
  padding: 9px 34px;
  box-sizing: border-box;
  font-size: 15px;
  text-align: center;
}

main .profile-history {
  display: flex;
  flex-direction: column;
  gap: 40px;
  margin-bottom: 120px;
}

main .profile-history__stage {
  position: relative;
  color: var(--color-site-white);
  background-color: #07324d;
}

main .profile-history__backgrounds {
  position: sticky;
  z-index: 0;
  top: 0;
  height: 100vh;
  overflow: hidden;
}

main .profile-history__background {
  position: absolute;
  inset: 0;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  opacity: 0;
  transition: opacity 0.8s ease;
}

main .profile-history__background::after {
  position: absolute;
  inset: 0;
  background-color: rgba(0, 38, 66, 0.5);
  content: "";
}

main .profile-history__background.is-active {
  opacity: 1;
}

main .profile-history__background--01 {
  background-image: url("/profile/img/history_01_pc.jpg");
}

main .profile-history__background--02 {
  background-image: url("/profile/img/history_02_pc.jpg");
}

main .profile-history__background--03 {
  background-image: url("/profile/img/history_03_pc.jpg");
}

main .profile-history__background--04 {
  background-image: url("/profile/img/history_04_pc.jpg");
}

main .profile-history__layout {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 170px minmax(0, 1fr);
  gap: 48px;
  margin-top: -100vh;
  padding-top: 10vh;
}

main .profile-history__nav {
  position: sticky;
  top: 10vh;
  align-self: start;
}

main .profile-history__nav-toggle {
  display: none;
}

main .profile-history__nav-current {
  display: none;
}

main .profile-history__nav-list {
  margin: 0;
  padding: 0 0 30px;
  list-style: none;
}

main .profile-history__nav-list li + li {
  margin-top: 28px;
}

main .profile-history__nav-link {
  color: rgba(255, 255, 255, 0.62);
  font-size: 16px;
  line-height: 1.5;
  text-decoration: none;
  transition: color 0.3s ease, font-weight 0.3s ease;
}

main .profile-history__nav-link.is-active {
  color: var(--color-site-white);
  font-weight: 700;
}

main .profile-history__era {
  padding: 0 0 230px;
  box-sizing: border-box;
  /* サイト共通のanchor-point基準(ヘッダー高さ+50px)に統一 */
  scroll-margin-top: 100px;
}

main .profile-history__period {
  margin: 0;
  font-size: 16px;
  font-weight: 700;
}

main .profile-history__title {
  margin: 22px 0 0;
  font-size: 30px;
  font-weight: 700;
  line-height: 1.5;
}

main .profile-history__intro {
  margin: 34px 0 0;
  font-size: 16px;
  letter-spacing: 0.05em;
}

main .profile-history__timeline {
  margin: 56px 0 0;
  padding: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.55);
  list-style: none;
  letter-spacing: 0.1em;
}

main .profile-history__timeline li {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  gap: 24px;
  padding-block: 22px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.55);
}

main .profile-history__timeline time,
main .profile-history__timeline p {
  font-size: 16px;
}

main .profile-history__timeline time {
  font-weight: 700;
  line-height: 1.9;
}

main .profile-disclosure {
  display: block;
  position: relative;
  height: 400px;
  margin-block: 120px;
  overflow: hidden;
  color: var(--color-site-white);
  text-decoration: none;
}

main .profile-disclosure__bg {
  display: block;
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

main .profile-disclosure__inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 100%;
}

main .profile-disclosure__heading {
  margin: 0;
  font-size: 30px;
  font-weight: 700;
  line-height: 1.5;
}

main .profile-disclosure__link {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-top: 32px;
  padding-bottom: 9px;
  border-bottom: 1px solid var(--color-site-white);
  color: var(--color-site-white);
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
}

main .profile-disclosure__link-icon {
  width: 13px;
  height: 11px;
}

/**
 * 公表事項ページ（/profile/public_information/）固有スタイル。
 */

main .page-hero--disclosure {
  background-image: url("/profile/public_information/img/main_pc_bg.jpg");
  background-position: center;
}

main .disclosure-nav {
  margin-top: 140px;
}

main .disclosure-section {
  margin-top: 200px;
  margin-bottom: 110px;
}

main .disclosure-section--research {
  margin-top: 230px;
}

main .disclosure-section__heading {
  margin: 0 0 100px;
  text-align: center;
}

main .disclosure-section__icon {
  display: block;
  width: 48px;
  height: auto;
  margin: 0 auto 24px;
}

main .disclosure-section h3 {
  margin: 70px 0 24px;
}

main .disclosure-section > .subsection-heading:first-child {
  margin-top: 0;
}

main .disclosure-heading-lv2 {
  margin: 40px 0 20px;
}

main .disclosure-block-heading {
  margin: 40px 0 20px;
  color: var(--color-site-primary);
  font-size: 18px;
  line-height: 1.6;
}

main .disclosure-section p,
main .disclosure-section .disclosure-list {
  font-size: 18px;
}

main .disclosure-list {
  margin: 10px 0 0;
  /* ブラウザ既定のol/ulのpadding-leftを打ち消す(インデントはli側のpadding-leftで作る) */
  padding-left: 0;
  list-style: none;
}

/* Safariは::markerのcontentプロパティ自体を実装していないため(WebKit未実装の既知バグ)、
   ::markerのcontentではなく::beforeでカッコ付き番号を描画する(全ブラウザ共通で動く)。
   list-item(<li>のdisplay:list-itemが持つ自動採番カウンター)はlist-style:noneでも
   引き続き自動インクリメントされるため、counter-incrementの指定は不要。 */
main .disclosure-list li {
  position: relative;
  padding-left: 2.5em;
}

main .disclosure-list li::before {
  content: "（" counter(list-item) "）";
  position: absolute;
  left: 0;
}

main .disclosure-list li + li {
  margin-top: 8px;
}

main .disclosure-highlight {
  color: var(--color-site-primary);
}

main .disclosure-diagram {
  display: block;
  margin: 56px 0 0;
}

main .disclosure-diagram-image {
  display: block;
  width: 100%;
  height: auto;
}

main .disclosure-roles {
  margin-top: 24px;
  border-top: 1px solid #cbdde6;
}

main .disclosure-roles__item {
  padding-block: 24px;
  border-bottom: 1px solid #cbdde6;
}

main .disclosure-roles__title {
  margin: 0 0 5px;
  color: var(--color-site-primary);
}

main .disclosure-roles p {
  font-size: 16px;
}


main .disclosure-table-note {
  margin-top: 40px;
}

/* =====================================================================
   レスポンシブ（すべてここにまとめる。ブレークポイントは 980px / 640px）
   ===================================================================== */

@media only screen and (max-width: 980px) {
  main .profile-message {
    margin-block: 60px 160px;
  }

  main .profile-message__visual {
    aspect-ratio: 16 / 10;
  }

  main .profile-message__title {
    left: 10%;
    font-size: 22px;
  }

  main .profile-message__summary {
    left: 44%;
  }

  main .profile-message__lead {
    font-size: 20px;
    line-height: 2;
  }

  main .profile-message__body {
    margin-top: 60px;
  }

  main .profile-info {
    margin-bottom: 80px;
  }

  main .profile-info__inner > .section-heading {
    margin-bottom: 32px;
  }

  main .profile-info__business {
    margin-top: 20px;
  }

  main .profile-location__map-panel {
    margin-top: 32px;
  }

  main .profile-location {
    margin-top: 80px;
    margin-bottom: 80px;
  }

  main .profile-location__offices {
    margin-top: 90px;
  }

  main .profile-group {
    margin-bottom: 100px;
  }

  main .profile-group__flow {
    margin-top: 32px;
  }

  main .profile-group__list {
    margin-top: 90px;
  }

  main .profile-history {
    gap: 36px;
    margin-bottom: 100px;
  }

  main .profile-history__layout {
    grid-template-columns: 120px minmax(0, 1fr);
    gap: 28px;
  }

  main .profile-history__era {
    scroll-margin-top: 115px;
  }

  main .profile-history__title {
    font-size: 26px;
  }

  main .profile-disclosure {
    margin-block: 100px;
  }

  main .profile-disclosure__heading {
    font-size: 26px;
  }

  main .disclosure-section {
    margin-block: 90px;
  }

  main .disclosure-section--research {
    margin-top: 180px;
  }

  main .disclosure-section__heading {
    margin-bottom: 40px;
  }

  main .disclosure-section h3 {
    margin-top: 48px;
  }

  main .disclosure-heading-lv2,
  main .disclosure-block-heading {
    margin-top: 32px;
  }

  main .disclosure-block-heading {
    font-size: 17px;
  }

  main .disclosure-section p,
  main .disclosure-section .disclosure-list {
    font-size: 16px;
  }
}

@media only screen and (max-width: 640px) {
  main .page-hero--profile {
    background-image: url("/profile/img/main_sp_bg.jpg");
    background-position: right center;
  }

  main .profile-message {
    margin-block: 48px 120px;
  }

  main .profile-message__visual {
    aspect-ratio: auto;
    background: none;
    overflow: visible;
  }

  main .profile-message__photo {
    position: relative;
    inset: auto;
    aspect-ratio: 3 / 4;
    background-color: #e3f5fc;
    background-image: url("/profile/img/message_sp_bg.jpg");
    background-repeat: no-repeat;
    background-position: 30% center;
    background-size: cover;
    overflow: hidden;
  }

  main .profile-message__title {
    top: 50%;
    left: 8%;
    writing-mode: horizontal-tb;
    transform: translateY(-50%);
  }

  main .profile-message__summary {
    position: static;
    margin: 32px auto 0;
    transform: none;
  }

  main .profile-message__lead {
    font-size: 21px;
    line-height: 1.8;
    letter-spacing: 0.08em;
  }

  main .profile-message__lead-pc {
    display: none;
  }

  main .profile-message__lead-sp {
    display: block;
  }

  main .profile-message__position {
    margin-top: 30px;
    font-size: 14px;
  }

  main .profile-message__name {
    margin-top: 6px;
    font-size: 18px;
  }

  main .profile-message__body {
    margin-top: 40px;
  }
  main .profile-message__body p{
    font-size: 15px;
    letter-spacing: 0.07em;
  }

  main .profile-message__body p + p {
    margin-top: 28px;
  }

  main .profile-info {
    margin-bottom: 60px;
  }

  main .profile-info__visual {
    aspect-ratio: 4 / 3;
  }

  main .profile-info__inner > .section-heading {
    margin-bottom: 24px;
  }

  main .profile-location {
    margin-top: 60px;
    margin-bottom: 60px;
  }

  main .profile-location__head {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    margin-inline: auto;
  }

  main .profile-info__diagram {
    width: 900px;
    max-width: none;
  }

  main .disclosure-diagram {
    width: 860px;
    max-width: none;
  }

  main .profile-location__map-panel {
    width: fit-content;
    margin-top: 24px;
    padding: 32px 24px;
  }

  main .profile-location__map {
    width: 960px;
    max-width: none;
  }

  main .profile-location__offices {
    margin-top: 70px;
  }

  main .profile-location__subheading {
    margin-bottom: 20px;
    font-size: 18px;
  }

  main .profile-location__office {
    margin-top: 20px;
  }

  main .profile-location__contact-break {
    display: none;
  }

  main .profile-location__offices .profile-link-button {
    display: flex;
    width: fit-content;
    margin: 12px 0;
  }

  main .profile-link-button {
    display: inline-block;
    margin: 10px 0 0;
  }

  main .profile-group {
    margin-bottom: 64px;
  }

  main .profile-group__flow {
    margin-top: 24px;
  }

  main .profile-group__list {
    margin-top: 70px;
  }

  main .profile-group__item {
    padding-block: 24px;
  }

  main .profile-group__name {
    font-size: 16px;
  }

  main .profile-link-button--site {
    margin-top: 18px;
  }

  main .profile-history {
    gap: 32px;
    margin-bottom: 64px;
  }

  main .profile-history__background--01 {
    background-image: url("/profile/img/history_01_sp.jpg");
  }

  main .profile-history__background--02 {
    background-image: url("/profile/img/history_02_sp.jpg");
  }

  main .profile-history__background--03 {
    background-image: url("/profile/img/history_03_sp.jpg");
  }

  main .profile-history__background--04 {
    background-image: url("/profile/img/history_04_sp.jpg");
  }

  main .profile-history__layout {
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    padding-top: 0;
  }

  /* .profile-history__navのwidth:100vwはブラウザによってスクロールバー分の余剰幅を
     含んでしまい、横スクロールバーが出る場合がある。overflow-x:clipで内側だけ
     はみ出し分を切り詰める(overflow:hiddenだとスクロールコンテナ化してしまい
     直下のposition:sticky要素の基準がここに変わってしまうため、clipを使う)。 */
  main .profile-history__stage {
    overflow-x: clip;
  }

  main .profile-history__nav {
    position: sticky;
    z-index: 2;
    top: 46px;
    width: 100vw;
    margin-top: -1px;
    margin-left: 50%;
    margin-bottom: 100px;
    overflow: visible;
    transform: translateX(-50%);
  }

  main .profile-history__nav-toggle {
    display: block;
    position: relative;
    width: 100%;
    margin: 0;
    padding: 22px 40px 22px 16px;
    border: 1px solid var(--color-site-border);
    background-color: #f4f6f7;
    color: #07324d;
    font-family: inherit;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.5;
    text-align: center;
    cursor: pointer;
    appearance: none;
  }

  main .profile-history__nav-current {
    display: block;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    white-space: nowrap;
  }

  main .profile-history__nav-toggle::after {
    position: absolute;
    top: 50%;
    right: 16px;
    width: 8px;
    height: 8px;
    border-right: 1px solid #07324d;
    border-bottom: 1px solid #07324d;
    content: "";
    transform: translateY(-65%) rotate(45deg);
    transition: transform 0.2s ease;
  }

  main .profile-history__nav.is-open .profile-history__nav-toggle::after {
    transform: translateY(-35%) rotate(-135deg);
  }

  main .profile-history__nav-list {
    display: none;
    position: absolute;
    top: calc(100% - 1px);
    right: 0;
    left: 0;
    margin: 0;
    padding: 0;
    border: 1px solid var(--color-site-border);
    border-top: 0;
    background-color: #f4f6f7;
    list-style: none;
  }

  main .profile-history__nav.is-open .profile-history__nav-list {
    display: block;
  }

  main .profile-history__nav-list li + li {
    margin-top: 0;
    border-top: 1px solid var(--color-site-border);
  }

  main .profile-history__nav-link {
    display: block;
    padding: 12px 16px;
    color: #07324d;
    font-size: 14px;
    line-height: 1.5;
    text-align: center;
  }

  main .profile-history__nav-link.is-active {
    background-color: rgba(7, 50, 77, 0.08)!important;
    color: #07324d!important;
    font-weight: 700;
  }

  main .profile-history__era {
    min-height: 110vh;
    padding: 0 0 200px;
    scroll-margin-top: 96px;
  }

  main .profile-history__title {
    margin-top: 14px;
    font-size: 22px;
  }

  main .profile-history__intro {
    margin-top: 20px;
  }

  main .profile-history__timeline {
    margin-top: 32px;
  }

  main .profile-history__timeline li {
    display: block;
    padding-block: 14px;
  }

  main .profile-history__timeline p {
    margin-top: 6px;
  }

  main .profile-disclosure {
    height: 280px;
    margin-block: 64px;
  }

  main .profile-disclosure__heading {
    font-size: 24px;
  }

  main .profile-disclosure__link {
    margin-top: 20px;
    font-size: 12px;
  }

  main .page-hero--disclosure {
    background-image: url("/profile/public_information/img/main_sp_bg.jpg");
  }

  main .disclosure-nav {
    margin-top: 70px;
  }

  main .disclosure-section {
    margin-top: 110px;
    margin-bottom: 70px;
  }

  main .disclosure-section--research {
    margin-top: 140px;
  }

  main .disclosure-section__heading {
    margin-bottom: 32px;
  }

  main .disclosure-section h3 {
    margin-top: 40px;
  }

  main .disclosure-heading-lv2,
  main .disclosure-block-heading {
    margin-top: 28px;
  }

  main .disclosure-block-heading {
    font-size: 16px;
  }

  main .disclosure-section p,
  main .disclosure-section .disclosure-list {
    font-size: 15px;
  }

  main .disclosure-roles p {
    font-size: 15px;
  }
}

} /* @layer base */
