/* ==========================================================
   Pet Voting Contest — Entry form ([pet_contest_form])
   Brand: deep navy #04102E (labels, text, field borders) + red
   #D81213 (buttons, highlights, focus). Inherits the site font
   (Nexa on the client site). Loaded after pvc-frontend.css.

   ELEMENTOR / HELLO ROBUSTNESS
   Hello Elementor reset.css styles bare elements (button (0,1,1)
   incl. :hover/:focus, [type=submit] (0,2,0), input[type=text]
   (0,1,1), label, summary, select), and the Elementor kit adds
   `.elementor-kit-N button` (0,1,1) and
   `.elementor-kit-N input:not([type=button]):not([type=submit])`
   (0,3,1) — the latter also hits checkboxes and file inputs.
   Every rule below is therefore rooted at
       R = .pvc-entry-form-wrap form.pvc-entry-form   (0,2,1)
   so that:  R input[type=…]          → (0,3,2) > kit (0,3,1)
             R button.pvc-…           → (0,3,2) > kit/Hello
             R .pvc-field-check input → (0,4,2)
   and explicitly resets what Hello/kit set (border, padding,
   background, colour, text-transform, min-height, box-shadow…).
   Nothing is bound to a specific `.elementor-kit-N` id.

   THEME HOOKS — custom properties read with fallbacks (set them
   on any ancestor, e.g. a landing wrapper; never declared here so
   ancestors always win). Defaults come from the brand vars that
   CORE prints on :root (pvc_get_brand_css()).
     --pvc-primary / --pvc-accent / --pvc-accent-hover /
     --pvc-accent-contrast / --pvc-muted / --pvc-border /
     --pvc-surface / --pvc-surface-alt / --pvc-radius      (brand)
     --pvc-error              error colour            (accent red)
     --pvc-form-text          body text in the form   (inherited)
     --pvc-form-label         label colour            (primary)
     --pvc-form-muted         hint text               (--pvc-muted)
     --pvc-form-border        soft borders / dividers (--pvc-border)
     --pvc-form-surface       tinted areas            (--pvc-surface-alt)
     --pvc-form-radius        picker / box radius     (12px)
     --pvc-form-input-bg      field background        (#fff)
     --pvc-form-input-color   field text              (primary)
     --pvc-form-input-border  field border colour     (primary)
     --pvc-form-input-radius  field radius            (--pvc-radius, 5px)
     --pvc-form-focus-ring    focus ring              (rgba(216,18,19,.35))
     --pvc-form-dropzone-border  photo drop zone dashes (--pvc-form-border / navy .28)
     --pvc-form-error-bg / --pvc-form-error-text  error message box (#FDF0F0 / primary)
   Field/button/checkbox rules are high-specificity (they must beat the kit); label and
   body-text colours are low-specificity or inherited, so templates can restyle them.
   ========================================================== */

.pvc-entry-form [hidden] { display: none !important; }

.pvc-entry-form-wrap form.pvc-entry-form {
	font-family: inherit;
	text-align: left;
}

/* Text colours: LOW specificity (0,1,1) on purpose — Hello/kit don't colour labels, so this
   only has to beat Hello's bare `label` and pvc-frontend's `.pvc-form label`, while landing
   templates (e.g. `.pvh .pvc-form label`, (0,2,1)) can still recolour them. Body text is
   inherited from the page (navy on the brand kit) unless --pvc-form-text is set. */
