/* Pro LP specific overrides and palette
   Main color: Turquoise (trust)
   Accent: Sun yellow (CTA)
   Sub: Lime green (natural)
*/
:root{
  --pro-turquoise: #19a7a6; /* ターコイズブルー */
  --pro-yellow: #ffd24a;   /* 太陽イエロー */
  --pro-lime: #9ed56a;     /* 黄緑 */
  --pro-bg: #ffffff;
  --pro-text: #1f2933;
  --pro-caution: #ad0000; /* 赤系注意色 */
}

body.pro-lp{
  background:var(--pro-bg);
  color:var(--pro-text);
  font-family: 'Noto Sans JP', sans-serif;
  font-size: inherit;
}

/* Header */
.pro-header{
  background:transparent;
  padding:18px 0;
}

/* Hero */
.pro-hero{
  padding:0 0 56px;
}
.pro-hero__inner{
  display:flex;
  align-items:center;
  gap:32px;
}
.pro-hero__text h1{
  font-size:2rem;
  color:var(--pro-text);
  display:flex;
  align-items:center;
  gap:12px;
}
.pro-mascot{
  width:44px;
}
.pro-lead{
  margin-top:12px;
  color:rgba(31,41,51,0.85);
}

.pro-hero__cta .btn-sun{
  background:var(--pro-yellow);
  color:#111;
  border-color:var(--pro-yellow);
}
.pro-hero__cta .btn-outline{
  border:2px solid var(--pro-turquoise);
  color:var(--pro-turquoise);
  background:transparent;
}

/* Benefits */
.pro-benefits__grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
  margin-top:20px;
}
.pro-card{
  border:1px solid rgba(25,167,166,0.06);
  padding:20px;
  border-radius:10px;
  background:#fff;
  box-shadow:0 6px 18px rgba(25,167,166,0.03);
}
.pro-card__icon{
  width:48px;
  display:block;
  margin-bottom:10px;
}

/* Workflow */
.pro-steps{
  margin-top:12px;
  padding-left:18px;
}

.flow-steps {
  display:grid;
  gap:18px;
  margin-top:24px;
}

.flow-step {
  position: relative;
  padding: 24px 24px 24px 24px;
  border: 1px solid rgba(25,167,166,0.16);
  border-radius: 16px;
  background: #ffffff;
  box-shadow: 0 10px 30px rgba(31,41,51,0.06);
}

.flow-step::after {
  content: '';
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: 20px;
  height: 20px;
  background: #ffffff;
  border-left: 1px solid rgba(25,167,166,0.16);
  border-bottom: 1px solid rgba(25,167,166,0.16);
  transform: translateX(-50%) rotate(45deg);
  top: 100%;
  margin-top: -10px;
}

.flow-step--last::after {
  display: none;
}

.flow-step__label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: rgba(25,167,166,0.12);
  color: var(--pro-turquoise);
  font-weight: 800;
  font-size: 1rem;
  margin-bottom: 16px;
  text-transform: uppercase;
}

.flow-step__title {
  margin: 0 0 10px;
  font-size: 1.1rem;
  font-weight: 700;
}

.flow-step__text {
  margin: 0;
  color: rgba(31,41,51,0.82);
  line-height: 1.75;
}

