@charset "utf-8";
/* CSS Document */

  :root{
    /* Brand Logo Colors */
    --teal:#00afb0;
    --teal-deep:#00868a;
    --teal-light:#7ed4d5;
    --teal-glow:rgba(0,175,176,.18);

    /* Solar / Energy Accents */
    --solar:#ffb627;
    --solar-deep:#f08b00;
    --sun:#ff6b35;
    --sky:#3da9c9;
    --sky-deep:#1d6481;
    --leaf:#5fb27a;

    /* Neutrals */
    --ink:#1a2230;
    --ink-soft:#2d3a4d;
    --paper:#fdfbf6;
    --paper-warm:#f6efe1;
    --paper-deep:#ece2cd;
    --line:#e0d6c2;
    --muted:#6b7280;

    /* Gradients */
    --grad-energy: linear-gradient(135deg, #00afb0 0%, #3da9c9 50%, #ffb627 100%);
    --grad-solar: linear-gradient(135deg, #ffb627 0%, #ff6b35 100%);
    --grad-teal: linear-gradient(135deg, #00afb0 0%, #00868a 100%);
    --grad-sky: linear-gradient(180deg, #e3f4f5 0%, #fdfbf6 100%);

    --display:'Cormorant Garamond', 'Shippori Mincho', serif;
    --jp:'Shippori Mincho', serif;
    --jp-sans:'Noto Sans JP', sans-serif;
    --mono:'JetBrains Mono', monospace;
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    font-family:var(--jp);
    background:var(--paper);
    color:var(--ink);
    line-height:1.7;
    overflow-x:hidden;
    font-feature-settings:"palt";
    -webkit-font-smoothing:antialiased;
  }

  body::after{
    content:'';
    position:fixed;
    inset:0;
    pointer-events:none;
    z-index:2;
    opacity:.3;
    mix-blend-mode:multiply;
    background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0.05 0 0 0 0 0.05 0 0 0 0 0.05 0 0 0 0.04 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  }

  .container{
    max-width:1320px;
    margin:0 auto;
    padding:0 40px;
    position:relative;
    z-index:5;
  }
.container_bace{
    max-width:1320px;
    margin:0 auto;
    padding:0 40px;
    position:relative;
    z-index:5;
  }
.container_bace p{
	margin: 15px 0;

  }
.obj_box{
    border: 15px solid #0000000f;

  }

img{
	width: 100%;
}
  /* ============= LOGO COMPONENT ============= */
  .brand-logo{
    display:inline-flex;
    align-items:center;
    height:44px;
  }
  .brand-logo img{
    height:100%;
    width:auto;
    object-fit:contain;
    mix-blend-mode:multiply;
  }
  .brand-logo-small{ height:38px; }
  .brand-logo.on-dark img{ mix-blend-mode:normal; }


/*top HERO*/
.hero-bg-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.22);
  animation: heroZoomOut 18s ease-out forwards;
  will-change: transform;
}

@keyframes heroZoomOut {
  from {
    transform: scale(1.22);
  }

  to {
    transform: scale(1);
}
}
/**/


  /* ============= NAV ============= */
  nav{
    position:fixed;
    top:0;left:0;right:0;
    z-index:100;
    padding:14px 40px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    background:rgba(253,251,246,.92);
    backdrop-filter:blur(20px);
    border-bottom:1px solid rgba(0,175,176,.12);
    transition:all .3s ease;
  }
  .nav-links{
    display:flex;
    gap:20px;
    list-style:none;
    align-items:center;
  }
  .nav-links a{
    text-decoration:none;
    color:var(--ink);
    font-family:var(--mono);
    font-size:12px;
    letter-spacing:.15em;
    text-transform:uppercase;
    font-weight:500;
    position:relative;
    padding:8px 0;
    transition:color .3s;
  }
  .nav-links a::after{
    content:'';
    position:absolute;
    bottom:0; left:0;
    width:0; height:2px;
    background:var(--teal);
    transition:width .4s ease;
  }
  .nav-links a:hover{ color:var(--teal-deep); }
  .nav-links a:hover::after{ width:100%; }
  .nav-cta{
    padding:12px 24px !important;
    border:none !important;
    background:var(--grad-teal);
    color:#fff !important;
    transition:all .3s !important;
    box-shadow:0 6px 16px rgba(0,175,176,.25);
    border-radius:100px;
  }
  .nav-cta:hover{
    transform:translateY(-2px);
    box-shadow:0 10px 22px rgba(0,175,176,.4);
  }
  .nav-cta::after{ display:none !important; }
  .menu-toggle{display:none;background:none;border:none;cursor:pointer;font-family:var(--mono);font-size:12px;letter-spacing:.15em;color:var(--ink);}

  /* ============= LANGUAGE TOGGLE ============= */
  .lang-toggle{
    display:inline-flex;
    align-items:center;
    background:rgba(0,175,176,.08);
    border:1px solid rgba(0,175,176,.2);
    border-radius:100px;
    padding:4px;
    margin-left:18px;
    cursor:pointer;
    transition:all .3s;
    font-family:var(--mono);
  }
  .lang-toggle:hover{
    background:rgba(0,175,176,.14);
    border-color:rgba(0,175,176,.35);
  }
  .lang-toggle button{
    background:none;
    border:none;
    cursor:pointer;
    padding:6px 14px;
    font-family:var(--mono);
    font-size:11px;
    font-weight:600;
    letter-spacing:.1em;
    color:var(--muted);
    border-radius:100px;
    transition:all .3s;
  }
  .lang-toggle button.active{
    background:var(--grad-teal);
    color:#fff;
    box-shadow:0 2px 8px rgba(0,175,176,.3);
  }

  /* ============= HERO with Factory Photo ============= */

  .hero{
    min-height:100vh;
    padding:0;
    position:relative;
    display:flex;
    align-items:flex-end;
    overflow:hidden;
    color:#fff;
  }
  .hero-image{
    position:absolute;
    inset:0;
    z-index:0;
  }
  .hero-image img{
    width:100%;
    height:100%;
    /*object-fit:cover;*/
	object-fit: fill;
    object-position:center 40%;
  }
@media (max-width: 1024px) {
  .hero-image img{
	object-fit: cover;
}
}
  .hero-image::after{
    content:'';
    position:absolute;
    inset:0;
    background:
      linear-gradient(180deg, rgba(10,30,40,.5) 0%, rgba(10,30,40,.15) 35%, rgba(10,30,40,.6) 75%, rgba(10,20,30,.92) 100%),
      linear-gradient(90deg, rgba(10,20,30,.55) 0%, rgba(10,20,30,.1) 60%);
    z-index:1;
  }



  /* Light effect overlay */
  .hero-glow{
    position:absolute;
    top:5%; right:8%;
    width:380px; height:380px;
    background:radial-gradient(circle, rgba(255,182,39,.35) 0%, rgba(255,107,53,.12) 40%, transparent 70%);
    z-index:1;
    pointer-events:none;
    animation:glowFloat 8s ease-in-out infinite;
  }
  @keyframes glowFloat{
    0%, 100%{ transform:scale(1) translate(0,0); opacity:.7;}
    50%{ transform:scale(1.15) translate(-20px, 20px); opacity:1;}
  }

  .hero-content{
    position:relative;
    z-index:5;
    max-width:1320px;
    margin:0 auto;
    width:100%;
    padding:120px 40px 80px;
  }
  .hero-tag{
    display:inline-flex;
    align-items:center;
    gap:12px;
    padding:8px 18px;
    background:rgba(0,175,176,.18);
    border:1px solid rgba(126,212,213,.4);
    border-radius:100px;
    margin-bottom:30px;
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:.2em;
    text-transform:uppercase;
    color:#fff;
    backdrop-filter:blur(10px);
    opacity:0;
    animation:fadeUp .8s .15s forwards;
  }
  .hero-tag .dot{
    width:8px;height:8px;background:var(--teal-light);border-radius:50%;
    box-shadow:0 0 0 0 rgba(126,212,213,.7);
    animation:pulseRing 2s infinite;
  }
  @keyframes pulseRing{
    0%{box-shadow:0 0 0 0 rgba(126,212,213,.7);}
    70%{box-shadow:0 0 0 12px rgba(126,212,213,0);}
    100%{box-shadow:0 0 0 0 rgba(126,212,213,0);}
  }
  /*h1.hero-title{
    font-family:var(--jp);
    font-weight:600;
    font-size:clamp(23px, 7vw, 55px);
    line-height:1.5;
    letter-spacing:-.01em;
    margin-bottom:30px;
    color:#fff;
    text-shadow:0 4px 30px rgba(0,0,0,.4);
    opacity:0;
    animation:fadeUp .8s .35s forwards;
  }
  h1.hero-title .accent-grad{
    background-size:200% auto;
    font-family:var(--display);
    font-style:italic;
    font-size: 0.6em;
    font-weight:500;
  }*/
  h1.hero-title{
    font-family:var(--jp);
    font-weight:600;
    font-size:clamp(23px, 7vw, 57px);
    line-height:1.18;
    letter-spacing:-.01em;
    margin-bottom:40px;
	margin-top:40px;
    color:#fff;
    text-shadow:0 4px 30px rgba(0,0,0,.4);
    opacity:0;
    animation:fadeUp .8s .35s forwards;
  }
  h1.hero-title .accent-grad{
    background:linear-gradient(135deg, #ffd23f 0%, #ffb627 30%, #7ed4d5 70%, #00afb0 100%);
    background-size:200% auto;
    -webkit-background-clip:text;
    background-clip:text;
    -webkit-text-fill-color:transparent;
    animation:gradientFlow 6s ease infinite;
    font-family:var(--display);
    font-style:italic;
    font-weight:500;
  }
  @keyframes gradientFlow{
    0%, 100%{ background-position:0% 50%; }
    50%{ background-position:100% 50%; }
  }
  h1.hero-title .underline{
    position:relative;
    display:inline-block;
  }
  h1.hero-title .underline::after{
    content:'';
    position:absolute;
    left:0; bottom:6px;
    width:100%; height:14px;
    background:rgba(255,182,39,.55);
    z-index:-1;
    border-radius:4px;
  }
  .hero-lead{
    max-width:1000px;
    /*font-size:17px;*/
	font-size: clamp(12px, 1.2vw, 20px);
    line-height:2;
    color:rgba(255,255,255,.92);
    margin-bottom:40px;
    text-shadow:0 2px 10px rgba(0,0,0,.3);
    opacity:0;
    animation:fadeUp .8s .55s forwards;
  }
  .hero-lead strong{
    color:var(--teal-light);
    font-weight:600;
  }
  .hero-actions{
    display:flex;
    gap:18px;
    flex-wrap:wrap;
    margin-bottom:60px;
    opacity:0;
    animation:fadeUp .8s .75s forwards;
  }
  .btn{
    display:inline-flex;
    align-items:center;
    gap:14px;
    padding:18px 32px;
    text-decoration:none;
    font-family:var(--mono);
    font-size:12px;
    letter-spacing:.2em;
    text-transform:uppercase;
    font-weight:600;
    border:none;
    transition:all .35s;
    cursor:pointer;
    border-radius:100px;
    position:relative;
    overflow:hidden;
  }
  .btn-primary{
    background:var(--grad-teal);
    color:#fff;
    box-shadow:0 10px 24px rgba(0,175,176,.4);
  }
  .btn-primary:hover{
    transform:translateY(-3px);
    box-shadow:0 16px 32px rgba(0,175,176,.55);
  }
  .btn-secondary{
    background:rgba(255,255,255,.95);
    color:var(--ink);
    border:1.5px solid rgba(255,255,255,.95);
    backdrop-filter:blur(10px);
  }
  .btn-secondary:hover{
    background:var(--solar);
    border-color:var(--solar);
    color:var(--ink);
    transform:translateY(-3px);
    box-shadow:0 12px 24px rgba(255,182,39,.5);
  }
  .btn-solar{
    background:var(--grad-solar);
    color:#fff;
    box-shadow:0 10px 24px rgba(255,107,53,.3);
  }
  .btn-solar:hover{
    transform:translateY(-3px);
    box-shadow:0 16px 32px rgba(255,107,53,.45);
  }
  .btn .arrow{
    width:22px;height:1.5px;background:currentColor;position:relative;
    transition:width .3s;
    border-radius:2px;
  }
  .btn .arrow::after{
    content:'';
    position:absolute;
    right:0; top:-3px;
    width:8px;height:8px;
    border-top:1.5px solid currentColor;
    border-right:1.5px solid currentColor;
    transform:rotate(45deg);
  }
  .btn:hover .arrow{ width:30px; }

  .hero-stats{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:0;
    border-top:1px solid rgba(255,255,255,.2);
    padding-top:30px;
    opacity:0;
    animation:fadeUp .8s .95s forwards;
  }
  .stat{
    padding:0 24px;
    border-right:1px dashed rgba(255,255,255,.18);
    position:relative;
  }
  .stat::before{
    content:'';
    position:absolute;
    left:0; top:-1px;
    width:34px;
    height:3px;
    background:var(--teal-light);
  }
  .stat:nth-child(2)::before{ background:var(--solar); }
  .stat:nth-child(3)::before{ background:var(--sun); }
  .stat:nth-child(4)::before{ background:var(--leaf); }
  .stat:first-child{padding-left:0;}
  .stat:last-child{border-right:none;}
  .stat-num{
    font-family:var(--display);
    font-size:46px;
    font-weight:500;
    line-height:1;
    color:#fff;
    margin-bottom:8px;
    display:flex;
    align-items:baseline;
    gap:6px;
    text-shadow:0 2px 10px rgba(0,0,0,.3);
  }
  .stat-num .unit{font-size:15px; color:rgba(255,255,255,.7); font-family:var(--mono); font-weight:400;}
  .stat-label{
    font-family:var(--mono);
    font-size:10px;
    letter-spacing:.2em;
    text-transform:uppercase;
    color:rgba(255,255,255,.7);
  }

  @keyframes fadeUp{
    from{opacity:0;transform:translateY(24px);}
    to{opacity:1;transform:translateY(0);}
  }

  /* ============= NEWS BAR ============= */
  .news-bar{
    background:linear-gradient(135deg, var(--ink) 0%, var(--ink-soft) 100%);
    color:var(--paper);
    /*padding:22px 40px;*/
	padding:10px 40px;
    position:relative;
    overflow:hidden;
  }
@media (max-width: 425px) {

  .news-bar{
    background:linear-gradient(135deg, var(--ink) 0%, var(--ink-soft) 100%);
    color:var(--paper);
    /*padding:22px 40px;*/
	padding:10px 40px;
    height: 190px !important;
    position:relative;
    overflow:hidden;
  }
}
  .news-bar::before{
    content:'';
    position:absolute;
    top:0; left:0;
    width:100%; height:3px;
    background:var(--grad-energy);
  }
  .news-bar-inner{
    max-width:1320px;
    margin: 10px auto 10px;
    display:flex;
    align-items:center;
    gap:24px;
  }
.news-tag {
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: .25em;
    text-transform: uppercase;
    padding: 6px 14px;
    background: #ffffff2e;
    color: #ffffff;
    flex-shrink: 0;
    /* border-radius: 100px; */
    font-weight: 600;
}
/*
  .news-tag{
    font-family:var(--mono);
    font-size:10px;
    letter-spacing:.25em;
    text-transform:uppercase;
    padding:6px 14px;
    background:var(--teal);
    color:#fff;
    flex-shrink:0;
    border-radius:100px;
    font-weight:600;
  }
*/
  .news-date{
    font-family:var(--mono);
    font-size:12px;
    color:var(--paper-warm);
    flex-shrink:0;
  }
  .news-text{
    font-size:14px;
    flex:1;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .news-text a{ color:var(--paper); text-decoration:none; transition:color .3s;}
  .news-text a:hover{ color:var(--solar); }

  /* ============= SECTION GENERIC ============= */
  section{
    /*padding:60px 40px;*/
	padding:60px 40px;
    position:relative;
  }
  section.topstrong{
    /*padding:60px 40px;*/
	padding:120px 40px !important;
    position:relative;
  }
  .section-label{
    display:inline-flex;
    align-items:center;
    gap:14px;
    padding:6px 14px;
    background:rgba(0,175,176,.1);
    border-radius:100px;
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:.25em;
    text-transform:uppercase;
    color:var(--teal-deep);
    margin-bottom:24px;
    font-weight:600;
  }
  .section-label::before{
    content:'';
    width:6px; height:6px;
    background:var(--teal);
    border-radius:50%;
  }
  .section-label.solar{
    background:rgba(255,182,39,.12);
    color:var(--solar-deep);
  }
  .section-label.solar::before{ background:var(--solar);}
  .section-label.sun{
    background:rgba(255,107,53,.12);
    color:var(--sun);
  }
  .section-label.sun::before{ background:var(--sun);}

  .section-title{
    font-family:var(--jp);
    font-size:clamp(32px, 4.5vw, 56px);
    font-weight:600;
    line-height:1.25;
    margin-bottom:30px;
    letter-spacing:-.005em;
  }
  .section-title .ja-en{
    display:block;
    font-family:var(--display);
    font-style:italic;
    font-weight:300;
    font-size:.45em;
    color:var(--muted);
    margin-top:12px;
    letter-spacing:.05em;
  }
 .section-title_plain{
    font-family:var(--jp);
    font-size: clamp(32px, 4.5vw, 35px);
    font-weight:600;
    line-height:1.25;
    margin-bottom:30px;
    letter-spacing:-.005em;
  }

  /* ============= ABOUT (Mission) ============= */
  .about{
    /*background:var(--paper-warm);*/
    border-top:1px solid rgba(0,175,176,.12);
    border-bottom:1px solid rgba(0,175,176,.12);
    position:relative;
    overflow:hidden;
  }
  .about::before{
    content:'';
    position:absolute;
    top:-100px; right:-100px;
    width:400px; height:400px;
    background:radial-gradient(circle, var(--teal-glow) 0%, transparent 70%);
    pointer-events:none;
  }
  /*.about::after{
    content:'';
    position:absolute;
    bottom:-100px; left:-100px;
    width:400px; height:400px;
    background:radial-gradient(circle, rgba(255,182,39,.15) 0%, transparent 70%);
    pointer-events:none;
  }*/
  .about-inner{
    max-width:1320px;
    margin:0 auto;
    position:relative;
    z-index:2;
    display:grid;
    grid-template-columns: 1fr 32vw;
    gap:80px;
    align-items:start;
  }

@media (min-width: 1300px) {
	
  .about-inner{
    max-width:1320px;
    margin:0 auto;
    position:relative;
    z-index:2;
    display:grid;
    grid-template-columns: 1fr 23vw;
    gap:80px;
    align-items:start;
  }
  .about-inner2{
    max-width:1320px;
    margin:0 auto;
    position:relative;
    z-index:2;
    display:grid;
    grid-template-columns: 1fr 23vw;
    gap:80px;
    align-items:start;
  }}
  .about-lead p{
    font-size:16px;
    line-height:2;
    color:var(--ink-soft);
    margin-bottom:24px;
  }
  .about-lead .strong{
    font-family:var(--display);
    font-style:italic;
    font-size:28px;
    color:var(--teal-deep);
    line-height:1.5;
    border-left:3px solid var(--teal);
    padding-left:24px;
    margin-bottom:30px;
    display:block;
  }
  .vision-cards{
    display:grid;
    gap:20px;
  }
  .v-card{
    background:#fff;
    padding:36px;
    border:1px solid rgba(26,34,48,.08);
    border-radius:16px;
    position:relative;
    transition:all .4s;
    box-shadow:0 4px 20px rgba(0,0,0,.04);
    overflow:hidden;
  }
  .v-card::before{
    content:'';
    position:absolute;
    left:0;top:0;
    width:5px; height:100%;
    background:var(--teal);
    transform:scaleY(0);
    transform-origin:top;
    transition:transform .4s;
  }
  .v-card.solar::before{ background:var(--solar);}
  .v-card.leaf::before{ background:var(--leaf);}
  .v-card:hover{
    transform:translateY(-6px);
    box-shadow:0 20px 40px rgba(0,0,0,.08);
  }
  .v-card:hover::before{ transform:scaleY(1); }
  .v-card .num{
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:.2em;
    color:var(--muted);
    margin-bottom:14px;
    display:block;
    font-weight:500;
  }
  .v-card .head{
    font-family:var(--display);
    font-style:italic;
    font-size:14px;
    color:var(--teal-deep);
    margin-bottom:8px;
    display:block;
  }
  .v-card.solar .head{ color:var(--solar-deep);}
  .v-card.leaf .head{ color:#3a8a5a;}
  .v-card h3{
    font-size:22px;
    font-weight:700;
    margin-bottom:14px;
    line-height:1.4;
  }
  .v-card p{
    color:var(--ink-soft);
    font-size:14px;
    line-height:1.9;
  }
  .v-card .tag{
    display:inline-block;
    margin-top:14px;
    padding:4px 12px;
    background:rgba(0,175,176,.12);
    color:var(--teal-deep);
    font-family:var(--mono);
    font-size:10px;
    letter-spacing:.15em;
    text-transform:uppercase;
    border-radius:100px;
    font-weight:600;
  }
  .v-card.solar .tag{ background:rgba(255,182,39,.18); color:var(--solar-deep);}
  .v-card.leaf .tag{ background:rgba(95,178,122,.18); color:#3a8a5a;}

  /* ============= STRENGTHS ============= */
  .strengths{
	  background: var(--paper-warm);
    /*background:#fff;*/
    position:relative;
    overflow:hidden;
  }
  .strengths-header{
    text-align:center;
    max-width:760px;
    margin:0 auto 80px;
  }
  .strengths-header .section-label{
    margin-left:auto;
    margin-right:auto;
  }
  .strengths-header p{
    font-size:16px;
    color:var(--ink-soft);
    line-height:2;
    margin-top:20px;
  }
  .strength-grid{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:20px;
  }

dl.strength_list{
	width: 90%;
	margin: 0 auto;
	
}
dl.strength_list dt {
    border-bottom: 1px solid #000;
    margin-bottom: 10px;
    font-size: 1.7em;
}
dl.strength_list dd{
	/*margin-bottom: 20px;*/
	
}
dl.strength_list span {
    color: #009da3;
    font-size: 1.4em;
    margin-right: 20px;
}
  .s-card{
    padding:36px 28px;
    background:linear-gradient(180deg, var(--paper) 0%, var(--paper-warm) 100%);
    border:1px solid var(--line);
    border-radius:18px;
    transition:all .4s;
    position:relative;
    overflow:hidden;
  }
  .s-card:hover{
    transform:translateY(-6px);
    border-color:var(--teal);
    box-shadow:0 20px 40px rgba(0,175,176,.15);
    background:linear-gradient(180deg, #fff 0%, var(--paper-warm) 100%);
  }
  .s-card .s-icon{
    width:60px; height:60px;
    margin-bottom:24px;
    background:linear-gradient(135deg, var(--teal-glow) 0%, rgba(255,182,39,.2) 100%);
    border-radius:14px;
    display:flex;
    align-items:center;
    justify-content:center;
    transition:transform .4s;
  }
  .s-card:hover .s-icon{ transform:rotate(-6deg) scale(1.05);}
  .s-card .s-icon svg{ width:32px; height:32px;}
  .s-card h4{
    font-size:18px;
    font-weight:700;
    margin-bottom:10px;
    line-height:1.4;
  }
  .s-card .label{
    font-family:var(--mono);
    font-size:10px;
    letter-spacing:.15em;
    text-transform:uppercase;
    color:var(--teal-deep);
    margin-bottom:14px;
    display:block;
    font-weight:600;
  }
  .s-card p{
    font-size:13px;
    line-height:1.8;
    color:var(--ink-soft);
  }

/* ============= STRENGTHS SE ============= */

.strength-grid_se{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:20px;
	margin: 50px 0 50px 0;
  }
@media (max-width: 768px){
.strength-grid_se{
    display:grid;
    grid-template-columns:repeat(2, 1fr);

}
@media (max-width: 425px){
.strength-grid_se{
    display:grid;
    grid-template-columns:1fr;

}
}

dl.strength_list{
	width: 90%;
	margin: 0 auto;
	
}
dl.strength_list dt {
    border-bottom: 1px solid #000;
    margin-bottom: 10px;
    font-size: 1.7em;
}
dl.strength_list dd{
	/*margin-bottom: 20px;*/
	
}
dl.strength_list span {
    color: #009da3;
    font-size: 1.4em;
    margin-right: 20px;
}
  .s-card_se{
    padding: 36px 28px;
    /* background: linear-gradient(180deg, var(--paper) 0%, var(--paper-warm) 100%); */
    border: 1px solid #009da3;
    border-radius: 18px;
    transition: all .4s;
    position: relative;
    overflow: hidden;
}
  /*.s-card:hover{
    transform:translateY(-6px);
    border-color:var(--teal);
    box-shadow:0 20px 40px rgba(0,175,176,.15);
    background:linear-gradient(180deg, #fff 0%, var(--paper-warm) 100%);
  }*/
  .s-card_se .s-icon{
    width:60px; height:60px;
    margin-bottom:24px;
    background:linear-gradient(135deg, var(--teal-glow) 0%, rgba(255,182,39,.2) 100%);
    border-radius:14px;
    display:flex;
    align-items:center;
    justify-content:center;
    transition:transform .4s;
  }
  /*.s-card:hover .s-icon{ transform:rotate(-6deg) scale(1.05);}
  .s-card .s-icon svg{ width:32px; height:32px;}
  .s-card h4{
    font-size:18px;
    font-weight:700;
    margin-bottom:10px;
    line-height:1.4;
  }*/
  .s-card_se .label{
    font-family:var(--mono);
    font-size:10px;
    letter-spacing:.15em;
    text-transform:uppercase;
    color:var(--teal-deep);
    margin-bottom:14px;
    display:block;
    font-weight:600;
  }
  .s-card_se p{
    font-size:13px;
    line-height:1.8;
    color:var(--ink-soft);
  }

  /* ============= PRODUCT ============= */
  .product{
    background:linear-gradient(165deg, var(--ink) 0%, #0d1620 100%);
    color:var(--paper);
    overflow:hidden;
    position:relative;
  }
  .product::before{
    content:'';
    position:absolute;
    inset:0;
    background:
      radial-gradient(circle at 20% 30%, rgba(0,175,176,.15) 0%, transparent 40%),
      radial-gradient(circle at 80% 70%, rgba(255,182,39,.12) 0%, transparent 40%);
    pointer-events:none;
  }
  .product .container{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:80px;
    align-items:center;
    position:relative;
    z-index:2;
  }
  .product .section-title{ color:var(--paper); }
  .product .section-title .ja-en{ color:rgba(253,251,246,.5); }
  .product-text p{
    color:rgba(253,251,246,.85);
    font-size:16px;
    line-height:2;
    margin-bottom:24px;
  }
  .product-text strong{ color:var(--teal-light); font-weight:600;}
  .product-tech{
    margin-top:30px;
    margin-bottom:30px;
  }

/**/
 .product2{
    background: var(--paper);
    border-top:1px solid rgba(0,175,176,.12);
    border-bottom:1px solid rgba(0,175,176,.12);
    position:relative;
    overflow:hidden;
  }
  /*.product2::before{
    content:'';
    position:absolute;
    inset:0;
    background:
      radial-gradient(circle at 20% 30%, rgba(0,175,176,.15) 0%, transparent 40%),
      radial-gradient(circle at 80% 70%, rgba(255,182,39,.12) 0%, transparent 40%);
    pointer-events:none;
  }*/
  .product2 .container{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:80px;
    align-items:center;
    position:relative;
    z-index:2;
  }
  .product2 .section-title{ color:var(--paper); }
  .product2 .section-title .ja-en{ color:rgba(253,251,246,.5); }

dl.sol_prodlist {
    width: 100%;
    margin: 0 auto;
    background-color: #fff;
    padding: 20px;
    text-align: center;
}
dl.sol_prodlist dt {
    font-size: 1.1em;
    font-weight: 600;
    color: #0071c6;
    padding: 15px;
    background-color: #fdffda;
}
dl.sol_prodlist dd{
	
}
dl.sol_prodlist dd img {
    width: 60%;
}
dl.sol_prodlist dd.wid_edit img {
    width: 100% !important;
}



/**/
  .tech-row{
    display:flex;
    align-items:flex-start;
    gap:18px;
    padding:18px 0;
    border-top:1px solid rgba(253,251,246,.12);
  }
  .tech-row:last-child{ border-bottom:1px solid rgba(253,251,246,.12);}
  .tech-num{
    flex-shrink:0;
    width:36px; height:36px;
    background:var(--teal);
    color:var(--ink);
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    font-family:var(--mono);
    font-weight:700;
    font-size:13px;
  }
  .tech-content h5{
    font-size:16px;
    color:#fff;
    margin-bottom:6px;
    font-weight:700;
    letter-spacing:.02em;
  }
  .tech-content h5 .en{
    color:var(--teal-light);
    font-family:var(--display);
    font-style:italic;
    font-weight:400;
    margin-left:8px;
    font-size:14px;
  }
  .tech-content p{
    margin:0;
    color:rgba(253,251,246,.7);
    font-size:13px;
    line-height:1.8;
  }
  .product-specs{
    margin-top:30px;
    border-top:1px solid rgba(253,251,246,.12);
    padding-top:24px;
  }
  .spec-row{
    display:grid;
    grid-template-columns:140px 1fr;
    gap:20px;
    padding:16px 0;
    border-bottom:1px solid rgba(253,251,246,.07);
    align-items:baseline;
  }
  .spec-label{
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:.2em;
    text-transform:uppercase;
    color:var(--teal-light);
    font-weight:600;
  }
  .spec-value{
    font-family:var(--display);
    font-size:24px;
    font-weight:400;
    color:var(--paper);
  }
  .spec-value .small{ font-size:13px; font-family:var(--jp); color:rgba(253,251,246,.7); margin-left:8px;}

  /* Product Visual: Solar cell with glow */
  .product-visual{
    position:relative;
    aspect-ratio:1;
    max-width:540px;
    margin:0 auto;
  }
  .product-visual::before{
    content:'';
    position:absolute;
    inset:-20%;
    background:radial-gradient(circle, rgba(0,175,176,.25) 0%, transparent 60%);
    z-index:0;
    animation:glowPulse 4s ease-in-out infinite;
  }
  @keyframes glowPulse{
    0%, 100%{ opacity:.5; transform:scale(1);}
    50%{ opacity:.8; transform:scale(1.05);}
  }
  .cell-svg{
    width:100%; height:100%;
    position:relative;
    z-index:2;
    filter:drop-shadow(0 30px 60px rgba(0,134,138,.4));
  }
  .product-floating-stat{
    position:absolute;
    background:rgba(255,255,255,.96);
    color:var(--ink);
    padding:14px 20px;
    border-radius:14px;
    font-family:var(--mono);
    box-shadow:0 12px 30px rgba(0,0,0,.2);
    z-index:3;
  }
  .pfs-1{ top:8%; right:-20px; }
  .pfs-2{ bottom:12%; left:-20px; }
  .product-floating-stat .label{
    font-size:9px;
    letter-spacing:.2em;
    color:var(--muted);
    text-transform:uppercase;
    margin-bottom:4px;
  }
  .product-floating-stat .value{
    font-size:18px;
    font-weight:700;
    color:var(--teal-deep);
    font-family:var(--display);
  }


table.pro_spectable {
    width: 80%;
    margin: 0 auto 30px;
}
table.pro_spectable th {
    text-align: center;
    background: #8c8c8c;
    color: #fff;
    padding: 10px;
}
table.pro_spectable td {
    text-align: center;
    border-left: 1px solid;
    border-bottom: 1px solid #9b9b9b;
}
  /* ============= SOLUTIONS ============= */
  .solutions{
    background:var(--paper);
    position:relative;
    overflow:hidden;
  }
  .solutions2{
    background: var(--paper);
    border-top:1px solid rgba(0,175,176,.12);
    border-bottom:1px solid rgba(0,175,176,.12);
    position:relative;
    overflow:hidden;
  }
  .solutions2 p{
    margin: 15px 0;
  }
  .solutions-header{
    max-width:760px;
    margin-bottom:60px;
    position:relative;
    z-index:2;
  }
  .solutions-header p{
    font-size:17px;
    color:var(--ink-soft);
    line-height:2;
    margin-top:20px;
  }
  .solutions-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:24px;
    position:relative;
    z-index:2;
  }
  .sol{
    padding:48px 36px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:20px;
    position:relative;
    transition:all .5s;
    overflow:hidden;
  }
  .sol::before{
    content:'';
    position:absolute;
    top:0; left:0;
    width:100%; height:100%;
    background:linear-gradient(135deg, var(--teal-glow) 0%, transparent 60%);
    opacity:0;
    transition:opacity .5s;
    z-index:0;
  }
  .sol:hover::before{ opacity:1; }
  .sol:hover{
    transform:translateY(-8px);
    border-color:var(--teal);
    box-shadow:0 24px 50px rgba(0,175,176,.15);
  }
  .sol > *{ position:relative; z-index:1; }

  .sol .num{
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:.2em;
    color:var(--muted);
    margin-bottom:24px;
    display:block;
    font-weight:600;
  }
  .sol .icon-wrap{
    width:80px; height:80px;
    margin-bottom:32px;
    border-radius:20px;
    display:flex;
    align-items:center;
    justify-content:center;
    transition:transform .4s;
  }
  .sol:hover .icon-wrap{
    transform:rotate(-6deg) scale(1.05);
  }
  .sol:nth-child(1) .icon-wrap{ background:linear-gradient(135deg, rgba(0,175,176,.18) 0%, rgba(61,169,201,.18) 100%);}
  .sol:nth-child(2) .icon-wrap{ background:linear-gradient(135deg, rgba(255,182,39,.2) 0%, rgba(255,107,53,.18) 100%);}
  .sol:nth-child(3) .icon-wrap{ background:linear-gradient(135deg, rgba(95,178,122,.2) 0%, rgba(0,175,176,.15) 100%);}
  .sol .icon-wrap svg{ width:42px; height:42px; }
  .sol h3{
    font-size:24px;
    font-weight:700;
    margin-bottom:14px;
    line-height:1.4;
  }
  .sol h3 .sub-status{
    font-size:11px;
    color:var(--solar-deep);
    font-weight:500;
    background:rgba(255,182,39,.15);
    padding:3px 10px;
    border-radius:100px;
    margin-left:8px;
    vertical-align:middle;
    font-family:var(--mono);
    letter-spacing:.1em;
  }
  .sol .label{
    font-family:var(--display);
    font-style:italic;
    font-size:14px;
    color:var(--teal-deep);
    margin-bottom:18px;
    display:block;
  }
  ul.sol_strong {
    width: 85%;
    margin: 50px auto;
}
  ul.sol_strong li {
    font-size: 1.5em;
    font-weight: 600;
    margin: 15px 0 15px 0;
    padding: 5px;
    padding-left: 20px;
    list-style: none;
    line-height: 1.8em;
    background-color: #ffeed1;
}
ul.sol_strong li span {
    font-size: 1.35em;
    color: #9e851b;
}

  /* ============= FACILITY (with photo) ============= */
  .facility{
    background:linear-gradient(135deg, var(--paper-warm) 0%, var(--paper-deep) 100%);
    position:relative;
    overflow:hidden;
    padding:120px 0;
  }
  /*.facility::before{
    content:'';
    position:absolute;
    top:-100px; left:-100px;
    width:400px; height:400px;
    background:radial-gradient(circle, var(--teal-glow) 0%, transparent 60%);
    pointer-events:none;
  }*/
  .facility .container{
    padding:0 40px;
  }

/**/
  .facility2{
    /*background:linear-gradient(135deg, var(--paper-warm) 0%, var(--paper-deep) 100%);*/
    position:relative;
    overflow:hidden;
    /*padding:120px 0;*/
  }
  .facility2 p{
    margin: 15px 0;
  }
  .facility2::before{
    content:'';
    position:absolute;
    top:-100px; left:-100px;
    width:400px; height:400px;
    background:radial-gradient(circle, var(--teal-glow) 0%, transparent 60%);
    pointer-events:none;
  }
  .facility2 .container{
    padding:0 40px;
  }

/**/
  .facility-photo-block{
    margin:60px 0 80px;
    position:relative;
    border-radius:24px;
    overflow:hidden;
    box-shadow:0 30px 60px rgba(0,0,0,.15);
  }
  .facility-photo-block img{
    width:100%;
    height:auto;
    display:block;
    aspect-ratio:16/10;
    object-fit:cover;
  }
  .facility-photo-overlay{
    position:absolute;
    bottom:0; left:0; right:0;
    padding:40px;
    background:linear-gradient(0deg, rgba(10,20,30,.85) 0%, rgba(10,20,30,.5) 60%, transparent 100%);
    color:#fff;
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    flex-wrap:wrap;
    gap:20px;
  }
  .facility-photo-overlay .label{
    font-family:var(--mono);
    font-size:10px;
    letter-spacing:.25em;
    text-transform:uppercase;
    color:var(--teal-light);
    margin-bottom:8px;
  }
  .facility-photo-overlay h3{
    font-family:var(--display);
    font-style:italic;
    font-weight:400;
    font-size:36px;
    line-height:1.2;
    margin-bottom:6px;
  }
  .facility-photo-overlay .addr{
    font-size:13px;
    color:rgba(255,255,255,.7);
    font-family:var(--mono);
  }
  .facility-photo-overlay .badge{
    display:inline-block;
    padding:8px 16px;
    background:var(--solar);
    color:var(--ink);
    border-radius:100px;
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:.15em;
    font-weight:700;
  }

  .facility-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:80px;
    align-items:start;
    position:relative;
    z-index:2;
  }
  .facility-info > p{
    font-size:16px;
    line-height:2;
    color:var(--ink-soft);
    margin-bottom:24px;
  }
  .facility-info > p strong{ color:var(--teal-deep); font-weight:600;}
  .facility-data{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
    margin-top:30px;
  }
  .fd-item{
    padding:24px;
    background:#fff;
    border-radius:14px;
    border:1px solid var(--line);
    position:relative;
    overflow:hidden;
  }
  .fd-item::before{
    content:'';
    position:absolute;
    top:0; left:0;
    width:40px; height:3px;
    background:var(--teal);
  }
  .fd-item:nth-child(2)::before{ background:var(--solar);}
  .fd-item:nth-child(3)::before{ background:var(--sun);}
  .fd-item:nth-child(4)::before{ background:var(--leaf);}
  .fd-item:nth-child(5)::before{ background:var(--sky-deep);}
  .fd-item:nth-child(6)::before{ background:var(--teal);}
  .fd-label{
    font-family:var(--mono);
    font-size:10px;
    letter-spacing:.2em;
    text-transform:uppercase;
    color:var(--muted);
    margin-bottom:12px;
    font-weight:600;
  }
  .fd-value{
    font-family:var(--display);
    font-size:30px;
    font-weight:500;
    line-height:1.2;
    color:var(--ink);
  }
  .fd-value .unit{font-size:13px; color:var(--muted); margin-left:4px; font-family:var(--mono);}
  .fd-value .small-text{font-size:14px; line-height:1.5; font-family:var(--jp); display:block;}

  /* Map illustration card */
  .map-card{
    background:#fff;
    padding:32px;
    position:relative;
    border:1px solid var(--line);
    border-radius:20px;
    box-shadow:0 24px 50px rgba(0,0,0,.08);
    overflow:hidden;
  }
  .map-card::before{
    content:'';
    position:absolute;
    top:0; left:0;
    width:100%; height:5px;
    background:var(--grad-energy);
  }
  .map-illustration{
    width:100%;
    height:240px;
    margin-bottom:24px;
    background:linear-gradient(180deg, #e8f4f5 0%, var(--paper-warm) 100%);
    position:relative;
    overflow:hidden;
    border-radius:12px;
  }
  .map-illustration svg{ width:100%; height:100%; }
  .map-card h4{
    font-size:18px;
    margin-bottom:10px;
    font-weight:700;
  }
  .map-card .addr{
    font-family:var(--mono);
    font-size:12px;
    color:var(--muted);
    line-height:1.7;
    margin-bottom:14px;
  }
  .map-card .access-list{
    list-style:none;
    padding:0;
    margin:0;
    border-top:1px dashed var(--line);
    padding-top:14px;
  }
  .map-card .access-list li{
    font-size:12px;
    color:var(--ink-soft);
    margin-bottom:6px;
    padding-left:14px;
    position:relative;
  }
  .map-card .access-list li::before{
    content:'';
    position:absolute;
    left:0; top:7px;
    width:6px; height:6px;
    background:var(--teal);
    border-radius:50%;
  }

table.fac_tabel {
	width: 100%;
    margin: 0 auto;
}
table.fac_tabel th{
	background-color: #00868a;
	color: #fff;
	padding: 5px;
	width: 27%;
	
}
table.fac_tabel td{
	border-bottom: 1px solid #00868a;
	padding: 5px;
	padding-left: 30px;
}

  /* ============= COMPANY ============= */
  .company{
    background:var(--paper);
    position:relative;
    overflow:hidden;
  }
  /*.company::before{
    content:'';
    position:absolute;
    bottom:-200px; right:-100px;
    width:500px; height:500px;
    background:radial-gradient(circle, rgba(255,182,39,.12) 0%, transparent 70%);
    pointer-events:none;
  }*/
  .company-grid{
    display:grid;
    grid-template-columns:1fr 1.6fr;
    gap:80px;
    align-items:start;
    position:relative;
    z-index:2;
  }
.corp-table {
    border-radius: 16px;
    background: #fff;
    border: 1px solid var(--line);
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0, 0, 0, .04);
    width: 75%;
    margin: 0 auto;
}
.corp-row {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 30px;
    padding: 15px 32px;
    border-bottom: 1px solid var(--line);
    align-items: start;
    transition: background .3s;
}
  .corp-row:last-child{ border-bottom:none;}
  .corp-row:hover{ background:rgba(0,175,176,.03);}
  .corp-row dt{
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:.2em;
    text-transform:uppercase;
    color:var(--teal-deep);
    padding-top:4px;
    font-weight:600;
  }
  .corp-row dd{
    font-size:14.5px;
    line-height:1.8;
    color:var(--ink-soft);
  }
  .corp-row dd .strong{
    font-weight:700;
    color:var(--ink);
  }
  .corp-row dd .en{
    font-family:var(--display);
    font-style:italic;
    color:var(--muted);
    margin-left:8px;
    font-size:13px;
  }
  .corp-row dd .pct{
    color:var(--teal-deep);
    font-family:var(--mono);
    font-weight:600;
    margin-left:6px;
  }

  .name-origin{
    background:linear-gradient(135deg, var(--teal-glow) 0%, rgba(255,182,39,.12) 100%);
    padding:30px;
    border-radius:16px;
    margin-top:30px;
    border:1px solid rgba(0,175,176,.15);
  }
  .name-origin .label{
    font-family:var(--mono);
    font-size:10px;
    letter-spacing:.25em;
    text-transform:uppercase;
    color:var(--teal-deep);
    margin-bottom:12px;
    font-weight:600;
  }
  .name-origin .formula{
    font-family:var(--display);
    font-size:24px;
    font-style:italic;
    color:var(--ink);
    margin-bottom:10px;
    line-height:1.4;
  }
  .name-origin .formula .plus{ color:var(--teal); margin:0 8px;}
  .name-origin p{
    font-size:13px;
    color:var(--ink-soft);
    line-height:1.8;
  }

.map_box{
	margin: 50px auto;
    width: 100%;
}
.map_box iframe {
    width: 100%;
    height: clamp(50vh, 20vh, 3vh);
}

  /* ============= Privacy ============= */
  .privacy{
    background:var(--paper);
    position:relative;
    overflow:hidden;
  }
  .privacy-header{
    max-width:100%;
    margin-bottom:60px;
    position:relative;
    z-index:2;
  }
  .privacy-header p{
    font-size:17px;
    color:var(--ink-soft);
    line-height:2;
    margin-top:20px;
  }
  .privacy-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:24px;
    position:relative;
    z-index:2;
  }
  .pri{
    padding:48px 36px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:20px;
    position:relative;
    transition:all .5s;
    overflow:hidden;
  }
  .pri::before{
    content:'';
    position:absolute;
    top:0; left:0;
    width:100%; height:100%;
    background:linear-gradient(135deg, var(--teal-glow) 0%, transparent 60%);
    opacity:0;
    transition:opacity .5s;
    z-index:0;
  }
  .pri:hover::before{ opacity:1; }
  .pri:hover{
    transform:translateY(-8px);
    border-color:var(--teal);
    box-shadow:0 24px 50px rgba(0,175,176,.15);
  }
  .pri > *{ position:relative; z-index:1; }

  .pri .num{
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:.2em;
    color:var(--muted);
    margin-bottom:24px;
    display:block;
    font-weight:600;
  }
  .pri .icon-wrap{
    width:80px; height:80px;
    margin-bottom:32px;
    border-radius:20px;
    display:flex;
    align-items:center;
    justify-content:center;
    transition:transform .4s;
  }
  .pri:hover .icon-wrap{
    transform:rotate(-6deg) scale(1.05);
  }
  .pri:nth-child(1) .icon-wrap{ background:linear-gradient(135deg, rgba(0,175,176,.18) 0%, rgba(61,169,201,.18) 100%);}
  .pri:nth-child(2) .icon-wrap{ background:linear-gradient(135deg, rgba(255,182,39,.2) 0%, rgba(255,107,53,.18) 100%);}
  .pri:nth-child(3) .icon-wrap{ background:linear-gradient(135deg, rgba(95,178,122,.2) 0%, rgba(0,175,176,.15) 100%);}
  .pri .icon-wrap svg{ width:42px; height:42px; }
  .pri h3{
    font-size:24px;
    font-weight:700;
    margin-bottom:14px;
    line-height:1.4;
  }
  .pri h3 .sub-status{
    font-size:11px;
    color:var(--solar-deep);
    font-weight:500;
    background:rgba(255,182,39,.15);
    padding:3px 10px;
    border-radius:100px;
    margin-left:8px;
    vertical-align:middle;
    font-family:var(--mono);
    letter-spacing:.1em;
  }
  .pri .label{
    font-family:var(--display);
    font-style:italic;
    font-size:14px;
    color:var(--teal-deep);
    margin-bottom:18px;
    display:block;
  }
  .pri .desc{
    font-size:14px;
    line-height:1.9;
    color:var(--ink-soft);
  }

.privacy_content {
    font-size: 16px;
    line-height: 1.8;
    color: #606060;
    margin-top: 30px !important;
    width: 100% !important;
}
h3.privacy_ttl {
    font-size: 20px;
    font-weight: bold;
    color: #666666;
    display: block;
    text-align: left;
    margin: 0 auto 30px;
}
.privacy_content p {
    color: #606060;
}
.privacy_content li {
    padding-left: 1em;
    margin-left: 1em;
    text-indent: -1em;
    margin-bottom: 10px;
    line-height: 30px;
}
ol.min_list li{
	list-style: none;
}

  /* ============= Terms of Use ============= */

.privacy_author {
    margin-top: 50px;
    text-align: right;
}

  /* ============= CONTACT ============= */
  .contact-cta{
    background:linear-gradient(135deg, var(--ink) 0%, #0a3a3d 100%);
    color:var(--paper);
    padding:140px 40px;
    position:relative;
    overflow:hidden;
  }
  .contact-cta::before{
    content:'LIVLX';
    position:absolute;
    bottom:-80px;
    right:-30px;
    font-family:var(--display);
    font-size:clamp(200px, 30vw, 400px);
    font-weight:300;
    color:rgba(0,175,176,.06);
    letter-spacing:-.02em;
    line-height:.8;
    pointer-events:none;
  }
  .contact-cta::after{
    content:'';
    position:absolute;
    inset:0;
    background:
      radial-gradient(circle at 70% 30%, rgba(0,175,176,.15) 0%, transparent 50%),
      radial-gradient(circle at 20% 70%, rgba(255,182,39,.08) 0%, transparent 50%);
    pointer-events:none;
  }
  .contact-inner{
    max-width:1320px;
    margin:0 auto;
    position:relative;
    z-index:2;
  }
  .contact-cta .section-label{
    background:rgba(0,175,176,.18);
    color:var(--teal-light);
  }
  .contact-cta h2{
    font-size:clamp(36px, 5vw, 64px);
    font-weight:600;
    line-height:1.25;
    margin-bottom:30px;
    max-width:900px;
  }
  .contact-cta h2 .accent{
    background:var(--grad-energy);
    -webkit-background-clip:text;
    background-clip:text;
    -webkit-text-fill-color:transparent;
    font-family:var(--display);
    font-style:italic;
    font-weight:500;
  }
  .contact-cta p{
    color:rgba(253,251,246,.7);
    font-size:16px;
    line-height:2;
    max-width:640px;
    margin-bottom:50px;
  }
  .contact-info{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:40px;
    margin-top:60px;
    border-top:1px solid rgba(253,251,246,.12);
    padding-top:40px;
  }
  .ci-block .label{
    font-family:var(--mono);
    font-size:10px;
    letter-spacing:.25em;
    text-transform:uppercase;
    color:var(--teal-light);
    margin-bottom:14px;
    font-weight:600;
  }
  .ci-block .value{
    font-family:var(--display);
    font-size:22px;
    font-weight:400;
    color:var(--paper);
  }
  .ci-block .value.small{ font-size:15px; font-family:var(--jp); }

  /* ============= Contact form ============= */
  .contact_form{
    background:var(--paper);
    position:relative;
    overflow:hidden;
  }
  .contact_form-header{
    max-width:100%;
    margin-bottom:60px;
    position:relative;
    z-index:2;
  }
  .contact_form-header p{
    font-size:17px;
    color:var(--ink-soft);
    line-height:2;
    margin-top:20px;
  }
  .contact_form-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:24px;
    position:relative;
    z-index:2;
  }
  .cont{
    padding:48px 36px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:20px;
    position:relative;
    transition:all .5s;
    overflow:hidden;
  }
  .cont::before{
    content:'';
    position:absolute;
    top:0; left:0;
    width:100%; height:100%;
    background:linear-gradient(135deg, var(--teal-glow) 0%, transparent 60%);
    opacity:0;
    transition:opacity .5s;
    z-index:0;
  }
  .cont:hover::before{ opacity:1; }
  .cont:hover{
    transform:translateY(-8px);
    border-color:var(--teal);
    box-shadow:0 24px 50px rgba(0,175,176,.15);
  }
  .cont > *{ position:relative; z-index:1; }

  .cont .num{
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:.2em;
    color:var(--muted);
    margin-bottom:24px;
    display:block;
    font-weight:600;
  }
  .cont .icon-wrap{
    width:80px; height:80px;
    margin-bottom:32px;
    border-radius:20px;
    display:flex;
    align-items:center;
    justify-content:center;
    transition:transform .4s;
  }
  .cont:hover .icon-wrap{
    transform:rotate(-6deg) scale(1.05);
  }
  .cont:nth-child(1) .icon-wrap{ background:linear-gradient(135deg, rgba(0,175,176,.18) 0%, rgba(61,169,201,.18) 100%);}
  .cont:nth-child(2) .icon-wrap{ background:linear-gradient(135deg, rgba(255,182,39,.2) 0%, rgba(255,107,53,.18) 100%);}
  .cont:nth-child(3) .icon-wrap{ background:linear-gradient(135deg, rgba(95,178,122,.2) 0%, rgba(0,175,176,.15) 100%);}
  .cont .icon-wrap svg{ width:42px; height:42px; }
  .cont h3{
    font-size:24px;
    font-weight:700;
    margin-bottom:14px;
    line-height:1.4;
  }
  .cont h3 .sub-status{
    font-size:11px;
    color:var(--solar-deep);
    font-weight:500;
    background:rgba(255,182,39,.15);
    padding:3px 10px;
    border-radius:100px;
    margin-left:8px;
    vertical-align:middle;
    font-family:var(--mono);
    letter-spacing:.1em;
  }
  .cont .label{
    font-family:var(--display);
    font-style:italic;
    font-size:14px;
    color:var(--teal-deep);
    margin-bottom:18px;
    display:block;
  }
  .cont .desc{
    font-size:14px;
    line-height:1.9;
    color:var(--ink-soft);
  }

.form-group {
    padding: 20px;
    border-bottom: 1px dashed #9E9E9E;
    width: 80%;
    margin: 0 auto;
	display: grid;
	grid-template-columns: 40% 1fr;
}

.form-group textarea {
	width: 80%;
	height: 200px;
	
}
.form-group label {
	display: flex;
	align-items: center;
}
.form-group #name {
	width: 250px;
    height: 27px;
	
}
.form-group #email {
	width: 250px;
    height: 27px;
	
}
.form-group #tel {
	width: 250px;
    height: 27px;
	
}
.form-group #category {
	width: 450px;
    height: 27px;
	
}
.form-group #company {
	width: 350px;
    height: 27px;
	
}
span.required {
    color: #ffffff;
    margin-right: 30px;
    font-size: 0.8em;
    font-weight: 800;
    background-color: #ff6e00;
    padding: 5px 8px 5px 8px;
    align-items: center;
    display: ruby-text;
}
button.sosin {
    width: 15%;
    height: 50px;
}
p.sosinlayout {
    text-align: center;
}
.thanks-box {
    text-align: center;
}


/* ============= NEWS ============= */
/*test news ditile*/
.news_dit{
}
.news_dit .news-bar__date {
    flex: 0 0 auto;
    font-size: 13px;
    opacity: 0.75;
    text-align: center;
    width: 25%;
    color: #ffffff;
    background-color: #000000;
    padding: 5px 8px 5px 8PX;
}

.news_dit .news-bar__label {
  flex: 0 0 auto;
  font-weight: 600;
  letter-spacing: 0.08em;
}
.news_dit .news-bar .news-bar__title {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.news_dit .news-bar__item a {
    display: grid;
    align-items: center;
    gap: 10px;
    width: 100%;
    color: inherit;
    text-decoration: none;
    margin-bottom: 20px;
}
.news_dit .news-bar__list {
  position: relative;
  margin: 0;
  padding: 0;
  list-style: none;
  height: 100%;
}

/*test newslist*/
.news_index{
	width: 70%;
	margin: 0 auto;
}
@media (max-width:768px){
.news_index{
	width: 100%;
	margin: 0 auto;
}
}
.news_index .news-bar__date {
    flex: 0 0 auto;
    font-size: 13px;
    opacity: 0.75;
    color: #ffffff;
    background-color: #000000;
    padding: 5px 8px 5px 8PX;
}

.news_index .news-bar__label {
  flex: 0 0 auto;
  font-weight: 600;
  letter-spacing: 0.08em;
}
.news_index .news-bar .news-bar__title {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.news_index .news-bar__item a {
  display: flex;
  align-items: center;
  gap: 16px;
  width: 100%;
  color: inherit;
  text-decoration: none;
  margin-bottom: 20px;
}
@media (max-width:768px){
.news_index .news-bar__item a {
    flex-wrap: wrap;
    align-content: stretch;
    justify-content: center;
    align-items: flex-start;
    flex-direction: column;
}}
.news_index .news-bar__list {
  position: relative;
  margin: 0;
  padding: 0;
  list-style: none;
  height: 100%;
}


/*.news_index .news-bar__viewport {
  position: none;
  overflow: hidden;
  height: none;
  width: 100%;
  flex: none;
}*/

/*test */



  .news{
    background:var(--paper);
    position:relative;
    overflow:hidden;
  }
  .news::before{
    content:'';
    position:absolute;
    bottom:-200px; right:-100px;
    width:500px; height:500px;
    background:radial-gradient(circle, rgba(255,182,39,.12) 0%, transparent 70%);
    pointer-events:none;
  }
  .news-grid{
    display:grid;
    grid-template-columns:1fr 3fr;
    gap:80px;
    align-items:start;
    position:relative;
    z-index:2;
  }
  .news-wap{
    border-radius:16px;
    padding: 20px;
    background:#fff;
    border:1px solid var(--line);
    overflow:hidden;
    box-shadow:0 4px 20px rgba(0,0,0,.04);
  }
  .news-row{
    display:grid;
    grid-template-columns:200px 1fr;
    gap:30px;
    padding:22px 32px;
    border-bottom:1px solid var(--line);
    align-items:start;
    transition:background .3s;
  }
  .news-row:last-child{ border-bottom:none;}
  .news-row:hover{ background:rgba(0,175,176,.03);}
  .news-row dt{
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:.2em;
    text-transform:uppercase;
    color:var(--teal-deep);
    padding-top:4px;
    font-weight:600;
  }
  .news-row dd{
    font-size:14.5px;
    line-height:1.8;
    color:var(--ink-soft);
  }
  .news-row dd .strong{
    font-weight:700;
    color:var(--ink);
  }
  .news-row dd .en{
    font-family:var(--display);
    font-style:italic;
    color:var(--muted);
    margin-left:8px;
    font-size:13px;
  }
  .news-row dd .pct{
    color:var(--teal-deep);
    font-family:var(--mono);
    font-weight:600;
    margin-left:6px;
  }

  .name-origin{
    background:linear-gradient(135deg, var(--teal-glow) 0%, rgba(255,182,39,.12) 100%);
    padding:30px;
    border-radius:16px;
    margin-top:30px;
    border:1px solid rgba(0,175,176,.15);
  }
  .name-origin .label{
    font-family:var(--mono);
    font-size:10px;
    letter-spacing:.25em;
    text-transform:uppercase;
    color:var(--teal-deep);
    margin-bottom:12px;
    font-weight:600;
  }
  .name-origin .formula{
    font-family:var(--display);
    font-size: clamp(5px, 4.5vw, 65px);
    font-style:italic;
    color:var(--ink);
    margin-bottom:10px;
    line-height:1.4;
  }
  .name-origin .formula .plus{ color:var(--teal); margin:0 8px;}
  .name-origin p{
    font-size:13px;
    color:var(--ink-soft);
    line-height:1.8;
  }

.news-wap h3{
	font-size: 1.5em;
	margin-bottom: 30px;
	
}
.new_listbox{
	font-size: 1.0em;
}
.new_listbox:last-child{
	border-bottom: 1px dashed #BEBEBE;
	
}
.news_index .new_listbox {
    font-size: 1.3em;
    display: grid;
    grid-template-columns: 15% 1fr;
}
.new_listbox p {
    margin-bottom: 10px;
}

.news-wap p{
	margin-bottom: 20px;
	
}
.news-wap img{
	width: 100%;
	
}

.news-wap p a {
    font-weight: 600;
    color: #000;
}
.new_listbox a{
	text-decoration: none;
	color: #303030;
	font-size: 0.8em;

}
.new_listbox span {
    background-color: #00A0A8;
	padding: 5px;
	color: #fff;
	font-size: 0.7em;
}
.news-wap.reveal.in span{
    background-color: #eaeaea;
    padding: 5px;
    font-size: 0.8em;
    font-weight: 600;
    margin-bottom: 20px;
}
.news_indexlink {
    padding: 12px 24px !important;
    border: none !important;
    background: var(--grad-teal);
    color: #fff !important;
    transition: all .3s !important;
    box-shadow: 0 6px 16px rgba(0, 175, 176, .25);
    border-radius: 100px;
    text-align: center;
    margin: 30px 0 0 0;
}
.news_indexlink a {
    text-decoration: none;
    color: #fff;
    font-family: var(--mono);
    font-size: 12px;
    letter-spacing: .15em;
    text-transform: uppercase;
    font-weight: 500;
    position: relative;
    padding: 8px 0;
    transition: color .3s;
}


/*トップ新着情報*/

/*top news JS　縦自動スクロール　ver*/

.news_listbtm {
    text-align: center;
}
.news_listbtm a {
    width: 250px;
    background-color: #ffff;
    padding: 5px;
    display: block;
    font-size: 0.8em;
    border-radius: 50px;
    margin: 10px auto;
	color: #000;
    text-decoration: none;
    border: 1px solid transparent;
    transition: background-color 0.8s ease, color 0.8s ease;
	border: 1px solid #919191;
}
.news_listbtm a:hover {
	background-color: #8f8f8f;
    color: #ffffff;
	
}
.news-bar {
  display: flex;
  /*align-items: center;*/
  justify-content: center;
  width: 100%;
  height: 130px;
  text-align: center;
}

.news-bar .news-bar__date {
    flex: 0 0 auto;
    font-size: 13px;
    opacity: 0.75;
    color: #000;
    background-color: #fff;
    padding: 5px 8px 5px 8PX;
}

.news-bar .news-bar__label {
  flex: 0 0 auto;
  font-weight: 600;
  letter-spacing: 0.08em;
}

.news-bar .news-bar__viewport {
  position: relative;
  /*overflow: hidden;*/
  height: 32px;
  /*width: min(720px, 100%);*/
  /*flex: 0 1 720px;*/
}

.news-bar .news-bar__list {
  gap:80px;
  /*display: grid;
  grid-template-columns: 1fr 1fr;*/
}

.news-bar .news-bar__item {
  display: flex;
}

.news-bar .news-bar__item.is-active {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
	margin-bottom: 10px;
}

.news-bar .news-bar__item.is-leave {
  opacity: 0;
  transform: translateY(-100%);
}

.news-bar .news-bar__item a {
  display: flex;
  align-items: center;
  gap: 16px;
  width: 100%;
  color: inherit;
  text-decoration: none;
}
.news-bar .news-bar__item,
.news-bar .news-bar__item a {
  /*justify-content: center;*/
  text-align: center;
}
.news-bar .news-bar__date {
    flex: 0 0 auto;
    font-size: 14px;
    opacity: 0.75;
    background-color: #000;
    color: #fff;
    padding: 5px;
}

.news-bar .news-bar__title {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

/* スマホ調整 */
@media (max-width: 768px) {
.news-bar .news-bar {
    gap: 12px;
  }

.news-bar .news-bar__viewport {
    height: 44px;
  }

.news-bar .news-bar__item a {
    align-items: flex-start;
    flex-direction: column;
    gap: 2px;
  }

.news-bar .news-bar__title {
    max-width: 100%;
  }
}

/*newslist*/

/*top news JS　縦自動スクロール ver end*/

/*.news-bar {
	
	
}
.news-bar .new_listbox {
    display: grid;
    width: 68%;
    margin: 10px auto 10px;
    grid-template-columns: 8% 1fr;
}

.news-bar .new_listbox a {
	color: #fff;
	
}
.news-bar .new_listbox:last-child{
	border-bottom: none;
	
}
*/
/*animation

.news-bar {
  overflow: hidden;
  white-space: nowrap;
  position: relative;
  width: 100%;
}

.news-bar-inner2 {
  display: inline-flex;
  align-items: center;
  gap: 40px;
  white-space: nowrap;
  animation: news-marquee 35s linear infinite;
}

.news-bar:hover .news-bar-inner2 {
  animation-play-state: paused;
}

@keyframes news-marquee {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}*/

/*top news JS　縦自動スクロール　ver*/
/*
.news_listbtm {
    text-align: center;
}
.news_listbtm a {
    width: 250px;
    background-color: #ffff;
    padding: 5px;
    display: block;
    font-size: 0.8em;
    border-radius: 50px;
    margin: 10px auto;
	color: #000;
    text-decoration: none;
    border: 1px solid transparent;
    transition: background-color 0.8s ease, color 0.8s ease;
	border: 1px solid #919191;
}
.news_listbtm a:hover {
	background-color: #8f8f8f;
    color: #ffffff;
	
}
.news-bar {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  text-align: center;
}

.news-bar .news-bar__date {
    flex: 0 0 auto;
    font-size: 13px;
    opacity: 0.75;
    color: #000;
    background-color: #fff;
    padding: 5px 8px 5px 8PX;
}

.news-bar .news-bar__label {
  flex: 0 0 auto;
  font-weight: 600;
  letter-spacing: 0.08em;
}

.news-bar .news-bar__viewport {
  position: relative;
  overflow: hidden;
  height: 32px;
  width: min(720px, 100%);
  flex: 0 1 720px;
}

.news-bar .news-bar__list {
  position: relative;
  margin: 0;
  padding: 0;
  list-style: none;
  height: 100%;
}

.news-bar .news-bar__item {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  opacity: 0;
  transform: translateY(100%);
  transition:
    opacity 0.6s ease,
    transform 0.6s ease;
  pointer-events: none;
}

.news-bar .news-bar__item.is-active {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.news-bar .news-bar__item.is-leave {
  opacity: 0;
  transform: translateY(-100%);
}

.news-bar .news-bar__item a {
  display: flex;
  align-items: center;
  gap: 16px;
  width: 100%;
  color: inherit;
  text-decoration: none;
}
.news-bar .news-bar__item,
.news-bar .news-bar__item a {
  justify-content: center;
  text-align: center;
}
.news-bar .news-bar__date {
    flex: 0 0 auto;
    font-size: 14px;
    opacity: 0.75;
    background-color: #000;
    color: #fff;
    padding: 5px;
}

.news-bar .news-bar__title {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

/* スマホ調整 
@media (max-width: 768px) {
.news-bar .news-bar {
    gap: 12px;
  }

.news-bar .news-bar__viewport {
    height: 44px;
  }

.news-bar .news-bar__item a {
    align-items: flex-start;
    flex-direction: column;
    gap: 2px;
  }

.news-bar .news-bar__title {
    max-width: 100%;
  }
}
*/
/*newslist*/

/*top news JS　縦自動スクロール ver end*/

/*animation end*/

/* ============= Recruitment ============= */
.graduate_box {
    text-align: center;
}
p.graduate_text {
    text-align: center;
    font-size: 1.1em;
    font-weight: 600;
    margin: 30px 0 30px 0;
}

  .recruitment{
    background:var(--paper);
    position:relative;
    overflow:hidden;
  }
  .recruitment-header{
    max-width:100%;
    margin-bottom:60px;
    position:relative;
    z-index:2;
  }
.graduate_text{
	
}
  .recruitment-header p{
    font-size:17px;
    color:var(--ink-soft);
    line-height:2;
    margin-top:20px;
  }

.recruitment-header p span {
    text-align: right;
    display: block;
}
  .recruitment-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:24px;
    position:relative;
    z-index:2;
  }

dl.rec_rinen {
    background-color: #fff;
    padding: 40px;
    width: 90%;
    margin: 30px auto 30px;
}
dl.rec_rinen dt {
    border-bottom: 1px solid #000;
    margin-bottom: 20px;
    font-size: 1.8em;
}
dl.rec_rinen dd {
    margin-left: 60px;
    margin-bottom: 50px;
    font-size: 1.5em;
}

@media (max-width: 980px){
dl.rec_rinen dd {
    margin-left: 0px;
    margin-bottom: 30px;
    font-size: 1.5em;
}
dl.rec_rinen {
    padding: 10px;
	width: 100%;
}
}

p.orner_coment {
    font-size: clamp(15px, 2.5vw, 38px);
    margin-left: 50px;
}
p.orner_coment span {
    font-size: 0.6em;
    margin-top: 50px;
    display: flex;
}
dl.rec_box{
	width: 100%;
    display: grid;
    grid-template-columns: 30% 1fr;
}
@media (max-width: 768px){
dl.rec_box{
    display: grid;
    grid-template-columns:1fr;
}
dl.rec_box dl dt{
	font-weight: 600;
	background-color: #f1eecb;
}
section dl.rec_box dl dd{
    margin-left: 0px;
}
}
dl.rec_box dt {
    background-color: #E3E3E3;
    border-bottom: 1px solid #fff;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: space-evenly;
}
dl.rec_box dd{
	border-bottom: 1px solid #bcbcbc;
	padding: 15px;
}
dl.rec_box dl{
	margin-bottom: 20px;
}
dl.rec_box dl dt{
	font-weight: 600;
}
dl.rec_box dl dd{
	border-bottom: 1px dashed #BDBDBD;
	margin-left: 30px;
}

.rec_ancer {
    width: 60%;
    margin: 100px auto 100px;
}
@media (max-width: 980px){
	.rec_ancer {
    width: 80%;
}
}
#recruit_career{
	scroll-margin-top: 120px;
}
#recruit_graduate{
	scroll-margin-top: 120px;
}

/*リクルート　STEP*/
dl.rec_steplist {
    width: 65%;
    margin: 50px auto 30px;
    display: grid;
    grid-template-columns: 1fr;
}
dl.rec_steplist dt {
    background-color: #009da3;
    color: #fff;
    font-weight: 700;
    font-size: 1.4em;
    /* margin-right: 20px; */
    text-align: center;
}
dl.rec_steplist dt span {
    font-size: 1.8em;
    margin-left: 10px;
}
dl.rec_steplist dd {
    font-size: 1.9em;
    margin: 30px 0 0 0;
    color: #007f84;
    font-weight: 700;
    border-bottom: 4px solid #009da3;
}
dl.rec_steplist dd span {
    font-size: clamp(4px, 1.15vw, 20px);
    margin-left: 25px;
    font-weight: normal;
    color: #000;
}
/**/

  /* ============= FOOTER ============= */
  footer{
    background:var(--paper);
    padding:60px 40px 40px;
    border-top:1px solid var(--line);
  }
  .footer-inner{
    max-width:1320px;
    margin:0 auto;
    display:grid;
    grid-template-columns:1.5fr 1fr 1fr 1fr;
    gap:40px;
    margin-bottom:50px;
  }
  .footer-brand .brand-logo{margin-bottom:20px;}
  .footer-brand p{
    font-size:13px;
    color:var(--muted);
    line-height:1.8;
  }
  .footer-col h5{
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:.2em;
    text-transform:uppercase;
    color:var(--teal-deep);
    margin-bottom:20px;
    font-weight:700;
  }
  .footer-col ul{ list-style:none;}
  .footer-col li{ margin-bottom:10px;}
  .footer-col a, .footer-col li{
    font-size:13px;
    color:var(--ink-soft);
    text-decoration:none;
    transition:color .3s;
  }
  .footer-col a:hover{ color:var(--teal);}
  .footer-bottom{
    max-width:1320px;
    margin:0 auto;
    padding-top:30px;
    border-top:1px solid var(--line);
    display:flex;
    justify-content:space-between;
    align-items:center;
    flex-wrap:wrap;
    gap:20px;
  }
  .copyright{
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:.1em;
    color:var(--muted);
  }
  .footer-legal{
    display:flex;
    gap:24px;
  }
  .footer-legal a{
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:.1em;
    color:var(--muted);
    text-decoration:none;
  }
  .footer-legal a:hover{ color:var(--teal);}

  /* Reveal animation 
  .reveal{ opacity:0; transform:translateY(40px); transition:opacity .8s, transform .8s;}
  .reveal.in{ opacity:1; transform:translateY(0);}*/

  /* ============= RESPONSIVE ============= */
  @media (max-width: 1080px){
    .strength-grid{ grid-template-columns:repeat(2, 1fr);}
    .hero-stats{ grid-template-columns:repeat(2, 1fr); gap:20px 0;}
  }
  @media (max-width: 980px){
    .nav-links{display:none; position:fixed; top:64px; left:0; right:0; background:var(--paper); flex-direction:column; padding:30px 40px; gap:20px; border-bottom:1px solid var(--line);}
    .nav-links.open{display:flex;}
    .menu-toggle{display:block;}
    .lang-toggle{margin-left:0; align-self:flex-start;}
    nav{padding:12px 24px;}
    .container, section, .hero, .news-bar, .contact-cta, footer{padding-left:24px; padding-right:24px;}
    .hero-content{padding:100px 24px 60px;}
    section{padding:80px 0;}
    .facility{padding:80px 0;}
    .about-inner, .product .container, .facility-grid, .company-grid{grid-template-columns:1fr; gap:50px;}
    .solutions-grid{grid-template-columns:1fr; gap:20px;}
    .footer-inner{grid-template-columns:1fr 1fr; gap:40px;}
    .contact-info{grid-template-columns:1fr; gap:30px;}
    .stat{padding:0 12px;}
    .stat-num{ font-size:36px;}
    .corp-row{grid-template-columns:1fr; gap:8px; padding:18px 24px;}
    .news-bar-inner{flex-wrap:wrap; gap:14px;}
    .news-text{white-space:normal;}
    .product-floating-stat{ display:none;}
    .facility-photo-overlay h3{ font-size:24px;}
    .facility-photo-overlay{ padding:24px;}
	.news-grid {
    grid-template-columns: 1fr;
}
  }
  @media (max-width: 600px){
    .footer-inner{grid-template-columns:1fr;}
    .facility-data{grid-template-columns:1fr;}
    .strength-grid{ grid-template-columns:1fr;}
    .hero-stats{ grid-template-columns:1fr; gap:18px;}
    .stat{ padding:14px 0; border-right:none; border-bottom:1px dashed rgba(255,255,255,.18);}
    .stat:last-child{border-bottom:none;}
    h1.hero-title{font-size:36px;}
    .map-card{padding:20px;}
  }}
  /* =============SE about ============= */
