/* TG common consultation CTA. Scoped to preserve existing WordPress theme styles. */
.tgcta-shell { container-type: inline-size; width: 100%; max-width: 1000px; margin: 0 auto; background: transparent; }
.p-entrance.p-service_case .casewrap.works:has(+ .tgcta-shell) { margin-bottom: 0; }
.tgcta, .tgcta * { box-sizing: border-box; }
.tgcta { --tgcta-accent: #ff6b00; --tgcta-text: #1f2d3c; --tgcta-muted: #53606b; --tgcta-border: #cfc7b6; position: relative; padding: 64px 80px; background: transparent; color: var(--tgcta-text); font-family: "ZenKakuGothicNew", "Zen Kaku Gothic New", sans-serif; font-style: normal; letter-spacing: 0; text-align: center; scroll-margin-top: 120px; }
.tgcta p, .tgcta h2, .tgcta span { margin: 0; padding: 0; font-family: inherit; letter-spacing: 0; }
.tgcta img { display: block; max-width: none; }
.tgcta-panel { display: flex; flex-direction: column; align-items: center; gap: 24px; width: 100%; padding: 36px 40px 32px; border: 1px solid var(--tgcta-border); border-radius: 8px; background: rgba(250,248,243,.86); }
.tgcta-heading { display: flex; flex-direction: column; align-items: center; gap: 16px; width: 100%; }
.tgcta .tgcta-eyebrow { display: flex; justify-content: center; align-items: center; gap: 16px; width: 100%; font-size: 16px; font-weight: 700; line-height: 24px; color: var(--tgcta-accent); }
.tgcta-eyebrow > span { flex: 1 1 0; max-width: 320px; }
.tgcta-eyebrow::before, .tgcta-eyebrow::after { content: ""; flex: 0 0 48px; height: 1px; background: var(--tgcta-accent); }
.tgcta .tgcta-title { width: 100%; font-size: 32px; font-weight: 700; line-height: 46px; color: var(--tgcta-text); }
.tgcta-title > span { display: block; }
.tgcta .tgcta-description { width: 100%; color: var(--tgcta-muted); font-size: 18px; line-height: 30px; font-weight: 400; }
.tgcta-actions { display: flex; flex-direction: column; align-items: center; gap: 12px; width: 100%; }
.tgcta .tgcta-primary { display: flex; align-items: center; justify-content: center; gap: 16px; width: 100%; max-width: 640px; padding: 20px 24px; border-radius: 4px; background: var(--tgcta-accent); color: #fff; font-size: 22px; line-height: 32px; font-weight: 700; text-decoration: none; transition: background-color .15s; }
.tgcta-primary > span:first-child { flex: 1 1 0; min-width: 0; }
.tgcta-arrow { display: block; flex: 0 0 24px; width: 24px; height: 24px; }
.tgcta-secondary { display: flex; align-items: center; justify-content: center; gap: 24px; width: 100%; }
.tgcta-secondary > a { display: flex; align-items: center; gap: 8px; padding: 8px 0; color: var(--tgcta-text); font-size: 18px; font-weight: 500; line-height: 28px; text-decoration: none; white-space: nowrap; }
.tgcta-secondary > a > span:last-child { text-decoration: underline; text-underline-offset: 3px; }
.tgcta-phone, .tgcta-line { display: block; flex: 0 0 28px; width: 28px; height: 28px; position: relative; }
.tgcta-line > img { position: absolute; left: 2.2px; top: 3.2px; }
.tgcta-line > span { position: absolute; top: 8.5px; left: 4px; width: 20px; height: 7px; font-size: 7px; font-weight: 700; line-height: 7px; color: var(--tgcta-text); }
.tgcta-separator { display: block; width: 1px; height: 24px; background: var(--tgcta-border); flex: 0 0 1px; }
.tgcta .tgcta-flow { width: 100%; padding-top: 16px; border-top: 1px solid var(--tgcta-border); font-size: 14px; line-height: 24px; color: var(--tgcta-muted); font-weight: 400; }
.tgcta .tgcta-decoration { position: absolute; left: 18px; bottom: 20px; width: 120px; height: auto; pointer-events: none; }
.tgcta .tgcta-sp-break, .tgcta .tgcta-icon-sp { display: none; }
.tgcta .tgcta-primary:hover { background: #dc5c00; opacity: 1; }
.tgcta-secondary > a:hover { color: #bd4e00; opacity: 1; }
.tgcta a:focus-visible { outline: 3px solid var(--tgcta-text); outline-offset: 4px; }
@container (max-width: 849px) {
  .tgcta { padding: 48px 20px; }
  .tgcta-panel { max-width: 540px; margin: 0 auto; padding: 28px 20px; gap: 20px; }
  .tgcta .tgcta-eyebrow { gap: 8px; font-size: 12px; line-height: 20px; }
  .tgcta-eyebrow > span { max-width: 246px; }
  .tgcta-eyebrow::before, .tgcta-eyebrow::after { flex-basis: 16px; }
  .tgcta .tgcta-title { font-size: 22px; line-height: 34px; }
  .tgcta .tgcta-description { font-size: 15px; line-height: 26px; }
  .tgcta .tgcta-primary { gap: 8px; padding: 16px 12px; font-size: 16px; line-height: 26px; }
  .tgcta-arrow { flex-basis: 20px; width: 20px; height: 20px; }
  .tgcta-secondary { gap: 16px; }
  .tgcta-secondary > a { font-size: 14px; line-height: 24px; }
  .tgcta-phone, .tgcta-line { flex-basis: 22px; width: 22px; height: 22px; }
  .tgcta-line > img { left: 1.5564px; top: 2.3429px; }
  .tgcta-line > span { left: 3px; top: 6.5px; width: 16px; height: 5.7px; font-size: 5.7px; line-height: 5.7px; }
  .tgcta-separator { height: 20px; }
  .tgcta .tgcta-flow { font-size: 12px; line-height: 22px; }
  .tgcta .tgcta-decoration { left: 8px; bottom: 12px; width: 70px; }
  .tgcta .tgcta-sp-break, .tgcta .tgcta-icon-sp { display: block; }
  .tgcta .tgcta-pc-space, .tgcta .tgcta-icon-pc { display: none; }
}
@media (max-width: 767px) {
  .tgcta-shell { width: 100vw; max-width: none; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }
}
@media (prefers-reduced-motion: reduce) { .tgcta a { transition: none; } }
