:root {
    --tm-cta-navy: #0F172A;
    --tm-cta-slate: #64748B;
    --tm-cta-point: #059669;
    --tm-cta-bg: #F8FAFC;
    --tm-cta-border: #E2E8F0;
    --tm-cta-surface: #FFFFFF;
    --tm-cta-ease: cubic-bezier(.4,0,.2,1);
}
.tm-home-cta {
    position: relative;
    width: 100%;
    padding: clamp(64px, 6vw, 96px) 20px;
    background: #F8FAFC;
    color: var(--tm-cta-navy);
}
.tm-home-cta__inner {
    width: min(var(--tm-cta-width, 1400px), 100%);
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(0, .92fr) minmax(460px, 1.08fr);
    gap: clamp(24px, 3.5vw, 56px);
    align-items: stretch;
    padding: clamp(26px, 3.4vw, 44px);
    border: 1px solid var(--tm-cta-border);
    border-radius: 28px;
    background: #FFFFFF;
    box-shadow: none;
}
.tm-home-cta.is-full .tm-home-cta__inner { width: 100%; }
.tm-home-cta__content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 520px;
    padding: clamp(4px, 1vw, 12px);
}
.tm-home-cta__content > p {
    margin: 0 0 12px;
    color: var(--tm-cta-point);
    font-size: 12px;
    font-weight: 850;
    letter-spacing: .16em;
    line-height: 1;
    text-transform: uppercase;
}
.tm-home-cta__content h2 {
    margin: 0;
    max-width: 660px;
    color: var(--tm-cta-navy);
    font-size: clamp(30px, 3vw, 44px);
    line-height: 1.16;
    font-weight: 850;
    letter-spacing: -.045em;
    word-break: keep-all;
}
.tm-home-cta__content > span {
    display: block;
    max-width: 660px;
    margin: 18px 0 0;
    color: #475569;
    font-size: 16px;
    line-height: 1.72;
    font-weight: 500;
    word-break: keep-all;
}
.tm-home-cta__cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 30px;
}
.tm-home-cta-card {
    min-height: 188px;
    padding: 22px;
    border: 1px solid var(--tm-cta-border);
    border-radius: 20px;
    background: #FFFFFF;
    box-shadow: none;
    transition: transform .22s var(--tm-cta-ease), border-color .22s var(--tm-cta-ease), background .22s var(--tm-cta-ease);
}
.tm-home-cta-card:hover {
    transform: translateY(-2px);
    border-color: color-mix(in srgb, var(--tm-cta-point) 28%, var(--tm-cta-border));
    background: #FCFEFD;
}
.tm-home-cta-card em {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    margin: 0 0 18px;
    border-radius: 14px;
    background: color-mix(in srgb, var(--tm-cta-point) 10%, #FFFFFF);
    border: 1px solid color-mix(in srgb, var(--tm-cta-point) 20%, var(--tm-cta-border));
    color: var(--tm-cta-point);
    font-size: 12px;
    font-style: normal;
    font-weight: 900;
}
.tm-home-cta-card small {
    display: block;
    margin: 0 0 8px;
    color: var(--tm-cta-point);
    font-size: 11px;
    font-weight: 850;
    letter-spacing: .12em;
    line-height: 1.2;
}
.tm-home-cta-card strong {
    display: block;
    margin: 0 0 9px;
    color: var(--tm-cta-navy);
    font-size: 18px;
    line-height: 1.35;
    font-weight: 850;
}
.tm-home-cta-card span {
    display: block;
    color: var(--tm-cta-slate);
    font-size: 14px;
    line-height: 1.58;
    font-weight: 500;
    word-break: keep-all;
}
.tm-home-cta-formbox {
    display: flex;
    flex-direction: column;
    min-height: 520px;
    padding: clamp(22px, 2.4vw, 32px);
    border: 1px solid var(--tm-cta-border);
    border-radius: 24px;
    background: #FFFFFF;
}
.tm-home-cta-formbox__head {
    margin-bottom: 22px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--tm-cta-border);
}
.tm-home-cta-formbox__head p {
    margin: 0 0 8px;
    color: var(--tm-cta-point);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .14em;
    line-height: 1;
}
.tm-home-cta-formbox__head strong {
    display: block;
    color: var(--tm-cta-navy);
    font-size: 24px;
    line-height: 1.28;
    font-weight: 900;
}
.tm-home-cta-formbox__head span {
    display: block;
    margin-top: 8px;
    color: var(--tm-cta-slate);
    font-size: 14px;
    line-height: 1.55;
    font-weight: 500;
}
.tm-home-cta-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}
.tm-home-cta-form label {
    display: grid;
    gap: 7px;
    color: #334155;
    font-size: 12px;
    font-weight: 850;
}
.tm-home-cta-form label.is-wide { grid-column: 1 / -1; }
.tm-home-cta-form input,
.tm-home-cta-form select,
.tm-home-cta-form textarea {
    width: 100%;
    min-height: 46px;
    padding: 11px 13px;
    border: 1px solid var(--tm-cta-border);
    border-radius: 12px;
    background: #FFFFFF;
    color: var(--tm-cta-navy);
    font-size: 14px;
    font-weight: 600;
    box-sizing: border-box;
    outline: none;
    transition: border-color .2s var(--tm-cta-ease), box-shadow .2s var(--tm-cta-ease);
}
.tm-home-cta-form textarea { resize: vertical; min-height: 126px; }
.tm-home-cta-form input:focus,
.tm-home-cta-form select:focus,
.tm-home-cta-form textarea:focus {
    border-color: var(--tm-cta-navy);
    box-shadow: 0 0 0 3px rgba(15,23,42,.08);
}
.tm-home-cta-submit {
    grid-column: 1 / -1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    margin-top: 4px;
    border: 0;
    border-radius: 999px;
    background: var(--tm-cta-point);
    color: #FFFFFF;
    font-size: 15px;
    font-weight: 900;
    cursor: pointer;
    transition: transform .22s var(--tm-cta-ease), background .22s var(--tm-cta-ease);
}
.tm-home-cta-submit:hover { transform: translateY(-2px); background: #047857; }
.tm-home-cta-submit[disabled] { opacity: .55; cursor: wait; transform: none; }
.tm-home-cta-form__status {
    grid-column: 1 / -1;
    min-height: 20px;
    color: var(--tm-cta-slate);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.45;
}
.tm-home-cta-form__status.is-success { color: var(--tm-cta-point); }
.tm-home-cta-form__status.is-error { color: #DC2626; }
.tm-cta-builder-open {
    position: absolute !important;
    top: 22px !important;
    right: clamp(18px, 2.6vw, 36px) !important;
    left: auto !important;
    z-index: 5 !important;
}
.tm-cta-builder { position: fixed; inset: 0; z-index: 10000; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .25s var(--tm-cta-ease), visibility .25s var(--tm-cta-ease); }
.tm-cta-builder.is-open { opacity: 1; visibility: visible; pointer-events: auto; }
.tm-cta-builder__backdrop { position: absolute; inset: 0; background: rgba(15,23,42,.42); }
.tm-cta-builder__panel { position: absolute; top: 0; right: 0; width: min(760px, calc(100vw - 24px)); height: 100%; display: flex; flex-direction: column; background: #FFFFFF; box-shadow: -18px 0 60px rgba(15,23,42,.18); }
.tm-cta-builder__head, .tm-cta-builder__foot { flex: 0 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 24px; border-bottom: 1px solid var(--tm-cta-border); }
.tm-cta-builder__foot { border-top: 1px solid var(--tm-cta-border); border-bottom: 0; justify-content: flex-end; }
.tm-cta-builder__head p { margin: 0 0 6px; color: var(--tm-cta-point); font-size: 11px; font-weight: 900; letter-spacing: .16em; }
.tm-cta-builder__head h2 { margin: 0; color: var(--tm-cta-navy); font-size: 22px; font-weight: 900; }
.tm-cta-builder__close { position: relative; width: 42px; height: 42px; border: 1px solid var(--tm-cta-border); border-radius: 999px; background: #FFFFFF; cursor: pointer; }
.tm-cta-builder__close::before, .tm-cta-builder__close::after { content:""; position:absolute; left:50%; top:50%; width:19px; height:2px; margin:-1px 0 0 -9.5px; background:var(--tm-cta-navy); border-radius:999px; }
.tm-cta-builder__close::before { transform: rotate(45deg); }
.tm-cta-builder__close::after { transform: rotate(-45deg); }
.tm-cta-builder__body { flex: 1 1 auto; overflow: auto; padding: 20px 24px 28px; background: #F8FAFC; }
.tm-cta-builder__card { padding: 18px; border: 1px solid var(--tm-cta-border); border-radius: 16px; background: #FFFFFF; }
.tm-cta-builder__card + .tm-cta-builder__card { margin-top: 14px; }
.tm-cta-builder__grid2, .tm-cta-builder__settings, .tm-cta-builder-item__fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.tm-cta-builder__full { grid-column: 1 / -1; }
.tm-cta-builder label { display: grid; gap: 7px; color: #334155; font-size: 12px; font-weight: 800; }
.tm-cta-builder input[type="text"], .tm-cta-builder select, .tm-cta-builder textarea { width: 100%; min-height: 42px; padding: 10px 12px; border: 1px solid var(--tm-cta-border); border-radius: 10px; background: #FFFFFF; color: var(--tm-cta-navy); font-size: 14px; font-weight: 600; box-sizing: border-box; }
.tm-cta-builder textarea { resize: vertical; }
.tm-cta-builder__toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.tm-cta-builder__toolbar strong { color: var(--tm-cta-navy); font-size: 15px; font-weight: 900; }
.tm-cta-builder__foot button { min-height: 38px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--tm-cta-border); background: #FFFFFF; color: var(--tm-cta-navy); font-size: 13px; font-weight: 850; cursor: pointer; }
.tm-cta-builder__foot button:last-child { background: var(--tm-cta-navy); border-color: var(--tm-cta-navy); color: #FFFFFF; }
.tm-cta-builder-item { margin-top: 10px; padding: 14px; border: 1px solid var(--tm-cta-border); border-radius: 14px; background: #FFFFFF; }
.tm-cta-builder-item__actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; grid-column: 1 / -1; }
@media (max-width: 1180px) {
    .tm-home-cta__inner { grid-template-columns: 1fr; }
    .tm-home-cta__content, .tm-home-cta-formbox { min-height: auto; }
}
@media (max-width: 760px) {
    .tm-home-cta { padding: 52px 16px; }
    .tm-home-cta__inner { padding: 22px; border-radius: 22px; }
    .tm-home-cta__cards { grid-template-columns: 1fr; }
    .tm-home-cta-card { min-height: auto; }
    .tm-home-cta-form { grid-template-columns: 1fr; }
    .tm-cta-builder-open { top: 14px !important; right: 14px !important; }
    .tm-cta-builder__panel { width: 100%; }
    .tm-cta-builder__grid2, .tm-cta-builder__settings, .tm-cta-builder-item__fields { grid-template-columns: 1fr; }
}

/* Contact form polish: remove pale green number backgrounds, unify buttons */
.tm-home-cta-step__num,
.tm-home-cta-card__num,
.tm-cta-card__num,
.tm-contact-card__num,
.tm-home-cta [class*="__num"] {
    background: transparent !important;
    border-color: var(--tm-cta-border, #E2E8F0) !important;
    color: var(--tm-cta-point, #059669) !important;
}
.tm-home-cta button,
.tm-home-cta .tm-home-cta__button,
.tm-home-cta .tm-contact-submit,
.tm-home-cta a[class*="button"],
.tm-home-cta .tm-cta-submit {
    border-radius: 999px !important;
    font-weight: 850 !important;
    transition: transform .22s cubic-bezier(.4,0,.2,1), background .22s ease, border-color .22s ease, color .22s ease !important;
}
.tm-home-cta button:hover,
.tm-home-cta .tm-home-cta__button:hover,
.tm-home-cta .tm-contact-submit:hover,
.tm-home-cta a[class*="button"]:hover,
.tm-home-cta .tm-cta-submit:hover {
    transform: translateY(-2px) !important;
}
.tm-home-cta-card > em {
    background: transparent !important;
    border-color: var(--tm-cta-border, #E2E8F0) !important;
    color: var(--tm-cta-point, #059669) !important;
}

/* BUGFIX 2026-06-25: contact card number + button consistency */
.tm-home-cta-card em,
.tm-home-cta-step__num,
.tm-home-cta-card__num,
.tm-contact-card__num,
.tm-home-cta [class*="__num"] {
    background: transparent !important;
    border-color: #E2E8F0 !important;
    color: #059669 !important;
    box-shadow: none !important;
}
.tm-home-cta-submit,
.tm-home-cta-form button[type="submit"] {
    min-height: 48px !important;
    border: 1px solid #0F172A !important;
    border-radius: 999px !important;
    background: #0F172A !important;
    color: #FFFFFF !important;
    font-weight: 850 !important;
    letter-spacing: -.01em !important;
    transition: transform .22s cubic-bezier(.4,0,.2,1), background .22s cubic-bezier(.4,0,.2,1), border-color .22s cubic-bezier(.4,0,.2,1) !important;
}
.tm-home-cta-submit:hover,
.tm-home-cta-form button[type="submit"]:hover,
.tm-home-cta-submit:focus-visible,
.tm-home-cta-form button[type="submit"]:focus-visible {
    transform: translateY(-2px) !important;
    background: #059669 !important;
    border-color: #059669 !important;
}
.tm-cta-builder__settings {
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
}
@media (max-width: 760px) {
    .tm-cta-builder__settings { grid-template-columns: 1fr !important; }
}
