@charset "UTF-8";
/* CSS Document */
/* =========================================
       Reset & Base
       ========================================= */
    * {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
    }
    body {
      font-family: 'Noto Serif JP', serif;
      color: #333;
      background-color: #fcfcfc;
      line-height: 1.8;
      letter-spacing: 0.05em;
      -webkit-font-smoothing: antialiased;
    }
    a {
      color: inherit;
      text-decoration: none;
      transition: opacity 0.3s ease;
    }
    a:hover {
      opacity: 0.7;
    }
    img {
      max-width: 100%;
      height: auto;
      vertical-align: bottom;
    }
    li {
      list-style: none;
    }
     .pc{display:block;}
      .sp{display:none;}

    /* =========================================
       Layout & Utility
       ========================================= */
    .container {
      max-width: 1200px;
      margin: 0 auto;
      padding: 0 40px;
    }
    .section-padding {
      padding: 120px 0;
    }
    .section-title {
      font-family:"EB Garamond", serif;;
      font-size: 2rem;
      font-weight: 400;
      text-align: center;
      margin-bottom: 60px;
      letter-spacing: 0.1em;
      color: #1a1a1a;
    }
    .section-title::after {
      content: '';
      display: block;
      width: 40px;
      height: 1px;
      background-color: #333;
      margin: 20px auto 0;
    }

    /* --- 黒背景用ユーティリティクラス --- */
    .bg-black {
      background-color: #111;
      color: #fff;
    }
    .bg-black .section-title {
      color: #fff;
    }
    .bg-black .section-title::after {
      background-color: #fff;
    }

    /* =========================================
       Header
       ========================================= */
    header {
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      background-color: rgba(255, 255, 255, 0.95);
      padding: 20px 40px;
      display: flex;
      justify-content: space-between;
      align-items: center;
      z-index: 100;
      box-shadow: 0 1px 10px rgba(0,0,0,0.05);
    }
    .logo {
      width:250px;
    }
    .global-nav ul {
      display: flex;
      gap: 30px;
    }
    .global-nav a {
      font-size: 0.9rem;
      font-weight: 500;
    }
      .hamburger {
      display: none; 
    }

    /* =========================================
       Main Visual (Slick Fade)
       ========================================= */
    .mv {
      position: relative;
      height: 100vh;
      width: 100%;
      display: flex;
      justify-content: center;
      align-items: center;
      padding-top: 80px; 
      overflow: hidden;
    }
    .mv-slider {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      z-index: 0;
    }
    .mv-slide {
      height: 100vh;
      background-size: cover;
      background-position: center;
      position: relative;
    }
    .mv-slide::before {
      content: '';
      position: absolute;
      top: 0; left: 0; width: 100%; height: 100%;
      background: rgba(0,0,0,0.3); 
    }
    
    /* キャッチコピー */
    .mv-copy {
      position: relative;
      z-index: 1;
      color: #fff;
      text-shadow: 0 2px 10px rgba(0,0,0,0.6);
      writing-mode: vertical-rl;
      text-orientation: mixed;
      height: 60vh;
      display: flex;
      flex-direction: column;
      align-items: center;
    }
    .mv-copy h1 {
      font-size: clamp(1.5rem, 3.5vw, 4.5rem);
      font-family: "Hina Mincho", serif;
      font-weight: 400;
      line-height: 2;
      letter-spacing: 0.2em;
    }

    /* =========================================
       Message (黒背景設定)
       ========================================= */
      .message.bg-black {
      background-color: #444; 
      background-image: url('../images/bg-top.webp'); 
      background-size: cover;
      background-position: center;
      background-attachment: fixed; 
      background-blend-mode: multiply; 
    }
    .message-inner {
      display: flex;
      flex-direction: column;
      align-items: center;
      text-align: center;
      max-width: 800px;
      margin: 0 auto;
    }
    .message-text {
      font-size: 1.25rem;
      font-family: "Hina Mincho", serif;
      line-height: 2.2;
      color: #ddd; 
    }

    /* =========================================
       Concept
       ========================================= */
      .icon{text-align:center;}
      .icon img{width:100px;margin:0 auto;}
      
    .concept {
      background-color: #f4f4f4; 
      overflow: hidden; 
    }
    .concept-inner {
      display: flex;
      flex-direction: column;
      align-items: center;
      max-width: 800px;
      margin: 0 auto;
    }
    .concept-lead {
      font-size: 1.6rem;
      font-weight: 500;
      margin-bottom: 40px;
      line-height: 1.8;
      text-align: center;
      color: #222;
    }
    .concept-text {
      font-size: 1.05rem;
      line-height: 2.2;
      color: #444;
    }

    .concept-carousel {
      margin-top: 80px;
    }
    .concept-carousel .slick-slide {
      margin: 0 10px;
    }
    .concept-carousel img {
      width: 100%;
      height: 250px; 
      object-fit: cover;
    }

    /* =========================================
       News
       ========================================= */
    .news-list {
      max-width: 800px;
      margin: 0 auto;
      border-top: 1px solid #ddd;
    }
    .news-item {
      display: flex;
      border-bottom: 1px solid #ddd;
      padding: 20px 10px;
      transition: background-color 0.3s;
    }
    .news-item:hover {
      background-color: #f9f9f9;
    }
    .news-date {
      width: 120px;
      font-size: 0.9rem;
      color: #666;
    }
    .news-title {
      flex: 1;
      font-size: 1rem;
    }

    /* =========================================
       Links & Banners (黒背景設定)
       ========================================= */
    .links-grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 40px;
      margin-bottom: 60px;
    }
    .banner {
      position: relative;
      display: block;
      height: 300px;
      overflow: hidden;
      background-color: #000;
    }
    .banner img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: transform 0.8s ease;
      opacity: 0.6;
    }
    .banner:hover img {
      transform: scale(1.05);
      opacity: 0.3;
    }
    .banner-text {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      color: #fff;
      font-size: 1.5rem;
      font-weight: 500;
      letter-spacing: 0.1em;
      text-align: center;
      width: 100%;
      text-shadow: 0 2px 4px rgba(0,0,0,0.8);
    }
    .greeting-btn {
      position: relative;
      display: block;
      width: 100%;
      max-width: 400px;
      margin: 0 auto;
      padding: 20px;
      border: 1px solid #fff; 
      border-radius:10px;
      color: #fff;
      text-align: center;
      font-size: 1.1rem;
      background: transparent;
      transition: all 0.3s ease;
    }
      .greeting-btn::after {
      content: '';
      position: absolute;
      top: 50%;
      right: 25px; 
      width: 10px;
      height: 10px;
      border-top: 1px solid #fff;
      border-right: 1px solid #fff;
      transform: translateY(-50%) rotate(45deg);
      transition: all 0.3s ease;
    }
    .greeting-btn:hover {
      background: #fff;
      color: #111;
      opacity: 1;
    }
      .greeting-btn:hover::after {
      border-color: #111;
    }

    /* =========================================
       Access
       ========================================= */
    .access {
      background-color: #fff;
    }
    .map-wrap {
      width: 100%;
      height: 450px;
      background-color: #ddd;
    }
    .map-wrap iframe {
      width: 100%;
      height: 100%;
      border: none;
    }
    .access-info {
      text-align: center;
      margin-top: 30px;
      font-size: 1.1rem;
    }

    /* =========================================
       Contact
       ========================================= */
    .contact {
      text-align: center;
      background-color: #f4f4f4;
    }
    .contact-btn {
      position:relative;
      display: inline-block;
      padding: 20px 80px;
      background-color: #1a1a1a;
      border-radius:10px;
      color: #fff;
      font-size: 1.2rem;
      letter-spacing: 0.1em;
    }
      .contact-btn::after {
      content: '';
      position: absolute;
      top: 50%;
      right: 25px; 
      width: 10px;
      height: 10px;
      border-top: 1px solid #fff;
      border-right: 1px solid #fff;
      transform: translateY(-50%) rotate(45deg);
      transition: all 0.3s ease;
    }
    .contact-btn:hover {
      background-color: #444;
      opacity: 1;
    }

    /* =========================================
       Footer
       ========================================= */
    footer {
      background-color: #111;
      border-top: 1px solid #333;
      color: #fff;
      padding: 60px 0 20px;
      text-align: center;
    }
    .footer-logo {
    width:200px;
        margin:0 auto;
      font-size: 1.5rem;
      margin-bottom: 30px;
      letter-spacing: 0.1em;
    }
    .footer-nav {
      display: flex;
      justify-content: center;
      gap: 30px;
      margin-bottom: 40px;
      font-size: 0.9rem;
    }
    .copyright {
      font-size: 0.8rem;
      color: #888;
    }

