/* ==========================================================================
   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:#0B343B;
	--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: #0B343B;
	flex-shrink: 0;
	margin-top: 6px;
}

.tc-eyebrow {
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .09em;
	color: #0B343B;
	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: #0B343B;
    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;
    display: inline-block;
    white-space: nowrap;
    font-family: "Inter", Sans-serif;
    font-family: inherit;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.3;
    color: #fff;
    background: #0B343B;
    border: 1px solid #0B343B;
    text-decoration: none;
    box-shadow: #0B343B;
    transition: background .15s ease, border-color .15s ease, transform .15s ease;
    border-style: solid;
    border-width: 2px 2px 2px 2px;
    border-color: #FFFFFF00;
    border-radius: 8px 8px 8px 8px;
    padding: 7px 14px 7px 14px;
}
.tc-btn-submit:hover:not(:disabled) {
    transform: translateY(-1px);
    background-color: #FFFFFF;
    color: #0B343B;
    border-color: #0B343B;
}
.tc-btn-submit:active:not(:disabled) { transform: translateY(1px); }
.tc-btn-submit:disabled { opacity: .65; cursor: not-allowed; }

.tc-btn-cancel {
    background: transparent;
    border: 2px solid #0B343B;
    background-color: #FFFFFF;
    color: #0B343B;
}
.tc-btn-cancel:hover {
     transform: translateY(-1px);
    display: inline-block;
    white-space: nowrap;
    font-family: inherit;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.3;
    color: #fff;
    background: #0B343B;
    border: 1px solid #0B343B;
    text-decoration: none;
    transition: background .15s ease, border-color .15s ease, transform .15s ease;
}

.tc-btn:focus-visible, .tc-close:focus-visible, .tc-form-group input:focus-visible, .tc-form-group textarea:focus-visible {
    outline: 2px solid #0B343B;
    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:#F0F6F6;border:1px solid #0B343B;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:#0B343B;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: #0B343B;
	box-shadow: 0 2px 8px #0b343b99;
}

/* 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: #0B343B;
	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: #0B343B; 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: #0B343B; color: #fff; }
.tc-tab.is-on .tc-tab-x:hover { background: #fff; color: #0B343B; }

/* ---- 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: #0B343B;
	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%; }
}

/* ==========================================================================
   7.0 — quantity per product
   ========================================================================== */
#tc-modal .tc-spec-qty { grid-column: 1 / -1; }
#tc-modal .tc-qty { display: inline-flex; align-items: center; gap: 0; border: 1.5px solid #D5E3E4; border-radius: 8px; background: #fff; height: 40px; }
#tc-modal .tc-qty-btn { width: 38px; height: 100%; border: 0 !important; background: none !important; color: #0B343B !important; font: 600 18px/1 inherit; cursor: pointer; padding: 0 !important; box-shadow: none !important; }
#tc-modal .tc-qty-btn:hover { background: #F0F6F6 !important; color: #0B343B !important; }
#tc-modal .tc-qty-input { width: 64px; height: 100%; border: 0 !important; text-align: center; font-weight: 600; color: #0B343B; background: transparent !important; box-shadow: none !important; padding: 0 !important; -moz-appearance: textfield; }
#tc-modal .tc-qty-input::-webkit-outer-spin-button, #tc-modal .tc-qty-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
#tc-modal .tc-qty-unit { padding: 0 10px 0 4px; font-size: 13px; color: #6B8388; }
#tc-modal .tc-qty-input:focus-visible, #tc-modal .tc-qty-btn:focus-visible { outline: 3px solid #0B343B; outline-offset: 2px; }

/* 7.0.1 — version line under the product name in the multi-product list */
.tc-tab-vl { display: block; font-size: .72em; font-weight: 500; opacity: .78; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin-top: 2px; }
.tc-tab { align-items: center; }
#tc-modal .tc-spec-qty { grid-column: 1 / -1; display: flex !important; flex-direction: row !important; text-align: left !important; align-items: center; justify-content: space-between; gap: 12px; background: #F0F6F6; border-radius: 8px; padding: 8px 12px; margin-bottom: 4px; }
#tc-modal .tc-spec-qty .tc-spec-label { margin: 0; font-weight: 600; color: #0B343B; }
#tc-modal .tc-spec-qty .tc-spec-value { margin: 0 !important; }
