:root{
  --accent:#e74e3c; /* コーラル系オレンジ */
  --accent-deep:#d04434;
  --brand:#ff7a00;
  --nav:#8D9BAE;
  --navy: #454C59;
  --yellow: #F5B424;
  --orange: #F78126;
  --grey: #595959;
  --light-grey: #E3DFDE;
  --light-blue: #EDF6FF;
  --blue: #1CA0D6;
  --accent-blue: #96DBF8;
  --deep-blue: #E1F0FF;
  --cream: #FEEDCE;
}
body {
  font-family:
    "Noto Sans JP",           /* Google Fonts代替 */
    "Hiragino Kaku Gothic ProN", "Hiragino Sans",
    "kozuka-gothic-pr6n",     /* Adobe Fonts */
    "A-OTF Shin Go Pro",      /* Morisawa */
    "メイリオ", "Meiryo",      /* Windows標準 */
    sans-serif;
}
.font-exo {
  font-family:'Exo 2',sans-serif; letter-spacing:.02em;
}
/* 装飾（角丸の大きめシャドウ） */
.soft-card{ box-shadow: 0 8px 24px rgba(0,0,0,.08); }
/* 大CTAのリッチ見た目 */
.cta-pill{
  background: linear-gradient(180deg, var(--accent) 0%, var(--accent-deep) 100%);
  border-radius: 9999px;
}
.trial-btn-bg:hover{ filter: brightness(1.15); transform: translateY(-3px); }
.cta-ring{
  border: 3px solid rgba(255,255,255,.7);
  border-radius: 9999px;
}
/* 赤い見出し罫線 */
.bar-title::before{
  content:"";
  display:inline-block;
  width:.8rem;height:.8rem;
  background: var(--accent);
  border-radius: 2px;
  margin-right:.5rem;
  transform: translateY(-1px);
}
/* 小さめの点線区切り */
.dotted{ border-top: 2px dotted rgba(0,0,0,.08); }
.login-btn {
  background-color: #454C59;
}
.trial-btn {
  background-color: #D45039;
}
.round-number {
  height: 65px;
  width: 65px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 35px;
}
.highlight-text {
  display: inline-block;
  position: relative;
  font-weight: bold;
  font-size: 32px;
  background: linear-gradient(to top, #fffa7a 40%, transparent 40%);
}
.badge-wrap{
  text-align:center;
  margin-bottom: -20px;
}
.reason-badge{
  position:relative;
  display:inline-block;
  padding: 20px 20px;
  border-radius:9999px;
  background:var(--navy);
  color:#fff;
  font-weight:800;
  font-size: 30px;
}
.reason-badge::after{
  content:"";
  position:absolute;
  left:50%;
  top:100%;
  transform:translateX(-50%);
  width:0;height:0;
  border-left:20px solid transparent;
  border-right:20px solid transparent;
  border-top:15px solid var(--accent);
}
.marker{
  display:inline;
  background: linear-gradient(transparent 65%, rgba(255, 230, 0, .65) 0);
  padding: 0 .1em;
}
.marker + .marker{ display:inline-flex; margin-top:.35rem; }
.qa-accordion{
  border: 1px solid var(--navy);
  border-radius: 16px;
  background: #fff;
  box-shadow: 3px 3px 1px var(--light-blue);
  overflow: hidden;
}
.qa-trigger{
  background:rgb(247 249 253);
  border-bottom: 1px solid var(--light-blue);
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding: 1.5rem;
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--navy);
  text-align: left;
}
.qa-trigger:focus-visible{
  outline: 3px solid var(--accent);
  outline-offset: 2px;
}
.qa-trigger-icon{
  flex-shrink: 0;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 9999px;
  display: grid;
  place-items: center;
  background: var(--light-blue);
  color: var(--navy);
  transition: transform .3s ease;
}
.qa-panel{
  max-height: 0;
  overflow: hidden;
  transition: max-height .3s ease;
  border-top: 1px solid var(--light-grey);
}
.qa-panel-inner{
  padding: 1.25rem 1.5rem 1.75rem;
  line-height: 1.75;
}
.qa-accordion.is-open .qa-trigger-icon{
  transform: rotate(45deg);
}
.qa-accordion.is-open .qa-panel{
  max-height: 500px;
}
@media (max-width: 640px){
  .qa-trigger{
    padding: 1.25rem;
    font-size: 1rem;
  }
  .qa-panel-inner{
    padding: 1rem 1.25rem 1.5rem;
  }
}
@media screen and (max-width: 767px) {
  .pc {
    display: none;
  }
  .sp {
    display: block;
  }
  .logo {
    max-width: 45%;
  }
  .logo-name {
    height: 24px;
  }
  .top1 > .container {
    width: 94%;
  }
  .top1 .container .profile {
    display: none;
  }
  .top1 .container .review-icon {
    width: 15%;
  }
  .top1 .container .title {
    font-size: 7vw;
    justify-content: center;
  }
  .top1 .container .catch-phrase {
    font-size: 4.5vw;
    text-align: center;
  }
  .top1 .container .solution-box {
    text-align: center;
  }
  .top1 .container .solution {
    display: inline;
    font-size: 4vw;
  }
  .top1 .container .left {
    white-space: nowrap;
  }      
  .top1 .container .solution img {
    max-width: 40%;
    display: inline-block;
  }
  .top2 .title {
    display: flex;
    flex-direction: column;
  }
  .top2 .subtitle {
    width: 95%;
    margin: auto;
  }
  .top2 .box {
    flex-direction: column;
  }
  .top2 .items {
    width: 90%;
    padding-bottom: 20px;
    margin: auto;
  }
  .top2 .items .first {
    font-size: 1.5rem;
  }
  .top2 .main-image img {
    width: 90%;
    margin: auto;
  }
  .solutions {
    height: auto;
    margin-bottom: 30px;
  }
  .solutions .img {
    width: 90%;
    margin: auto;
  }
  .reasons {
    width: 100%;
  }
  .reason-badge {
    font-size: 4vw;
  }
  .reasons .plans {
    flex-direction: column;
    row-gap: 20px;
    padding-top: 10px;
  }
  .reasons .subtitle {
    margin: auto;
    width: 95%;
  }
  .reasons .recommended {
    width: 60%;
    margin: auto;
    min-width: 200px;;
  }
  .reasons .crown {
    justify-content: center;
    padding-left: 0px;
  }
  .price {
    width: 90%;
  }
  .price .plans {
    flex-direction: column;
    row-gap: 20px;
    padding-top: 10px;
  }
  .price .functions .title {
    font-size: 5vw;
  }
  .price .functions .content-box {
    padding: 1rem;
  }
  .price .functions .content {
    flex-direction: column;
    row-gap: 0.5rem;
  }
  .flow .title img {
    width: 85%;
  }
  .flow .steps {
    width: 95%;
    padding: 0 5px;
  }
  .voices .title {
    flex-direction: column;
  }
  .voices .subtitle .first {
    font-size: 8vw;
  }
  .voices .subtitle .second {
    font-size: 6vw;
  }
  .voices .highlight-text {
    font-size: 5.5vw;
  }
}
@media (min-width: 768px) {
  .pc {
    display: block;
  }
  .sp {
    display: none;
  }
  .logo {
    height: 35px;
  }
  .logo-name {
    height: 28px;
  }
  .top1 {
    height: 500px;
  }
  .top1 > .container {
    max-width: 1000px;
    /* width: 68%; */
  }
  .top1 .container .profile img {
    min-width: 560px;
    width: 150%;
    margin-left: -250px;
  }
  .top1 .container .solution {
    font-size: 1.2rem;
  }
  .top1 .container .solution img {
    height: 35px;
  }
  .top1 .container .title {
    font-size: 2rem;
  }
  .top1 .container .left {
    flex: 6;
    z-index: 1;
    padding-left: 50px;
    white-space: nowrap;
  }
  .top1 .container .review-icon {
    height: 100px;
  }
  .top1 .container .solution {
    min-width: 420px;
  }
  .top1 .container .list {
    padding-left: 16px;
  }
  .top1 .container .document-btn {
    padding-left: 32px;
  }
  .top2 {
    height: 550px;
  }
  .top2 .main-image {
    text-align: -webkit-right;
    padding-right: 2rem;
  }
  .top2 .items {
    min-width: 450px;
    padding-left: 2rem;
  }
  .top2 .items .text-bg {
    max-width: 380px;        
  }      
  .solutions {
    height: 550px;
  }
  .reasons {
    width: 60%;
    min-width: 750px;
  }
  .price {
    width: 55%;
  }
  .flow .title img {
    width: 550px;
  }
  .flow .steps {
    width: 50%;
    min-width: 500px;
  }
  .voices .box {
    width: 50%;
  }
}