/* =========================================
       Breadcrumbs
       ========================================= */
    .breadcrumbs {
      background-color: #000;
      padding: 20px 0;
      font-size: 0.85rem;
      color: #FFF;
    }
    .breadcrumbs ul {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 10px;
    }
    .breadcrumbs li { display: flex; align-items: center; }
    .breadcrumbs li:not(:last-child)::after {
      content: '>'; margin-left: 10px; font-size: 0.8rem; color: #999;
    }

 /* =========================================
       Subpage Hero-会社概要
       ========================================= */
    #about .page-hero {
      height: 45vh;
      width: 100%;
      background-color: #555555;
      background-image: url('../images/bg-top.webp'); 
      background-size: cover;
      background-position: center;
      background-blend-mode: multiply; 
      display: flex;
      justify-content: center;
      align-items: center;
      padding-top: 80px;
    }
    #about .page-hero-title {
      text-align: center;
      color: #fff;
    }
    #about .page-hero-title .en {
      display: block;
      font-family: "EB Garamond", serif;
      font-size: 3.5rem;
     font-weight:400;
      letter-spacing: 0.15em;
      margin-bottom: 10px;
    }
    #about .page-hero-title .ja {
      display: block;
      font-size: 1rem;
      letter-spacing: 0.2em;
      font-weight: 300;
    }
    #about .business-lead {
      background-color: #000; 
      color: #fff;
    }
    #about .business-lead-inner {
      display: flex;
      flex-direction: column;
      align-items: center;
      text-align: center;
      max-width: 900px;
      margin: 0 auto;
    }
       #about .lead-title {
      font-family:"EB Garamond", serif;
      font-size: 2rem;
      font-weight: 400;
      text-align: center;
      margin-bottom: 60px;
      letter-spacing: 0.1em;
      color: #FFF;
    }
     #about .lead-title::after {
      content: '';
      display: block;
      width: 40px;
      height: 1px;
      background-color: #FFF;
      margin: 20px auto 0;
    }
    #about .lead-catch {
      font-family: "Hina Mincho", serif;
      font-size: clamp(1.4rem, 2.5vw, 2.2rem);
      line-height: 2;
      letter-spacing: 0.1em;
    }
    #about .company-info {
      background-color: #fcfcfc;
    }
    #about .company-table {
      width: 100%;
      max-width: 800px;
      margin: 0 auto 80px;
      border-collapse: collapse;
    }
    #about .company-table th, 
    #about .company-table td {
      padding: 25px 20px;
      border-bottom: 1px solid #ddd;
      text-align: left;
    }
    #about .company-table tr:first-child th, #about .company-table tr:first-child td {
      border-top: 1px solid #aaa; 
    }
    #about .company-table tr:last-child th, #about .company-table tr:last-child td {
      border-bottom: 1px solid #aaa;
    }
    #about .company-table th {
      width: 30%;
      font-weight: 500;
      color: #1a1a1a;
      letter-spacing: 0.1em;
    }
    #about .company-table td {
      color: #444;
    }

    #about .company-origin {
      text-align: center;
      max-width: 800px;
      margin: 0 auto;
      padding: 50px;
      background-color: #f4f4f4;
      border-radius: 4px;
    }
    #about .origin-title {
      font-size: 1.2rem;
      font-weight: 500;
      letter-spacing: 0.1em;
      margin-bottom: 30px;
      color: #111;
    }
    #about .origin-math {
      display: flex;
      justify-content: center;
      align-items: center;
      flex-wrap: wrap;
      gap: 20px 40px;
    }
    #about .origin-item {
      font-family: "EB Garamond", serif;
      font-size: 2rem;
      color: #222;
      line-height: 1.2;
    }
    #about .origin-item span {
      display: block;
      font-family: 'Noto Serif JP', serif;
      font-size: 0.9rem;
      color: #666;
      margin-top: 10px;
      letter-spacing: 0.05em;
    }
    #about .origin-cross {
      font-size: 1.5rem;
      color: #999;
    }
      #about .company-origin figure{width:600px; margin:3rem auto 0;}
      #about .company-origin figure img{text-align:center;}
    
    #about .greeting {
      background-color: #fff;
    }
    #about .greeting-inner {
      display: flex;
      align-items: flex-start;
      gap: 80px;
    }
    #about .greeting-text-wrap {
      flex: 1;
    }
    #about .greeting-lead {
      font-size: 1.8rem;
      font-weight: 500;
      color: #111;
      margin-bottom: 40px;
      line-height: 1.6;
      letter-spacing: 0.05em;
    }
    #about .greeting-text {
      font-size: 1.05rem;
      line-height: 2.2;
      color: #444;
      margin-bottom: 20px;
    }
    #about .greeting-text:last-of-type {
      margin-bottom: 0;
    }
    #about .greeting-sign {
      margin-top: 40px;
      font-size: 1.1rem;
      font-weight: 500;
      text-align: right;
    }
    #about .greeting-image {
      width: 40%;
    }
    #about .greeting-image img {
      width: 100%;
      height: auto;
      object-fit: cover;
      box-shadow: 10px 10px 0 #f4f4f4; 
    }
    #about .access { background-color: #fcfcfc; }
    #about .map-wrap { width: 100%; height: 450px; background-color: #ddd; }
    #about .map-wrap iframe { width: 100%; height: 100%; border: none; }
    #about .access-info { text-align: center; margin-top: 30px; font-size: 1.1rem; }

      /* =========================================
       Subpage Hero-事業内容
       ========================================= */
    #business .page-hero {
      height: 45vh;
      width: 100%;
      background-color: #555555;
      background-image: url('../images/business_main.webp');
      background-size: cover;
      background-position: center;
      background-blend-mode: multiply;
      display: flex;
      justify-content: center;
      align-items: center;
      padding-top: 80px;
    }
    #business .page-hero-title {
      text-align: center;
      color: #fff;
    }
    #business .page-hero-title .en {
      display: block;
      font-family: "EB Garamond", serif;
      font-size: 3.5rem;
      font-weight:400;
      letter-spacing: 0.15em;
      margin-bottom: 10px;
    }
    #business .page-hero-title .ja {
      display: block;
      font-size: 1rem;
      letter-spacing: 0.2em;
      font-weight: 300;
    }

    #business .business-lead {
      background-color: #000; 
      color: #fff;
    }
    #business .business-lead-inner {
      display: flex;
      flex-direction: column;
      align-items: center;
      text-align: center;
      max-width: 900px;
      margin: 0 auto;
    }
    #business .lead-catch {
      font-family: "Hina Mincho", serif;
      font-size: clamp(1.6rem, 3vw, 2.4rem);
      line-height: 2;
      letter-spacing: 0.1em;
      margin-bottom: 50px;
    }
    #business .lead-text {
      font-size: 1.1rem;
      line-height: 2.2;
      color: #ddd;
    }

    #business .business-details {
      background-color: #fcfcfc;
    }
    #business .business-item {
      display: flex;
      align-items: center;
      gap: 60px;
      margin-bottom: 120px;
    }
    #business .business-item:last-child {
      margin-bottom: 0;
    }
    #business .business-item:nth-child(even) {
      flex-direction: row-reverse;
    }

    #business .item-image {
      flex: 1;
      width: 50%;
    }
    #business .item-image img {
      width: 100%;
      height: 450px;
      object-fit: cover;
    }

    #business .item-content {
      flex: 1;
      width: 50%;
    }
    #business .item-number {
      font-family: "EB Garamond", serif;
      font-size: 4.5rem;
      color: #e0e0e0;
      line-height: 1;
      margin-bottom: 10px;
    }
    #business .item-title {
      font-size: 1.6rem;
      font-weight: 500;
      margin-bottom: 40px;
      color: #1a1a1a;
      letter-spacing: 0.05em;
    }
    #business .item-dl dt {
      font-weight: 700;
      color: #1a1a1a;
      margin-bottom: 10px;
      padding-left: 15px;
      border-left: 2px solid #111;
      font-size: 1.1rem;
    }
    #business .item-dl dd {
      color: #555;
      line-height: 1.9;
      margin-bottom: 30px;
      padding-left: 17px; 
    }
    #business .item-dl dd:last-child {
      margin-bottom: 0;
    }

    /* =========================================
       Subpage Hero-製品ブランド
       ========================================= */
    #products .page-hero {
      height: 45vh;
      width: 100%;
      background-color: #555555;
      background-image: url('../images/products_main.webp'); 
      background-size: cover;
      background-position: center;
      background-blend-mode: multiply; 
      display: flex;
      justify-content: center;
      align-items: center;
      padding-top: 80px;
    }
    #products .page-hero-title {
      text-align: center;
      color: #fff;
    }
    #products .page-hero-title .en {
      display: block;
      font-family: "EB Garamond", serif;
      font-size: 3.5rem;
      font-weight:400;
      letter-spacing: 0.15em;
      margin-bottom: 10px;
    }
    #products .page-hero-title .ja {
      display: block;
      font-size: 1rem;
      letter-spacing: 0.2em;
      font-weight: 300;
    }

    #products .business-lead {
      background-color: #000; 
      color: #fff;
    }
    #products .business-lead-inner {
      display: flex;
      flex-direction: column;
      align-items: center;
      text-align: center;
      max-width: 900px;
      margin: 0 auto;
    }
    #products .lead-catch {
      font-family: "Hina Mincho", serif;
      font-size: clamp(1.4rem, 2.5vw, 2.2rem);
      line-height: 2;
      letter-spacing: 0.1em;
      margin-bottom: 50px;
    }
    #products .lead-text {
      font-size: 1.1rem;
      line-height: 2.2;
      color: #ddd;
      text-align: center;
    }
    #products .lead-text p {
      margin-bottom: 20px;
    }
     #products .icon{text-align:center;}
     #products .icon img{width:100px;margin:0 auto;}
     #products .features {
      background-color: #fcfcfc;
    }
    #products .features-intro {
      text-align: center;
      font-size: 1.4rem;
      font-weight: 500;
      margin-bottom: 60px;
      letter-spacing: 0.1em;
      color: #111;
    }
    #products .features-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 40px;
    }
    #products .feature-card {
      background: #fff;
      padding: 50px 30px;
      box-shadow: 0 5px 30px rgba(0,0,0,0.03);
      text-align: center;
      border-top: 3px solid #111;
    }
    #products .feature-number {
      font-family: "EB Garamond", serif;
      font-size: 3rem;
      color: #e0e0e0;
      line-height: 1;
      margin-bottom: 20px;
    }
    #products .feature-img {
      width: 100%;
      height: 200px;
      object-fit: cover;
      margin-bottom: 30px;
    }
    #products .feature-title {
      font-size: 1.4rem;
      font-weight: 500;
      margin-bottom: 20px;
      color: #1a1a1a;
      letter-spacing: 0.05em;
    }
    #products .feature-desc {
      color: #555;
      line-height: 1.8;
      text-align: left;
    }
