/* メイン動画
---------------------------------------------------------------------------*/
/* =========================
   BASE
========================= */
.zrvHeroSectionX91{
    position:relative;
    width:100%;
    height:100vh;
    overflow:hidden;
    background:#000;
}

/* =========================
   VIDEO
========================= */
.zrvHeroVideoX91{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;

    opacity:0;
    transform:scale(1.06);

    animation: zrvVideoFadeX91 2.8s ease forwards;
    animation-delay:0.3s;

    filter:
    brightness(0.68)
    contrast(1.22)
    saturate(1.05);
}

/* =========================
   DOT LAYER（核心）
========================= */
.zrvHeroDotLayerX91{
    position:absolute;
    inset:0;
    z-index:3;
    pointer-events:none;

    background-color: rgba(0,0,0,0.35);

    background-image:
        radial-gradient(rgba(0,0,0,0.30) 20%, transparent 20%),
        radial-gradient(rgba(0,0,0,0.30) 20%, transparent 20%);

    background-size: 6px 6px;

    background-position: 0 0, 3px 3px;

    mix-blend-mode:multiply;
}

/* =========================
   BLACK INTRO
========================= */
.zrvHeroIntroFadeX91{
    position:absolute;
    inset:0;
    z-index:10;

    background:#000;

    animation: zrvIntroFadeX91 2s ease forwards;
}

/* =========================
   TEXT
========================= */
.zrvHeroTextWrapX91{
    position:relative;
    z-index:20;

    width:100%;
    height:100%;

    display:flex;
    align-items:center;

    padding-left:8%;
    padding-right:5%;
}

.zrvHeroTextInnerX91{
    opacity:0;
    transform:translateY(24px);

    animation: zrvTextFadeX91 1.8s ease forwards;
    animation-delay:1.5s;
}

.zrvHeroTitleX91{
    color:#fff;

    font-size:clamp(38px,5vw,88px);
    line-height:1.15;
    letter-spacing:0.08em;
    font-weight:700;

    margin-bottom:24px;
}

.zrvHeroSubTitleX91{
    color:#fff;

    font-size:clamp(14px,1.1vw,20px);
    line-height:2;
    letter-spacing:0.12em;

    max-width:760px;
}

/* =========================
   ANIMATION
========================= */

@keyframes zrvVideoFadeX91{
    0%{ opacity:0; transform:scale(1.08); }
    100%{ opacity:1; transform:scale(1); }
}

@keyframes zrvIntroFadeX91{
    0%{ opacity:1; }
    100%{ opacity:0; visibility:hidden; }
}

@keyframes zrvTextFadeX91{
    0%{ opacity:0; transform:translateY(24px); }
    100%{ opacity:1; transform:translateY(0); }
}

/* 全体の設定
---------------------------------------------------------------------------*/
:root {
  --header-height: 20px;
}

@media (max-width: 1100px) {
  :root {
    --header-height: 5px;
  }
}

.takatech_main {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 300;
  color: #111;
  background: #fff;
}

.takatech_main__hero {
  position: relative;
  margin-top: var(--header-height);
  height: calc(100dvh - var(--header-height));
  display: flex;
  align-items: center;
  padding-left: 10%;
  color: #fff;
  overflow: hidden;
}

/* 動画ドットフィルター */
.takatech_main__hero::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;

  width: 200vmax;
  height: 200vmax;

  transform: translate(-50%, -50%) rotate(45deg);
  transform-origin: center;

  z-index: 1;
  pointer-events: none;

  background-image: radial-gradient(
    rgba(255, 255, 255, 0.15) 1px,
    transparent 1px
  );

  background-size: 6px 6px;
}

/* 動画 */
.takatech_main__hero_video {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: translate(-50%, -50%);
  z-index: 0;
}

/* オーバーレイ */
.takatech_main__hero_overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    rgba(0,0,0,0.4),
    rgba(0,0,0,0.7)
  );
  z-index: 1;
}

/* テキスト */
.takatech_main__hero_inner {
  position: relative;
  z-index: 2;
  top: 20%;
  transform: translateY(-50%);
}

.takatech_main__hero_sub {
  letter-spacing: 0.3em;
  font-size: 0.8rem;
  margin-bottom: 20px;
}

.takatech_main__hero_title {
  font-size: 4rem;
  font-weight: 200;
  margin-bottom: 20px;
}

.takatech_main__hero_text {
  font-size: 1rem;
}

/* =========================
   ボタン
========================= */
.takatech_main__hero_btn {
  position: relative;
  display: inline-block;
  margin-top: 30px;
  padding: 12px 40px;
  color: #fff;
  text-decoration: none;
  border: 1px solid #fff;
  overflow: hidden;
  transition: color 0.4s ease;
}

