@charset "utf-8";

/* =========================================================
   会社概要  （style.css → page.css → このファイル の順で読む）

   実測の縦位置（1440幅レンダリング / ページ左上原点）
     パン屑        y=100     （1200幅 / 下罫 0.667px #eee / pad-bottom 10）
     和文見出し    y=179     （58px / lh69.6 / ls5.8）
     欧文          y=248     （28px / lh39.2 / ls2.8）
     ページ内リンク y=327.7  （24pxの丸 + 16px/700）
     見出し「会社概要」 y=481.7（青罫2.667 + pad-left24 / 高さ59.6）
     定義リスト     y=601〜1290（ラベル130 / 値 max840 / 行送り50.5）
     地図           y=1363.8  （1200×400 / radius 20 20 0 0）
     アクセス       y=1763.8  （1200×174.8 / bg#eee / radius 0 0 20 20 / pad30）
     見出し「会社紹介」 y=2058.6
     紹介動画枠      y=2118.2  （1200×675・参考は未読込で白）
     灰色の面        y=2798.1  （1424.7×987 / radius 200 0 200 0 / pad 120 0）
       和文40px      y=2918 / MESSAGE y=2974 / 右見出し32px y=2927
       本文18px      y=3031（lh32.4 / w696 / x624）
       青い面        y=3046.5  （498.6×300 / radius 0 24 24 0）
       写真カード    y=3086.5  （438.9×583.9 / radius24 / 白）
       役職          y=3590 / 署名 y=3622
     見出し「沿革」  y=3905.1
     年表            y=4024.7〜4999.8（行送り42.4 / 20pxの淡い丸 / 左罫）
     見出し「反社…」 y=5119.8   本文 y=5239 / 箇条 y=5317〜5476.8（行送り32.8）
     見出し「ブランド」y=5677    本文 y=5797 / リンク y=5846・5898
     main 下端       y=6070.4
   ========================================================= */

/* 下半分の装飾をページ座標で置くための基準 */
.pg-company__deco {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 6070px;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}
.pg-company__d--dots-l { left: calc(50% - 806px); top: 2211px; width: 518px; height: 518px; background-image: url(images/deco/dots.svg); }
.pg-company__d--pale-l { left: calc(50% - 984px); top: 2426px; width: 456px; height: 373px; background-image: url(images/deco/blob-solid-b.svg); }
.pg-company__d--dots-r { left: calc(50% + 202px); top: 3665px; width: 518px; height: 518px; background-image: url(images/deco/dots.svg); }
.pg-company__d--c-tl   { left: calc(50% + 504px); top: 4025px; width: 40px;  height: 40px;  background-image: url(images/deco/circle-grad.svg); }
.pg-company__d--duo-1  { left: calc(50% + 340px); top: 4940px; width: 220px; height: 178px; background-image: url(images/deco/blob-solid-b.svg); }
.pg-company__d--dots-2 { left: calc(50% + 371px); top: 5429px; width: 300px; height: 300px; background-image: url(images/deco/dots.svg); }
.pg-company__d--ring-1 { left: calc(50% + 20px);  top: 5454px; width: 200px; height: 183px; background-image: url(images/deco/blob-solid-a.svg); }
.pg-company__d--duo-2  { left: calc(50% + 340px); top: 5517px; width: 220px; height: 178px; background-image: url(images/deco/blob-solid-b.svg); }
.pg-company__d--dots-3 { left: calc(50% + 371px); top: 5922px; width: 300px; height: 300px; background-image: url(images/deco/dots.svg); }
.pg-company__d--ring-2 { left: calc(50% + 20px);  top: 5947px; width: 200px; height: 183px; background-image: url(images/deco/blob-solid-a.svg); }

/* 本文は装飾より前に出す */
.pg-company__sec,
.pg-company__msg { position: relative; z-index: 1; }

/* ---------- 会社概要（定義リスト → 地図 → アクセス） ---------- */
.pg-company__sec--about { padding-top: 129.4px; }   /* ページ見出し下端 352.3 → 見出し 481.7 */

