.tm-message-form-wrap {
  width: min(820px, 100%);
  background: #fff;
  border-radius: 28px;
  padding: clamp(22px, 4vw, 36px);
  box-shadow: 0 16px 48px rgba(17,17,17,.08);
}

.tm-message-form-wrap h2 {
  margin: 0 0 18px;
  font-size: clamp(1.8rem, 4vw, 3rem);
  line-height: 1;
  letter-spacing: -.04em;
}

.tm-message-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.tm-message-form label {
  display: grid;
  gap: 7px;
  font-weight: 800;
}

.tm-message-form input,
.tm-message-form select,
.tm-message-form textarea {
  width: 100%;
  min-height: 48px;
  border: 1px solid rgba(17,17,17,.16);
  border-radius: 14px;
  padding: 10px 13px;
  font: inherit;
  background: #fff;
}

.tm-message-full {
  grid-column: 1 / -1;
}

.tm-message-check {
  display: flex !important;
  grid-template-columns: auto 1fr;
  align-items: flex-start;
  gap: 10px;
  font-weight: 600 !important;
}

.tm-message-check input {
  width: auto;
  min-height: auto;
  margin-top: 5px;
}

.tm-message-hp {
  position: absolute;
  left: -9999px;
  opacity: 0;
  pointer-events: none;
}

.tm-message-submit {
  margin-top: 18px;
  min-height: 50px;
  border: 0;
  border-radius: 999px;
  background: #111;
  color: #fff;
  font-weight: 900;
  padding: 12px 24px;
  cursor: pointer;
}

.tm-message-notice {
  border-radius: 16px;
  padding: 14px 16px;
  margin-bottom: 18px;
  font-weight: 700;
}

.tm-message-notice--success {
  background: #eef7ee;
  border: 1px solid #8ccf8c;
}

.tm-message-notice--error {
  background: #fff0f0;
  border: 1px solid #d63638;
}

@media (max-width: 640px) {
  .tm-message-grid {
    grid-template-columns: 1fr;
  }
}


/* v1.1 speaker-page minimal request form */
.tm-speaker-request-form-wrap {
  margin-top: 48px;
}

.tm-speaker-request-for {
  margin: -8px 0 18px;
  color: rgba(17,17,17,.72);
  font-size: 1.05rem;
}

.tm-speaker-request-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.tm-speaker-request-form .tm-message-submit {
  margin-top: 20px;
}

@media (max-width: 820px) {
  .tm-speaker-request-grid {
    grid-template-columns: 1fr;
  }
}






/* v1.5: form is inserted inside tm-profile-content before speaker layout is built */
.single-talare .tm-profile-content .tm-speaker-request-form-wrap,
body.single-talare .tm-profile-content .tm-speaker-request-form-wrap {
  width: 100% !important;
  max-width: 100% !important;
  margin: 48px 0 0 0 !important;
  box-sizing: border-box !important;
}

.single-talare .tm-profile-content .tm-speaker-request-grid,
body.single-talare .tm-profile-content .tm-speaker-request-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

/* Fallback if another theme/plugin still places the form outside profile content */
.single-talare .tm-speaker-profile + .tm-speaker-request-form-wrap,
body.single-talare .tm-speaker-profile + .tm-speaker-request-form-wrap {
  width: min(780px, calc(100% - 32px)) !important;
  max-width: 780px !important;
  margin: 48px auto 0 !important;
}

@media (max-width: 820px) {
  .single-talare .tm-profile-content .tm-speaker-request-grid,
  body.single-talare .tm-profile-content .tm-speaker-request-grid {
    grid-template-columns: 1fr !important;
  }

  .single-talare .tm-speaker-profile + .tm-speaker-request-form-wrap,
  body.single-talare .tm-speaker-profile + .tm-speaker-request-form-wrap {
    width: min(100% - 24px, 780px) !important;
    margin-top: 36px !important;
  }
}


/* v1.7 compact speaker request form spacing */
.single-talare .tm-speaker-request-form-wrap,
body.single-talare .tm-speaker-request-form-wrap {
  padding-top: 24px !important;
  padding-bottom: 24px !important;
}

.single-talare .tm-speaker-request-form-wrap h2,
body.single-talare .tm-speaker-request-form-wrap h2 {
  margin: 0 0 10px !important;
  font-size: clamp(1.55rem, 3vw, 2.25rem) !important;
  line-height: 1.05 !important;
}

.single-talare .tm-speaker-request-for,
body.single-talare .tm-speaker-request-for {
  margin: 0 0 14px !important;
  line-height: 1.35 !important;
}