/* スライド背景 */
.takatech_main__hero_btn::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #fff;
  transform: translateX(-100%);
  transition: transform 0.4s ease;
  z-index: -1;
}

.takatech_main__hero_btn:hover {
  color: #000;
}

.takatech_main__hero_btn:hover::before {
  transform: translateX(0);
}

/* =========================
   Fade Animation
========================= */
.takatech_main__fade {
  opacity: 0;
  transform: translateY(40px);
  transition: 1.2s ease;
}

.takatech_main__fade.is-active {
  opacity: 1;
  transform: translateY(0);
}

/* =========================
   Responsive
========================= */
@media (max-width: 768px) {
  .takatech_main__hero {
    padding: 0 20px;
    text-align: center;
  }

  .takatech_main__hero_inner {
    top: 20%;
    transform: translateY(-50%);
    max-width: 100%;
  }

  /* 見出し */
  .takatech_main_headline {
    align-items: center;
    gap: 12px;
  }

  .takatech_main_headline__en {
    font-size: 0.65rem;
    letter-spacing: 0.25em;
  }

  .takatech_main_headline__jp {
    font-size: 2rem;
    line-height: 1.5;
  }

  /* 動画をさらに暗く */
  .takatech_main__hero_video {
    filter: brightness(0.45) blur(2px);
  }

  /* ボタン */
  .takatech_main__hero_btn {
    width: 100%;
    max-width: 280px;
    margin: 40px auto 0;
    padding: 12px 0;
  }

  .takatech_main__block {
    padding: 100px 20px;
    text-align: center;
  }

  .takatech_main__jp {
    font-size: 1.8rem;
    line-height: 1.6;
  }

  .takatech_main__split {
    flex-direction: column;
  }

  .takatech_main__split_img {
    height: 260px;
  }

  .takatech_main__split_text {
    padding: 40px 20px;
    text-align: center;
  }

  .takatech_main__numbers {
    padding: 100px 20px;
  }

  .takatech_main__numbers_inner {
    flex-direction: column;
    gap: 50px;
  }

  .takatech_main__number_item span {
    font-size: 2.8rem;
  }

  .takatech_main__cta {
    padding: 100px 20px;
  }

  .takatech_main__cta a {
    width: 100%;
    max-width: 280px;
    margin: 30px auto 0;
    display: block;
    text-align: center;
  }
}

/* NEWS見出し
---------------------------------------------------------------------------*/
.tkh-hero-title {
  position: relative;
  display: inline-block;

  padding: 20px 0;
}

/* =========================
   背景の薄いNEWS
========================= */

.tkh-hero-title__bg {
  position: absolute;
  top: -20px;
  left: 0;

  font-size: 90px;
  font-weight: 700;
  letter-spacing: 0.2em;

  color: rgba(0, 0, 0, 0.05);

  z-index: 0;
  user-select: none;
  pointer-events: none;
}

/* =========================
   メインNEWS
========================= */

.tkh-hero-title__main {
  position: relative;
  display: block;

  font-size: 40px;
  font-weight: 700;

  letter-spacing: 0.22em;

  color: #111;

  z-index: 1;
}

/* =========================
   日本語（ニュース）
========================= */

.tkh-hero-title__jp {
  display: block;
  margin-top: 6px;

  font-size: 12px;
  font-weight: 300;
  color: #000080;

  letter-spacing: 0.35em;



  z-index: 1;
}


/* ニュース(独立ページにニュースあるが装飾が違う)
---------------------------------------------------------------------------*/

.news {
    background: #fff;
    overflow-x: hidden;
    position: relative;
    padding: 100px 0;
}

/* 斜め背景 */

.news::before {
    content: "";
    position: absolute;

    top: -140px;
    left: -40%;

    width: 200%;
    height: 340px;

    background: linear-gradient(
        135deg,
        #004da1 0%,
        transparent 65%
    );

    transform: rotate(-8deg);

    opacity: 0.05;

    z-index: 0;
}

/* =========================================================
   INNER
   ========================================================= */

.inner {
    width: 90%;
    max-width: 1400px;

    margin: 0 auto;

    position: relative;
    z-index: 1;
}

/* NEWS本体だけ右寄せ */

.news_content {
    margin-left: auto;

    width: 100%;
    max-width: 960px;
}

.takatech_news_inner {
    position: relative;
    overflow: hidden;
}

/* =========================================================
   PC LAYOUT
   ========================================================= */

