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

html{
  font-size:62.5%;
}

body{
margin: 0;
background: #fff;
color: #333;
font-family: "Noto Sans JP", sans-serif;
line-height: 1.7;
}

img{
  display:block;
  max-width:100%;
}

a{
  text-decoration:none;
  color:inherit;
}

.sp-only,.sp-only-h1 {
  display: block;
}
@media (min-width: 1025px) {
  .sp-only-h1 {
    display: none;
  }
}
@media (min-width: 768px) {
  .sp-only {
    display: none;
  }
}

.container{
  width: min(calc(100% - 2.8rem), 80rem);
  margin-inline:auto;
}
.intro__title-en,
.section-title,
.header__comingsoon,
.footer__copyright {
font-family: Arial, sans-serif;
}

/* --------------------------------
main
-------------------------------- */
main {
margin-top: 6rem;
}
@media (min-width: 768px) {
main {
margin-top: 0;
}
}


/* --------------------------------
header
-------------------------------- */

.header{
position: relative;
  padding:24px 0;
z-index: 10;
}

.header__inner{
  width:min(100% - 36px, 1080px);
  margin:auto;

  display:flex;
  justify-content:space-between;
  align-items:center;
}

.header__logos{
display:flex;
align-items:center;
gap:40px;
}
.header__logo{
display:inline-flex;
align-items:center;
}
.header__logos img{
height:42px;
width:auto;
}
.header__logo--macnica img{
    width: 147px;
height: auto;

}
.header__logo--expo img{
    width: 132px;
height: auto;
}
.header__comingsoon{
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 146px;
    height: 43px;
    color: #fff;
    font-size: 1.4rem;
    font-weight: 700;
    background: #7F1084;
    border-radius: 6px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.25);
transition:
background-color .3s linear,
color .3s linear,
box-shadow .3s linear;
}
.header__comingsoon:hover {
color: #7F1084;
background-color: #fff;
box-shadow: 0 2px 4px rgba(0, 0, 0, .18);
}

@media (max-width: 767px){
.header__inner {}
.header__logos {
    gap: 18px;
}
.header__logo--macnica img{         width: 90px;}
.header__logo--expo img{        width: 82px;}
.header__comingsoon{
width: 117px;
        padding: 0 14px;
        font-size: 1.1rem;
}
}
/* --------------------------------
kv
-------------------------------- */
.kv {
position: relative;
width: 100%;
max-width: 100%;
z-index: 1;
}
.kv__image {
position: relative;
height: 56rem;
overflow-x: clip;
overflow-y: visible;
}
.kv__bg-wrap {
width: 100%;
height: 100%;
}
.kv__image picture {
display: block;
width: 100%;
height: 100%;
}
.kv__bg {
position:relative;
z-index:1;
display: block;
    width: 100%;
    height: 100%;
max-width: none;
object-fit: cover;
object-position:44% 23%;
transform: scale(1.23);

}

.kv__copy {
position: absolute;
z-index: 3;
top: 40%;
left: 50%;
transform: translate(-50%, -50%);
color: #fff;
width: calc(100% - 2.8rem);
letter-spacing: 8%;
text-shadow:
0 3px 4px rgba(0, 0, 0, .65),
0 6px 12px rgba(0, 0, 0, .45);
}


.kv__copy h1 {
margin: 0;
font-size: 3.6rem;
line-height: 1.05;
font-weight: 700;
white-space: nowrap;
}
.kv__copy p {
margin: 0.7rem 0 0;
font-size: 1.5rem;
font-weight: 700;
}
.ball {
position: absolute;
z-index: 2;
max-width: none;
}
.ball--01 {
left: 86%;
top: 9%;
width: clamp(9rem, 10vw, 14rem);
transform: translateX(-50%);
}
.ball--02 {
width: 9rem;
    left: 0%;
    top: 64%;
width: clamp(8rem, 10vw, 14rem);
transform: translateX(-50%);
}
.ball--03 {
width: clamp(6rem, 8vw, 10rem);
    transform: translateX(-50%);
right: 5%;
    bottom: -15%;

}

@media (min-width: 768px) {
.kv__bg {

 object-position: center 20%;
transform: none;

}
    .kv__image {
        height:min(44vw, 84.4rem);
        min-height: 65rem;
    }
.ball--01{
left: 77%;
top: 24%;
}
.ball--02{
left: 24%;
}
.ball--03{
    right: 28%;
    bottom: -6%;
}
.kv__copy{
font-size:4rem;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
  }
.kv__copy h1{
font-size:5.6rem;
font-weight: 900;
letter-spacing: 6%;
  }
.kv__copy p {
margin: 0.7rem 0 0;
font-size: 2rem;
}
}
@media (min-width: 430px) {
.kv__copy{
width: auto; }
}
@media (max-width: 380px) {
.kv__copy h1 {
white-space: unset;
}
}

/* --------------------------------
intro
-------------------------------- */

.intro{
  text-align:center;
}
.intro__lead{
    margin: 140px 0px 50px;
    font-size: 1.6rem;
    font-weight: 500;
    color: #555A68;
    letter-spacing: 16%;

}
.intro__title{
  text-align:center;
  line-height:1.2;
}