.pg-company__map {
  position: relative;
  width: 100%;
  height: 400px;
  margin: 73.6px 0 0;
  border-radius: 20px 20px 0 0;
  overflow: hidden;
  background: #f2efe9 url(images/photo/map-01.svg) center / cover no-repeat;
}
.pg-company__map-card {
  position: absolute;
  left: 6px;
  top: 1.2px;
  width: 306px;
  padding: 14px 76px 16px 18px;
  background: #fff;
}
.pg-company__map-name {
  font-size: 14px;
  font-weight: 500;
  line-height: 19.6px;
  color: var(--c-ink);
}
.pg-company__map-addr {
  margin-top: 2px;
  font-size: 12px;
  line-height: 16.8px;
  color: var(--c-ink-2);
}
.pg-company__map-card::before,
.pg-company__map-card::after {
  content: "";
  position: absolute;
  top: 22px;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #f4f8f9;
}
.pg-company__map-card::before { right: 40px; }
.pg-company__map-card::after { right: 8px; background: #e8f3fa; }

.pg-company__access {
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
  width: 100%;
  padding: 30px;
  border-radius: 0 0 20px 20px;
  background: var(--c-face);
}
.pg-company__access-col--01 {
  width: 570px;
  border-right: .667px solid var(--c-blue);
}
.pg-company__access-col--02 { width: 540px; }
.pg-company__access-ttl {
  display: flex;
  align-items: center;
  gap: 14px;
  font-size: 20px;
  font-weight: 500;
  line-height: 28px;
  letter-spacing: 1px;
  color: var(--c-ink);
}
.pg-company__access-ttl i {
  flex: none;
  width: 20px;
  height: 2px;
  border-radius: 8px;
  background: var(--c-blue);
}
.pg-company__access-txt {
  margin-top: 10px;
  font-size: 16px;
  line-height: 25.6px;
  color: var(--c-ink);
}

/* ---------- 会社紹介（動画枠・参考は未読込のため白） ---------- */
.pg-company__sec--intro { padding-top: 120px; }     /* アクセス下端 1938.6 → 見出し 2058.6 */
.pg-company__movie {
  position: relative;
  width: 100%;
  height: 675px;
  background: #fff;
}
.pg-company__movie-play {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 88px;
  height: 88px;
  margin: -44px 0 0 -44px;
  border-radius: 50%;
  background: #f4f8f9;
}
.pg-company__movie-play::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--c-cyan);
  -webkit-mask: url(images/icon/tri-down.svg) center / 40px 40px no-repeat;
  mask: url(images/icon/tri-down.svg) center / 40px 40px no-repeat;
  transform: rotate(-90deg);
}

/* ---------- 代表メッセージ（灰色の面） ---------- */
.pg-company__msg {
  margin-top: 4.9px;
  padding: 120px 0;
  background: var(--c-face);
  border-radius: 200px 0 200px 0;
}
.pg-company__msg-in { display: flex; align-items: flex-start; }
.pg-company__msg-l { flex: none; width: 504px; }
.pg-company__msg-r { flex: 1; min-width: 0; max-width: 696px; }

.pg-company__msg-ttl { line-height: 56px; }
.pg-company__msg-ttl .av-sec-ttl__en {
  margin-top: 0;
  font-size: 16px;
  line-height: 22.4px;
  letter-spacing: 1.6px;
}
.pg-company__msg-lead {
  margin-top: 9px;
  font-size: 32px;
  font-weight: 500;
  line-height: 44.8px;
  color: var(--c-ink);
}
.pg-company__msg-body { margin-top: 59.2px; }
.pg-company__msg-body p {
  font-size: 18px;
  font-weight: 400;
  line-height: 32.4px;
  color: var(--c-ink);
}
.pg-company__msg-body p + p { margin-top: 32.4px; }
.pg-company__msg-role {
  margin-top: 40.6px;
  font-size: 16px;
  line-height: 22.4px;
  color: #333;
  text-align: right;
}
.pg-company__msg-sign {
  margin-top: 9.6px;
  font-family: var(--f-en);
  font-size: 30px;
  font-weight: 600;
  line-height: 43px;
  letter-spacing: 2px;
  color: var(--c-ink);
  text-align: right;
}