#products .btn{
    position: relative;
    width:500px;
    margin:0 auto;
}
    #products .btn a {
      display: block;
      overflow: hidden;
      background-color: #000;
    }
    #products .btn img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: transform 0.8s ease;
    }
    #products .btn-text {
        background:#fff;
        padding:1rem;
    }

  /* =========================================
       Subpage Hero-お知らせ
       ========================================= */
    #news .page-hero {
      height: 45vh; width: 100%; background-color: #969696;
      background-image: url('../images/news_main.webp'); 
      background-size: cover; background-position: center; background-blend-mode: multiply; 
      display: flex; justify-content: center; align-items: center; padding-top: 80px;
    }
    #news .page-hero-title { text-align: center; color: #fff; }
    #news .page-hero-title .en {
      display: block; font-family: "EB Garamond", serif; font-size: 3.5rem; font-weight:400;letter-spacing: 0.15em; margin-bottom: 10px;
    }
    #news .page-hero-title .ja { display: block; font-size: 1rem; letter-spacing: 0.2em; font-weight: 300; }
    #news .breadcrumbs { background-color: #fcfcfc;color: #333;}
    #news .news-page-list { max-width: 800px; margin: 0 auto; border-top: 1px solid #ddd; }
    #news .news-item { display: flex; border-bottom: 1px solid #ddd; padding: 30px 10px; transition: background-color 0.3s; }
    #news .news-item:hover { background-color: #f9f9f9; }
    #news .news-date { width: 140px; font-size: 0.95rem; color: #666; font-family: "EB Garamond", serif; font-size: 1.1rem; }
    #news .news-title { flex: 1; font-size: 1.05rem; line-height: 1.6; }

    /* Pagination */
    #news .pagination { display: flex; justify-content: center; gap: 10px; margin-top: 60px; }
    #news .pagination a, .pagination span {
      display: flex; justify-content: center; align-items: center; width: 40px; height: 40px;
      border: 1px solid #ddd; color: #333; font-family: "EB Garamond", serif; font-size: 1.1rem; transition: all 0.3s ease;
    }
    #news .pagination a:hover { background-color: #111; color: #fff; border-color: #111; }
    #news .pagination .current { background-color: #111; color: #fff; border-color: #111; }

    /*News-Detail*/
    #news .article-container {
      max-width: 800px;
      margin: 0 auto;
      background-color: #fff;
      padding: 80px;
      box-shadow: 0 10px 40px rgba(0,0,0,0.03);
    }
    #news .article-header {
      border-bottom: 1px solid #eee;
      padding-bottom: 30px;
      margin-bottom: 40px;
      text-align: center;
    }
    #news .article-date {
      font-family: "EB Garamond", serif;
      font-size: 1.1rem;
      color: #888;
      margin-bottom: 15px;
    }
    #news .article-title {
      font-size: 1.6rem;
      font-weight: 500;
      color: #111;
      line-height: 1.6;
      text-align:left;
    }
    #news .article-body {
      font-size: 1.05rem;
      line-height: 2.2;
      color: #444;
    }

    #news .article-body h2 {
      font-size: 1.4rem; font-weight: 500; margin: 60px 0 20px; padding-left: 15px; border-left: 3px solid #111;
    }
    #news .article-body p { margin-bottom: 20px; }
    #news .article-body img { margin: 30px 0; max-width: 100%; height: auto; }

    #news .back-btn-wrap {
      text-align: center;
      margin-top: 80px;
    }
    #news .back-btn {
      display: inline-block;
      padding: 15px 60px;
      border: 1px solid #111;
      color: #111;
      font-size: 1rem;
      letter-spacing: 0.1em;
      transition: all 0.3s ease;
    }
    #news .back-btn:hover {
      background-color: #111;
      color: #fff;
    }

