:root {
--tm-primary:        #181818;
--tm-primary-hover:  #2a2a2a;
--tm-accent:         #c9a870;
--tm-accent-hover:   #b8975f;
--tm-text:           #181818;
--tm-text-muted:     #6a6a6a;
--tm-bg:             #ffffff;
--tm-bg-subtle:      #f7f7f5;
--tm-border:         #e0ded9;
--tm-border-focus:   #c9a870;
--tm-error:          #a02020;
--tm-error-bg:       #fef2f2;
--tm-success:        #2d6b2d;
--tm-success-bg:     #f0f7f0;
--tm-font-body:      'Georgia', 'Times New Roman', serif;
--tm-font-ui:        system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
--tm-radius:         3px;
--tm-radius-lg:      6px;
--tm-input-height:   48px;
--tm-transition:     0.2s ease;
--tm-shadow:         0 2px 16px rgba(0, 0, 0, 0.07);
} .tm-contact-wrap,
.tm-newsletter-wrap {
font-family: var(--tm-font-ui);
color: var(--tm-text);
max-width: 640px;
margin: 0 auto;
}
.tm-form-title {
font-family: var(--tm-font-body);
font-size: clamp(1.5rem, 3vw, 2rem);
font-weight: 700;
margin: 0 0 8px;
color: var(--tm-primary);
line-height: 1.3;
}
.tm-form-subtitle,
.tm-newsletter-subtitle {
font-size: 15px;
color: var(--tm-text-muted);
margin: 0 0 28px;
line-height: 1.6;
}
.tm-newsletter-title {
font-family: var(--tm-font-body);
font-size: 1.4rem;
font-weight: 700;
margin: 0 0 8px;
color: var(--tm-primary);
} .tm-alert {
padding: 14px 18px;
border-radius: var(--tm-radius-lg);
font-size: 14px;
line-height: 1.5;
margin-bottom: 20px;
border-left: 3px solid transparent;
}
.tm-alert-success {
background: var(--tm-success-bg);
color: var(--tm-success);
border-left-color: var(--tm-success);
}
.tm-alert-error {
background: var(--tm-error-bg);
color: var(--tm-error);
border-left-color: var(--tm-error);
} .tm-field-group {
margin-bottom: 20px;
}
.tm-field-label {
display: block;
font-size: 13px;
font-weight: 600;
color: var(--tm-text);
margin-bottom: 6px;
letter-spacing: 0.01em;
text-transform: none;
}
.tm-required {
color: var(--tm-error);
margin-left: 2px;
}
.tm-field-optional {
color: var(--tm-text-muted);
font-weight: 400;
font-size: 12px;
margin-left: 4px;
}
.tm-field-hint {
display: block;
font-size: 12px;
color: var(--tm-text-muted);
margin-top: 6px;
}
.tm-field-error {
display: block;
font-size: 12px;
color: var(--tm-error);
margin-top: 4px;
min-height: 16px;
} .tm-field-input,
.tm-field-select,
.tm-field-textarea {
display: block;
width: 100%;
font-family: var(--tm-font-ui);
font-size: 15px;
color: var(--tm-text);
background: var(--tm-bg);
border: 1.5px solid var(--tm-border);
border-radius: var(--tm-radius);
padding: 12px 16px;
transition: border-color var(--tm-transition), box-shadow var(--tm-transition);
outline: none;
-webkit-appearance: none;
appearance: none;
box-sizing: border-box;
}
.tm-field-input {
height: var(--tm-input-height);
}
.tm-field-input::placeholder,
.tm-field-textarea::placeholder {
color: #ababab;
}
.tm-field-input:focus,
.tm-field-select:focus,
.tm-field-textarea:focus {
border-color: var(--tm-border-focus);
box-shadow: 0 0 0 3px rgba(201, 168, 112, 0.15);
}
.tm-field-input.tm-invalid,
.tm-field-textarea.tm-invalid {
border-color: var(--tm-error);
}
.tm-field-textarea {
resize: vertical;
min-height: 120px;
line-height: 1.6;
} .tm-select-wrap {
position: relative;
}
.tm-field-select {
cursor: pointer;
padding-right: 40px;
height: var(--tm-input-height);
}
.tm-select-arrow {
position: absolute;
right: 14px;
top: 50%;
transform: translateY(-50%);
font-size: 12px;
color: var(--tm-text-muted);
pointer-events: none;
} .tm-checkboxes {
display: flex;
flex-direction: column;
gap: 12px;
}
.tm-checkbox-label {
display: flex;
align-items: flex-start;
gap: 10px;
cursor: pointer;
line-height: 1.5;
}
.tm-checkbox-input {
position: absolute;
opacity: 0;
width: 0;
height: 0;
}
.tm-checkbox-box {
display: inline-flex;
align-items: center;
justify-content: center;
width: 20px;
height: 20px;
min-width: 20px;
border: 1.5px solid var(--tm-border);
border-radius: 3px;
background: var(--tm-bg);
transition: all var(--tm-transition);
margin-top: 2px;
}
.tm-checkbox-input:checked + .tm-checkbox-box {
background: var(--tm-primary);
border-color: var(--tm-primary);
}
.tm-checkbox-input:checked + .tm-checkbox-box::after {
content: '';
display: block;
width: 5px;
height: 9px;
border: 2px solid #fff;
border-top: none;
border-left: none;
transform: rotate(45deg) translateY(-1px);
}
.tm-checkbox-input:focus-visible + .tm-checkbox-box {
outline: 2px solid var(--tm-accent);
outline-offset: 2px;
}
.tm-checkbox-text {
font-size: 14px;
color: var(--tm-text);
line-height: 1.5;
}
.tm-checkbox-text a {
color: inherit;
text-decoration: underline;
text-underline-offset: 2px;
}
.tm-checkbox-marketing .tm-checkbox-text {
font-size: 13px;
color: var(--tm-text-muted);
}
.tm-text-muted {
color: var(--tm-text-muted);
} .tm-category-pills {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-top: 4px;
}
.tm-category-pill {
cursor: pointer;
}
.tm-pill-input {
position: absolute;
opacity: 0;
width: 0;
height: 0;
}
.tm-pill-label {
display: inline-block;
padding: 6px 14px;
border: 1.5px solid var(--tm-border);
border-radius: 100px;
font-size: 13px;
font-weight: 500;
color: var(--tm-text-muted);
background: var(--tm-bg);
transition: all var(--tm-transition);
user-select: none;
}
.tm-pill-input:checked + .tm-pill-label {
background: var(--tm-primary);
border-color: var(--tm-primary);
color: #fff;
}
.tm-pill-input:focus-visible + .tm-pill-label {
outline: 2px solid var(--tm-accent);
outline-offset: 2px;
}
.tm-category-pill:hover .tm-pill-label {
border-color: var(--tm-accent);
color: var(--tm-primary);
} .tm-form-footer {
margin-top: 24px;
}
.tm-submit-btn {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 10px;
padding: 14px 32px;
background: var(--tm-primary);
color: #fff;
border: none;
border-radius: var(--tm-radius);
font-family: var(--tm-font-ui);
font-size: 15px;
font-weight: 600;
letter-spacing: 0.02em;
cursor: pointer;
transition: background var(--tm-transition), transform var(--tm-transition);
min-width: 160px;
position: relative;
overflow: hidden;
}
.tm-submit-btn:hover:not(:disabled) {
background: var(--tm-primary-hover);
transform: translateY(-1px);
}
.tm-submit-btn:active {
transform: translateY(0);
}
.tm-submit-btn:disabled {
opacity: 0.7;
cursor: not-allowed;
transform: none;
}
.tm-submit-btn--nl {
background: var(--tm-accent);
color: var(--tm-primary);
}
.tm-submit-btn--nl:hover:not(:disabled) {
background: var(--tm-accent-hover);
} .tm-btn-spinner {
display: none;
width: 16px;
height: 16px;
border: 2px solid rgba(255, 255, 255, 0.4);
border-top-color: #fff;
border-radius: 50%;
animation: tm-spin 0.6s linear infinite;
}
.tm-submit-btn--nl .tm-btn-spinner {
border-color: rgba(24, 24, 24, 0.3);
border-top-color: var(--tm-primary);
}
.tm-btn-loading .tm-btn-text {
opacity: 0.6;
}
.tm-btn-loading .tm-btn-spinner {
display: inline-block;
}
@keyframes tm-spin {
to { transform: rotate(360deg); }
} .tm-hp-field {
position: absolute;
left: -9999px;
top: -9999px;
width: 1px;
height: 1px;
overflow: hidden;
} .tm-subscriber-count {
display: inline-block;
font-variant-numeric: tabular-nums;
} .tm-newsletter-horizontal .tm-newsletter-form {
display: flex;
gap: 8px;
align-items: flex-end;
flex-wrap: wrap;
}
.tm-newsletter-horizontal .tm-field-group {
flex: 1;
min-width: 200px;
margin-bottom: 0;
}
.tm-newsletter-horizontal .tm-field-label {
display: none; }
.tm-newsletter-horizontal .tm-form-footer {
margin-top: 0;
flex-shrink: 0;
}
.tm-newsletter-horizontal .tm-submit-btn {
padding: 12px 24px;
height: var(--tm-input-height);
} @media (max-width: 600px) {
.tm-newsletter-horizontal .tm-newsletter-form {
flex-direction: column;
}
.tm-newsletter-horizontal .tm-field-group {
width: 100%;
}
.tm-newsletter-horizontal .tm-form-footer {
width: 100%;
}
.tm-newsletter-horizontal .tm-submit-btn {
width: 100%;
}
.tm-submit-btn {
width: 100%;
}
}