/* ==========================================================================
   Thermocon Inquiry Modal — design tokens
   System-font stack only (no Google Fonts): avoids an external request on
   every page load and sidesteps the GDPR/Google-Fonts consent issue that
   German courts have fined sites over (IP address sent to Google without
   consent). Monospace is used for temperature/spec values on purpose —
   it reads like a data-logger readout, which is the actual subject here.
   ========================================================================== */

:root {
	--tc-deep: #0E2A3F;
	--tc-steel: #3E7C93;
	--tc-signal:#009dbf;
	--tc-signal-dark: #005062;
	--tc-bg: #F3F7FA;
	--tc-ink: #24303A;
	--tc-line: #DCE6EC;
	--tc-success-bg: #E4F5EC;
	--tc-success-fg: #216B4D;
	--tc-success-bd: #BFE6D2;
	--tc-error-bg: #FBEAEA;
	--tc-error-fg: #8C3530;
	--tc-error-bd: #F0C7C4;
	--tc-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	--tc-mono: ui-monospace, SFMono-Regular, "Roboto Mono", Menlo, Consolas, monospace;
}

/* ==========================================================================
   Reset scoped to the modal only — guards against theme collisions
   ========================================================================== */

.tc-modal, .tc-modal *, .tc-modal *::before, .tc-modal *::after {
	box-sizing: border-box;
}

/* ==========================================================================
   Overlay + panel
   ========================================================================== */

.tc-modal {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	padding: 48px 20px;
	background: rgba(14, 42, 63, 0.55);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	overflow-y: auto;
	transition: opacity .25s ease;
	font-family: var(--tc-font);
}