/* =========================================
       Subpage Hero-お問い合わせ
       ========================================= */
    #contact .page-hero {
      height: 45vh; width: 100%; background-color: #969696;
      background-image: url('../images/contact_main.webp'); 
      background-size: cover; background-position: center; background-blend-mode: multiply; 
      display: flex; justify-content: center; align-items: center; padding-top: 80px;
    }
    #contact .page-hero-title { text-align: center; color: #fff; }
    #contact .page-hero-title .en {
      display: block; font-family: "EB Garamond", serif; font-size: 3.5rem; font-weight:400;letter-spacing: 0.15em; margin-bottom: 10px;
    }
    #contact .page-hero-title .ja { display: block; font-size: 1rem; letter-spacing: 0.2em; font-weight: 300; }

    /* =========================================
       Breadcrumbs
       ========================================= */
    #contact .breadcrumbs { background-color: #fcfcfc; padding: 20px 0; font-size: 0.85rem; color: #666; }
    #contact .breadcrumbs ul { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
    #contact .breadcrumbs li { display: flex; align-items: center; }
    #contact .breadcrumbs li:not(:last-child)::after { content: '>'; margin-left: 10px; font-size: 0.8rem; color: #999; }
      
     #formWrap {width:100%;border-bottom:1px solid #b0b0b0;margin:1.5em auto;padding-bottom:3rem;}