.single-talare .tm-speaker-request-form .tm-message-grid,
body.single-talare .tm-speaker-request-form .tm-message-grid {
  gap: 12px !important;
}

.single-talare .tm-speaker-request-form .tm-message-check,
body.single-talare .tm-speaker-request-form .tm-message-check {
  margin-top: 2px !important;
}

.single-talare .tm-speaker-request-form .tm-message-submit,
body.single-talare .tm-speaker-request-form .tm-message-submit {
  margin-top: 14px !important;
}

@media (max-width: 820px) {
  .single-talare .tm-speaker-request-form-wrap,
  body.single-talare .tm-speaker-request-form-wrap {
    padding: 20px !important;
  }
}


/* v1.8 prefilled speaker on contact form */
.tm-message-selected-speaker {
  margin: -6px 0 18px;
  padding: 12px 14px;
  border-radius: 14px;
  background: rgba(196,154,90,.12);
  color: #111;
  font-weight: 700;
}


/* v1.9 more spacing below contact form heading */
body:not(.single-talare) .tm-message-form-wrap:not(.tm-speaker-request-form-wrap) h2 {
  margin-bottom: 30px !important;
}

body:not(.single-talare) .tm-message-form-wrap:not(.tm-speaker-request-form-wrap) .tm-message-selected-speaker {
  margin-top: -12px !important;
  margin-bottom: 22px !important;
}


/* v2.0 Cloudflare Turnstile */
.tm-turnstile-wrap {
  grid-column: 1 / -1;
  margin-top: 8px;
  min-height: 65px;
}

.tm-speaker-request-form .tm-turnstile-wrap {
  margin-top: 4px;
}

@media (max-width: 640px) {
  .tm-turnstile-wrap {
    overflow-x: auto;
  }
}