@media (min-width: 900px) {
  .flow-steps {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .flow-step {
    padding: 28px 20px 36px;
  }

  .flow-step::after {
    top: calc(100% - 10px);
  }
}

@media (max-width: 900px) {
  .flow-step::after {
    left: 12%;
  }
}

@media (max-width: 700px) {
  .flow-steps {
    grid-template-columns: 1fr;
  }

  .flow-step::after {
    display: none;
  }
}

/* Contact form tweaks */
.lp-contact{
  padding:48px 0 72px;
  background:linear-gradient(180deg, #fff 0%, #fbfff9 100%);
}
.lp-form__submit-wrap .lp-form__submit{
  background:var(--pro-yellow);
  color:#111;
  border:none;
}

/* Footer */
.lp-footer{
  background:var(--pro-turquoise);
  padding:28px 0 40px;
  color:#fff;
  border-top:1px solid rgba(255,255,255,0.06);
}

/* Responsive */
@media(max-width:900px){
  .pro-hero__inner{flex-direction:column-reverse; text-align:center}
  .pro-benefits__grid{grid-template-columns:1fr}
}

/* Additional pro styles following index visual language */
.hero-section.pro-hero .hero-section__eyebrow{color:var(--pro-turquoise); font-weight:700}
.hero-section.pro-hero .hero-section__catch em{color:var(--pro-turquoise)}
.hero-section.pro-hero .hero-section__cta .btn-outline-white{border:2px solid var(--pro-turquoise); color:var(--pro-turquoise)}
.b2b-table table{width:100%; border-collapse:collapse; margin-top:18px}
.b2b-table th{background:var(--pro-turquoise); color:#fff; padding:12px; text-align:left}
.b2b-table td{border:1px solid rgba(0,0,0,0.06); padding:12px; vertical-align:top}
.area-grid{display:grid; grid-template-columns:1fr 1fr; gap:24px}
.pro-mascot{margin-left:8px}
.hero-section__character img{max-width:260px}

/* Key visual: use kv.jpg with light overlay for readability */
.hero-section.pro-hero .hero-section__content{
  background-image:url('../images/kv.jpg');
  background-size:cover;
  background-position:center;
  position:relative;
  padding:64px 0 64px;
}
.hero-section.pro-hero .hero-section__content::before{
  content:'';
  position:absolute;
  inset:0;
  background:rgba(255,255,255,0.65); /* light overlay to ensure dark text */
  pointer-events:none;
}
.hero-section.pro-hero .hero-section__inner{position:relative; z-index:2}
.hero-section.pro-hero .hero-section__text,
.hero-section.pro-hero .hero-section__text h1,
.hero-section.pro-hero .hero-section__text p,
.hero-section.pro-hero .hero-section__eyebrow{color:var(--pro-text) !important}

/* Ensure outline-white is readable */
.btn-outline-white{border:2px solid var(--pro-turquoise) !important; color:var(--pro-turquoise) !important; background:transparent !important}

/* Make cards readable on white background */
.problem-card,
.benefit-card,
.pro-card{
  background:#ffffff;
  color:var(--pro-text) !important;
  border:1px solid rgba(0,0,0,0.06);
  padding:18px;
  border-radius:10px;
}
.problem-card{box-shadow:0 6px 18px rgba(0,0,0,0.04)}

/* Table improvements */
.b2b-table table thead th{background:var(--pro-turquoise); color:#fff}

/* Make general text dark to avoid accidental white-on-white */
.pro-lp h1,.pro-lp h2,.pro-lp h3,.pro-lp p,.pro-lp li,a{color:var(--pro-text)}

/* Form field readability fixes */
.lp-form .form-group label{display:block; margin-bottom:8px; color:var(--pro-text); font-weight:600}
.lp-form input[type="text"], .lp-form input[type="tel"], .lp-form input[type="email"], .lp-form select, .lp-form textarea{
  width:100%;
  padding:10px 12px;
  border:1px solid #d1d5db; /* visible neutral border */
  border-radius:6px;
  background:#ffffff; /* keep white but with border */
  color:var(--pro-text);
  font-size:0.95rem;
}
.lp-form textarea{
  min-height:110px;
  resize:vertical;
}
.lp-form input::placeholder,
.lp-form textarea::placeholder {
  color:rgba(31,41,51,0.45);
}
.lp-form input:focus,
.lp-form textarea:focus,
.lp-form select:focus {
  outline:none;
  box-shadow:0 0 0 4px rgba(25,167,166,0.08);
  border-color:var(--pro-turquoise);
}

.file-name-display {
  margin-top: 5px;
  color: #333;
  font-size: 0.9em;
}


.form_note {
  font-size:0.85rem;
  margin-top:6px;
}

/* Make submit btn stand out on white background */
.lp-form__submit{padding:12px 18px; font-weight:700}

/* Links in contact head */
.lp-contact__head a{color:var(--pro-turquoise); font-weight:700}



/* Small screens: stack form fields */
@media(max-width:700px){
  .lp-form .form-row{display:block}
  .lp-form .form-group{width:100%}
}

.lp-form .form-single {
  width:100%;
}

.form-check-title {
  border-top:1px solid rgba(31,41,51,0.12);
  padding-top:12px;
  margin: 30px 0 20px;
  text-align:center;
  font-weight:700;
  color: var(--pro-caution);
}

/* Contact head: phone / fax / email layout */
.lp-contact__head .contact-lines{
  display:flex;
  gap:18px;
  align-items:flex-start;
  justify-content:center; /* 中央寄せして2行目も中央に揃える */
  margin-top:12px;
  margin-bottom:12px;
  flex-wrap:wrap;
}

/* Layout: phone on its own row, fax+email on the second row */
.contact-item--tel{ flex: 1 1 100%; justify-content:center; max-width:780px; }
.contact-item--sub{ flex: 0 1 300px; max-width:300px; }

/* Ensure second-row items align left within their boxes */
.contact-item--sub .contact-item__meta{ align-items:flex-start }


.contact-item{
  display:flex;
  align-items:center;
  gap:10px;
  background:transparent;
}

.contact-item__icon{
  width:22px;
  height:22px;
  display:block;
}

.contact-item__icon--tel{ width:34px; height:34px; }

.contact-item__meta{ display:flex; flex-direction:column; }
.contact-item__label{ font-size:0.85rem; color:rgba(31,41,51,0.7); }
.contact-item__value{ font-size:1rem; font-weight:700; color:var(--pro-text); }

.contact-item--tel .contact-item__value{ font-size:2rem; font-weight:900; color:var(--pro-turquoise); line-height:1.1; }
.contact-item--sub .contact-item__value{ font-size:0.95rem; font-weight:600; color:rgba(31,41,51,0.9); }

.contact-web{ margin-top:18px; }
.contact-web p{ margin:0 }

@media (max-width:700px){
  .lp-contact__head .contact-lines{ flex-direction:column; align-items:stretch; }
  .contact-item--tel, .contact-item--sub{ flex: 1 1 100%; }
  .contact-item__icon--tel{ width:28px; height:28px }
}

/* Footer text and links readability */
.lp-footer__brand-desc{color:rgba(255,255,255,0.95)}
.lp-footer__nav-list li{color:rgba(255,255,255,0.95); margin-bottom:6px}
.lp-footer__nav-list li a{color:rgba(255,255,255,0.95); text-decoration:none}
.lp-footer__nav-list li a:hover{opacity:0.88}
.lp-footer__nav-title{color:rgba(255,255,255,0.98); font-weight:700}
.lp-footer__bottom p{color:rgba(255,255,255,0.85); font-size:0.95rem}

/* Ensure all footer text is white */
.lp-footer, .lp-footer p, .lp-footer a, .lp-footer li, .lp-footer__nav-list li, .lp-footer__brand-desc {
  color: #ffffff !important;
}





/* style.css 補正 */
.hero-section__text {
    padding-top: 66px;
}
.hero-section__eyebrow {
  font-size: clamp(2rem, 3.0vw, 2.6rem);
}
@media (max-width: 600px) {
  .hero-section__eyebrow {
    font-size: 8vw;
  }
  .hero-section__sub {
    width: 60%;
    
  }
  .hero-section__character {
    display: block;
      position: absolute;
      width: 32%;
      right: 2%;
      top: 172px;
  }
}

.hero-section__catch {
    font-size: clamp(1.6rem, 2.6vw, 2.4rem);
}
.hero-badge {
    background: rgb(11 118 133);
}

.benefit-card {
    text-align: center;
    border-radius: 51px;
    background: #FFC107;
    margin-bottom: 16px;
    width: 100%;
}
.benefit-card__icon {
  margin-bottom: 1px;
}

/* --- Ten strengths icons and layout --- */
.ten-strengths {
  display: grid;
  gap: 20px;
  grid-template-columns: repeat(5, 1fr); /* PC: 5列 x 2行 */
  align-items: start;
}

.benefit-card {
  display: flex;
  flex-direction: column;
  align-items: center; /* カード内アイコン・テキストを中央揃え */
  text-align: center;
  padding: 16px 12px;
}

/* 表示順をCSSで指定：数字を上、アイコンを中、タイトルを下 */
.benefit-card__number { order: 0; font-weight: 700; margin-bottom: 6px; }
.benefit-card__icon { order: 1; }
.benefit-card__title { order: 2; }

.benefit-card__icon img {
  width: 45px;
  height: 45px;
  object-fit: contain;
  display: block;
  margin: 8px 0 10px;
}

/* Tablet: 4列 -> 自然に4,4,2の3行配置になる */
@media (max-width: 1024px) {
  .ten-strengths { grid-template-columns: repeat(4, 1fr); }
}

/* Mobile: 2列 x 5行 */
@media (max-width: 600px) {
  .ten-strengths { grid-template-columns: repeat(2, 1fr); }
}

/* カード自体をコンテナ内で中央寄せにする */
.benefit-section__grid { justify-items: center; }

/* 微調整：アイコンとテキストの間隔 */
.benefit-card__title { margin: 0; font-size: 0.98rem; }

/* End ten strengths */

/* Section subtitle emphasis for pro LP */
.section-sub-title_02,
.pro-lp .section-sub-title_02 {
  font-size: clamp(1.15rem, 2vw, 1.45rem);
  font-weight: 800;
  color: #ad0000!important;
  margin-top: 10px;
  margin-bottom: 10px;
  letter-spacing: 0.04em;
  text-decoration: underline;
  text-decoration-color: rgba(25,167,166,0.32);
  text-underline-offset: 8px;
  text-decoration-thickness: 2px;
}


/* B2B table design */
.b2b-table {
  background: linear-gradient(180deg, rgba(25,167,166,0.08), rgba(255,255,255,0.85));
  border: 1px solid rgba(25,167,166,0.12);
  padding: 32px 28px;
  border-radius: 20px;
  box-shadow: 0 20px 40px rgba(31,41,51,0.08);
  margin-top: 18px;
}

/* Scroll top button (pro LP override) */
.scroll-top-btn {
  position: fixed;
  right: 24px;
  left: auto;
  bottom: 24px;
  z-index: 1100;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--pro-turquoise) 0%, #0f7f7d 100%);
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 10px 30px rgba(25,167,166,0.18);
  cursor: pointer;
  opacity: 0;
  transform: translateY(8px) scale(0.98);
  transition: opacity 220ms ease, transform 220ms ease;
}

.scroll-top-btn.is-visible { opacity: 1; transform: translateY(0) scale(1); }

.scroll-top-btn svg { display: block; width: 20px; height: 14px; }

.scroll-top-btn:hover { filter: brightness(0.95); transform: translateY(-2px) scale(1.02); }

@media (max-width: 600px) {
  .scroll-top-btn { 
    right: 18px;
    left: auto;
    bottom: 18px;
    width: 48px;
    height: 48px;
  }
}

.b2b-table__title {
  font-size: clamp(1.15rem, 2vw, 1.4rem);
  font-weight: 800;
  color: var(--pro-text);
  margin-bottom: 26px;
  line-height: 1.25;
}

.b2b-table__title span {
  background: rgb(255 232 0 / 79%);
  color: var(--pro-text);
  padding: 6px 14px;
  border-radius: 999px;
  display: inline-block;
  margin: 0 6px;
  box-shadow: 0 10px 24px rgba(255,210,74,0.15);
}

.b2b-table__list{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  justify-items: center;
  list-style: none;
  padding: 0;
  margin: 0;
}

.b2b-table__list li{
  width: min(100%, 320px);
  min-height: 96px;
  background: #ffffff;
  padding: 18px 20px;
  border-radius: 18px;
  border: 1px solid rgba(25,167,166,0.12);
  box-shadow: 0 12px 28px rgba(25,167,166,0.08);
  font-weight: 700;
  font-size: 1.04rem;
  line-height: 1.6;
  color: var(--pro-text);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

@media (max-width: 1024px) {
  .b2b-table__list{ grid-template-columns: repeat(2, minmax(0,1fr)); }
}

@media (max-width: 600px) {
  .b2b-table__list{ grid-template-columns: 1fr; }
  .b2b-table__title{ font-size: 1.15rem; }
}