/**/
  .about2{
    /*background:linear-gradient(135deg, var(--paper-warm) 0%, var(--paper-deep) 100%);*/
    position:relative;
    overflow:hidden;
    padding:120px 0;
  }
  .facility2 p{
    margin: 15px 0;
  }
  .facility2::before{
    content:'';
    position:absolute;
    top:-100px; left:-100px;
    width:400px; height:400px;
    background:radial-gradient(circle, var(--teal-glow) 0%, transparent 60%);
    pointer-events:none;
  }
  .facility2 .container{
    padding:0 40px;
  }

.hero_se{
    min-height:40vh;
    padding:0;
    position:relative;
    display:flex;
    align-items:flex-end;
    overflow:hidden;
    color:#fff;
  }
  .hero_se-image{
    position:absolute;
    inset:0;
    z-index:0;
  }
  .hero_se-image img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center 40%;
  }
  .hero_se-image::after{
    content:'';
    position:absolute;
    inset:0;
    background: linear-gradient(225deg, rgb(10 10 40 / 59%) 0%, rgb(10 30 40 / 0%) 10%, rgba(10, 30, 40, .0) 60%, rgb(8 13 13 / 26%) 63% 100%), linear-gradient(47deg, rgb(0 0 0 / 1%) 70%, rgba(10, 20, 30, .1) 100%);
}
  /*.hero_se-image::after{
    content:'';
    position:absolute;
    inset:0;
    background:
      linear-gradient(180deg, rgba(10,30,40,.5) 0%, rgba(10,30,40,.15) 35%, rgba(10,30,40,.6) 75%, rgba(10,20,30,.92) 100%),
      linear-gradient(90deg, rgba(10,20,30,.55) 0%, rgba(10,20,30,.1) 60%);
    z-index:1;
  }*/