/* v2.3 configurable speaker request form colors */
.single-talare .tm-speaker-request-form-wrap,
body.single-talare .tm-speaker-request-form-wrap {
  background: var(--tm-speaker-form-bg, #fff) !important;
  color: var(--tm-speaker-form-text, #111) !important;
}

.single-talare .tm-speaker-request-form-wrap h2,
.single-talare .tm-speaker-request-form-wrap label,
.single-talare .tm-speaker-request-form-wrap span,
.single-talare .tm-speaker-request-form-wrap p,
.single-talare .tm-speaker-request-form-wrap .tm-speaker-request-for,
body.single-talare .tm-speaker-request-form-wrap h2,
body.single-talare .tm-speaker-request-form-wrap label,
body.single-talare .tm-speaker-request-form-wrap span,
body.single-talare .tm-speaker-request-form-wrap p,
body.single-talare .tm-speaker-request-form-wrap .tm-speaker-request-for {
  color: var(--tm-speaker-form-text, #111) !important;
}

.single-talare .tm-speaker-request-form-wrap .tm-message-submit,
body.single-talare .tm-speaker-request-form-wrap .tm-message-submit {
  background: var(--tm-speaker-form-button, #111) !important;
  color: #fff !important;
}


/* ==========================================================================
   v2.6 premium contact page
   Meddelande-pluginet äger /kontakt/ när inställningen är aktiverad.
   ========================================================================== */

.tm-contact-page {
  width: min(1480px, calc(100% - 24px));
  margin: 0 auto;
  overflow: hidden;
}

.tm-contact-page a {
  color: inherit;
}

.tm-contact-hero {
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(360px, 1.08fr);
  min-height: 520px;
  border-bottom: 1px solid rgba(11,29,43,.08);
  background: var(--tp-contact-page-bg, var(--tp-ref-main-bg, #fffdf8));
}

.tm-contact-hero-copy {
  display: grid;
  align-content: center;
  padding: clamp(54px, 7vw, 98px) clamp(32px, 6vw, 88px);
}

.tm-contact-kicker {
  margin: 0 0 18px;
  color: var(--tp-contact-accent, var(--tp-ref-accent, #c99243));
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.tm-contact-hero h1 {
  max-width: var(--tp-hero-h1-max-width, 11.8ch);
  margin: 0 0 24px;
  color: var(--tp-hero-h1-color, var(--tp-contact-heading, var(--tp-ref-ink, #0b1d2b)));
  font-size: var(--tp-hero-h1-size, clamp(3.15rem, 5.15vw, 5.55rem));
  font-weight: var(--tp-hero-h1-weight, 650);
  line-height: var(--tp-hero-h1-line-height, .98);
  letter-spacing: var(--tp-hero-h1-letter-spacing, -.047em);
  text-wrap: balance;
}

.tm-contact-hero-text {
  max-width: 620px;
  margin: 0;
  color: var(--tp-contact-text, var(--tp-ref-ink, #0b1d2b));
  font-size: 18px;
  line-height: 1.7;
}

.tm-contact-support-line {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 26px;
}

.tm-contact-support-line span,
.tm-contact-info-icon,
.tm-contact-benefit > span {
  width: 44px;
  height: 44px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: color-mix(in srgb, var(--tp-contact-accent, var(--tp-ref-accent, #c99243)) 16%, #fff);
  color: var(--tp-contact-accent, var(--tp-ref-accent, #c99243));
}

.tm-contact-support-line svg,
.tm-contact-info-icon svg,
.tm-contact-benefit svg {
  width: 21px;
  height: 21px;
  fill: currentColor;
}

.tm-contact-support-line p {
  margin: 0;
  font-weight: 700;
  color: var(--tp-contact-text, var(--tp-ref-ink, #0b1d2b));
}

.tm-contact-hero-media {
  min-height: 520px;
  background: var(--tp-contact-soft-bg, var(--tp-ref-bg, #f7f3ec));
  overflow: hidden;
  clip-path: polygon(10% 0, 100% 0, 100% 100%, 0 100%);
}

.tm-contact-hero-media img,
.tm-contact-hero-placeholder {
  width: 100%;
  height: 100%;
  min-height: 520px;
  display: block;
  object-fit: cover;
}

.tm-contact-hero-placeholder {
  background:
    radial-gradient(circle at 78% 32%, color-mix(in srgb, var(--tp-contact-accent, var(--tp-ref-accent, #c99243)) 21%, transparent), transparent 24%),
    linear-gradient(135deg, var(--tp-contact-soft-bg, var(--tp-ref-bg, #f7f3ec)), color-mix(in srgb, var(--tp-contact-heading, var(--tp-ref-ink, #0b1d2b)) 18%, var(--tp-contact-soft-bg, var(--tp-ref-bg, #f7f3ec))));
}

.tm-contact-main-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(340px, .85fr);
  gap: 32px;
  align-items: start;
  padding: clamp(32px, 5vw, 74px) clamp(30px, 6vw, 86px);
  position: relative;
}

.tm-contact-main-grid::after {
  content: "";
  position: absolute;
  right: clamp(20px, 5vw, 70px);
  top: 17%;
  width: min(28vw, 360px);
  height: 44%;
  z-index: 0;
  background: color-mix(in srgb, var(--tp-contact-accent, var(--tp-ref-accent, #c99243)) 13%, transparent);
  border-radius: 0 0 0 80px;
  pointer-events: none;
}

.tm-contact-form-card,
.tm-contact-info-card {
  position: relative;
  z-index: 1;
  background: color-mix(in srgb, var(--tp-contact-card-bg, var(--tp-ref-card, #fff)) 95%, transparent);
  border: 1px solid rgba(11,29,43,.09);
  border-radius: 12px;
  padding: clamp(24px, 4vw, 44px);
  box-shadow: 0 18px 50px rgba(11,29,43,.08);
}

.tm-contact-form-intro {
  margin: 0 0 18px;
  color: var(--tp-contact-muted, #6b6258);
}

.tm-contact-page .tm-message-form-wrap {
  width: 100%;
  max-width: none;
  padding: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.tm-contact-page .tm-message-form-wrap h2 {
  margin: 0 0 10px;
  color: var(--tp-contact-heading, var(--tp-ref-ink, #0b1d2b));
  font-size: clamp(2rem, 3.2vw, 3.05rem);
  font-weight: 650;
  line-height: 1.02;
  letter-spacing: -.045em;
}

.tm-contact-page .tm-message-grid {
  gap: 14px 16px;
}

.tm-contact-page .tm-message-form label {
  color: var(--tp-contact-text, var(--tp-ref-ink, #0b1d2b));
  font-weight: 700;
}

.tm-contact-page .tm-message-form input,
.tm-contact-page .tm-message-form select,
.tm-contact-page .tm-message-form textarea {
  border-radius: 4px;
  border-color: rgba(11,29,43,.15);
  background: color-mix(in srgb, var(--tp-contact-card-bg, var(--tp-ref-card, #fff)) 90%, #fff);
}

.tm-contact-page .tm-message-form input:focus,
.tm-contact-page .tm-message-form select:focus,
.tm-contact-page .tm-message-form textarea:focus {
  outline: 2px solid color-mix(in srgb, var(--tp-contact-accent, var(--tp-ref-accent, #c99243)) 45%, transparent);
  outline-offset: 2px;
}

.tm-contact-page .tm-message-submit {
  min-height: 54px;
  margin-top: 18px;
  border-radius: 0;
  background: var(--tp-contact-button-bg, var(--tp-ref-deep, #102018));
  color: var(--tp-contact-button-text, #fff);
  padding: 14px 28px;
}

.tm-contact-info-card h2 {
  margin: 0 0 26px;
  color: var(--tp-contact-heading, var(--tp-ref-ink, #0b1d2b));
  font-size: clamp(1.7rem, 2.4vw, 2.4rem);
  line-height: 1.1;
  font-weight: 650;
  letter-spacing: -.035em;
}

.tm-contact-info-list {
  display: grid;
  gap: 22px;
}

.tm-contact-info-item {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
  padding-bottom: 22px;
  border-bottom: 1px solid rgba(11,29,43,.10);
}

.tm-contact-info-item strong {
  display: block;
  color: var(--tp-contact-heading, var(--tp-ref-ink, #0b1d2b));
  margin-bottom: 4px;
}

.tm-contact-info-item p {
  margin: 0;
  color: var(--tp-contact-text, var(--tp-ref-ink, #0b1d2b));
  line-height: 1.45;
}

.tm-contact-info-item small {
  display: block;
  margin-top: 4px;
  color: var(--tp-contact-muted, #6b6258);
}

.tm-contact-secondary-button {
  min-height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  width: 100%;
  margin-top: 28px;
  padding: 14px 20px;
  border: 1px solid var(--tp-contact-accent, var(--tp-ref-accent, #c99243));
  color: var(--tp-contact-heading, var(--tp-ref-ink, #0b1d2b));
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .08em;
  text-decoration: none;
}

.tm-contact-benefits {
  padding: clamp(36px, 5vw, 66px) clamp(30px, 6vw, 86px);
  background: var(--tp-contact-soft-bg, var(--tp-ref-bg, #f7f3ec));
  text-align: center;
}

.tm-contact-benefits h2 {
  max-width: 740px;
  margin: 0 auto 34px;
  color: var(--tp-contact-heading, var(--tp-ref-ink, #0b1d2b));
  font-size: clamp(2.2rem, 3.7vw, 4rem);
  font-weight: 650;
  line-height: 1.03;
  letter-spacing: -.045em;
}

.tm-contact-benefit-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 26px;
}

.tm-contact-benefit {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr);
  gap: 16px;
  text-align: left;
  padding: 10px 16px;
}

.tm-contact-benefit h3 {
  margin: 0 0 6px;
  color: var(--tp-contact-heading, var(--tp-ref-ink, #0b1d2b));
  font-size: 1.08rem;
}

.tm-contact-benefit p {
  margin: 0;
  color: var(--tp-contact-text, var(--tp-ref-ink, #0b1d2b));
  line-height: 1.55;
}

@media (max-width: 980px) {
  .tm-contact-hero,
  .tm-contact-main-grid {
    grid-template-columns: 1fr;
  }

  .tm-contact-hero-media {
    order: -1;
    min-height: 320px;
    clip-path: none;
  }

  .tm-contact-hero-media img,
  .tm-contact-hero-placeholder {
    min-height: 320px;
  }

  .tm-contact-main-grid::after {
    display: none;
  }
}

@media (max-width: 700px) {
  .tm-contact-page {
    width: calc(100% - 18px);
  }

  .tm-contact-hero-copy,
  .tm-contact-main-grid,
  .tm-contact-benefits {
    padding-left: 22px;
    padding-right: 22px;
  }

  .tm-contact-benefit-grid,
  .tm-message-grid {
    grid-template-columns: 1fr;
  }

  .tm-contact-info-item,
  .tm-contact-benefit {
    grid-template-columns: 46px minmax(0, 1fr);
  }
}


/* v2.6.1 contact hero refined to match theme better: no gradient, diagonal media crop. */




/* ==========================================================================
   v2.7.0 theme-driven contact architecture
   Pluginet tillhandahåller struktur/markup. Temat äger färger och visuell styling.
   ========================================================================== */

/* v2.7.3: clickable email in contact info card. */
.tm-contact-page .tm-contact-info-link {
    color: inherit;
    text-decoration: none;
    font-weight: inherit;
}

.tm-contact-page .tm-contact-info-link:hover,
.tm-contact-page .tm-contact-info-link:focus-visible {
    color: var(--tp-contact-accent, currentColor);
    text-decoration: underline;
    text-underline-offset: 0.18em;
}

