/* Phototex Quotes – Get a Quote form.
   Restyle by overriding the custom properties on .ptxq-wrap. */

.ptxq-wrap {
	--ptxq-accent: #d50032;
	--ptxq-accent-dark: #a80027;
	--ptxq-accent-soft: rgba(213, 0, 50, .08);
	--ptxq-accent-ring: rgba(213, 0, 50, .2);
	--ptxq-text: #252c3e;
	--ptxq-muted: #646970;
	--ptxq-border: #cfd3e0;
	--ptxq-line: #e7e9ef;
	--ptxq-bg: #ffffff;
	--ptxq-error: #c0392b;
	--ptxq-success: #1e8e5a;

	box-sizing: border-box;
	max-width: 860px;
	margin: 0 auto;
	color: var(--ptxq-text);
	font-size: 16px;
	line-height: 1.5;
	text-align: left;
}
.ptxq-wrap *, .ptxq-wrap *::before, .ptxq-wrap *::after { box-sizing: inherit; }
.ptxq-wrap [hidden] { display: none !important; }

.ptxq-form {
	background: var(--ptxq-bg);
	border: 1px solid var(--ptxq-line);
	border-top: 4px solid var(--ptxq-accent);
	border-radius: 12px;
	box-shadow: 0 10px 30px rgba(15, 23, 42, .06);
	padding: 8px 36px 32px;
}

.ptxq-step { margin: 0; padding: 28px 0 0; border: 0; min-width: 0; }
.ptxq-step + .ptxq-step { margin-top: 28px; border-top: 1px solid var(--ptxq-line); }
.ptxq-step legend {
	display: flex; align-items: center; gap: 10px;
	float: left; width: 100%;
	margin: 0 0 18px; padding: 0;
	font-size: 1.15em; font-weight: 700; color: var(--ptxq-text);
}
.ptxq-step legend + * { clear: both; }
.ptxq-step-no {
	display: inline-flex; align-items: center; justify-content: center;
	width: 28px; height: 28px; border-radius: 50%;
	background: var(--ptxq-accent); color: #fff; font-size: .8em;
}

.ptxq-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 18px 20px; clear: both; }
.ptxq-full { grid-column: 1 / -1; }
.ptxq-half { grid-column: span 3; }
.ptxq-third { grid-column: span 2; }
.ptxq-size[data-mode="size"] .ptxq-third { grid-column: span 3; }
@media (min-width: 640px) {
	.ptxq-size[data-mode="size"] { grid-template-columns: repeat(4, 1fr); }
	.ptxq-size[data-mode="size"] .ptxq-third { grid-column: span 1; }
}

.ptxq-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.ptxq-field > label, .ptxq-label { margin: 0; font-weight: 600; font-size: .95em; }
.ptxq-group { margin-bottom: 22px; }
.ptxq-group:last-child { margin-bottom: 0; }
.ptxq-req { color: var(--ptxq-accent); }
.ptxq-hint { font-weight: 400; color: var(--ptxq-muted); font-size: .9em; }
.ptxq-help { font-size: .85em; color: var(--ptxq-muted); }

.ptxq-wrap input[type="text"],
.ptxq-wrap input[type="email"],
.ptxq-wrap input[type="tel"],
.ptxq-wrap input[type="number"],
.ptxq-wrap input[type="date"],
.ptxq-wrap select,
.ptxq-wrap textarea {
	width: 100%; min-height: 48px; margin: 0;
	padding: 10px 12px;
	font: inherit; color: var(--ptxq-text);
	background: #fff;
	border: 1px solid var(--ptxq-border); border-radius: 6px;
	box-shadow: none;
	transition: border-color .15s, box-shadow .15s;
}
.ptxq-wrap textarea { min-height: 120px; resize: vertical; }
.ptxq-wrap select {
	appearance: none; padding-right: 36px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23646970' d='M6 8 0 0h12z'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 12px center;
}
.ptxq-wrap input:focus, .ptxq-wrap select:focus, .ptxq-wrap textarea:focus {
	outline: none; border-color: var(--ptxq-accent); box-shadow: 0 0 0 3px var(--ptxq-accent-ring);
}
.ptxq-field.is-invalid input, .ptxq-field.is-invalid select, .ptxq-field.is-invalid textarea, .ptxq-field.is-invalid .ptxq-file { border-color: var(--ptxq-error); }
.ptxq-error { color: var(--ptxq-error); font-size: .85em; }
.ptxq-error:empty { display: none; }