/*リクルート用メイン　フィルター無
  .hero_se-image .filter_none::after{
    content:'';
    position:absolute;
    inset:0;
    background:
      linear-gradient(180deg, rgba(10,30,40,.5) 0%, rgba(10,30,40,.15) 35%, rgba(10,30,40,.6) 75%, rgba(10,20,30,.92) 100%),
      linear-gradient(90deg, rgba(10,20,30,.55) 0%, rgba(10,20,30,.1) 60%);
    z-index:1;
  }*/

/*---*/
  .about-inner2{
    max-width:1320px;
    margin:0 auto;
    position:relative;
    z-index:2;
    display:grid;
    grid-template-columns: 1fr;
    gap:10px;
    align-items:start;
  }
  .about-inner2 .about-lead p{
    font-size:16px;
    line-height:2;
    color:var(--ink-soft);
    margin-bottom:24px;
  }
  .about-inner2 .about-lead .strong{
    font-family:var(--display);
    font-style:italic;
    font-size:28px;
    color:var(--teal-deep);
    line-height:1.5;
    border-left:3px solid var(--teal);
    padding-left:24px;
    margin-bottom:30px;
    display:block;
  }
  .about-inner2 .vision-cards{
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 20px;
  }
@media (max-width: 768px){
  .about-inner2 .vision-cards {
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
    width: 90%;
    margin: 0 auto;
    }}
  .about-inner2 .v-card {
    background: none;
    border: none;
    border-radius: 16px;
    position: relative;
    box-shadow: none;
    overflow: hidden;
}
  .about-inner2 .v-card::before{
    content:'';
    position:absolute;
    left:0;top:0;
    width:5px; height:100%;
    background:var(--teal);
    transform:scaleY(0);
    transform-origin:top;
    transition:transform .4s;
  }
  /*.about-inner2 .v-card.solar::before{ background:var(--solar);}
  .about-inner2 .v-card.leaf::before{ background:var(--leaf);}
  .about-inner2 .v-card:hover{
    transform:translateY(-6px);
    box-shadow:0 20px 40px rgba(0,0,0,.08);
  }*/
  /*.about-inner2 .v-card:hover::before{ transform:scaleY(1); }
  .about-inner2 .v-card .num{
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:.2em;
    color:var(--muted);
    margin-bottom:14px;
    display:block;
    font-weight:500;
  }*/
  .about-inner2 .v-card .head{
    font-family:var(--display);
    font-style:italic;
    font-size:14px;
    color:var(--teal-deep);
    margin-bottom:8px;
    display:block;
  }
  .about-inner2 .v-card.solar .head{ color:var(--solar-deep);}
  .about-inner2 .v-card.leaf .head{ color:#3a8a5a;}
  .about-inner2 .v-card h3{
    font-size:22px;
    font-weight:700;
    margin-bottom:14px;
    line-height:1.4;
  }
.about-inner2 .v-card2 p {
    color: var(--ink-soft);
    font-size: 14px;
    line-height: 1.9;
    padding: 10px;
}
  .about-inner2 .v-card2 .tag{
    display:inline-block;
    margin-top:14px;
    padding:4px 12px;
    background:rgba(0,175,176,.12);
    color:var(--teal-deep);
    font-family:var(--mono);
    font-size:10px;
    letter-spacing:.15em;
    text-transform:uppercase;
    border-radius:100px;
    font-weight:600;
  }
  .about-inner2 .v-card.solar .tag{ background:rgba(255,182,39,.18); color:var(--solar-deep);}
  .about-inner2 .v-card.leaf .tag{ background:rgba(95,178,122,.18); color:#3a8a5a;}

  .about-inner2 .v-card2 h3 {
    /* border-bottom: 1px solid #000; */
    background-color: var(--teal-deep);
    color: #fff;
    padding: 5px 5px 5px 10px;
}
.v-card2 {
    border: 2px solid var(--teal-deep);
}

/*--テンプレートレイアウト--*/
.se_layout img{
	width: 100%;
	
}

.se_grid2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
	gap:20px;
}
.se_grid2_gap60 {
    display: grid;
    grid-template-columns: 1fr 1fr;
	gap:60px;
}
@media (max-width: 768px){

.se_grid2_gap60 {
    display: grid;
    grid-template-columns: 1fr;
	gap:30px;
}}
.se_grid2_4-6 {
    display: grid;
    grid-template-columns: 40% 60%;
	gap:30px;
}
.se_grid2_3-7 {
    display: grid;
    grid-template-columns: 30% 70%;
	gap:30px;
}
.se_grid2_2-8 {
    display: grid;
    grid-template-columns: 20% 80%;
	gap:30px;
}
.se_grid2_6-4 {
    display: grid;
    grid-template-columns: 60% 40%;
	gap:30px;
}
.se_grid2_7-3 {
    display: grid;
    grid-template-columns: 70% 30%;
	gap:30px;
}
.se_grid3 {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
	gap:20px;
}
.se_grid4 {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
	gap:10px;
}
.se_grid5 {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
	gap:10px;
}

/*980*/
  @media (max-width: 980px){
.se_grid2 {
    display: grid;
    grid-template-columns: 1fr;
	gap:30px;
}
.se_grid2_4-6 {
    display: grid;
    grid-template-columns: 1fr;
	gap:30px;
}
.se_grid2_3-7 {
    display: grid;
    grid-template-columns: 1fr;
	gap:30px;
}
.se_grid2_2-8 {
    display: grid;
    grid-template-columns: 1fr;
	gap:30px;
}
.se_grid2_6-4 {
    display: grid;
    grid-template-columns: 1fr;
	gap:30px;
}
.se_grid2_7-3 {
    display: grid;
    grid-template-columns: 1fr;
	gap:30px;
}
.se_grid3 {
    display: grid;
    grid-template-columns: 1fr;
	gap:20px;
}
.se_grid4 {
    display: grid;
    grid-template-columns: 1fr 1fr;
	gap:10px;
}
.se_grid5 {
    display: grid;
    grid-template-columns: 1fr 1fr;
	gap:10px;
}
}
/**/
/*--テンプレートレイアウト　end--*/



  /* Light effect overlay */
  .hero_se-glow{
    position:absolute;
    top:5%; right:8%;
    width:380px; height:380px;
    background:radial-gradient(circle, rgba(255,182,39,.35) 0%, rgba(255,107,53,.12) 40%, transparent 70%);
    z-index:1;
    pointer-events:none;
    animation:glowFloat 8s ease-in-out infinite;
  }
  @keyframes glowFloat{
    0%, 100%{ transform:scale(1) translate(0,0); opacity:.7;}
    50%{ transform:scale(1.15) translate(-20px, 20px); opacity:1;}
  }

  .hero_se-content{
    position:relative;
    z-index:5;
    max-width:1320px;
    margin:0 auto;
    width:100%;
    padding:120px 40px 80px;
  }
  .hero_se-tag{
    display:inline-flex;
    align-items:center;
    gap:12px;
    padding:8px 18px;
    background:rgba(0,175,176,.18);
    border:1px solid rgba(126,212,213,.4);
    border-radius:100px;
    margin-bottom:30px;
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:.2em;
    text-transform:uppercase;
    color:#fff;
    backdrop-filter:blur(10px);
    opacity:0;
    animation:fadeUp .8s .15s forwards;
  }
  .hero_se-tag .dot{
    width:8px;height:8px;background:var(--teal-light);border-radius:50%;
    box-shadow:0 0 0 0 rgba(126,212,213,.7);
    animation:pulseRing 2s infinite;
  }
  @keyframes pulseRing{
    0%{box-shadow:0 0 0 0 rgba(126,212,213,.7);}
    70%{box-shadow:0 0 0 12px rgba(126,212,213,0);}
    100%{box-shadow:0 0 0 0 rgba(126,212,213,0);}
  }
  h1.hero_se-title{
    font-family:var(--jp);
    font-weight:600;
    font-size:clamp(40px, 7vw, 92px);
    line-height:1.18;
    letter-spacing:-.01em;
    margin-bottom:30px;
    color:#fff;
    text-shadow:0 4px 30px rgba(0,0,0,.4);
    opacity:0;
    animation:fadeUp .8s .35s forwards;
  }
  h1.hero_se-title .accent-grad{
    background:linear-gradient(135deg, #ffd23f 0%, #ffb627 30%, #7ed4d5 70%, #00afb0 100%);
    background-size:200% auto;
    -webkit-background-clip:text;
    background-clip:text;
    -webkit-text-fill-color:transparent;
    animation:gradientFlow 6s ease infinite;
    font-family:var(--display);
    font-style:italic;
    font-weight:500;
  }
  @keyframes gradientFlow{
    0%, 100%{ background-position:0% 50%; }
    50%{ background-position:100% 50%; }
  }
  h1.hero_se-title .underline{
    position:relative;
    display:inline-block;
  }
  h1.hero_se-title .underline::after{
    content:'';
    position:absolute;
    left:0; bottom:6px;
    width:100%; height:14px;
    background:rgba(255,182,39,.55);
    z-index:-1;
    border-radius:4px;
  }
  .hero_se-lead{
    max-width:680px;
    font-size:17px;
    line-height:2;
    color:rgba(255,255,255,.92);
    margin-bottom:40px;
    text-shadow:0 2px 10px rgba(0,0,0,.3);
    opacity:0;
    animation:fadeUp .8s .55s forwards;
  }
  .hero_se-lead strong{
    color:var(--teal-light);
    font-weight:600;
  }
  .hero_se-actions{
    display:flex;
    gap:18px;
    flex-wrap:wrap;
    margin-bottom:60px;
    opacity:0;
    animation:fadeUp .8s .75s forwards;
  }
  .btn{
    display:inline-flex;
    align-items:center;
    gap:14px;
    padding:18px 32px;
    text-decoration:none;
    font-family:var(--mono);
    font-size:12px;
    letter-spacing:.2em;
    text-transform:uppercase;
    font-weight:600;
    border:none;
    transition:all .35s;
    cursor:pointer;
    border-radius:100px;
    position:relative;
    overflow:hidden;
  }
  .btn-primary{
    background:var(--grad-teal);
    color:#fff;
    box-shadow:0 10px 24px rgba(0,175,176,.4);
  }

  .btn-primary:hover{
    transform:translateY(-3px);
    box-shadow:0 16px 32px rgba(0,175,176,.55);
  }
  .btn-secondary{
    background:rgba(255,255,255,.95);
    color:var(--ink);
    border:1.5px solid rgba(255,255,255,.95);
    backdrop-filter:blur(10px);
  }
  .btn-secondary:hover{
    background:var(--solar);
    border-color:var(--solar);
    color:var(--ink);
    transform:translateY(-3px);
    box-shadow:0 12px 24px rgba(255,182,39,.5);
  }
  .btn-solar{
    background:var(--grad-solar);
    color:#fff;
    box-shadow:0 10px 24px rgba(255,107,53,.3);
  }
  .btn-solar:hover{
    transform:translateY(-3px);
    box-shadow:0 16px 32px rgba(255,107,53,.45);
  }
  .btn .arrow{
    width:22px;height:1.5px;background:currentColor;position:relative;
    transition:width .3s;
    border-radius:2px;
  }
  .btn .arrow::after{
    content:'';
    position:absolute;
    right:0; top:-3px;
    width:8px;height:8px;
    border-top:1.5px solid currentColor;
    border-right:1.5px solid currentColor;
    transform:rotate(45deg);
  }
  .btn:hover .arrow{ width:30px; }

  .hero_se-stats{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:0;
    border-top:1px solid rgba(255,255,255,.2);
    padding-top:30px;
    opacity:0;
    animation:fadeUp .8s .95s forwards;
  }
  .stat{
    padding:0 24px;
    border-right:1px dashed rgba(255,255,255,.18);
    position:relative;
  }
  .stat::before{
    content:'';
    position:absolute;
    left:0; top:-1px;
    width:34px;
    height:3px;
    background:var(--teal-light);
  }
  .stat:nth-child(2)::before{ background:var(--solar); }
  .stat:nth-child(3)::before{ background:var(--sun); }
  .stat:nth-child(4)::before{ background:var(--leaf); }
  .stat:first-child{padding-left:0;}
  .stat:last-child{border-right:none;}
  .stat-num{
    font-family:var(--display);
    font-size:46px;
    font-weight:500;
    line-height:1;
    color:#fff;
    margin-bottom:8px;
    display:flex;
    align-items:baseline;
    gap:6px;
    text-shadow:0 2px 10px rgba(0,0,0,.3);
  }
  .stat-num .unit{font-size:15px; color:rgba(255,255,255,.7); font-family:var(--mono); font-weight:400;}
  .stat-label{
    font-family:var(--mono);
    font-size:10px;
    letter-spacing:.2em;
    text-transform:uppercase;
    color:rgba(255,255,255,.7);
  }

  @keyframes fadeUp{
    from{opacity:0;transform:translateY(24px);}
    to{opacity:1;transform:translateY(0);}
  }

/*オプション*/
h4 {
    font-size: 1.3em;
    font-weight: normal;
    margin-top: 20px;
    margin-bottom: 20px;
    border-bottom: 1px solid;
    border-top: 1px solid;
    padding: 5px;
}
.tit_text{
	text-align: center;
	font-weight: 700;
	margin-top: 20px;
	margin-bottom: 20px;
}
h3.under_mark {
    font-size: clamp(1.2em, 1.6vw, 25px);
    background: linear-gradient(transparent 10%, #00afb040 100%);
	padding-left: 10px;
	margin-bottom: 50px;
	margin-top: 50px;
}
.obj_center {
    text-align: center;
    margin: 30px 0 30px 0;
}
@media (max-width: 425px){
.table_scl {
    overflow-x: auto;
}
}



/*tit design*/



.speed-heading {
  margin: 30px auto 15px;
  /*padding: 0 24px;*/
  position: relative;
}
.speed-heading {

}

.speed-label {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 22px;
    color: #009da3;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.18em;
}

.speed-label::before {
    content: "";
    width: 44px;
    height: 2px;
    background: #009da3;
    transform: skewX(-25deg);
}
.speed-heading h2 {
    margin: 0;
    color: #000000;
    font-size: clamp(35px, 6vw, 30px);
    font-weight: 900;
    line-height: 1.08;
    letter-spacing: -0.05em;
    position: relative;
}

.speed-heading h2::after {
    content: "";
    display: block;
    width: 100%;
    height: 6px;
    margin-top: 28px;
    background: linear-gradient(90deg, #009da3, transparent);
    transform: skewX(-25deg);
}

ul.pro_charalist {
    background-color: #fff;
    padding: 20px;
    /* width: 90%; */
    margin: 30px auto 30px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    list-style: none;
}
ul.pro_charalist li {
    /*border-bottom: 3px solid #009da3;
    border-left: 3px solid #009da3;*/
    margin-bottom: 20px;
    font-size: 1.1em;
	font-weight: 600;
	background-color: #ffeed1;
    padding: 5px 5px 5px 10px;
}
.tit_cap {
	font-size: 1.5em;
	font-weight: 600;
	color: #017e83;
}

.mt20{
	margin-top: 20px;
}
.mt30{
	margin-top: 30px;
}
.mt40{
	margin-top: 40px;
}
.mt50{
	margin-top: 50px;
}
.mt60{
	margin-top: 60px;
}
.mt70{
	margin-top: 70px;
}
.mt80{
	margin-top: 80px;
}
/**/

.mb20{
	margin-top: 20px;
}
.mt30{
	margin-top: 30px;
}
.mt40{
	margin-top: 40px;
}
.mt50{
	margin-top: 50px;
}
.mt60{
	margin-top: 60px;
}
.mt70{
	margin-top: 70px;
}
.mt80{
	margin-top: 80px;
}
/**/

.mb20{
	margin-bottm: 20px;
}
.mb30{
	margin-bottm: 30px;
}
.mb40{
	margin-bottm: 40px;
}
.mb50{
	margin-bottm: 50px;
}
.mb60{
	margin-bottm: 60px;
}
.mb70{
	margin-bottm: 70px;
}
.mb80{
	margin-bottm: 80px;
}
/**/
.wid50{
	width: 50%;
}
.wid60{
	width: 60%;
}
.wid70{
	width: 70%;
}
.wid80{
	width: 80%;
}
.wid100{
	width: 100%;
}
/**/
.ob_center {
    text-align: center;
    margin: 0 auto;
}
	

span.daihyo_name {
    display: block;
    text-align: right;
}



/*download page*/


.download-page {
    max-width: 920px;
    margin: 0 auto;
    padding: 60px 20px;
}

.form-section,
.thanks-section {
    background: #fff;
    padding: 48px;
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}

h1 {
    margin: 0 0 24px;
    font-size: 32px;
    line-height: 1.4;
}

.lead {
    margin-bottom: 36px;
    line-height: 1.8;
    color: #555;
}

.form-group {
    margin-bottom: 24px;
}

.form-group label {
    display: block;
    margin-bottom: 8px;
    font-weight: 700;
}

.form-group span {
    display: inline-block;
    margin-left: 6px;
    padding: 2px 6px;
    color: #fff;
    background: #d93025;
    font-size: 12px;
    border-radius: 4px;
}

input[type="text"],
input[type="email"],
input[type="tel"],
textarea {
    width: 100%;
    box-sizing: border-box;
    padding: 14px 16px;
    border: 1px solid #ccd3dd;
    border-radius: 8px;
    font-size: 16px;
}

textarea {
    resize: vertical;
}

.checkbox-list label {
    display: block;
    margin-bottom: 12px;
    font-weight: 400;
}

.checkbox-list input,
.agreement input {
    margin-right: 8px;
}

.agreement label {
    font-weight: 400;
}

.submit-button {
    width: 100%;
    padding: 18px 24px;
    border: none;
    border-radius: 8px;
    background: #003f8f;
    color: #fff;
    font-size: 18px;
    font-weight: 700;
    cursor: pointer;
}

.submit-button:hover {
    opacity: 0.85;
}

.download-list {
    margin-top: 32px;
}

.download-link {
    display: block;
    margin-bottom: 16px;
    padding: 18px 24px;
    background: #003f8f;
    color: #fff;
    text-decoration: none;
    border-radius: 8px;
    font-weight: 700;
}

.download-link:hover {
    opacity: 0.85;
}

.note {
    margin-top: 32px;
    color: #666;
    font-size: 14px;
}

@media screen and (max-width: 640px) {
    .download-page {
        padding: 32px 16px;
    }

    .form-section,
    .thanks-section {
        padding: 28px 20px;
    }

    h1 {
        font-size: 26px;
    }
}


/**/