#formWrap  p a{color:#016701;text-decoration:underline;}
#formWrap  p span{color:#B7193F;}
table.formTable{width:100%;font-size:1rem;margin:3em auto 2rem;border-collapse:collapse;border-top:1px solid #b0b0b0;  color:#646464;}
table.formTable .title{background:#fff;padding:1em 0;}
table.formTable th{width:28%;color:#646464; font-family: 'Noto Sans JP', sans-serif;font-weight:normal;text-align:left;padding:2rem 1rem 2rem 0;vertical-align:middle; border-right:none;}
table.formTable th.top{vertical-align:top;}
table.formTable th span.require{background:#3f8e88;font-family: 'Noto Sans JP', sans-serif;font-size:0.8125rem;font-weight:600;color:#fff;margin-right:10px;padding:0.2rem 0.3rem;}
table.formTable th span.circle{color:#0B5A24;}
table.formTable th span.small{font-size:0.6875rem;}
table.formTable td{width:80%!important;font-size:0.875rem;padding:2rem;vertical-align:middle; }
form input[type="text"], form textarea{background:#fff; border:1px solid #c8c8c8; border-radius:none;padding:1em; width:100%;}
form input[type="radio"]{background:#fff; border:1px solid #c8c8c8; margin-right:5px;}
form input[type="file"]{background:#fff;padding:1rem;width:100%;}
 form .btn-submit-wrap{display:flex; justify-content:center; align-items:stretch;gap:20px;}
form .submit-wrap{position:relative;display:inline-block;text-align:center;}
form .submit-only::after{content: '';position: absolute;top: 50%;right: 25px; width: 7px;height: 7px;border-top: 1px solid #fff;border-right: 1px solid #fff;transform: translateY(-50%) rotate(45deg);transition: all 0.3s ease;}
form input[type="submit"]{width:300px;color:#fff;background-color:#000;border-radius:10px;font-family: 'Noto Sans JP', sans-serif;font-size: 1rem !important; font-weight:500; letter-spacing:0.2rem;margin:0 auto; padding: 20px 10px;border:none;cursor: pointer;}
form .submit-wrap:hover::after{right:20px;transition: 0.3s ease-in-out;}
form input[type="submit"] a:hover{color:#fff;opacity:1;}
form input[type="reset"]{cursor: pointer; width:300px;background:#afafaf; color:#fff;border-radius:10px;font-family: 'Noto Sans JP', sans-serif;font-size: 1rem !important; font-weight:500; letter-spacing:0.2rem;margin:0 auto; padding: 20px 10px;border:none;cursor: pointer;}
form input[type="submit"]:hover,form input[type="reset"]:hover{opacity:0.8; transition: 0.5s;}
::placeholder {color: #afafaf;font-family: 'Noto Sans JP', sans-serif;}

 /* =========================================
       Subpage Hero-プライバシーポリシー
       ========================================= */
    #policy .page-hero {
      height: 45vh; width: 100%; background-color: #969696;
      background-image: url('../images/policy_main.webp'); 
      background-size: cover; background-position: center; background-blend-mode: multiply; 
      display: flex; justify-content: center; align-items: center; padding-top: 80px;
    }
    #policy .page-hero-title { text-align: center; color: #fff; }
    #policy .page-hero-title .en {
      display: block; font-family: "EB Garamond", serif; font-size: 3.5rem; font-weight:400;letter-spacing: 0.15em; margin-bottom: 10px;
    }
    #policy .page-hero-title .ja { display: block; font-size: 1rem; letter-spacing: 0.2em; font-weight: 300; }
#policy .section-padding h2{font-size:1.5rem;margin:3rem 0 1.5rem;}
#policy .breadcrumbs { background-color: #fcfcfc; padding: 20px 0; font-size: 0.85rem; color: #666; }

    /* =========================================
       Responsive
       ========================================= */
    @media (max-width: 768px) {
        header {padding: 10px 20px;}
        .logo {width:60%;}
      .mv-copy h1 { font-size: clamp(2rem, 6vw, 2.5rem); }
      .links-grid { grid-template-columns: 1fr; gap: 20px; }
      .container { padding: 0 20px; }
      .section-padding { padding: 80px 0; }
      .global-nav { display: none; }
      .news-item { flex-direction: column; }
      .news-date { margin-bottom: 5px; }
      .hamburger {display: block; width: 30px;height: 20px;position: relative;z-index: 1000; cursor: pointer;}
      .hamburger span {position: absolute;width: 100%;height: 2px;background-color: #333;transition: all 0.3s ease;}
      .hamburger span:nth-child(1) { top: 0; }
      .hamburger span:nth-child(2) { top: 50%; transform: translateY(-50%); }
      .hamburger span:nth-child(3) { bottom: 0; }
      .hamburger.is-active span {background-color: #fff;   }
      .hamburger.is-active span:nth-child(1) {top: 50%;transform: translateY(-50%) rotate(45deg);}
      .hamburger.is-active span:nth-child(2) {opacity: 0;}
      .hamburger.is-active span:nth-child(3) {top: 50%;transform: translateY(-50%) rotate(-45deg);}
      .global-nav {position: fixed;top: 0;left: 0;width: 100%;height: 100vh;background-color: rgba(17, 17, 17, 0.95); display: flex;justify-content: center;align-items: center;opacity: 0;visibility: hidden;transition: all 0.3s ease;z-index: 999;}
      .global-nav.is-active {opacity: 1;visibility: visible;}
      .global-nav ul {flex-direction: column;align-items: center;gap: 40px;}
      .global-nav a {font-size: 1.2rem;color: #fff;}
      .footer-nav {flex-direction: column; gap: 0; width: 100%;}
      .footer-nav li {width: 100%;border-bottom: 1px solid #fff;}
      .footer-nav li:first-child {border-top: 1px solid #fff; }
      .footer-nav a {display: block; padding: 15px 0;}
       .pc{display:none;}
      .sp{display:block;}
        .concept-lead {text-align: left;}
        .message-inner {text-align: left; }
        .message.bg-black {background-attachment: scroll;  background-position: center center; }
        .access-info { text-align: left;}
        .page-hero-title .en { font-size: 2.5rem; }
       #about .lead-catch {text-align:left;}
      #about .company-table th, #about .company-table td { display: block; width: 100%; }
      #about .company-table th { padding-bottom: 5px; border-bottom: none; }
      #about .company-table td { padding-top: 0; padding-bottom: 20px; }
      #about .company-table tr:first-child td {border-top: none; }
      #about .company-table tr:last-child th {border-bottom: none;}
      #about .origin-math { gap: 15px; }
      #about .origin-item { font-size: 1.5rem; }
      #about .company-origin figure{width:100%; margin:1.5rem auto 0;}
      #about  .greeting-inner { flex-direction: column-reverse; gap: 40px; }
      #about .greeting-image { width: 100%; }
      #about .greeting-lead { font-size: 1.5rem; margin-bottom: 30px; }
      #about .access-info { text-align: left }
  
      #business .business-lead-inner {text-align: left;}
      #business .business-item, #business .business-item:nth-child(even) {flex-direction: column;gap: 30px;margin-bottom: 80px;}
      #business .item-image, #business .item-content {width: 100%;}
      #business .item-image img {height: 250px; }
      #business .item-title {margin-bottom: 25px;}
        
        #products .business-lead-inner {text-align: left;}
        #products .lead-text {text-align: left;}
        #products .features-grid {grid-template-columns: 1fr;gap: 30px;}
        #products .features-intro {font-size: 1.2rem;}
        #products .feature-card {padding: 40px 20px;}
        #products .btn{width:100%;}
        
         #news .news-item { flex-direction: column; gap: 10px; padding: 20px 5px; }
        #news .news-date { width: 100%; font-size: 1rem; }
        #news .news-title { font-size: 1rem; }
        #news .article-container { padding: 40px 20px; box-shadow: none; background: transparent; }
        #news .article-title { font-size: 1.3rem; }
        
        #formWrap {width:100%;margin:0 auto;}
        table.formTable th, table.formTable td {width:auto;display:block;}
        table.formTable th{width:100%;background:#f0f0f0;color:#202020; font-weight:normal;border-top:1px solid #016701;padding:1em 1em;vertical-align:middle; }
        table.formTable td{width:100%!important;border-top:none;padding:1.5em;vertical-align:middle; }
        table.formTable th {margin-top:0px;border:0;}
        form input[type="text"], form textarea {width:100%;padding:1.5em!important;display:block;}
        form .btn-submit-wrap {flex-direction: column;align-items: center;}
        form .submit-wrap{display:block;width:100%;}
        form input[type="submit"] {width:100%;}
        form input[type="reset"]{width:100%;}

    }