form.pvc-entry-form :where(.pvc-field > label, .pvc-field-category-fixed .pvc-label) {
	color: var(--pvc-form-label, var(--pvc-primary, #04102E));
}
form.pvc-entry-form :where(.pvc-field-check > label) {
	color: var(--pvc-form-text, inherit);
}

/* ---------- Labels, hints, required marker ---------- */
.pvc-entry-form-wrap form.pvc-entry-form .pvc-field { margin: 0 0 20px; }

.pvc-entry-form-wrap form.pvc-entry-form .pvc-field > label,
.pvc-entry-form-wrap form.pvc-entry-form .pvc-field-category-fixed .pvc-label {
	display: block;
	margin: 0 0 8px;
	padding: 0;
	font-family: inherit;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0;
	text-transform: none;
	vertical-align: baseline;
}

.pvc-entry-form-wrap form.pvc-entry-form .pvc-req {
	color: var(--pvc-accent, #D81213);
	font-weight: 700;
}

.pvc-entry-form-wrap form.pvc-entry-form .pvc-hint {
	display: block;
	margin-top: 6px;
	color: var(--pvc-form-muted, var(--pvc-muted, #4A5468));
	font-size: 14px;
	line-height: 1.45;
}

.pvc-entry-form-wrap form.pvc-entry-form .pvc-required-note {
	margin: 0 0 18px;
	color: var(--pvc-form-muted, var(--pvc-muted, #4A5468));
	font-size: 14px;
	line-height: 1.4;
}

/* ---------- Text fields, select, textarea ---------- */
.pvc-entry-form-wrap form.pvc-entry-form input[type="text"],
.pvc-entry-form-wrap form.pvc-entry-form input[type="email"],
.pvc-entry-form-wrap form.pvc-entry-form input[type="tel"],
.pvc-entry-form-wrap form.pvc-entry-form input[type="url"],
.pvc-entry-form-wrap form.pvc-entry-form input[type="number"],
.pvc-entry-form-wrap form.pvc-entry-form select,
.pvc-entry-form-wrap form.pvc-entry-form textarea {
	display: block;
	width: 100%;
	max-width: 100%;
	min-height: 50px;
	margin: 0;
	padding: 12px 16px;
	border: 2px solid var(--pvc-form-input-border, var(--pvc-primary, #04102E));
	border-radius: var(--pvc-form-input-radius, var(--pvc-radius, 5px));
	background-color: var(--pvc-form-input-bg, var(--pvc-surface, #FFFFFF));
	background-image: none;
	box-shadow: none;
	color: var(--pvc-form-input-color, var(--pvc-primary, #04102E));
	font-family: inherit;
	font-size: 16px; /* ≥16px: no zoom-on-focus on iOS */
	font-weight: 400;
	line-height: 1.4;
	letter-spacing: normal;
	text-transform: none;
	outline: none;
	transition: border-color .15s ease, box-shadow .15s ease;
}

.pvc-entry-form-wrap form.pvc-entry-form textarea {
	min-height: 128px;
	resize: vertical;
}

/* Custom chevron (Hello/kit leave the native one, which ignores the brand border). */
.pvc-entry-form-wrap form.pvc-entry-form select {
	padding-right: 44px;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1.5 1.5 7 7l5.5-5.5' fill='none' stroke='%2304102E' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 16px center;
	background-size: 14px 9px;
	cursor: pointer;
}
.pvc-entry-form-wrap form.pvc-entry-form select::-ms-expand { display: none; }

.pvc-entry-form-wrap form.pvc-entry-form input::placeholder,
.pvc-entry-form-wrap form.pvc-entry-form textarea::placeholder {
	color: var(--pvc-form-muted, var(--pvc-muted, #4A5468));
	opacity: .75;
}

.pvc-entry-form-wrap form.pvc-entry-form input[type="text"]:focus,
.pvc-entry-form-wrap form.pvc-entry-form input[type="email"]:focus,
.pvc-entry-form-wrap form.pvc-entry-form input[type="tel"]:focus,
.pvc-entry-form-wrap form.pvc-entry-form input[type="url"]:focus,
.pvc-entry-form-wrap form.pvc-entry-form input[type="number"]:focus,
.pvc-entry-form-wrap form.pvc-entry-form select:focus,
.pvc-entry-form-wrap form.pvc-entry-form textarea:focus {
	border-color: var(--pvc-form-input-border, var(--pvc-primary, #04102E));
	box-shadow: 0 0 0 3px var(--pvc-form-focus-ring, rgba(216, 18, 19, .35));
	outline: none;
}

/* ---------- Single (fixed) category ---------- */
.pvc-entry-form-wrap form.pvc-entry-form .pvc-category-fixed {
	display: inline-block;
	padding: 8px 16px 6px;
	border: 2px solid var(--pvc-form-input-border, var(--pvc-primary, #04102E));
	border-radius: 999px;
	background: var(--pvc-form-input-bg, #FFFFFF);
	color: var(--pvc-form-input-color, var(--pvc-primary, #04102E));
	font-size: 15px;
	font-weight: 700;
	line-height: 1.3;
}

/* ---------- Buttons (brand button spec) ---------- */
.pvc-entry-form-wrap form.pvc-entry-form button.pvc-entry-submit,
.pvc-entry-form-wrap form.pvc-entry-form button.pvc-photo-add {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: auto;
	min-width: 0;
	min-height: 48px;
	margin: 0;
	padding: .875em 1.5em .5em; /* Nexa sits high in its line box (site buttons: 14px 20px 8px) */
	border: 0;
	border-radius: var(--pvc-radius, 5px);
	background-color: var(--pvc-accent, #D81213);
	background-image: none;
	box-shadow: 0 5px 15px -10px rgba(0, 0, 0, .5);
	color: var(--pvc-accent-contrast, #FFFFFF);
	font-family: inherit;
	font-size: 16px;
	font-weight: 900;
	line-height: 1.2;
	letter-spacing: .02em;
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
	white-space: normal;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	-webkit-user-select: none;
	user-select: none;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease, box-shadow .15s ease, transform .08s ease;
}

.pvc-entry-form-wrap form.pvc-entry-form button.pvc-entry-submit:hover:not(:disabled),
.pvc-entry-form-wrap form.pvc-entry-form button.pvc-entry-submit:focus:not(:disabled) {
	background-color: var(--pvc-accent-hover, #B80F10);
	color: var(--pvc-accent-contrast, #FFFFFF);
	text-decoration: none;
}

.pvc-entry-form-wrap form.pvc-entry-form button.pvc-entry-submit:active:not(:disabled),
.pvc-entry-form-wrap form.pvc-entry-form button.pvc-photo-add:active:not(:disabled) {
	transform: translateY(1px);
}

.pvc-entry-form-wrap form.pvc-entry-form button.pvc-entry-submit:focus-visible,
.pvc-entry-form-wrap form.pvc-entry-form button.pvc-photo-add:focus-visible,
.pvc-entry-form-wrap form.pvc-entry-form button.pvc-photo-remove:focus-visible {
	outline: none;
	box-shadow: 0 0 0 3px var(--pvc-form-focus-ring, rgba(216, 18, 19, .35));
}

.pvc-entry-form-wrap form.pvc-entry-form button.pvc-entry-submit:disabled,
.pvc-entry-form-wrap form.pvc-entry-form button.pvc-photo-add:disabled {
	opacity: .55;
	cursor: not-allowed;
	box-shadow: none;
}

.pvc-entry-form-wrap form.pvc-entry-form .pvc-actions { margin: 26px 0 0; }
.pvc-entry-form-wrap form.pvc-entry-form button.pvc-entry-submit { min-width: 220px; }

/* "Add photo(s)" / "Replace photo" — secondary (ghost) button: white, navy text + border. */
.pvc-entry-form-wrap form.pvc-entry-form button.pvc-photo-add {
	min-height: 46px;
	border: 2px solid var(--pvc-primary, #04102E);
	background-color: var(--pvc-surface, #FFFFFF);
	box-shadow: none;
	color: var(--pvc-primary, #04102E);
	font-size: 15px;
}
.pvc-entry-form-wrap form.pvc-entry-form button.pvc-photo-add:hover:not(:disabled),
.pvc-entry-form-wrap form.pvc-entry-form button.pvc-photo-add:focus:not(:disabled) {
	border-color: var(--pvc-primary, #04102E);
	background-color: var(--pvc-primary, #04102E);
	color: var(--pvc-primary-contrast, #FFFFFF);
	text-decoration: none;
}

/* ---------- Checkboxes / radios (kit gives them 2px borders + 12px 16px padding) ---------- */
.pvc-entry-form-wrap form.pvc-entry-form .pvc-field-check { margin: 0 0 14px; }

.pvc-entry-form-wrap form.pvc-entry-form .pvc-field-check > label {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin: 0;
	padding: 0;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.5;
	text-transform: none;
	cursor: pointer;
}

.pvc-entry-form-wrap form.pvc-entry-form .pvc-field-check input[type="checkbox"],
.pvc-entry-form-wrap form.pvc-entry-form .pvc-field input[type="radio"] {
	flex: 0 0 22px;
	width: 22px;
	min-width: 22px;
	height: 22px;
	min-height: 0;
	margin: 1px 0 0;
	padding: 0;
	border: 2px solid var(--pvc-form-input-border, var(--pvc-primary, #04102E));
	border-radius: 4px;
	background-color: var(--pvc-form-input-bg, #FFFFFF);
	background-image: none;
	background-position: center;
	background-repeat: no-repeat;
	background-size: 14px 11px;
	box-shadow: none;
	color: inherit;
	vertical-align: top;
	cursor: pointer;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	transition: background-color .12s ease, border-color .12s ease, box-shadow .12s ease;
}
.pvc-entry-form-wrap form.pvc-entry-form .pvc-field input[type="radio"] { border-radius: 50%; }

.pvc-entry-form-wrap form.pvc-entry-form .pvc-field-check input[type="checkbox"]:checked {
	border-color: var(--pvc-accent, #D81213);
	background-color: var(--pvc-accent, #D81213);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='11' viewBox='0 0 14 11'%3E%3Cpath d='M1.5 5.6 5.2 9.2 12.5 1.8' fill='none' stroke='%23FFFFFF' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.pvc-entry-form-wrap form.pvc-entry-form .pvc-field input[type="radio"]:checked {
	border-color: var(--pvc-accent, #D81213);
	box-shadow: inset 0 0 0 4px var(--pvc-form-input-bg, #FFFFFF);
	background-color: var(--pvc-accent, #D81213);
}

.pvc-entry-form-wrap form.pvc-entry-form .pvc-field-check input[type="checkbox"]:focus,
.pvc-entry-form-wrap form.pvc-entry-form .pvc-field-check input[type="checkbox"]:focus-visible {
	outline: none;
	box-shadow: 0 0 0 3px var(--pvc-form-focus-ring, rgba(216, 18, 19, .35));
}
.pvc-entry-form-wrap form.pvc-entry-form .pvc-field-check input[type="checkbox"]:focus:not(:focus-visible) { box-shadow: none; }

.pvc-entry-form-wrap form.pvc-entry-form .pvc-check-text { flex: 1 1 auto; min-width: 0; }

.pvc-entry-form-wrap form.pvc-entry-form .pvc-check-text a,
.pvc-entry-form-wrap form.pvc-entry-form .pvc-rules-body a,
.pvc-entry-form-wrap form.pvc-entry-form .pvc-disclaimer a,
.pvc-entry-form-wrap form.pvc-entry-form .pvc-message a {
	color: inherit;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 2px;
}
.pvc-entry-form-wrap form.pvc-entry-form .pvc-check-text a:hover,
.pvc-entry-form-wrap form.pvc-entry-form .pvc-rules-body a:hover,
.pvc-entry-form-wrap form.pvc-entry-form .pvc-disclaimer a:hover {
	color: var(--pvc-accent, #D81213);
}

/* ---------- Agreements block ---------- */
.pvc-entry-form-wrap form.pvc-entry-form .pvc-agreements {
	margin-top: 26px;
	padding-top: 22px;
	border-top: 1px solid var(--pvc-form-border, var(--pvc-border, rgba(4, 16, 46, .12)));
}

/* Inline collapsible contest rules */
.pvc-entry-form-wrap form.pvc-entry-form .pvc-rules {
	display: block;
	margin: 10px 0 0 34px;
	border: 1px solid var(--pvc-form-border, var(--pvc-border, rgba(4, 16, 46, .12)));
	border-radius: var(--pvc-radius, 5px);
	background: var(--pvc-form-surface, var(--pvc-surface-alt, #F5F5F5));
}
.pvc-entry-form-wrap form.pvc-entry-form .pvc-rules > summary {
	display: block;
	padding: 10px 14px;
	color: var(--pvc-accent, #D81213);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: .04em;
	text-transform: uppercase;
	list-style: none;
	cursor: pointer;
}
.pvc-entry-form-wrap form.pvc-entry-form .pvc-rules > summary::-webkit-details-marker { display: none; }
.pvc-entry-form-wrap form.pvc-entry-form .pvc-rules > summary::marker { content: ""; }
.pvc-entry-form-wrap form.pvc-entry-form .pvc-rules > summary::before {
	content: "\25B8";
	display: inline-block;
	margin-right: 8px;
	transition: transform .15s ease;
}
.pvc-entry-form-wrap form.pvc-entry-form .pvc-rules[open] > summary::before { transform: rotate(90deg); }
.pvc-entry-form-wrap form.pvc-entry-form .pvc-rules > summary:focus { outline: none; }
.pvc-entry-form-wrap form.pvc-entry-form .pvc-rules > summary:focus-visible {
	border-radius: var(--pvc-radius, 5px);
	box-shadow: 0 0 0 3px var(--pvc-form-focus-ring, rgba(216, 18, 19, .35));
}
.pvc-entry-form-wrap form.pvc-entry-form .pvc-rules-body {
	max-height: 340px;
	overflow-y: auto;
	padding: 0 16px 14px;
	color: var(--pvc-form-text, inherit);
	font-size: 15px;
	line-height: 1.6;
}
.pvc-entry-form-wrap form.pvc-entry-form .pvc-rules-body > :first-child { margin-top: 0; }
.pvc-entry-form-wrap form.pvc-entry-form .pvc-rules-body > :last-child { margin-bottom: 0; }
.pvc-entry-form-wrap form.pvc-entry-form .pvc-rules-body p { margin: 0 0 10px; }
.pvc-entry-form-wrap form.pvc-entry-form .pvc-rules-body ul,
.pvc-entry-form-wrap form.pvc-entry-form .pvc-rules-body ol { margin: 0 0 10px 20px; padding: 0; }
.pvc-entry-form-wrap form.pvc-entry-form .pvc-rules-body li { margin: 0 0 4px; }

/* Disqualification disclaimer (only rendered once the client confirmed the wording) */
.pvc-entry-form-wrap form.pvc-entry-form .pvc-disclaimer {
	margin: 10px 0 16px 34px;
	color: var(--pvc-form-muted, var(--pvc-muted, #4A5468));
	font-size: 13px;
	line-height: 1.55;
}
.pvc-entry-form-wrap form.pvc-entry-form .pvc-agreements > .pvc-disclaimer { margin-left: 0; }
.pvc-entry-form-wrap form.pvc-entry-form .pvc-disclaimer p { margin: 0 0 6px; }
.pvc-entry-form-wrap form.pvc-entry-form .pvc-disclaimer p:last-child { margin-bottom: 0; }

/* ---------- Photo picker ---------- */
.pvc-entry-form-wrap form.pvc-entry-form .pvc-photo-picker { position: relative; }

/* Not enhanced (no JS / old browser): style the native file input. */
.pvc-entry-form-wrap form.pvc-entry-form input[type="file"] {
	display: block;
	width: 100%;
	max-width: 100%;
	min-height: 0;
	margin: 0;
	padding: 14px;
	border: 2px dashed var(--pvc-form-input-border, var(--pvc-primary, #04102E));
	border-radius: var(--pvc-form-input-radius, var(--pvc-radius, 5px));
	background: var(--pvc-form-surface, var(--pvc-surface-alt, #F5F5F5));
	box-shadow: none;
	color: var(--pvc-form-input-color, var(--pvc-primary, #04102E));
	font-family: inherit;
	font-size: 15px;
	line-height: 1.4;
	cursor: pointer;
}
.pvc-entry-form-wrap form.pvc-entry-form input[type="file"]::file-selector-button {
	margin-right: 14px;
	padding: 10px 16px 7px;
	border: 2px solid var(--pvc-primary, #04102E);
	border-radius: var(--pvc-radius, 5px);
	background: var(--pvc-surface, #FFFFFF);
	color: var(--pvc-primary, #04102E);
	font-family: inherit;
	font-size: 14px;
	font-weight: 900;
	text-transform: uppercase;
	cursor: pointer;
}
.pvc-entry-form-wrap form.pvc-entry-form input[type="file"]::-webkit-file-upload-button {
	margin-right: 14px;
	padding: 10px 16px 7px;
	border: 2px solid var(--pvc-primary, #04102E);
	border-radius: var(--pvc-radius, 5px);
	background: var(--pvc-surface, #FFFFFF);
	color: var(--pvc-primary, #04102E);
	font-family: inherit;
	font-size: 14px;
	font-weight: 900;
	text-transform: uppercase;
	cursor: pointer;
}

/* Enhanced picker = drop zone. */
.pvc-entry-form-wrap form.pvc-entry-form .pvc-photo-picker.is-enhanced {
	padding: 22px 20px;
	border: 2px dashed var(--pvc-form-dropzone-border, var(--pvc-form-border, rgba(4, 16, 46, .28)));
	border-radius: var(--pvc-form-radius, var(--pvc-card-radius, 12px));
	background: var(--pvc-form-surface, var(--pvc-surface-alt, #F5F5F5));
	transition: border-color .15s ease, background-color .15s ease;
}
.pvc-entry-form-wrap form.pvc-entry-form .pvc-photo-picker.is-dragover {
	border-color: var(--pvc-accent, #D81213);
	background: rgba(216, 18, 19, .05);
}

/* The native input stays in the DOM (DataTransfer sync, accessibility) but is visually replaced. */
.pvc-entry-form-wrap form.pvc-entry-form .pvc-photo-picker.is-enhanced input.pvc-photo-input {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	min-height: 0 !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
	opacity: 0;
}

.pvc-entry-form-wrap form.pvc-entry-form .pvc-photo-actions {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
	text-align: center;
}
/* Red line "photo" icon above the button while the drop zone is empty. */
.pvc-entry-form-wrap form.pvc-entry-form .pvc-photo-actions::before {
	content: "";
	display: block;
	width: 40px;
	height: 40px;
	background-color: var(--pvc-accent, #D81213);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8.5A2.5 2.5 0 0 1 5.5 6h1.6l1.4-2h7l1.4 2h1.6A2.5 2.5 0 0 1 21 8.5v9A2.5 2.5 0 0 1 18.5 20h-13A2.5 2.5 0 0 1 3 17.5z'/%3E%3Ccircle cx='12' cy='12.5' r='3.8'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8.5A2.5 2.5 0 0 1 5.5 6h1.6l1.4-2h7l1.4 2h1.6A2.5 2.5 0 0 1 21 8.5v9A2.5 2.5 0 0 1 18.5 20h-13A2.5 2.5 0 0 1 3 17.5z'/%3E%3Ccircle cx='12' cy='12.5' r='3.8'/%3E%3C/svg%3E") center / contain no-repeat;
}
.pvc-entry-form-wrap form.pvc-entry-form .pvc-photo-picker.has-photos .pvc-photo-actions {
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: flex-start;
	gap: 8px 14px;
	text-align: left;
}
.pvc-entry-form-wrap form.pvc-entry-form .pvc-photo-picker.has-photos .pvc-photo-actions::before { display: none; }

.pvc-entry-form-wrap form.pvc-entry-form .pvc-photo-drop-hint {
	color: var(--pvc-form-muted, var(--pvc-muted, #4A5468));
	font-size: 14px;
	line-height: 1.4;
}
.pvc-entry-form-wrap form.pvc-entry-form .pvc-photo-picker.is-full .pvc-photo-drop-hint { display: none; }

/* Preview grid */
.pvc-entry-form-wrap form.pvc-entry-form .pvc-photo-previews {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(112px, 1fr));
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.pvc-entry-form-wrap form.pvc-entry-form .pvc-photo-picker.has-photos .pvc-photo-previews { margin-top: 18px; }

.pvc-entry-form-wrap form.pvc-entry-form .pvc-photo-item {
	position: relative;
	min-width: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}
.pvc-entry-form-wrap form.pvc-entry-form .pvc-photo-item::before,
.pvc-entry-form-wrap form.pvc-entry-form .pvc-photo-item::marker { content: none; }

.pvc-entry-form-wrap form.pvc-entry-form .pvc-photo-frame {
	position: relative;
	overflow: hidden;
	aspect-ratio: 1 / 1;
	border: 1px solid var(--pvc-form-border, var(--pvc-border, rgba(4, 16, 46, .12)));
	border-radius: 10px;
	background: var(--pvc-surface, #FFFFFF);
	box-shadow: 0 6px 16px -12px rgba(4, 16, 46, .45);
}
@supports not (aspect-ratio: 1 / 1) {
	.pvc-entry-form-wrap form.pvc-entry-form .pvc-photo-frame { height: 0; padding-top: 100%; }
}

.pvc-entry-form-wrap form.pvc-entry-form .pvc-photo-thumb {
	position: absolute;
	top: 0;
	left: 0;
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	margin: 0;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	object-fit: cover;
}
.pvc-entry-form-wrap form.pvc-entry-form .pvc-photo-placeholder {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--pvc-primary, #04102E);
	font-size: 13px;
	font-weight: 800;
	letter-spacing: .08em;
	opacity: .55;
}

.pvc-entry-form-wrap form.pvc-entry-form .pvc-photo-progress {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 6px;
	background: rgba(4, 16, 46, .66);
	color: #FFFFFF;
	font-size: 11px;
	font-weight: 700;
	line-height: 1.3;
	text-align: center;
}
.pvc-entry-form-wrap form.pvc-entry-form .pvc-photo-spinner {
	width: 22px;
	height: 22px;
	border: 3px solid rgba(255, 255, 255, .35);
	border-top-color: #FFFFFF;
	border-radius: 50%;
	animation: pvc-form-spin .7s linear infinite;
}
@keyframes pvc-form-spin { to { transform: rotate(360deg); } }

.pvc-entry-form-wrap form.pvc-entry-form .pvc-photo-badge {
	position: absolute;
	left: 6px;
	bottom: 6px;
	padding: 3px 8px 2px;
	border-radius: 3px;
	background: var(--pvc-accent, #D81213);
	color: var(--pvc-accent-contrast, #FFFFFF);
	font-size: 10px;
	font-weight: 900;
	line-height: 1.5;
	letter-spacing: .06em;
	text-transform: uppercase;
	pointer-events: none;
}

/* Small round remove control — full reset of Hello/kit button styles. */
.pvc-entry-form-wrap form.pvc-entry-form button.pvc-photo-remove {
	position: absolute;
	top: 6px;
	right: 6px;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	min-width: 0;
	min-height: 0;
	margin: 0;
	padding: 0;
	border: 2px solid #FFFFFF;
	border-radius: 50%;
	background: var(--pvc-primary, #04102E);
	box-shadow: 0 2px 6px rgba(0, 0, 0, .3);
	color: #FFFFFF;
	font-family: inherit;
	font-size: 18px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0;
	text-transform: none;
	white-space: nowrap;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	transition: background-color .15s ease, transform .1s ease;
}
.pvc-entry-form-wrap form.pvc-entry-form button.pvc-photo-remove:hover:not(:disabled),
.pvc-entry-form-wrap form.pvc-entry-form button.pvc-photo-remove:focus:not(:disabled) {
	background: var(--pvc-accent, #D81213);
	color: #FFFFFF;
}
.pvc-entry-form-wrap form.pvc-entry-form button.pvc-photo-remove:active:not(:disabled) { transform: scale(.94); }
.pvc-entry-form-wrap form.pvc-entry-form button.pvc-photo-remove:disabled { opacity: .5; cursor: not-allowed; }

.pvc-entry-form-wrap form.pvc-entry-form .pvc-photo-name,
.pvc-entry-form-wrap form.pvc-entry-form .pvc-photo-note {
	display: block;
	margin-top: 6px;
	overflow: hidden;
	color: var(--pvc-form-text, inherit);
	font-size: 12px;
	line-height: 1.35;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.pvc-entry-form-wrap form.pvc-entry-form .pvc-photo-note {
	margin-top: 2px;
	color: var(--pvc-form-muted, var(--pvc-muted, #4A5468));
	font-size: 11px;
	white-space: normal;
}

/* Live counter + status. `.pvc-photo-count` (pre-2.1 markup) is the gallery's dark badge
   class in pvc-frontend.css — neutralise it here so cached forms don't show a pill. */
.pvc-entry-form-wrap form.pvc-entry-form .pvc-photo-counter,
.pvc-entry-form-wrap form.pvc-entry-form .pvc-photo-picker .pvc-photo-count,
.pvc-entry-form-wrap form.pvc-entry-form .pvc-photo-status {
	display: block;
	margin: 12px 0 0;
	padding: 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
	color: var(--pvc-form-muted, var(--pvc-muted, #4A5468));
	font-size: 14px;
	font-weight: 400;
	line-height: 1.4;
	white-space: normal;
}
.pvc-entry-form-wrap form.pvc-entry-form .pvc-photo-status {
	color: var(--pvc-form-text, inherit);
	font-weight: 700;
}
.pvc-entry-form-wrap form.pvc-entry-form .pvc-photo-counter:empty,
.pvc-entry-form-wrap form.pvc-entry-form .pvc-photo-picker .pvc-photo-count:empty,
.pvc-entry-form-wrap form.pvc-entry-form .pvc-photo-status:empty { display: none; }

/* ---------- Character counter ---------- */
.pvc-entry-form-wrap form.pvc-entry-form .pvc-char-hint .pvc-chars-remaining { font-weight: 700; }
.pvc-entry-form-wrap form.pvc-entry-form .pvc-char-hint.is-low .pvc-chars-remaining {
	color: var(--pvc-error, var(--pvc-accent, #D81213));
}

/* ---------- Inline errors ---------- */
.pvc-entry-form-wrap form.pvc-entry-form .pvc-field.has-error input[type="text"],
.pvc-entry-form-wrap form.pvc-entry-form .pvc-field.has-error input[type="email"],
.pvc-entry-form-wrap form.pvc-entry-form .pvc-field.has-error input[type="tel"],
.pvc-entry-form-wrap form.pvc-entry-form .pvc-field.has-error input[type="url"],
.pvc-entry-form-wrap form.pvc-entry-form .pvc-field.has-error input[type="number"],
.pvc-entry-form-wrap form.pvc-entry-form .pvc-field.has-error select,
.pvc-entry-form-wrap form.pvc-entry-form .pvc-field.has-error textarea {
	border-color: var(--pvc-error, var(--pvc-accent, #D81213));
	background-color: #FFF7F7;
}
.pvc-entry-form-wrap form.pvc-entry-form .pvc-field.has-error input:focus,
.pvc-entry-form-wrap form.pvc-entry-form .pvc-field.has-error select:focus,
.pvc-entry-form-wrap form.pvc-entry-form .pvc-field.has-error textarea:focus {
	border-color: var(--pvc-error, var(--pvc-accent, #D81213));
}
.pvc-entry-form-wrap form.pvc-entry-form .pvc-field.has-error .pvc-photo-picker.is-enhanced {
	border-color: var(--pvc-error, var(--pvc-accent, #D81213));
	background: rgba(216, 18, 19, .06);
}
.pvc-entry-form-wrap form.pvc-entry-form .pvc-field-check.has-error input[type="checkbox"] {
	border-color: var(--pvc-error, var(--pvc-accent, #D81213));
	box-shadow: 0 0 0 3px rgba(216, 18, 19, .18);
}
.pvc-entry-form-wrap form.pvc-entry-form .pvc-field-error {
	display: flex;
	align-items: flex-start;
	gap: 6px;
	margin-top: 8px;
	color: var(--pvc-error, var(--pvc-accent, #D81213));
	font-size: 14px;
	font-weight: 700;
	line-height: 1.45;
}
.pvc-entry-form-wrap form.pvc-entry-form .pvc-field-error::before {
	content: "!";
	flex: 0 0 18px;
	width: 18px;
	height: 18px;
	margin-top: 1px;
	border-radius: 50%;
	background: var(--pvc-error, var(--pvc-accent, #D81213));
	color: #FFFFFF;
	font-size: 12px;
	font-weight: 900;
	line-height: 18px;
	text-align: center;
}
.pvc-entry-form-wrap form.pvc-entry-form .pvc-field-check .pvc-field-error { margin-left: 34px; }

/* ---------- Form message (live region) ---------- */
.pvc-entry-form-wrap form.pvc-entry-form .pvc-message { margin-top: 18px; font-size: 16px; line-height: 1.5; }
.pvc-entry-form-wrap form.pvc-entry-form .pvc-message:empty { display: none; }
.pvc-entry-form-wrap form.pvc-entry-form .pvc-message.is-error,
.pvc-entry-form-wrap form.pvc-entry-form .pvc-message.is-success,
.pvc-entry-form-wrap form.pvc-entry-form .pvc-message.is-info,
.pvc-entry-form-wrap form.pvc-entry-form .pvc-message.is-warning {
	padding: 14px 18px;
	border: 0;
	border-left: 4px solid var(--pvc-primary, #04102E);
	border-radius: var(--pvc-radius, 5px);
	background: var(--pvc-form-surface, var(--pvc-surface-alt, #F5F5F5));
	color: var(--pvc-form-text, inherit);
}
/* Light box with explicit navy text: readable on light and dark designs alike. */
.pvc-entry-form-wrap form.pvc-entry-form .pvc-message.is-error {
	border-left-color: var(--pvc-error, var(--pvc-accent, #D81213));
	background: var(--pvc-form-error-bg, #FDF0F0);
	color: var(--pvc-form-error-text, var(--pvc-primary, #04102E));
}
.pvc-entry-form-wrap form.pvc-entry-form .pvc-message.is-success {
	border-left-color: var(--pvc-accent, #D81213);
	font-weight: 700;
}
.pvc-entry-form-wrap form.pvc-entry-form .pvc-message .pvc-error-intro { display: block; font-weight: 700; }
.pvc-entry-form-wrap form.pvc-entry-form .pvc-message .pvc-error-list { margin: 6px 0 0 20px; padding: 0; list-style: disc; }
.pvc-entry-form-wrap form.pvc-entry-form .pvc-message .pvc-error-list li { margin: 2px 0; }

/* ---------- Busy / preview states ---------- */
.pvc-entry-form-wrap form.pvc-entry-form.is-submitting button.pvc-entry-submit::after {
	content: "";
	display: inline-block;
	flex: 0 0 auto;
	width: 14px;
	height: 14px;
	margin: -4px 0 0;
	border: 2px solid currentColor;
	border-right-color: transparent;
	border-radius: 50%;
	animation: pvc-form-spin .7s linear infinite;
}
.pvc-entry-form-wrap form.pvc-entry-form.is-preview button.pvc-entry-submit { cursor: not-allowed; }

/* ---------- Closed / admin notices ---------- */
.pvc-entry-form-wrap .pvc-notice.pvc-form-closed {
	margin: 0 0 20px;
	padding: 18px 20px;
	border: 0;
	border-left: 4px solid var(--pvc-accent, #D81213);
	border-radius: var(--pvc-radius, 5px);
	background: var(--pvc-form-surface, var(--pvc-surface-alt, #F5F5F5));
	color: var(--pvc-form-text, inherit);
	font-size: 16px;
	line-height: 1.5;
}
.pvc-entry-form-wrap .pvc-form-closed p { margin: 0; }
.pvc-entry-form-wrap .pvc-form-closed p:first-child { font-weight: 700; }
.pvc-entry-form-wrap .pvc-form-closed p + p { margin-top: 6px; }

.pvc-form-wrap .pvc-admin-note {
	margin: 0 0 16px;
	padding: 10px 14px;
	border: 0;
	border-left: 4px solid #D97706;
	border-radius: 0 5px 5px 0;
	background: #FFFBEB;
	color: #78350F;
	font-size: 14px;
	line-height: 1.5;
}
.pvc-form-wrap .pvc-admin-note a { color: inherit; font-weight: 700; text-decoration: underline; }
.pvc-entry-form-wrap form.pvc-entry-form .pvc-agreements .pvc-admin-note { margin-top: 4px; }

/* ---------- Small screens ---------- */
@media (max-width: 480px) {
	.pvc-entry-form-wrap form.pvc-entry-form .pvc-photo-picker.is-enhanced { padding: 16px 14px; }
	.pvc-entry-form-wrap form.pvc-entry-form .pvc-photo-previews { grid-template-columns: repeat(auto-fill, minmax(92px, 1fr)); gap: 10px; }
	.pvc-entry-form-wrap form.pvc-entry-form .pvc-photo-actions button.pvc-photo-add,
	.pvc-entry-form-wrap form.pvc-entry-form button.pvc-entry-submit { width: 100%; min-width: 0; }
	.pvc-entry-form-wrap form.pvc-entry-form .pvc-photo-drop-hint { display: none; }
	.pvc-entry-form-wrap form.pvc-entry-form .pvc-rules,
	.pvc-entry-form-wrap form.pvc-entry-form .pvc-disclaimer,
	.pvc-entry-form-wrap form.pvc-entry-form .pvc-field-check .pvc-field-error { margin-left: 0; }
}

@media (prefers-reduced-motion: reduce) {
	.pvc-entry-form-wrap form.pvc-entry-form .pvc-photo-spinner,
	.pvc-entry-form-wrap form.pvc-entry-form.is-submitting button.pvc-entry-submit::after { animation: none; }
	.pvc-entry-form-wrap form.pvc-entry-form .pvc-photo-picker.is-enhanced,
	.pvc-entry-form-wrap form.pvc-entry-form button.pvc-photo-remove,
	.pvc-entry-form-wrap form.pvc-entry-form button.pvc-entry-submit,
	.pvc-entry-form-wrap form.pvc-entry-form button.pvc-photo-add,
	.pvc-entry-form-wrap form.pvc-entry-form .pvc-rules > summary::before { transition: none; }
}
