@charset "utf-8";

:root{
  --blue:#005bac;
  --deep:#004b9b;
  --light:#eaf8fb;
  --text:#111;
  --green:#06ad77;
  --sky:#1087cc;
  --purple:#8270c7;
  --orange:#f27a13;
}

*{box-sizing:border-box}
body{
  margin:0;
  color:var(--text);
  font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic","Meiryo",sans-serif;
  font-size:16px;
  line-height:1.8;
  background:#eef8fd;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.container{
  /* PC版の最大横幅を860pxに調整 */
  width:min(calc(100% - 32px),860px);
  margin-inline:auto;
}
.site-header{
  background:#fff;
  padding:18px 0 14px;
}
.header-inner{
  display:flex;
  align-items:center;
}
.brand{
  display:flex;
  align-items:center;
  gap:20px;
  font-size:23px;
  font-weight:700;
  letter-spacing:.02em;
  line-height:1.3;
}
.brand-logo{
  width:58px;
  flex:0 0 auto;
}

.hero{
  background:linear-gradient(180deg,#dcfbfc 0%,#eef8fd 100%);
}
.hero-inner{
  min-height:244px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 360px;
  gap:18px;
  align-items:center;
  position:relative;
}
.hero-copy{
  padding:22px 0 14px 4px;
}
.hero h1{
  margin:0 0 12px;
  color:var(--blue);
  font-size:28px;
  line-height:1.28;
  font-weight:800;
  letter-spacing:.03em;
}
.hero p{
  margin:0 0 22px;
  font-size:14px;
  line-height:1.6;
}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  border-radius:999px;
  font-size:15px;
  font-weight:700;
  transition:background-color .25s,color .25s,transform .15s,box-shadow .25s;
}
.btn-outline-fill{
  min-width:300px;
  padding:10px 24px;
  background:var(--blue);
  color:#fff;
  border:3px solid var(--blue);
  box-shadow:0 8px 16px rgba(0,91,172,.16);
}
.btn-outline-fill:hover{
  background:#fff;
  color:var(--blue);
  transform:translateY(2px);
  box-shadow:0 3px 8px rgba(0,91,172,.18);
}
.btn-outline-fill:active,
.answer-btn:active{transform:translateY(4px) scale(.99)}

.hero-visual{
  position:relative;
  align-self:stretch;
}
.dome{
  position:absolute;
  right:20px;
  bottom:16px;
  width:　600px;
}
.dove{
  position:absolute;
  width:66px;
  opacity:.88;
}
.dove-1{right:160px;top:70px;transform:rotate(-10deg)}
.dove-2{right:26px;top:22px;width:70px}

.content-area{
  margin-top:24px;
  margin-bottom:58px;
  padding:22px 18px 26px;
  background:#fff;
  border-radius:22px;
}
.info-box{
  padding:0 6px 50px;
  background:transparent;
  text-align:center;
}
.info-box h2{
  margin:0 0 14px;
  color:var(--blue);
  font-size:25px;
  line-height:1.3;
  letter-spacing:.03em;
}
.info-box p{
  margin:0 auto 14px;
  max-width:720px;
  font-size:12px;
  line-height:1.75;
}
.info-box .period{
  font-size:17px;
  margin-top:6px;
  margin-bottom:20px;
  line-height:1.55;
}
.info-box small{font-size:14px}
.info-box .secondary{
  background:#fff;
  color:var(--blue);
  border:3px solid var(--blue);
  min-width:430px;
}
.info-box .secondary:hover{
  background:var(--blue);
  color:#fff;
}

