/* Optional local email preparation; scoped to preserve the direct contact layout. */
.contact-compose-shell { margin-top: clamp(36px, 5vw, 72px); }
.contact-compose { border-top: 1px solid #faf8f34d; scroll-margin-top: 100px; }
.contact-compose > summary {
  display: flex; justify-content: space-between; align-items: center; gap: 20px;
  min-height: 72px; padding: 20px 0; cursor: pointer; list-style: none;
  font: 650 clamp(19px, 1.8vw, 24px)/1.4 var(--sans);
}
.contact-compose > summary::-webkit-details-marker { display: none; }
.contact-compose > summary small { display: block; font: 400 16px/1.5 var(--sans); margin-top: 4px; }
.compose-disclosure { flex: 0 0 auto; font: 400 32px/1 var(--sans); }
.contact-compose[open] .compose-disclosure { transform: rotate(45deg); }
.tm-v08 .contact-compose summary:hover { color: #ff6600; }
.tm-v08 .contact-compose :is(summary, a, button, input, textarea, select):focus-visible { outline: 3px solid #ff6600; outline-offset: 4px; }
.tm-v08 .compose-panel {
  padding: clamp(20px, 3.5vw, 52px); margin-top: 8px;
  background: #faf8f3; color: #292621;
  --ink: #292621; --ink-soft: #625d56; --tm-accent-text: #ff6600;
  font: 400 18px/1.6 var(--sans);
}
.tm-v08 .compose-panel p { margin: 0 0 18px; font: inherit; color: inherit; }
.tm-v08 .compose-panel .compose-intro { max-width: 70ch; margin-bottom: 36px; }
.compose-top-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 4vw, 60px); }
.compose-top-grid > * { min-width: 0; }
.tm-v08 .compose-fieldset { min-width: 0; padding: 0; margin: 0; border: 0; }
.tm-v08 .compose-fieldset legend,
.tm-v08 .compose-message-field > label { display: block; padding: 0; margin-bottom: 12px; font: 400 clamp(23px, 2vw, 30px)/1.2 var(--serif); letter-spacing: -.015em; }
.tm-v08 .compose-panel .compose-hint { font: 400 15px/1.5 var(--sans); color: #625d56; margin: 8px 0 14px; }
.tm-v08 .compose-choice { display: flex; align-items: flex-start; gap: 12px; min-height: 44px; padding: 8px 0; cursor: pointer; font: 400 17px/1.5 var(--sans); }
.compose-choice span { min-width: 0; }
.tm-v08 .compose-choice input { flex: 0 0 20px; width: 20px; height: 20px; padding: 0; margin: 3px 0 0; accent-color: #292621; }
.tm-v08 .compose-panel :is(textarea, select, input[type="tel"], input[type="time"]) {
  box-sizing: border-box; width: 100%; max-width: 100%; min-width: 0;
  border: 1px solid #888278; border-radius: 0; padding: 12px;
  background: #fffefa; color: #292621; font: 400 17px/1.5 var(--sans);
}
.tm-v08 .compose-panel textarea { display: block; resize: vertical; }
.tm-v08 .compose-panel textarea::placeholder { color: #746f67; opacity: 1; }
.tm-v08 .compose-callback { margin-top: 34px; padding-top: 30px; border-top: 1px solid #29262140; }
#callback-details { margin-top: 16px; }
.compose-phone-label { display: block; font-weight: 600; margin-bottom: 8px; }
.tm-v08 .compose-panel .compose-phone { max-width: 380px; }
.tm-v08 .compose-scheduling { margin: 28px 0 12px; }
.tm-v08 .compose-scheduling legend { font: 650 18px/1.5 var(--sans); }
.compose-day { display: grid; grid-template-columns: minmax(110px, .35fr) minmax(0, 1fr); align-items: start; gap: 12px 24px; padding: 10px 0; border-top: 1px solid #29262126; max-width: 850px; }
.compose-day__times { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 14px; }
.compose-custom-times { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; }
.compose-custom-times label { font-size: 14px; }
.tm-v08 .compose-panel input[type="time"] { padding: 10px 6px; }
.compose-preview { margin-top: 32px; padding-top: 30px; border-top: 1px solid #29262140; }
.tm-v08 .compose-preview h2 { margin: 0 0 18px; font: 400 clamp(28px, 2.8vw, 40px)/1.2 var(--serif); letter-spacing: -.02em; }
.tm-v08 .compose-recipient a { color: inherit; text-underline-offset: .2em; }
.tm-v08 .compose-recipient a:hover { color: #ff6600; }
.tm-v08 .compose-panel .compose-recipient,
.tm-v08 .compose-panel .compose-subject { font-size: 16px; margin-bottom: 8px; overflow-wrap: anywhere; }
.tm-v08 #compose-preview-text { margin-top: 18px; font-size: 16px; min-height: 220px; }
.compose-actions { display: flex; margin-top: 22px; }
/* Keep the primary action's light label independent of ordinary link colors. */
.tm-v08 .compose-preview .compose-email { display: inline-flex; align-items: center; justify-content: center; padding: 13px 22px; min-height: 50px; max-width: 100%; box-sizing: border-box; border: 1px solid #292621; background: #292621; color: #faf8f3; text-decoration: none; font: 650 18px/1.4 var(--sans); text-align: center; }
.tm-v08 .compose-preview .compose-email:is(:hover, :focus-visible) { color: #ff6600; }
.compose-mail-help { margin-top: 18px; max-width: 70ch; }
.tm-v08 .compose-mail-help > summary { width: fit-content; max-width: 100%; padding-block: 10px; cursor: pointer; font: 400 15px/1.5 var(--sans); color: #625d56; text-decoration: underline; text-underline-offset: .2em; }
.tm-v08 .compose-mail-help > summary:hover { color: #ff6600; }
.tm-v08 .compose-mail-help > p { margin: 8px 0; font: 400 15px/1.6 var(--sans); color: #625d56; }
.tm-v08 .compose-copy { min-height: 44px; padding: 8px 0; border: 0; background: transparent; color: #292621; font: 650 16px/1.5 var(--sans); cursor: pointer; text-decoration: underline; text-underline-offset: .2em; }
.tm-v08 .compose-copy:hover { color: #ff6600; }
.tm-v08 .compose-panel .compose-status { font-size: 16px; margin: 14px 0; }
.tm-v08 .compose-panel .compose-status:empty { margin: 0; }
.tm-v08 .compose-panel .compose-privacy { max-width: 80ch; margin: 22px 0 0; font-size: 14px; line-height: 1.6; color: #625d56; }
.contact-compose-shell[hidden], .contact-compose [hidden] { display: none !important; }
@media (max-width: 800px) {
  .compose-top-grid { grid-template-columns: 1fr; }
  .compose-day__times { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 480px) {
  .compose-day { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .compose-day__times { padding: 0 0 6px 32px; }
  .compose-actions { align-items: stretch; flex-direction: column; }
  .tm-v08 .compose-preview .compose-email { padding-inline: 14px; font-size: 17px; }
}