/* 青い面 + 白い写真カード（灰色の面の左端に寄せる） */
.pg-company__msg-bg {
  position: absolute;
  left: 0;
  top: 248.4px;
  width: 498.6px;
  height: 300px;
  border-radius: 0 24px 24px 0;
  background: linear-gradient(135deg, #5cc3ea 0%, #2aa7d8 100%);
}
.pg-company__msg-photo {
  position: absolute;
  left: 99.7px;
  top: 288.4px;
  width: 438.9px;
  height: 583.9px;
  border-radius: 24px;
  overflow: hidden;
  background: #fff;
  z-index: 2;
}
.pg-company__msg-photo img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- 沿革 ---------- */
.pg-company__sec--history { padding-top: 120px; }   /* 灰面下端 3785.1 → 見出し 3905.1 */
.pg-company__tl { margin-top: 60px; }

/* ---------- 反社会的勢力排除宣言 ---------- */
.pg-company__sec--comp { padding-top: 120px; }      /* 年表下端 4999.8 → 見出し 5119.8 */
.pg-company__comp-lead {
  margin-top: 59.6px;
  font-size: 16px;
  font-weight: 400;
  line-height: 28.8px;
  color: var(--c-ink);
}
.pg-company__comp-list { margin-top: 20.4px; }
.pg-company__comp-list li {
  display: flex;
  align-items: flex-start;
  font-size: 16px;
  font-weight: 400;
  line-height: 28.8px;
  color: var(--c-ink);
}
.pg-company__comp-list li + li { margin-top: 4px; }
.pg-company__comp-no { flex: none; width: 26px; }

/* ---------- ブランドガイドライン ---------- */
.pg-company__sec--brand { padding-top: 200.2px; padding-bottom: 140px; }
.pg-company__brand-lead {
  margin-top: 60.4px;
  font-size: 16px;
  font-weight: 400;
  line-height: 28.8px;
  color: var(--c-ink);
}
.pg-company__brand-dl {
  margin-top: 20.2px;
  font-size: 18px;
  font-weight: 400;
  line-height: 32.4px;
}
.pg-company__brand-dl + .pg-company__brand-dl { margin-top: 19.6px; }
.pg-company__brand-dl a { color: var(--c-blue); text-decoration: underline; }

/* =========================================================
   〜1439px
   ========================================================= */
@media (max-width: 1439px) {
  .pg-company__msg-bg,
  .pg-company__msg-photo { left: 0; }
  .pg-company__msg-photo { left: 40px; }
  .pg-company__d--dots-r,
  .pg-company__d--dots-2,
  .pg-company__d--dots-3 { left: auto; right: -30px; }
  .pg-company__d--duo-1,
  .pg-company__d--duo-2 { left: auto; right: 100px; }
  .pg-company__d--c-tl { left: auto; right: 110px; }
}
@media (max-width: 1180px) {
  .pg-company__msg-in { display: block; }
  .pg-company__msg-l { width: auto; }
  .pg-company__msg-r { max-width: none; margin-top: 40px; }
  .pg-company__msg-bg,
  .pg-company__msg-photo { position: relative; left: 0; top: 0; }
  .pg-company__msg-bg { display: none; }
  .pg-company__msg-photo { width: 100%; max-width: 438.9px; height: auto; aspect-ratio: 438.9 / 583.9; margin: 40px auto 0; }
  .pg-company__access-col--01 { width: 100%; padding-right: 0; border-right: 0; }
  .pg-company__access-col--02 { width: 100%; margin-top: 24px; padding-left: 0; }
  .pg-company__movie { height: 56.25vw; max-height: 675px; }
}

/* =========================================================
   スマホ（〜767px）実測: 見出し「会社概要」 y=448 / ラベル30 値109
   ========================================================= */
@media (max-width: 767px) {
  .pg-company__deco { height: 6800px; }
  .pg-company__d--dots-l { left: -60px; top: 1900px; width: 200px; height: 200px; }
  .pg-company__d--pale-l { left: -120px; top: 2050px; width: 200px; height: 164px; }
  .pg-company__d--dots-r { left: auto; right: -40px; top: 3200px; width: 200px; height: 200px; }
  .pg-company__d--c-tl   { left: auto; right: 24px;  top: 4000px; width: 24px; height: 24px; }
  .pg-company__d--duo-1  { left: auto; right: -60px; top: 4700px; width: 130px; height: 105px; }
  .pg-company__d--dots-2 { left: auto; right: -30px; top: 5100px; width: 160px; height: 160px; }
  .pg-company__d--ring-1 { left: -40px; top: 5200px; width: 120px; height: 110px; }
  .pg-company__d--duo-2,
  .pg-company__d--ring-2,
  .pg-company__d--dots-3 { display: none; }

  .pg-company__sec--about { padding-top: 120px; }
  .pg-company__map { height: 220px; margin-top: 40px; border-radius: 14px 14px 0 0; }
  .pg-company__map-card { width: 240px; padding: 10px 54px 12px 12px; }
  .pg-company__map-name { font-size: 12px; line-height: 16.8px; }
  .pg-company__map-addr { font-size: 11px; line-height: 15.4px; }
  .pg-company__map-card::before { right: 30px; }
  .pg-company__map-card::before,
  .pg-company__map-card::after { top: 16px; width: 22px; height: 22px; }

  .pg-company__access { padding: 20px; border-radius: 0 0 14px 14px; }
  .pg-company__access-ttl { font-size: 16px; line-height: 22.4px; gap: 10px; }
  .pg-company__access-txt { font-size: 15px; line-height: 25.5px; }

  .pg-company__sec--intro { padding-top: 80px; }
  .pg-company__movie { height: 56.25vw; }
  .pg-company__movie-play { width: 60px; height: 60px; margin: -30px 0 0 -30px; }
  .pg-company__movie-play::before {
    -webkit-mask-size: 28px 28px;
    mask-size: 28px 28px;
  }

  .pg-company__msg { margin-top: 60px; padding: 80px 0; border-radius: 80px 0 80px 0; }
  .pg-company__msg-ttl { font-size: 28px; line-height: 39.2px; }
  .pg-company__msg-ttl .av-sec-ttl__en { font-size: 14px; line-height: 19.6px; }
  .pg-company__msg-lead { margin-top: 24px; font-size: 24px; line-height: 33.6px; }
  .pg-company__msg-body { margin-top: 24px; }
  .pg-company__msg-body p { font-size: 15px; line-height: 27px; }
  .pg-company__msg-body p + p { margin-top: 27px; }
  .pg-company__msg-role { margin-top: 20px; font-size: 14px; }
  .pg-company__msg-sign { font-size: 24px; line-height: 34px; }
  .pg-company__msg-photo { margin-top: 30px; }

  .pg-company__sec--history { padding-top: 80px; }
  .pg-company__sec--comp { padding-top: 80px; }
  .pg-company__comp-lead { margin-top: 32px; font-size: 14px; line-height: 25.2px; }
  .pg-company__comp-list li { font-size: 14px; line-height: 25.2px; }
  .pg-company__comp-no { width: 26px; }
  .pg-company__sec--brand { padding-top: 80px; padding-bottom: 80px; }
  .pg-company__brand-lead { margin-top: 32px; font-size: 14px; line-height: 25.2px; }
  .pg-company__brand-dl { margin-top: 16px; font-size: 15px; line-height: 27px; }
  .pg-company__brand-dl + .pg-company__brand-dl { margin-top: 14px; }
}