.questions{
  padding:0;
  background:transparent;
}
.question-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:14px;
  padding:0;
  background:transparent;
  border-radius:0;
}
.question-card{
  border-radius:14px;
  padding:16px 16px 22px;
}
.card-green{background:#f3fbf5}
.card-blue{background:#eef8fe}
.card-purple{background:#f7f4fc}
.card-orange{background:#fff8ef}
.question-head{
  display:flex;
  align-items:center;
  gap:15px;
  margin-bottom:12px;
  font-size:14px;
  line-height:1.45;
  white-space:normal;
}
.badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:56px;
  min-height:30px;
  border-radius:5px;
  color:#fff;
  font-weight:700;
  font-size:14px;
}
.badge.green,.answer-btn.green{background:var(--green)}
.badge.blue,.answer-btn.blue{background:var(--sky)}
.badge.purple,.answer-btn.purple{background:var(--purple)}
.badge.orange,.answer-btn.orange{background:var(--orange)}
.question-img{
  width:100%;
  aspect-ratio:361 / 180;
  object-fit:cover;
  margin-bottom:14px;
}
.question-card p{
  min-height:158px;
  margin:0 0 0px;
  font-size:12.5px;
  line-height:1.75;
}
.answer-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  width:170px;
  min-height:38px;
  margin:0 auto;
  border-radius:999px;
  color:#fff;
  font-size:16px;
  font-weight:700;
  transition:opacity .2s,transform .15s,box-shadow .2s;
  box-shadow:0 5px 10px rgba(0,0,0,.08);
}
.answer-btn:hover{
  opacity:.76;
  transform:translateY(2px);
  box-shadow:0 2px 5px rgba(0,0,0,.14);
}

.nonactive {
  filter: grayscale(100%);
}
.answer-btn2{
  display:flex;
  align-items:center;
  justify-content:center;
  width:170px;
  min-height:38px;
  margin:0 auto;
  border-radius:999px;
  color:#fff;
  font-size:16px;
  font-weight:700;
  box-shadow:0 5px 10px rgba(0,0,0,.08);
}
.answer-btn2.blue{background:var(--blue)}

/* 860px幅での収まりを安定させる調整 */
.brand span,.hero-copy,.question-card,.info-box{min-width:0;}
.question-head strong{min-width:0;overflow-wrap:anywhere;}

.footer{
  background:var(--blue);
  color:#fff;
  text-align:center;
  padding:31px 16px 34px;
  font-size:15px;
  letter-spacing:.01em;
}

@media (max-width:1024px){
  .container{width:min(calc(100% - 32px),860px)}
  .brand{font-size:21px;gap:14px}
  .brand-logo{width:56px}
  .hero-inner{
    grid-template-columns:minmax(0,1fr) 300px;
    min-height:244px;
  }
  .hero-copy{padding-top:22px}
  .hero h1{font-size:28px}
  .hero p{font-size:14px;line-height:1.6}
  .btn{font-size:17px}
  .btn-outline-fill{min-width:300px}
  .dome{width:300px}
  .content-area{padding:22px 18px 26px}
  .question-card{padding:16px 16px 22px}
  .question-card p{margin:0 0 14px}
  .question-head{font-size:12px;gap:8px}
}

@media (max-width:767px){
  body{font-size:15px;background:#eef8fd}
  .container{width:min(92%,520px)}
  .site-header{padding:16px 0}
  .brand{gap:12px;font-size:18px}
  .brand-logo{width:48px}
  .hero-inner{
    display:flex;
    flex-direction:column;
    min-height:auto;
    gap:0;
  }
  .hero-copy{
    padding:26px 0 10px;
    text-align:left;
  }
  .hero h1{
    font-size:30px;
    line-height:1.35;
  }
  .hero p{
    font-size:15px;
    line-height:1.75;
    margin-bottom:20px;
  }
  .pc-only{display:none}
  .btn{
    width:100%;
    min-width:0;
    min-height:52px;
    font-size:16px;
    padding:12px 18px;
  }
  .hero-visual{
    width:100%;
    min-height:185px;
  }
  .dome{
    width:100%;
    max-width:390px;
    right:50%;
    transform:translateX(50%);
    bottom:0;
  }
  .dove-1{right:56%;top:18px;width:64px}
  .dove-2{right:8%;top:0;width:72px}
  .content-area{
    margin-top:18px;
    margin-bottom:38px;
    padding:24px 18px 24px;
    border-radius:18px;
  }
  .info-box{
    padding:0 0 24px;
  }
  .info-box h2{font-size:24px}
  .info-box p{
    font-size:13px;
    text-align:left;
  }
  .info-box .period{
    text-align:center;
    font-size:16px;
  }
  .info-box .secondary{
    min-width:0;
    width:100%;
    font-size:16px;
  }
  .question-grid{
    grid-template-columns:1fr;
    gap:18px;
  }
  .question-card{
    padding:18px 18px 24px;
    border-radius:16px;
  }
  .question-head{
    flex-wrap:wrap;
    white-space:normal;
    font-size:14px;
    line-height:1.5;
  }
  .question-img{margin-bottom:16px}
  .question-card p{
    min-height:auto;
    font-size:13px;
  }
  .answer-btn{
    width:72%;
    min-height:44px;
    font-size:17px;
  }
  .footer{
    padding:24px 20px;
    font-size:14px;
  }
}
