
/* ============================================================
   Design tokens
   ============================================================ */
:root{
  --navy:       #152a54;
  --navy-bar:   #142850;
  --gold:       #a4894c;
  --gold-num:   #c1a466;
  --gold-line:  #d8c9a8;
  --text:       #1f2b45;
  --divider:    #e3e6ec;
  --font-jp:"Noto Sans JP","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",YuGothic,Meiryo,sans-serif;
}

*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;
  font-family:var(--font-jp);
  color:var(--text);
  background:#fff;
  line-height:1.7;
}
img{display:block;max-width:100%;}
p{margin:0;}
h1{margin:0;}
ul{margin:0;padding:0;list-style:none;}

/* ============================================================
   FV
   ============================================================ */
.fv{position:relative;overflow:hidden;background:#fff;}

/* ---- 写真エリア（SP：上部に横並び表示） ---- */
.fv__photo{
  position:relative;
  width:100%;
  aspect-ratio:16/7;
  background:#e8ecf1;
		margin-top: 80px;
}
.fv__photo img{
  width:100%;height:100%;
  object-fit:cover;
  object-position:center 30%;
}
.fv__photo::after{
  content:"";
  position:absolute;
  inset:auto 0 -1px 0;
  height:26%;
  background:linear-gradient(to bottom,rgba(255,255,255,0),#fff 92%);
  pointer-events:none;
}

/* ---- 本文 ---- */
.fv__main{position:relative;}
.fv__inner{
  position:relative;
  z-index:2;
  max-width:1536px;
  margin-inline:auto;
  padding:26px 20px 26px;
}

/* 見出し */
.fv__title{
  font-weight:900;
  line-height:1.28;
  letter-spacing:.01em;
  color:var(--navy);
  font-size:clamp(25px,6.4vw,40px);
}
.fv__title span{display:block;}
.fv__title em{font-style:normal;color:var(--gold);}
.fv__title .cn{display:inline;font-size:.8em;}

.fv__lead{
  margin-top:clamp(14px,3.4vw,20px);
  font-size:clamp(13px,3.5vw,16px);
  line-height:1.9;
  font-weight:500;
  color:var(--text);
}
@media (min-width:640px){
	.fv{
		margin-bottom: 150px;
	}
}


/* 信頼ブロック */
.trust{
  margin-top:clamp(16px,4vw,24px);
  padding:clamp(12px,3.2vw,18px) 0;
  border-top:1px solid var(--gold-line);
  border-bottom:1px solid var(--gold-line);
  display:flex;
  align-items:center;
  gap:clamp(10px,2.6vw,18px);
}
.trust__mark{
  flex:none;
  width:clamp(56px,14vw,88px);
  color:var(--gold);
}
.trust__mark svg{width:100%;height:auto;}
.trust__lead{
  font-size:clamp(11.5px,3vw,15px);
  font-weight:700;
  color:var(--navy);
  line-height:1.5;
}
.trust__main{
  font-size:clamp(14px,3.9vw,20px);
  font-weight:900;
  color:var(--gold);
  line-height:1.5;
  letter-spacing:.01em;
}

/* ---- 4つの特徴パネル ---- */
.features{
  margin-top:clamp(16px,4vw,24px);
  background:#fff;
  border-radius:8px;
  box-shadow:0 1px 3px rgba(16,24,40,.07),0 10px 28px rgba(16,24,40,.08);
  display:grid;
  grid-template-columns:1fr;
  padding:clamp(8px,2vw,14px) 0;
}
.feature{
  padding:clamp(12px,3vw,16px) clamp(16px,4vw,24px);
  border-top:1px solid var(--divider);
}
.feature:first-child{border-top:0;}
.feature__head{
  display:flex;
  align-items:center;
  gap:clamp(8px,2.2vw,14px);
}
.feature__icon{
  flex:none;
  width:clamp(28px,7vw,42px);
  color:var(--navy);
}
.feature__icon svg{width:100%;height:auto;}
.feature__title{
  font-size:clamp(16px,4.4vw,22px);
  font-weight:900;
  color:var(--navy);
  line-height:1.3;
  letter-spacing:.02em;
}
.feature__title.min{
  font-size:clamp(14px,4vw,18px);
  line-height:1.1;
}
.feature__desc{
  margin-top:clamp(6px,1.8vw,12px);
  font-size:clamp(12px,3.2vw,15px);
  line-height:1.85;
  font-weight:500;
  color:var(--text);
}

/* ============================================================
   実績バー
   ============================================================ */
.stats{
  background:var(--navy-bar);
  color:#fff;
}
.stats__inner{
  max-width:1536px;
  margin-inline:auto;
  padding:clamp(20px,5vw,30px) 20px clamp(14px,3vw,18px);
}
.stats__list{
  display:grid;
  grid-template-columns:1fr;
  gap:clamp(14px,3.6vw,20px);
}
.stat{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:clamp(12px,3.2vw,22px);
  padding-top:clamp(14px,3.6vw,20px);
  border-top:1px solid rgba(255,255,255,.22);
}
.stats__list .stat:first-child{border-top:0;padding-top:0;}
.stat__icon{
  flex:none;
  width:clamp(44px,11vw,70px);
  color:#fff;
}
.stat__icon svg{width:100%;height:auto;}
.stat__label{
  font-size:clamp(13px,3.4vw,17px);
  font-weight:700;
  letter-spacing:.04em;
  line-height:1.4;
}
.stat__value{
  display:flex;
  align-items:baseline;
  gap:.12em;
  line-height:1.05;
}
.stat__num{
  font-size:clamp(30px,8vw,42px);
  font-weight:900;
  color:var(--gold-num);
  letter-spacing:.01em;
}
.stat__unit{
  font-size:clamp(14px,3.6vw,18px);
  font-weight:700;
}
.stat__unit--gold{color:var(--gold-num);font-size:clamp(18px,4.6vw,24px);}
.stats__note{
  margin-top:clamp(12px,3vw,16px);
  text-align:right;
  font-size:clamp(9.5px,2.4vw,12px);
  font-weight:500;
  color:rgba(255,255,255,.85);
  letter-spacing:.02em;
}

/* ============================================================
   >= 640px
   ============================================================ */
@media (min-width:640px){
  .features{grid-template-columns:1fr 1fr;}
  .feature{border-top:1px solid var(--divider);}
  .feature:nth-child(-n+2){border-top:0;}
  .feature:nth-child(even){border-left:1px solid var(--divider);}
  .stats__list{grid-template-columns:repeat(3,1fr);gap:0;}
  .stat{
    border-top:0;
    padding-top:0;
    border-left:1px solid rgba(255,255,255,.28);
  }
  .stats__list .stat:first-child{border-left:0;}
}

/* ============================================================
   >= 1024px : PCレイアウト
   ============================================================ */
@media (min-width:1024px){

  /* 写真を右側に敷き、左からホワイトでフェード */
  .fv__main{position:relative;}
  .fv__photo{
    position:absolute;
    inset:0 0 0 auto;
    width:58%;
    aspect-ratio:auto;
    z-index:0;
				margin-top: 0px;
  }
  .fv__photo img{object-position:50% 25%;}
  .fv__photo::after{
    inset:0;
    height:auto;
    background:linear-gradient(to right,#fff 0%,rgba(255,255,255,.92) 18%,rgba(255,255,255,.35) 45%,rgba(255,255,255,0) 72%);
  }

  .fv__inner{
    padding:clamp(30px,3.6vw,56px) clamp(24px,3vw,46px) clamp(24px,2.4vw,38px);
    min-height:min(55vw,860px);
    display:flex;
    flex-direction:column;
    justify-content:center;
  }

  .fv__title{
    font-size:clamp(30px,3.89vw,56px);
    line-height:1.3;
    max-width:64%;
				padding-top: 80px;
  }
  .fv__lead{
    margin-top:clamp(18px,2.1vw,32px);
    font-size:clamp(13px,1.37vw,21px);
    line-height:1.95;
    max-width:56%;
  }

  .trust{
    margin-top:clamp(18px,2.2vw,34px);
    padding:clamp(12px,1.5vw,23px) 0;
    max-width:55%;
    gap:clamp(12px,1.5vw,23px);
  }
  .trust__mark{width:clamp(58px,5.8vw,90px);}
  .trust__lead{font-size:clamp(12px,1.56vw,24px);}
  .trust__main{font-size:clamp(15px,1.95vw,30px);}

  .features{
    margin-top:clamp(18px,2.2vw,34px);
    max-width:88%;
    grid-template-columns:repeat(4,1fr);
    padding:clamp(12px,1.5vw,24px) 0;
  }
  .feature{
    border-top:0;
    border-left:1px solid var(--divider);
    padding:clamp(6px,.7vw,10px) clamp(14px,1.9vw,30px);
  }
  .feature:first-child{border-left:0;}
  .feature:nth-child(even){border-left:1px solid var(--divider);}
  .feature__icon{width:clamp(26px,2.6vw,40px);}
  .feature__title{font-size:clamp(16px,1.76vw,27px);}
  .feature__desc{font-size:clamp(11px,1.11vw,17px);line-height:1.9;margin-top:clamp(8px,1vw,15px);}

  .stats__inner{
    padding:clamp(22px,2.5vw,38px) clamp(24px,3vw,46px) clamp(12px,1.2vw,18px);
  }
  .stat{gap:clamp(14px,1.8vw,28px);}
  .stat__icon{width:clamp(46px,4.6vw,72px);}
  .stat__label{font-size:clamp(13px,1.43vw,22px);}
  .stat__num{font-size:clamp(28px,3.1vw,48px);}
  .stat__unit{font-size:clamp(13px,1.43vw,22px);}
  .stat__unit--gold{font-size:clamp(17px,1.85vw,28px);}
  .stats__note{font-size:clamp(10px,.85vw,13px);margin-top:clamp(10px,1.1vw,16px);}
}

@media (prefers-reduced-motion:reduce){
  *{transition:none !important;}
}

body .event-contact__title{
 margin: 0 auto;
}