@charset "utf-8";
/* CSS Document */

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

    :root {
      --font: 'Lato', sans-serif;
      --color-dark: #333;
      --color-black: #000;
      --color-white: #fff;
      --color-gray: #eee;
      --color-blue: #0063cc;
      --color-red: #f23a3c;
      --color-cyan: #62c1d4;
    }

    html { scroll-behavior: smooth; }

    body {
      font-family: var(--font);
      background: #fff;
      color: var(--color-dark);
      font-size: 14px;
      line-height: 1.4;
    }

    a { text-decoration: none; color: inherit; }
    img { max-width: 100%; display: block; }

    /* ======= HEADER ======= */
    header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      height: 68px;
      padding: 0 30px;
      background: #fff;
      position: sticky;
      top: 0;
      z-index: 100;
      box-shadow: 0 1px 0 rgba(0,0,0,0.08);
    }

    .header-logo img {
      height: 36px;
      width: auto;
    }

    .header-nav {
      display: flex;
      align-items: center;
      gap: 0;
    }

    .header-nav a {
      font-size: 15px;
      font-weight: 600;
      padding: 10px;
      color: #000;
    }

    .hamburger {
      display: none;
      font-size: 24px;
      cursor: pointer;
      padding: 10px;
      color: #000;
    }

    @media (max-width: 840px) {
      .header-nav { display: none; }
      .hamburger { display: flex; align-items: center; }
      header { height: 52px; }
    }

    /* ======= HERO (IFRAME section) ======= */
    .hero-iframe {
      width: 100%;
      overflow: hidden;
    }
    .hero-iframe iframe {
      width: 100%;
      height: 680px;
      border: none;
      display: block;
    }

    /* ======= SECTION BASE ======= */
    section {
      width: 100%;
    }

    .section-inner {
      display: flex;
      flex-direction: column;
      align-items: center;
    }

    .section-title {
      font-size: 24px;
      font-weight: 900;
      color: var(--color-dark);
      margin-top: 39px;
      text-align: center;
    }

    .section-divider {
      background: #000;
      height: 3px;
      width: 200px;
      margin-top: 10px;
    }

    .section-desc {
      font-size: 14px;
      font-weight: 400;
      color: var(--color-dark);
      margin-top: 30px;
      text-align: center;
    }

    .btn-contact {
      display: flex;
      align-items: center;
      justify-content: center;
      background: #000;
      border-radius: 40px;
      box-shadow: 0 2px 20px rgba(0,0,0,0.2);
      height: 35px;
      width: 200px;
      margin-top: 30px;
      color: #fff;
      font-size: 16px;
    }

    .btn-contact-blue {
      background: var(--color-blue);
    }

    /* ======= VISION ======= */
    #vision {
      background: #eee;
      display: flex;
      flex-direction: column;
      align-items: center;
      padding-bottom: 40px;
      min-height: 370px;
    }

    /* ======= INVESTMENT ======= */
    #investment {
      background: #fff;
      display: flex;
      flex-direction: column;
      align-items: center;
      padding-bottom: 40px;
    }

    .portfolio-grid-row {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: 0;
      margin-top: 30px;
    }

    .portfolio-item {
      position: relative;
      width: 160px;
      height: 160px;
      margin: 0 30px 0 0;
      overflow: hidden;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
    }

    .portfolio-item:last-child { margin-right: 0; }

    .portfolio-item a {
      display: block;
      width: 100%;
      height: 100%;
    }

    .portfolio-item img {
      width: 100%;
      height: 100%;
      object-fit: contain;
      padding: 8px;
    }

    .portfolio-item .exited-overlay {
      position: absolute;
      inset: 0;
      background: rgba(0,0,0,0);
      display: flex;
      align-items: center;
      justify-content: center;
      transition: background 0.2s;
    }

    .portfolio-item .exited-overlay .exited-label {
      color: transparent;
      font-size: 20px;
      font-weight: 400;
      text-align: center;
      transition: color 0.2s;
    }

    .portfolio-item:hover .exited-overlay {
      background: rgba(80, 190, 240, 0.5);
    }

    .portfolio-item:hover .exited-overlay .exited-label {
      color: #fff;
    }

    /* Cyan hover for last exited item */
    .portfolio-item.cyan-hover:hover {
      background: var(--color-cyan);
    }

    /* Transparent items */
    .portfolio-item.transparent { background: transparent; }

    /* ======= SUPPORT ======= */
    #support {
      background: #000;
      display: flex;
      flex-direction: column;
      align-items: center;
      padding-bottom: 50px;
      min-height: 654px;
    }

    #support .section-title { color: #fff; }
    #support .section-divider { background: #fff; }
    #support .section-desc { color: #fff; }

    .support-grid {
      display: flex;
      flex-direction: row;
      gap: 15px;
      margin-top: 30px;
      width: 67%;
      justify-content: center;
    }

    .support-card {
      border: 1px solid #fff;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      height: 113px;
      width: 266px;
      flex-shrink: 0;
      padding: 10px;
    }

    .support-card p {
      color: #fff;
      font-size: 14px;
      text-align: center;
      margin-top: 10px;
    }

    .support-card img {
      width: 34px;
    }

    .support-desc-row {
      display: flex;
      flex-direction: row;
      gap: 15px;
      margin-top: 20px;
      width: 65%;
      justify-content: center;
    }

    .support-desc-item {
      color: #fff;
      font-size: 12px;
      text-align: center;
      width: 266px;
    }

    @media (max-width: 540px) {
      .support-grid { width: 100%; flex-direction: column; align-items: center; gap: 10px; }
      .support-desc-row { width: 100%; flex-direction: column; align-items: center; gap: 5px; }
      .support-card { width: 90%; }
      .support-desc-item { width: 90%; font-size: 10px; }
    }

    /* ======= PARTNER ======= */
    .partner-section {
      background: #fff;
      display: flex;
      flex-direction: column;
      align-items: center;
      padding-bottom: 40px;
    }

    .partner-logo-row {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: 50px;
      margin-top: 30px;
      width: 862px;
      max-width: 100%;
    }

    .partner-logo {
      height: 160px;
      width: 160px;
      display: flex;
      align-items: center;
      justify-content: center;
      background: transparent;
    }

    .partner-logo img {
      max-width: 100%;
      max-height: 100%;
      object-fit: contain;
    }

    /* ======= TEAM ======= */
    #team {
      background: #eee;
      display: flex;
      flex-direction: column;
      align-items: center;
      padding-bottom: 50px;
      min-height: 444px;
    }

    .team-grid {
      display: flex;
      flex-direction: row;
      justify-content: center;
      gap: 40px;
      margin-top: 35px;
      width: 77%;
    }

    .team-member {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      max-width: 302px;
    }

    .team-photo {
      background: #fff;
      width: 302px;
      height: 160px;
      object-fit: cover;
    }

    .team-name-en {
      font-size: 10px;
      font-weight: 900;
      color: var(--color-dark);
      margin-top: 20px;
    }

    .team-name-jp {
      font-size: 12px;
      font-weight: 400;
      color: var(--color-dark);
      margin-top: 10px;
    }

    .team-bio {
      font-size: 12px;
      font-weight: 400;
      color: var(--color-dark);
      margin-top: 10px;
    }

    @media (max-width: 840px) {
      .team-grid { flex-direction: column; align-items: center; gap: 30px; width: 90%; }
    }

    /* ======= COMPANY ======= */
    .company-section {
      background: #fff;
      display: flex;
      flex-direction: column;
      align-items: center;
      padding-bottom: 50px;
    }

    .company-table {
      display: flex;
      flex-direction: column;
      margin-top: 35px;
      width: 851px;
      max-width: 95%;
    }

    .company-row {
      display: flex;
      flex-direction: row;
      align-items: stretch;
    }

    .company-label {
      border: 1px solid #000;
      width: 200px;
      min-height: 41px;
      padding: 10px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 14px;
      flex-shrink: 0;
    }

    .company-value {
      border-top: 1px solid transparent;
      border-bottom: 1px solid transparent;
      width: 404px;
      min-height: 41px;
      padding: 10px 10px 10px 20px;
      display: flex;
      align-items: center;
      font-size: 14px;
    }

    .company-row + .company-row .company-label {
      border-top: 0;
      margin-top: 15px;
    }

    .company-table .company-row { margin-top: 0; }
    .company-table .company-row + .company-row { margin-top: 15px; }

    /* ======= CONTACT ======= */
    #contact {
      background: #fff;
      display: flex;
      flex-direction: column;
      align-items: center;
      padding-bottom: 60px;
    }

    .contact-form {
      width: 600px;
      max-width: calc(100% - 40px);
      margin-top: 20px;
    }

    .form-field {
      margin-bottom: 20px;
    }

    .form-label-row {
      display: flex;
      flex-direction: row;
      align-items: center;
      margin-bottom: 10px;
    }

    .form-label-text {
      font-size: 15px;
      font-weight: 700;
      color: var(--color-dark);
    }

    .form-label-required {
      font-size: 15px;
      font-weight: 700;
      color: var(--color-red);
      margin-left: 5px;
    }

    .form-input,
    .form-textarea {
      width: 100%;
      background: #fff;
      border: 1px solid #eee;
      border-radius: 4px;
      padding: 10px 16px;
      font-family: var(--font);
      font-size: 15px;
      font-weight: 400;
      color: var(--color-dark);
      line-height: 1.4;
      outline: none;
    }

    .form-input { height: 50px; }
    .form-textarea { height: 160px; resize: vertical; }

    .form-input::-webkit-input-placeholder,
    .form-textarea::-webkit-input-placeholder { color: #ccc; }

    .form-checkbox-row {
      display: flex;
      align-items: center;
      gap: 10px;
      margin-bottom: 20px;
    }

    .form-checkbox-row input[type="checkbox"] { cursor: pointer; }
    .form-checkbox-row span { font-size: 15px; color: var(--color-dark); }

    .btn-submit {
      background: var(--color-dark);
      border: none;
      border-radius: 4px;
      box-shadow: 0 0 0 0 rgba(0,0,0,0.2);
      width: 100%;
      padding: 15px;
      cursor: pointer;
      font-family: var(--font);
    }

    .btn-submit p {
      color: #fff;
      font-size: 18px;
      font-weight: 700;
      text-align: center;
    }

    /* ======= RESPONSIVE ======= */
    @media (max-width: 840px) {
      .portfolio-item { width: 130px; height: 130px; }
      .portfolio-grid-row { gap: 5px; }
      .portfolio-item { margin-right: 10px; }
    }

    @media (max-width: 540px) {
      header { padding: 0 15px; }
      .portfolio-grid-row { overflow-x: auto; padding: 0 15px; flex-wrap: nowrap; justify-content: flex-start; }
      .portfolio-item { width: 80px; height: 80px; margin-right: 5px; flex-shrink: 0; }
      .team-grid { flex-direction: column; gap: 20px; width: 95%; }
      .team-photo { width: 100%; max-width: 302px; }
      .team-member { width: 100%; max-width: 350px; }
      .company-label { width: 80px; font-size: 12px; }
      .company-value { font-size: 12px; }
      .hero-iframe iframe { height: 400px; }
    }

    /* ======= MOBILE NAV OVERLAY ======= */
    .mobile-nav {
      display: none;
      flex-direction: column;
      position: fixed;
      top: 52px;
      left: 0;
      right: 0;
      background: #fff;
      z-index: 99;
      box-shadow: 0 4px 10px rgba(0,0,0,0.1);
      padding: 10px 0;
    }

    .mobile-nav.open { display: flex; }
    .mobile-nav a { padding: 12px 30px; font-size: 15px; font-weight: 600; color: #000; }

.thanks{
	display: flex;
    justify-content: center;
    align-items: center;
    height: calc(100vh - 100px);
}
.thanks div{
	max-width: 800px;
	padding: 100px 20px;
	margin: 0 auto;
}