/* TMTIC contact form: layout, states and feedback. Base field styles live in main.css. */
.tmtic-cf {
	max-width: 760px;
}
.tmtic-cf__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 0 1.25rem;
}
@media (min-width: 640px) {
	.tmtic-cf__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
.tmtic-cf .tmtic-field textarea {
	min-height: 9rem;
	resize: vertical;
}
.tmtic-cf .tmtic-field.has-error input,
.tmtic-cf .tmtic-field.has-error textarea {
	border-color: #b3261e;
	box-shadow: 0 0 0 1px #b3261e;
}
.tmtic-cf .tmtic-notice {
	color: var(--color-text);
}
.tmtic-cf .tmtic-notice--ok {
	background: #eef7f2;
}
.tmtic-cf .tmtic-notice--error {
	background: #fdf1f0;
}
.tmtic-cf__submit {
	text-align: left;
	margin: 0.5rem 0 0.75rem;
}
.tmtic-cf__btn[disabled],
.tmtic-cf__btn[aria-busy="true"] {
	opacity: 0.7;
	cursor: progress;
}
.tmtic-cf__btn[aria-busy="true"]::after {
	content: "";
	display: inline-block;
	width: 0.9em;
	height: 0.9em;
	margin-left: 0.6em;
	vertical-align: -0.1em;
	border: 2px solid currentColor;
	border-right-color: transparent;
	border-radius: 50%;
	animation: tmtic-cf-spin 0.8s linear infinite;
}
@keyframes tmtic-cf-spin {
	to { transform: rotate(360deg); }
}
@media (prefers-reduced-motion: reduce) {
	.tmtic-cf__btn[aria-busy="true"]::after { animation: none; }
}

/* ---------- Contact page layout: info cards, then form card + visual panel ---------- */
.tmtic-contact { gap: 2rem; }
.tmtic-ccards { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 1rem; margin: 0; padding: 0; list-style: none; }
.tmtic-ccard { display: flex; flex-direction: column; align-items: center; gap: 0.35rem; padding: 1.4rem 1rem; text-align: center; background: var(--color-surface); border-radius: var(--radius); box-shadow: 0 10px 30px rgba(11, 49, 85, 0.08); overflow-wrap: anywhere; }
.tmtic-ccard__icon { display: grid; place-items: center; width: 48px; height: 48px; margin-bottom: 0.4rem; border-radius: 14px; background: var(--color-primary); color: var(--color-gold); }
.tmtic-ccard__label { font-size: 0.72rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-muted); }
.tmtic-ccard__value { font-weight: 600; line-height: 1.5; color: var(--color-heading); }
.tmtic-ccard__value a { color: inherit; text-decoration: none; }
.tmtic-ccard__value a:hover { color: var(--color-secondary); }
.tmtic-cpanes { display: grid; gap: 1.5rem; align-items: stretch; }
@media (min-width: 900px) { .tmtic-cpanes { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.tmtic-cpanes .tmtic-cf { max-width: none; height: 100%; padding: 2rem; border: 0; border-radius: 24px; box-shadow: 0 10px 30px rgba(11, 49, 85, 0.08); }
.tmtic-cpanes .tmtic-form__title { margin-top: 0; font-size: clamp(1.5rem, 2.4vw, 2rem); }
.tmtic-cf .tmtic-field label { font-size: 0.78rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--color-heading); }
.tmtic-cf .tmtic-field input, .tmtic-cf .tmtic-field textarea { border-radius: 12px; background: var(--color-background); }
.tmtic-cf__btn { display: inline-flex; width: auto; justify-content: center; padding: 0.7em 1.6em; font-size: 0.8rem; }
.tmtic-cvisual { position: relative; display: flex; align-items: flex-end; min-height: 380px; overflow: hidden; border-radius: 24px; background: linear-gradient(135deg, var(--color-primary), #082640); }
.tmtic-cvisual__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.tmtic-cvisual__card { position: relative; z-index: 1; max-width: 18rem; margin: 1.1rem; padding: 1.1rem 1.25rem; background: var(--color-surface); border-radius: 14px; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.18); }
.tmtic-cvisual__card h3 { margin: 0 0 0.35rem; font-size: 1.15rem; }
.tmtic-cvisual__card p { margin: 0 0 0.8rem; font-size: 0.95rem; }
.tmtic-cvisual__card .tmtic-btn { margin: 0 0.35rem 0.35rem 0; padding: 0.55em 1.1em; font-size: 0.8rem; }
.tmtic-cf__btn:not([aria-busy="true"])::after { content: "→"; margin-left: 0.6em; }

/* ---------- Booking page ---------- */
.tmtic-bkgrid { display: grid; gap: 1.5rem; align-items: start; }
@media (min-width: 960px) { .tmtic-bkgrid { grid-template-columns: minmax(0, 1.7fr) minmax(260px, 1fr); } .tmtic-bkside { position: sticky; top: 7rem; } }
.tmtic-bk.tmtic-cf { max-width: none; padding: 2rem; border: 0; border-radius: 24px; box-shadow: 0 10px 30px rgba(11, 49, 85, 0.08); }
.tmtic-bk .tmtic-form__title { margin-top: 0; font-size: clamp(1.5rem, 2.4vw, 2rem); }
.tmtic-bk__step { display: flex; align-items: center; gap: 0.6rem; margin: 1.6rem 0 0.8rem; font-family: var(--font-body); font-size: 0.8rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-secondary); }
.tmtic-bk__step span { display: grid; place-items: center; width: 1.7rem; height: 1.7rem; border-radius: 50%; background: var(--color-primary); color: #fff; font-size: 0.8rem; letter-spacing: 0; }
.tmtic-bk select, .tmtic-bk input[type="number"], .tmtic-bk input[type="date"] { width: 100%; }
.tmtic-bk .tmtic-field select, .tmtic-bk .tmtic-field input[type="number"], .tmtic-bk .tmtic-field input[type="date"] { border-radius: 12px; background-color: var(--color-background); }
.tmtic-bk__consent label { display: flex; gap: 0.6rem; align-items: flex-start; font-size: 0.92rem; font-weight: 400; text-transform: none; letter-spacing: 0; }
.tmtic-bk__consent input { margin-top: 0.25rem; }
.tmtic-bkcard { padding: 1.5rem; background: var(--color-surface); border-radius: 24px; box-shadow: 0 10px 30px rgba(11, 49, 85, 0.08); }
.tmtic-bkcard h3 { margin: 0 0 0.9rem; font-size: 1.2rem; }
.tmtic-bkcheck { display: grid; gap: 0.7rem; margin: 0 0 1.2rem; padding: 0; list-style: none; }
.tmtic-bkcheck li { display: flex; gap: 0.6rem; align-items: flex-start; font-size: 0.95rem; }
.tmtic-bkcheck .tmtic-icon { margin-top: 0.2em; color: var(--color-secondary); flex: 0 0 auto; }
.tmtic-cf .tmtic-field input[type="number"], .tmtic-cf .tmtic-field input[type="date"] { display: block; width: 100%; padding: 0.7rem 0.9rem; font: inherit; color: var(--color-text); border: 1px solid var(--color-border); border-radius: 12px; background: var(--color-background); }
.tmtic-cf .tmtic-field input[type="number"]:focus, .tmtic-cf .tmtic-field input[type="date"]:focus { outline: 2px solid var(--color-secondary); outline-offset: 1px; }
.tmtic-cf .tmtic-bk__consent label { font-size: 0.92rem; font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--color-text); }
.tmtic-cf .tmtic-notice { transition: opacity 0.4s ease, max-height 0.4s ease; }
.tmtic-cf .tmtic-notice.is-hiding { opacity: 0; }
.tmtic-cf .tmtic-notice[hidden] { display: none; }
@media (prefers-reduced-motion: reduce) { .tmtic-cf .tmtic-notice { transition: none; } }