.tc-modal.tc-open {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.tc-modal-box {
	position: relative;
	background: #fff;
	width: 100%;
	max-width: 729px;
	margin: auto;
	padding: 36px 32px 32px;
	border-radius: 14px;
	box-shadow: 0 24px 70px rgba(14, 42, 63, 0.28);
	transform: translateY(-16px) scale(.98);
	transition: transform .3s cubic-bezier(.2,.8,.2,1);
}

.tc-modal.tc-open .tc-modal-box {
	transform: translateY(0) scale(1);
}

/* Thermal-gradient scan bar across the top of the panel */
.tc-scan-bar {
	position: absolute;
	top: 0; left: 0; right: 0;
	height: 4px;
	border-radius: 14px 14px 0 0;
	background: linear-gradient(90deg, var(--tc-deep) 0%, var(--tc-steel) 50%, var(--tc-signal) 100%);
	background-size: 200% 100%;
	background-position: 0% 0%;
}

@media (prefers-reduced-motion: no-preference) {
	.tc-modal.tc-open .tc-scan-bar {
		animation: tc-sweep .9s ease-out;
	}
}

@keyframes tc-sweep {
	from { background-position: 100% 0%; }
	to   { background-position: 0% 0%; }
}

.tc-close {
	position: absolute;
	top: 14px;
	right: 16px;
	background: none;
	border: none;
	font-size: 26px;
	line-height: 1;
	color: #8FAAB6;
	cursor: pointer;
	padding: 6px;
}

.tc-close:hover { color: #DB1515;background: none; }

/* ==========================================================================
   Heading
   ========================================================================== */

.tc-modal-heading {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin-bottom: 22px;
}

.tc-icon {
	color: var(--tc-signal);
	flex-shrink: 0;
	margin-top: 6px;
}

.tc-eyebrow {
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .09em;
	color: var(--tc-steel);
	margin: 0 0 4px;
}

.tc-eyebrow-spaced { margin-top: 24px; }

.tc-modal-box h2 {
	margin: 0;
	font-size: 23px;
	font-weight: 800;
	letter-spacing: -0.01em;
	color: var(--tc-deep);
}

/* ==========================================================================
   System spec card + temperature badge (signature element)
   ========================================================================== */

.tc-system-card {
	background: var(--tc-bg);
  border: 1px solid var(--tc-line);
  border-radius: 10px;
  padding: 10px 10px;
  margin-bottom: 14px;
}

.tc-system-head {
	display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 4px;
  padding-bottom: 14px;
  border-bottom: 1px dashed var(--tc-line);
}

.tc-product-name {
	font-size: 16px;
	font-weight: 800;
	letter-spacing: -0.01em;
	color: var(--tc-deep);
}

.tc-badge {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .02em;
	padding: 5px 11px;
	border-radius: 20px;
	white-space: nowrap;
}

.tc-badge-dot {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	display: inline-block;
}

.tc-band-cold    { background: #E1F0F7; color: #0E6E93; }
.tc-band-cold    .tc-badge-dot { background: #1D93BE; }
.tc-band-ambient { background: #FBEEDC; color: #005992; }
.tc-band-ambient .tc-badge-dot { background: #0274be; }
.tc-band-frozen  { background: #E7E6F7; color: #3B3597; }
.tc-band-frozen  .tc-badge-dot { background: #5B4FCF; }
.tc-band-dryice  { background: #EAF0F2; color: #2D4550; }
.tc-band-dryice  .tc-badge-dot { background: #5C818C; }
.tc-band-neutral { background: #EEF2F4; color: #3E7C93; }
.tc-band-neutral .tc-badge-dot { background: #8FAAB6; }

.tc-spec-grid {
	display: grid;
	gap: 3px 29px;
  max-height: 300px;
  overflow-y: auto;
  padding-right: 6px;
  grid-template-columns: repeat(4, 1fr);
}

.tc-spec {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}

.tc-spec-label {
	font-size: 11px;
	color: var(--tc-steel);
}

.tc-spec-value {
	font-size: 13px;
	font-weight: 600;
	color: var(--tc-ink);
	font-family: var(--tc-mono);
	overflow-wrap: break-word;
}

/* ==========================================================================
   Form
   ========================================================================== */

.tc-form-row {
	display: flex;
	gap: 14px;
}

.tc-form-row .tc-form-group { flex: 1; min-width: 0; }

.tc-form-group { margin-bottom: 8px; }

.tc-form-group label {
	display: block;
	font-size: 12px;
	font-weight: 600;
	color: var(--tc-ink);
	margin-bottom: 3px;
}

.tc-form-group input,
.tc-form-group textarea {
	width: 100%;
	padding: 4px 10px;
	font-size: 14px;
	font-family: inherit;
	color: var(--tc-ink);
	border: 1px solid var(--tc-line);
	border-radius: 6px;
	transition: border-color .15s, box-shadow .15s;
}

.tc-form-group input:focus,
.tc-form-group textarea:focus {
	outline: none;
	border-color: var(--tc-signal);
	box-shadow: 0 0 0 3px rgba(226,152,75,.16);
}

.tc-form-group textarea {
	resize: vertical;
	min-height: 90px;
}

.tc-message-box {
	padding: 11px 14px;
	border-radius: 6px;
	font-size: 13px;
	margin-bottom: 14px;
}

.tc-message-box.tc-success { background: var(--tc-success-bg); color: var(--tc-success-fg); border: 1px solid var(--tc-success-bd); }
.tc-message-box.tc-error   { background: var(--tc-error-bg); color: var(--tc-error-fg); border: 1px solid var(--tc-error-bd); }

/* ==========================================================================
   Buttons
   ========================================================================== */

.tc-buttons {
	display: flex;
	gap: 10px;
	margin-top: 22px;
	padding-top: 18px;
	border-top: 1px solid var(--tc-line);
}

.tc-btn {
	flex: 1;
	padding: 12px 18px;
	border-radius: 7px;
	font-size: 14px;
	font-weight: 700;
	font-family: inherit;
	border: none;
	cursor: pointer;
	transition: transform .12s, box-shadow .12s, background .15s;
}

.tc-btn-submit { background: var(--tc-signal); color: #fff; }
.tc-btn-submit:hover:not(:disabled) { background: var(--tc-signal-dark); box-shadow: 0 4px 14px rgba(226,152,75,.35); }
.tc-btn-submit:active:not(:disabled) { transform: translateY(1px); }
.tc-btn-submit:disabled { opacity: .65; cursor: not-allowed; }

.tc-btn-cancel { background: transparent; color: var(--tc-steel); border: 1px solid var(--tc-line); }
.tc-btn-cancel:hover { background: var(--tc-bg);color: var(--tc-steel);}

.tc-btn:focus-visible,
.tc-close:focus-visible,
.tc-form-group input:focus-visible,
.tc-form-group textarea:focus-visible {
	outline: 2px solid var(--tc-signal);
	outline-offset: 2px;
}

/* ==========================================================================
   Table trigger button — lives inside the TablePress cell, outside .tc-modal
   ========================================================================== */

.tc-table-btn {
	background: var(--tc-signal);
	color: #fff;
	border: none;
	padding: 8px 16px;
	border-radius: 6px;
	font-weight: 700;
	font-size: 13px;
	font-family: var(--tc-font);
	cursor: pointer;
	white-space: nowrap;
	transition: background .15s, transform .12s, box-shadow .15s;
}

.tc-table-btn:hover { background: var(--tc-signal-dark); box-shadow: 0 3px 10px rgba(226,152,75,.3); }
.tc-table-btn:active { transform: translateY(1px); }
.tc-table-btn:focus-visible { outline: 2px solid var(--tc-deep); outline-offset: 2px; }

/* ==========================================================================
   Responsive — becomes a bottom sheet on small screens
   ========================================================================== */

@media (max-width: 640px) {
	.tc-modal { padding: 0; align-items: flex-end; }
	.tc-modal-box {
		max-width: 100%;
		max-height: 92vh;
		overflow-y: auto;
		border-radius: 16px 16px 0 0;
		padding: 28px 20px 24px;
		transform: translateY(24px);
	}
	.tc-modal.tc-open .tc-modal-box { transform: translateY(0); }
	.tc-form-row { flex-direction: column; gap: 0; }
	.tc-buttons { flex-direction: column-reverse; }
	.tc-form-group input,
	.tc-form-group textarea { font-size: 16px; } /* prevents iOS auto-zoom */
}

@media (prefers-reduced-motion: reduce) {
	.tc-modal, .tc-modal-box { transition: opacity .01ms; }
	.tc-scan-bar { animation: none; }
}

/* ---------- anti-spam + prefill (v4.0.0) ---------- */

/* Honeypot: moved off-screen rather than display:none, because some bots
   deliberately skip fields that are display:none. Hidden from assistive
   technology via aria-hidden and unreachable by keyboard via tabindex. */
.tc-hp{
	position:absolute !important;
	left:-9999px !important;
	top:auto !important;
	width:1px !important;height:1px !important;
	overflow:hidden !important;
	opacity:0 !important;
	pointer-events:none !important;
}

.tc-captcha{margin:14px 0 4px;}

/* "We remembered your details" notice */
.tc-remembered{
	display:flex;align-items:center;gap:10px;flex-wrap:wrap;
	margin:0 0 14px;padding:9px 13px;
	background:#EAF7FB;border:1px solid #A8DDE9;border-radius:8px;
	font-size:12.5px;color:#0E6E93;
}
.tc-remembered button{
	margin-left:auto;
	background:none;border:0;padding:0;cursor:pointer;
	font:inherit;font-weight:600;color:#0E6E93;text-decoration:underline;
}
.tc-remembered button:hover{color:#0A5570;}

/* Invisible reCAPTCHA renders into a container that stays empty — keep it
   out of the layout so it does not leave a gap above the buttons. */
.tc-captcha-invisible{margin:0;height:0;overflow:hidden;}

/* ============================================================
 * v5.1.3 — several products in one enquiry (master/detail)
 *
 * Wrapping chips across the full width pushed the contact form off the
 * screen and made it hard to tell which product was being shown. The list
 * is now a fixed-width column beside the detail panel: it scrolls on its
 * own, the selected row is unmistakable, and the form stays in view.
 * ========================================================== */

.tc-multi[hidden] { display: none; }

.tc-multi-head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 10px;
	flex-wrap: wrap;
	margin-bottom: 12px;
}

.tc-multi-count {
	margin: 0;
	font-size: 14px;
	font-weight: 700;
	color: #0A1A3F;
}

.tc-multi-hint { margin: 0; font-size: 12px; color: #8A9096; }

.tc-multi-body {
	display: grid;
	grid-template-columns: 232px minmax(0, 1fr);
	gap: 0;
	margin-bottom: 20px;
	background: #fff;
	border: 1px solid #E1E8ED;
	border-radius: 14px;
	overflow: hidden;
	box-shadow: 0 1px 3px rgba(10, 26, 63, .05);
}

/* ---- the list ---- */
.tc-multi-tabs {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 8px;
	max-height: 300px;
	overflow-y: auto;
	background: linear-gradient(180deg, #F7FAFC 0%, #F2F6F9 100%);
	border-right: 1px solid #E1E8ED;
	scrollbar-width: thin;
}

.tc-multi-tabs::-webkit-scrollbar { width: 6px; }
.tc-multi-tabs::-webkit-scrollbar-thumb {
	background: #C9D5DD;
	border-radius: 100px;
}

.tc-tab {
	position: relative;
	display: grid;
	grid-template-columns: 22px minmax(0, 1fr) 20px;
	align-items: center;
	gap: 8px;
	width: 100%;
	padding: 9px 9px 9px 8px;
	font: inherit;
	font-size: 12.5px;
	font-weight: 600;
	line-height: 1.25;
	text-align: left;
	color: #4A5157;
	background: transparent;
	border: 0;
	border-radius: 9px;
	cursor: pointer;
	transition: background .14s, color .14s;
}

.tc-tab:hover { background: rgba(0, 157, 191, .09); color: #0A1A3F; }

.tc-tab.is-on {
	color: #fff;
	background: #009DBF;
	box-shadow: 0 2px 8px rgba(0, 157, 191, .3);
}

/* Pointer into the detail panel, so the pairing is explicit. */
.tc-tab.is-on::after {
	content: "";
	position: absolute;
	right: -9px;
	top: 50%;
	width: 10px;
	height: 10px;
	background: #009DBF;
	transform: translateY(-50%) rotate(45deg);
	border-radius: 2px;
}

.tc-tab-n {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	font-size: 11px;
	font-weight: 700;
	border-radius: 50%;
	background: #fff;
	color: #6B7378;
	border: 1px solid #E1E8ED;
}

.tc-tab.is-on .tc-tab-n { color: #009DBF; border-color: transparent; }

.tc-tab-name {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.tc-tab-x {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	padding: 0;
	font-size: 15px;
	line-height: 1;
	border-radius: 50%;
	background: rgba(10, 26, 63, .06);
	color: #6B7378;
	cursor: pointer;
	opacity: 0;
	transition: opacity .14s, background .14s, color .14s;
}

/* Revealed on hover/focus so ten rows are not ten competing × buttons,
   but always visible on touch, where there is no hover. */
.tc-tab:hover .tc-tab-x,
.tc-tab.is-on .tc-tab-x,
.tc-tab-x:focus-visible { opacity: 1; }

@media (hover: none) { .tc-tab-x { opacity: 1; } }

.tc-tab.is-on .tc-tab-x { background: rgba(255, 255, 255, .26); color: #fff; }
.tc-tab-x:hover { background: #009DBF; color: #fff; }
.tc-tab.is-on .tc-tab-x:hover { background: #fff; color: #009DBF; }

/* ---- the detail ---- */
.tc-multi-panel { padding: 18px 20px; min-width: 0; }

.tc-multi-panel-head {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	padding-bottom: 13px;
	margin-bottom: 14px;
	border-bottom: 1px solid #EEF2F5;
}

.tc-multi-pos {
	margin-left: auto;
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #8A9096;
	white-space: nowrap;
}

.tc-multi-panel .tc-spec-grid {
	grid-template-columns: repeat(auto-fit, minmax(148px, 1fr));
	gap: 14px 20px;
}

/* dashboard */
.tc-multi-pill {
	display: inline-block;

	margin-left: 6px;
	padding: 1px 8px;
	font-size: 11px;
	font-weight: 700;
	color: #fff;
	background: #009DBF;
	border-radius: 100px;
}

@media (max-width: 720px) {
	.tc-multi-body { grid-template-columns: minmax(0, 1fr); }
	.tc-multi-tabs {
		flex-direction: row;
		flex-wrap: nowrap;
		overflow-x: auto;
		overflow-y: hidden;
		max-height: none;
		border-right: 0;
		border-bottom: 1px solid #E1E8ED;
	}
	.tc-tab { width: auto; flex: 0 0 auto; grid-template-columns: 22px auto 20px; }
	.tc-tab-name { max-width: 132px; }
	.tc-tab.is-on::after { display: none; }
	.tc-multi-panel { padding: 15px; }
	.tc-multi-pos { margin-left: 0; width: 100%; }
}
