/*
 * LOOPIX Tier 2 override
 * 白基調を維持し、ロゴ由来の青・紫・ピンクを限定的にアクセントへ使用。
 */
:root {
  --loopix-blue: #159ce4;
  --loopix-purple: #6e35d9;
  --loopix-pink: #e83aae;
  --loopix-gradient: linear-gradient(120deg, #159ce4 0%, #6e35d9 52%, #e83aae 100%);
  --loopix-footer-bg: #16213e;
  --loopix-footer-gradient: linear-gradient(135deg, rgba(21,156,228,.86), rgba(110,53,217,.88) 58%, rgba(232,58,174,.76));
  --loopix-placeholder-bg: linear-gradient(145deg, rgba(21,156,228,.16), rgba(110,53,217,.2), rgba(232,58,174,.13));
  --color-accent: #159ce4;
  --color-accent-deep: #6e35d9;
  --color-accent-light: #e83aae;
}

.bl_logo-trust_full {
  display: block;
  width: clamp(142px, 14vw, 190px);
  height: auto;
}

.el_btn-trust__solid,
.el_btn__submit {
  border-color: transparent;
  background: var(--loopix-gradient);
}

.el_btn-trust__solid:hover,
.el_btn__submit:hover {
  filter: brightness(.92);
}

.bl_pageTitle-trust_ghost,
.bl_kvHero_eyebrow,
.bl_heading-trust_label,
.bl_features_item_num {
  color: var(--loopix-purple);
}

.bl_heading-trust_sub,
.bl_serviceCard-trust_arrow {
  color: var(--loopix-pink);
}

.bl_serviceGrid-trust.__two {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 28rem), 1fr));
}

.bl_logoMark-repeat,
.bl_footer-trust {
  background-color: var(--loopix-footer-bg);
  background-image: var(--loopix-footer-gradient);
}

.bl_logoMark-repeat_inner span {
  color: #fff;
  font-family: "Outfit", sans-serif;
  font-size: 1.65rem;
  font-weight: 700;
  letter-spacing: .08em;
  white-space: nowrap;
}

.bl_logoMark-repeat_inner img {
  object-fit: contain;
}

.bl_message_img.__placeholder {
  display: grid;
  min-height: 30rem;
  place-items: center;
  background: var(--loopix-placeholder-bg);
}

.bl_message_img.__placeholder span {
  color: var(--loopix-purple);
  font-family: "Outfit", sans-serif;
  font-size: clamp(1rem, 2vw, 1.4rem);
  font-weight: 700;
  letter-spacing: .16em;
  line-height: 1.5;
  text-align: center;
}

:focus-visible {
  outline: 3px solid var(--loopix-pink);
  outline-offset: 3px;
}

/* Contact Form 7: 標準のフォームマークアップを静的サイトのフォームデザインへ揃える */
.bl_form .wpcf7,
.bl_form .wpcf7 form {
  width: 100%;
}

.bl_form {
  max-width: 1000px;
}

.bl_form .wpcf7-form > p {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  align-items: start;
  gap: .6rem 2rem;
  margin: 0;
  padding: 1.6rem 0;
  color: var(--trust-text);
  font-family: "Noto Sans JP", "游ゴシック", "Yu Gothic", "ヒラギノ角ゴ Pro", sans-serif;
  font-weight: 700;
  line-height: 1.6;
  border-bottom: 1px solid var(--trust-borderSoft);
}

.bl_form .wpcf7-form > p > br {
  display: none;
}

.bl_form .wpcf7-form > p:has(> label > .wpcf7-form-control-wrap) {
  display: block;
}

.bl_form .wpcf7-form > p > label:has(> .wpcf7-form-control-wrap) {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  align-items: start;
  gap: .6rem 2rem;
}

.bl_form .wpcf7-form > p > label > br {
  display: none;
}

.bl_form .wpcf7-form-control-wrap {
  display: block;
  grid-column: 2;
  min-width: 0;
}

.bl_form .wpcf7 input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
.bl_form .wpcf7 select,
.bl_form .wpcf7 textarea {
  box-sizing: border-box;
  width: 100%;
  padding: .85em 1em;
  color: var(--trust-text);
  font: inherit;
  font-weight: 400;
  line-height: 1.6;
  background: var(--trust-bgSoft);
  border: 1px solid var(--trust-borderSoft);
  border-radius: 8px;
  transition: border-color .25s, background .25s, box-shadow .25s;
}

.bl_form .wpcf7 textarea {
  height: 180px;
  min-height: 180px;
  resize: vertical;
}

.bl_form .wpcf7 input:focus,
.bl_form .wpcf7 select:focus,
.bl_form .wpcf7 textarea:focus {
  background: #fff;
  border-color: var(--color-accent);
  outline: none;
  box-shadow: 0 0 0 3px rgba(21, 156, 228, .12);
}

.bl_form .wpcf7-form > p:has(.wpcf7-submit) {
  display: block;
  padding-top: 2.5rem;
  text-align: center;
  border-bottom: 0;
}

.bl_form .wpcf7-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 280px;
  padding: 1.1em 3em;
  color: #fff;
  font: 700 1.05rem/1.6 "Noto Sans JP", "游ゴシック", "Yu Gothic", "ヒラギノ角ゴ Pro", sans-serif;
  cursor: pointer;
  background: var(--loopix-gradient);
  border: 0;
  border-radius: var(--btn-radius);
  transition: filter .3s, transform .3s, box-shadow .3s;
}

.bl_form .wpcf7-submit:hover {
  filter: brightness(.92);
  transform: translateY(-2px);
  box-shadow: 0 10px 26px rgba(21, 156, 228, .3);
}

.bl_form .wpcf7-not-valid-tip,
.bl_form .wpcf7-response-output {
  color: #dc2626;
  font-weight: 500;
}

.bl_form .wpcf7-response-output {
  margin: 1.5rem 0 0;
  padding: 1rem 1.2rem;
  border: 1px solid currentColor;
  border-radius: 8px;
}

@media screen and (max-width: 479px) {
  .bl_form .wpcf7-form > p {
    grid-template-columns: 1fr;
    gap: .6rem;
  }

  .bl_form .wpcf7-form-control-wrap {
    grid-column: 1;
  }

  .bl_form .wpcf7-form > p > label:has(> .wpcf7-form-control-wrap) {
    grid-template-columns: 1fr;
    gap: .6rem;
  }

  .bl_form .wpcf7-submit {
    width: 100%;
    min-width: 0;
  }
}