.intro__title-en{
display: block;
    font-size:3.2rem;
    color: #8c1195;
    font-weight: 400;
    line-height: 4.1rem;
    letter-spacing: 2px;

}

.intro__title-ja{
     display: block;
    font-size: 2.2rem;
    color: #333;
    letter-spacing: 5%;
    font-weight: 700;
    line-height: 5.4rem;
}

.intro__text{
margin: 50px auto 0;
    text-align: center;
    line-height: 2;
    font-size: 1.6rem;
    letter-spacing: 16%;
color:#555A68;
}
@media (min-width: 768px) {
.intro__lead{
    font-size: 2.3rem;
}
.intro__title-en{
    font-size:5.2rem;
line-height: 9.1rem;
    letter-spacing: 3.39px;
}
.intro__title-ja{
    font-size: 3rem;
 letter-spacing: 8%;
    line-height: 6.4rem;

}
}
/* --------------------------------
section
-------------------------------- */

.news,
.contact{
  padding:120px 0 0;
}

.section-title{
    font-size: 2.4rem;
    font-weight: 600;
    margin: 0 0 30px;
    letter-spacing: 1px;
text-align: center;
}
/* --------------------------------
news
-------------------------------- */
.news-item{
    border-bottom: 1px solid #6B7280;
  padding-bottom:24px;
  font-size: 1.4rem;
    color: #6B7280;
}

.news-item time{
  display:block;
  margin-bottom:10px;
    letter-spacing: 16%;
    font-weight: 600;
}

.news-item a{
  display:block;
  margin-bottom:10px;
    letter-spacing: 1px;
    font-weight: 500;
}

/* --------------------------------
contact
-------------------------------- */
.contact{
  text-align:center;
  padding-bottom:120px;
}

.contact__text{
  color:#6B7280;
  margin-bottom:40px;
  font-size:1.4rem;
    text-align: center;
    letter-spacing: 1px;
    font-weight: 400;

}

.btn-primary{
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 193px;
    height: 43px;
    color: #fff;
    font-size: 1.4rem;
    font-weight: 700;
    background: #7F1084;
    border-radius: 6px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.25);
transition:
background-color .3s linear,
color .3s linear,
box-shadow .3s linear;
}
.btn-primary:hover {
color: #7F1084;
background-color: #fff;
box-shadow: 0 2px 4px rgba(0, 0, 0, .18);
}
@media (min-width: 768px) {
.contact__text{
    text-align: left;
}
}
/* --------------------------------
SNS
-------------------------------- */
.sns{
display:block;
  padding:0 0 100px;      /* footer との間隔。デザインに合わせて調整可 */
}
.sns__list{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  justify-content:center;
  align-items:center;
  gap:38px;
}
.sns__link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

.sns__item img {
  display: block;
    width: 110px;
    height: auto;
  object-fit: contain;
}
@media (min-width: 768px) {
.sns__list{
  gap:68px;
}
}
/* --------------------------------
footer
-------------------------------- */

.footer{
  background:#505050;
  color:#fff;
  padding:34px 0;
}

.footer__inner{
  width:min(100% - 48px, 1080px);
  margin:auto;
}
.footer__top{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:28px;
}
.footer__logo{
width:170px;
  height:auto;
}

.footer__links{
  margin:0;
  display:flex;
  justify-content:center;
  gap:32px;
}

.footer__links a{
    color: #cccccc;
    font-size: 1.3rem;
    font-weight: 400;
}

.footer__copyright{
margin: 40px 0 0;
display: flex;
flex-direction: column;
align-items: center;
gap: 4px;
color: #bdbdbd;
font-size: 1.4rem;
line-height: 1.8;
}
@media (min-width: 768px) {



  .intro h2{
    font-size:5.2rem;
  }

  .section-title{
    text-align:left;
  }

  .news-item{
    display:flex;
flex-direction:column;
gap:10px;
   }

  .contact .container{
    display:grid;
    grid-template-columns:1fr auto;
    align-items:center;
  }

  .contact .section-title{
    grid-column:1 / -1;
  }


 .footer{
    padding:56px 0 40px;
  }
  .footer__top{
    flex-direction:row;
    justify-content:space-between;  /* 左ロゴ・右リンク */
    align-items:center;
    gap:0;
  }
  .footer__copyright{
    flex-direction: row;
justify-content: center;
gap: 70px;
margin-top: 48px;
  }


}
/* --------------------------------
hover
-------------------------------- */

/* ロゴ・SNS・テキストリンク */
.header__logo,
.news-item a,
.sns__link,
.footer__logo,
.footer__links a {
  transition: opacity .3s linear;
}

.header__logo:hover,
.news-item a:hover,
.sns__link:hover,
.footer__logo:hover,
.footer__links a:hover {
  opacity: .6;
}

/* ボタン */
.header__comingsoon,
.btn-primary {
  transition:
    background-color .3s linear,
    color .3s linear;
}

.header__comingsoon:hover,
.btn-primary:hover {
  background-color: #fff;
  color: #7F1084;
}
`