@media screen and (min-width: 1001px) {

    .news_layout {
        display: flex;
        justify-content: flex-end;
    }

    .news_list {
        border-top: 2px solid #111;
        border-left: 1px solid rgba(0,0,0,0.08);
        border-right: 1px solid rgba(0,0,0,0.08);
    }
}

/* =========================================================
   FILTER
   ========================================================= */

.news_filters {
    margin-bottom: 26px;
    padding-bottom: 14px;

    border-bottom: 1px solid #ddd;

    position: relative;
}

.news_filters::before {
    content: "";

    position: absolute;

    top: -8px;
    left: 0;

    width: 90px;
    height: 2px;

    background: #004da1;

    transform: skewX(-20deg);
}

.category_buttons {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.category_buttons button {
    background: transparent;

    border: 1px solid #ccc;

    padding: 7px 16px;

    cursor: pointer;

    font-size: 12px;
    font-weight: 600;
    font-family: "Noto Sans JP", sans-serif;

    color: #555;

    transition: 0.2s ease;
}

.category_buttons button:hover {
    border-color: #004da1;
    color: #004da1;
}

button.active {
    background: #004da1 !important;
    color: #fff !important;
    border-color: #004da1 !important;
}

/* =========================================================
   LIST
   ========================================================= */

.news_list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.news_list_item {
    position: relative;
    border-bottom: 1px solid #e5e5e5;
}

/* 左アクセント */

.news_list_item::before {
    content: "";

    position: absolute;

    left: 0;
    top: 0;

    width: 2px;
    height: 100%;

    background: linear-gradient(
        180deg,
        #004da1,
        transparent
    );

    opacity: 0.35;
}

/* =========================================================
   LINK
   ========================================================= */

.news_list_item a {
    display: flex;
    align-items: center;

    padding: 8px 12px;

    color: #004da1;
    text-decoration: none;

    transition: background 0.2s ease;
}

.news_list_item a:hover {
    background: #f7f9fc;
}

/* =========================================================
   DATE
   ========================================================= */

.news_list_date {
    display: flex;
    align-items: center;

    width: 210px;

    flex-shrink: 0;
}

.news_list_date time {
    font-family: "Inter", "Noto Sans JP", sans-serif;

    font-size: 13px;
    font-weight: 500;

    color: #777;

    margin-right: 12px;

    letter-spacing: 0.05em;

    font-variant-numeric: tabular-nums;
}

/* =========================================================
   CATEGORY
   ========================================================= */

.news_item {
    font-size: 10px;
    font-weight: 700;

    padding: 4px 10px;

    color: #fff;

    min-width: 68px;

    text-align: center;

    letter-spacing: 0.08em;
    text-transform: uppercase;

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

.cat-news  { background: #004da1; }
.cat-event { background: #e60012; }
.cat-info  { background: #555; }

/* =========================================================
   TITLE
   ========================================================= */

.news_list_item p:not(.news_item) {
    flex-grow: 1;

    margin: 0 14px;

    font-size: 14px;
    font-weight: 500;
    line-height: 1.5;

    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;

    color: #004da1;

    text-decoration: underline;
    text-underline-offset: 0.14em;
}

.news_list_item a:hover p:not(.news_item) {
    text-decoration: none;
}

/* =========================================================
   PDF ICON
   ========================================================= */

.news_list_item a[href$=".pdf"]::before {
    content: "PDF";

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

    width: 42px;
    height: 22px;

    margin-left: 10px;

    background: #e60012;
    color: #fff;

    font-size: 9px;
    font-weight: 700;

    letter-spacing: 0.1em;

    flex-shrink: 0;

    order: 3;
}

/* =========================================================
   ARROW REMOVE
   ========================================================= */

.arrow {
    display: none !important;
}

/* =========================================================
   MORE BUTTON
   ========================================================= */

.news_more {
    margin-top: 34px;

    display: flex;
    justify-content: center;
    font-family: "Noto Sans JP", sans-serif;
    z-index: 10000;
}

.news_more a {
    position: relative;

    font-size: 13px;
    font-weight: 500;

    color: #111;

    text-decoration: none;

    letter-spacing: 0.05em;
}

.news_more a::after {
    content: "";

    position: absolute;

    left: 0;
    bottom: -2px;

    width: 100%;
    height: 1px;

    background: #111;

    transform: scaleX(0.5);
    transform-origin: left;

    transition: transform 0.25s ease;
}

.news_more a:hover::after {
    transform: scaleX(1);
}

/* =========================================================
   MOBILE
   ========================================================= */
@media screen and (max-width: 1000px) {

    /* ===============================
       配置
       =============================== */

.news_list_item a {
    padding: 14px 12px;
    }

    /* ===============================
       フィルター
       =============================== */

    .news_filters {
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
    }

    .category_buttons,
    .year_buttons {
        flex-direction: column;
        width: 100%;
        gap: 8px;
    }

    .category_buttons button,
    .year_buttons button {
        width: 100%;
        text-align: center;
        padding: 12px;
    }

    /* ===============================
       レイアウト
       =============================== */

    .news_list_item a {
        display: grid;
        grid-template-columns: 1fr 42px;
        grid-template-rows: auto auto;
        column-gap: 10px;
        row-gap: 6px;

        padding: 14px 10px;
        align-items: center;
    }

    /* ===============================
       PDF（これだけ使う）
       =============================== */

    .news_list_item a[href$=".pdf"]::after {
        content: "PDF";

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

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

        width: 42px;
        height: 22px;

        background: #e60012;
        color: #fff;

        font-size: 9px;
        font-weight: 700;
        letter-spacing: 0.1em;

        pointer-events: none;
    }

    /* ★完全に重要：旧PDFを絶対消す */
    .news_list_item a[href$=".pdf"]::before {
        content: none !important;
        display: none !important;
    }

    /* PDFなしは何もしない（枠も作らない） */
    .news_list_item a:not([href$=".pdf"])::after {
        content: "";
        grid-column: 2;
        grid-row: 1;
        width: 42px;
        height: 22px;
        opacity: 0;
    }

    /* ===============================
       タイトル
       =============================== */

    .news_list_item p:not(.news_item) {
        grid-column: 1 / -1;
        grid-row: 2;

        margin: 0;

        white-space: normal;
        overflow: hidden;
        text-overflow: ellipsis;

        word-break: break-word;
        line-height: 1.5;
    }
}

/*タカハシテクノとはどんな会社
---------------------------------------------------------------------------*/
.about_recruit{
  position:relative;
  overflow:hidden;

  background:
  linear-gradient(
    180deg,

    #ffffff 0%,
    #ffffff 8%,

    #f3f4f6 22%,

    #f6f7f8 50%,

    #f3f4f6 78%,

    #ffffff 92%,
    #ffffff 100%
  );
}

.about_recruit::before{
  content:"";
  position:absolute;
  inset:0;

  background:
  repeating-linear-gradient(
    -45deg,
    transparent 0,
    transparent 140px,
    rgba(0,0,0,.02) 140px,
    rgba(0,0,0,.02) 190px
  );

  mask-image:
  linear-gradient(
    to bottom,
    transparent 0%,
    black 15%,
    black 85%,
    transparent 100%
  );

  -webkit-mask-image:
  linear-gradient(
    to bottom,
    transparent 0%,
    black 15%,
    black 85%,
    transparent 100%
  );

  pointer-events:none;
}

.about_recruit::after{
  content:"";

  position:absolute;

  top:-300px;
  right:-300px;

  width:900px;
  height:900px;

  border-radius:50%;

  background:
  radial-gradient(
    circle,
    rgba(0,0,0,.04),
    transparent 70%
  );

  pointer-events:none;
}

.about_item {
  position: relative;
  display: flex;
  align-items: center;
  margin: 100px 0;
  height: 480px;
}

.about_item.reverse {
  flex-direction: row-reverse;
}

.about_img {
  width: 65%;
  height: 100%;
  overflow: hidden;
  position: relative;
  z-index: 1;
}

.about_img::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(
    to top,
    rgba(0,0,0,.22),
    transparent 40%
  );
}

.about_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.about_content {
  width: 45%;
  position: absolute;
  right: 5%;
  top: 20%;
  padding: 50px 40px;
  z-index: 2;

  background:rgba(255,255,255,.92);

  backdrop-filter:blur(16px);

  border:1px solid rgba(255,255,255,.9);

  box-shadow:
  0 25px 60px rgba(0,0,0,.08),
  0 10px 25px rgba(0,0,0,.04);

  overflow:hidden;
}

.about_item.reverse .about_content {
  right: auto;
  left: 5%;
  top: 80%;
  transform: translateY(-50%);
}

.about_text {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 550;
  line-height: 2;
  color:#444;
  position:relative;
  z-index:2;
}

.jpenhd {
  line-height: 1.2;
  margin-bottom:20px;
}

.jpenhd__jp {
  display: block;
  font-size: 24px;
  font-weight: 800;
  color:#111;
}

.jpenhd__en {
  display: block;
  font-size: 12px;
  color:#0b4ea2;
  letter-spacing: .18em;
  margin-top: 8px;
  text-transform: uppercase;
}

.takatech_home_deco{
  display:flex;
  gap:8px;
  margin-bottom:16px;
}

.takatech_home_deco span:first-child{
  width:70px;
  height:4px;
  border-radius:999px;
  background:linear-gradient(
    90deg,
    #0b4ea2,
    #48a4ff
  );
}

.takatech_home_deco span:last-child{
  width:18px;
  height:4px;
  border-radius:999px;
  background:#d8e0ea;
}

.takatech_home_subtitle{
  margin-bottom:12px;
  font-size:11px;
  font-weight:700;
  letter-spacing:.25em;
  color:#0b4ea2;
}

.takatech_home_no{
  position:absolute;
  right:20px;
  bottom:-10px;

  font-size:110px;
  font-weight:900;
  line-height:1;

  color:rgba(11,78,162,.05);

  user-select:none;
  pointer-events:none;
}

.about_content::before{
  content:"";
  position:absolute;

  top:18px;
  right:18px;

  width:40px;
  height:40px;

  border-top:1px solid rgba(11,78,162,.18);
  border-right:1px solid rgba(11,78,162,.18);
}

.about_content::after{
  content:"";
  position:absolute;

  bottom:18px;
  left:18px;

  width:40px;
  height:40px;

  border-bottom:1px solid rgba(11,78,162,.18);
  border-left:1px solid rgba(11,78,162,.18);
}

@media (max-width: 950px) {

  .jpenhd__jp {
    font-size: 18px;
  }

  .jpenhd__en {
    font-size: 11px;
  }
}

@media (max-width: 950px) {

  .about_item,
  .about_item.reverse {
    flex-direction: column;
    height: auto;
  }

  .about_img {
    width: 100%;
    height: 240px;
  }

  .about_content,
  .about_item.reverse .about_content {
    position: relative;
    width: 90%;
    left: auto;
    right: auto;
    top: auto;
    transform: none;
    margin: -40px auto 0;
  }

  .takatech_home_no{
    font-size:70px;
  }
}

@media (min-width: 951px) {

  .about_item {
    margin: 140px 0 300px;
  }
}


/* ====================================
   TAKATECH HOME BUTTON
==================================== */

.takatech_home_button{
    margin-top:40px;
}

.takatech_home_button a{
    position:relative;

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

    min-width:220px;
    height:58px;

    padding:0 70px 0 28px;

    background:#fff;
    color:#0a4388;

    text-decoration:none;

    font-size:14px;
    font-weight:700;
    letter-spacing:.08em;

    border:2px solid #0a4388;

    transition:
        background .3s ease,
        color .3s ease,
        border-color .3s ease;
}

/* 矢印 */

.takatech_home_button a::after{
    content:"";

    position:absolute;

    right:24px;
    top:50%;

    width:8px;
    height:8px;

    border-top:2px solid #0a4388;
    border-right:2px solid #0a4388;

    transform:
        translateY(-50%)
        rotate(45deg);

    transition:
        border-color .3s ease;
}

/* Hover */

.takatech_home_button a:hover{
    background:#0a4388;
    color:#fff;
    border-color:#0a4388;
}

.takatech_home_button a:hover::after{
    border-top-color:#fff;
    border-right-color:#fff;
}

/*READ MOREボタン
---------------------------------------------------------------------------*/
.interview_read_more {
    margin-top: 40px;
    display: flex;
    justify-content: center; /* ←中央寄せ */
    z-index: 10000;
    font-family: "Noto Sans JP", sans-serif;
}

.interview_read_more a {
    display: inline-block;
    position: relative;

    padding: 10px 18px 10px 0; /* ←少し内側に余白を持たせる */

    font-size: 14px;
    font-weight: 500;
    color: #111;

    letter-spacing: 0.05em;
    text-decoration: none;

    transition: 0.25s ease;

    text-align: left;
}

/* 下線 */
.interview_read_more a::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 2px;
    width: 100%;
    height: 1px;
    background: #111;

    transform: scaleX(0.5);
    transform-origin: left;
    transition: transform 0.25s ease;
}

.interview_read_more a:hover::after {
    transform: scaleX(1);
}

/* hover */
.interview_read_more a:hover {
    transform: translateX(4px);
}

/* 矢印 */
.interview_read_more a::before {
    content: "";
    position: absolute;
    right: -18px;
    top: 50%;
    width: 8px;
    height: 8px;
    border-top: 1px solid #111;
    border-right: 1px solid #111;
    transform: translateY(-50%) rotate(45deg);
}