/* Option chips */
.ptxq-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.ptxq-chip { position: relative; margin: 0; cursor: pointer; font-weight: 500; }
.ptxq-chip input { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.ptxq-chip span {
	display: inline-flex; align-items: center; gap: 8px;
	min-height: 44px; padding: 9px 16px;
	border: 1px solid var(--ptxq-border); border-radius: 999px;
	background: #fff; color: var(--ptxq-text);
	transition: border-color .15s, background-color .15s, color .15s;
}
.ptxq-chip span::before {
	content: ""; width: 16px; height: 16px; flex: none;
	border: 2px solid var(--ptxq-border); border-radius: 50%;
	background: #fff;
}
.ptxq-chip input[type="checkbox"] + span::before { border-radius: 4px; }
.ptxq-chip:hover span { border-color: var(--ptxq-accent); }
.ptxq-chip input:checked + span { border-color: var(--ptxq-accent); background: var(--ptxq-accent-soft); color: var(--ptxq-accent-dark); }
.ptxq-chip input:checked + span::before {
	border-color: var(--ptxq-accent);
	background: var(--ptxq-accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center / 12px no-repeat;
}
.ptxq-chip input:focus-visible + span { box-shadow: 0 0 0 3px var(--ptxq-accent-ring); }
.ptxq-group.is-invalid .ptxq-chip span { border-color: var(--ptxq-error); }

/* File picker */
.ptxq-file {
	position: relative; display: flex; align-items: center; gap: 12px;
	min-height: 56px; padding: 8px; cursor: pointer;
	border: 1px dashed var(--ptxq-border); border-radius: 8px; background: #fafbfc;
	font-weight: 400 !important;
}
.ptxq-file:hover { border-color: var(--ptxq-accent); }
.ptxq-file input { position: absolute; inset: 0; opacity: 0; width: 100%; cursor: pointer; }
.ptxq-file input:focus-visible ~ .ptxq-file-button { box-shadow: 0 0 0 3px var(--ptxq-accent-ring); }
.ptxq-file-button {
	flex: none; padding: 8px 16px; border-radius: 6px;
	background: var(--ptxq-text); color: #fff; font-weight: 600; font-size: .9em;
}
.ptxq-file-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ptxq-muted); }

/* Tick boxes */
.ptxq-checks { display: grid; gap: 12px; margin-top: 22px; }
.ptxq-check { display: flex !important; flex-direction: row !important; align-items: flex-start; gap: 10px; margin: 0; font-weight: 400; cursor: pointer; }
.ptxq-check input { flex: none; width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--ptxq-accent); }
.ptxq-check a { color: var(--ptxq-accent); text-decoration: underline; }
.ptxq-check.is-invalid span { color: var(--ptxq-error); }

/* Submit */
.ptxq-submit-row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin-top: 28px; }
.ptxq-wrap .ptxq-submit {
	display: inline-flex; align-items: center; justify-content: center;
	min-height: 52px; padding: 14px 34px;
	border: 0; border-radius: 999px;
	background: var(--ptxq-accent); color: #fff;
	font: inherit; font-weight: 700; font-size: 1.05em;
	cursor: pointer; transition: background-color .15s, transform .15s;
}
.ptxq-wrap .ptxq-submit:hover { background: var(--ptxq-accent-dark); color: #fff; }
.ptxq-wrap .ptxq-submit:focus-visible { outline: none; box-shadow: 0 0 0 3px var(--ptxq-accent-ring); }
.ptxq-wrap .ptxq-submit[disabled] { opacity: .7; cursor: progress; }
.ptxq-note { flex: 1 1 260px; margin: 0; font-size: .9em; color: var(--ptxq-muted); }

.ptxq-status { margin-top: 18px; padding: 12px 16px; border-radius: 6px; background: #fdecee; color: var(--ptxq-error); border-left: 4px solid var(--ptxq-error); }
.ptxq-status.is-info { background: #f2f4f8; color: var(--ptxq-text); border-left-color: var(--ptxq-accent); }
.ptxq-progress { height: 6px; margin-top: 12px; border-radius: 3px; background: var(--ptxq-line); overflow: hidden; }
.ptxq-progress span { display: block; width: 0; height: 100%; background: var(--ptxq-accent); transition: width .2s; }

/* Honeypot */
.ptxq-hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }

/* Thank-you panel */
.ptxq-success {
	padding: 40px 32px; text-align: center;
	background: #fff; border: 1px solid var(--ptxq-line); border-top: 4px solid var(--ptxq-success);
	border-radius: 12px; box-shadow: 0 10px 30px rgba(15, 23, 42, .06);
}
.ptxq-success:focus { outline: none; }
.ptxq-success-icon {
	display: inline-flex; align-items: center; justify-content: center;
	width: 56px; height: 56px; margin-bottom: 12px; border-radius: 50%;
	background: rgba(30, 142, 90, .12); color: var(--ptxq-success);
}
.ptxq-wrap .ptxq-success-title { margin: 0 0 12px; font-size: 1.5em; line-height: 1.25; color: var(--ptxq-text); }
.ptxq-success-ref { font-size: 1.15em; }
.ptxq-ref { display: inline-block; padding: 2px 10px; border-radius: 6px; background: var(--ptxq-accent-soft); color: var(--ptxq-accent-dark); letter-spacing: .03em; }
.ptxq-success p { max-width: 560px; margin: 0 auto 10px; }
.ptxq-success-contact { color: var(--ptxq-muted); font-size: .92em; }

@media (max-width: 639px) {
	.ptxq-form { padding: 4px 18px 24px; border-radius: 10px; }
	.ptxq-grid { grid-template-columns: 1fr 1fr; gap: 16px 12px; }
	.ptxq-half, .ptxq-full { grid-column: 1 / -1; }
	.ptxq-third { grid-column: span 1; }
	.ptxq-size[data-mode="size"] .ptxq-third { grid-column: span 1; }
	.ptxq-size[data-mode="rolls"] .ptxq-third { grid-column: 1 / -1; }
	.ptxq-chips { gap: 8px; }
	.ptxq-chip span { padding: 8px 14px; }
	.ptxq-wrap .ptxq-submit { width: 100%; }
	.ptxq-success { padding: 28px 18px; }
}
