/* Simplified Awards — Public Stylesheet — S13H
 *
 * Selector root: .nsp-awards-simplified
 * ff-public-* anatomy classes are scoped inside that root.
 * All visual values reference --nsp-awards-simplified-* CSS variables from StyleRenderer.
 * Theme fallbacks are inline so the feature works without operator style config.
 * No theme resets, no WPBakery or third-party selector references.
 *
 * Container: max-width 1280px. At 390px viewport the container is exactly 390px.
 * Tables scroll horizontally inside their own container (UI-A16).
 */

.{
	font-family: var(--nsp-awards-simplified-font-family, inherit);
	font-size:   var(--nsp-awards-simplified-font-size,   inherit);
	color:       var(--nsp-awards-simplified-text,        inherit);
	background:  var(--nsp-awards-simplified-bg,          transparent);
	max-width:   1280px;
	width:       100%;
	box-sizing:  border-box;
	margin-left: auto;
	margin-right: auto;
}

/* ---- Public Family Favorites navigation (UI-A03) ---- */

.nsp-awards-ff-public-nav {
	display:         flex;
	flex-wrap:       wrap;
	gap:             0;
	border-bottom:   2px solid var(--nsp-awards-simplified-form-border, #ddd);
	margin-bottom:   1.5em;
}

.nsp-awards-ff-public-nav__link {
	display:         inline-block;
	padding:         0.55em 1.25em;
	font-weight:     600;
	text-decoration: none;
	color:           var(--nsp-awards-simplified-primary, #0073aa);
	border-bottom:   3px solid transparent;
	margin-bottom:   -2px;
}

.nsp-awards-ff-public-nav__link[aria-current="page"] {
	color:        var(--nsp-awards-simplified-btn-bg, #0073aa);
	border-color: var(--nsp-awards-simplified-btn-bg, #0073aa);
}

.nsp-awards-ff-public-nav__link:focus-visible {
	outline:        2px solid var(--nsp-awards-simplified-form-focus, #0073aa);
	outline-offset: 2px;
}

/* ---- ff-public anatomy classes ---- */

.ff-public-heading {
	margin-bottom: 0.35em;
	font-size:     1.375em;
	font-weight:   700;
	color:         var(--nsp-awards-simplified-text, inherit);
}

.ff-public-intro {
	margin-bottom: 1.25em;
	color:         var(--nsp-awards-simplified-text, inherit);
}

.ff-public-meta {
	font-size: 0.875em;
	color:     #666;
	margin-top: 0.75em;
}

/* Grid form layout */
.ff-public-grid {
	display:               grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap:                   0.875em 1.25em;
	margin-bottom:         1em;
}

.ff-public-field {
	display:     flex;
	flex-direction: column;
	gap:         0.25em;
	font-weight: 600;
	font-size:   0.9375em;
}

.ff-public-field[data-wide="true"] {
	grid-column: 1 / -1;
}

.ff-public-field input,
.ff-public-field select,
.ff-public-field textarea {
	display:       block;
	width:         100%;
	box-sizing:    border-box;
	padding:       0.45em 0.65em;
	border:        1px solid var(--nsp-awards-simplified-form-border, #bbb);
	border-radius: var(--nsp-awards-simplified-form-radius, 4px);
	font-size:     1em;
	font-family:   inherit;
	font-weight:   400;
	background:    #fff;
	color:         inherit;
}

.ff-public-field input:focus,
.ff-public-field select:focus,
.ff-public-field textarea:focus {
	outline:        2px solid var(--nsp-awards-simplified-form-focus, #0073aa);
	outline-offset: 1px;
	border-color:   var(--nsp-awards-simplified-form-focus, #0073aa);
}

.ff-public-field span {
	font-weight: 400;
	color:       #666;
}

/* Error state */
.ff-public-field--error input,
.ff-public-field--error select,
.ff-public-field--error textarea {
	border-color: #c00;
}

.ff-public-error-text {
	color:     #c00;
	font-size: 0.875em;
	font-weight: 400;
}

/* Error summary banner */
.ff-public-errors {
	border:        2px solid #c00;
	background:    #fff8f8;
	padding:       0.75em 1em;
	margin-bottom: 1em;
	border-radius: var(--nsp-awards-simplified-form-radius, 4px);
}

/* Nomination item block */
.ff-public-item {
	border:        1px solid var(--nsp-awards-simplified-form-border, #ddd);
	border-radius: var(--nsp-awards-simplified-form-radius, 4px);
	padding:       1em;
	margin-bottom: 1.25em;
}

.ff-public-item-actions {
	text-align:    right;
	margin-bottom: 0.75em;
}

/* Marketing consent checkbox */
.ff-public-check {
	display:       flex;
	align-items:   flex-start;
	gap:           0.5em;
	margin-bottom: 1em;
	font-weight:   400;
	cursor:        pointer;
}

.ff-public-check input[type="checkbox"] {
	margin-top: 0.2em;
	flex-shrink: 0;
}

/* Disclosure */
.ff-public-disclosure {
	font-size:   0.875em;
	margin-bottom: 1em;
	color:       #555;
}

/* Action button row */
.ff-public-actions {
	display:     flex;
	flex-wrap:   wrap;
	gap:         0.625em;
	margin-top:  1.5em;
	align-items: center;
}

.ff-public-action {
	display:         inline-block;
	padding:         var(--nsp-awards-simplified-btn-pad-y, 0.5em) var(--nsp-awards-simplified-btn-pad-x, 1.25em);
	background:      #f6f7f7;
	border:          1px solid #c3c4c7;
	border-radius:   var(--nsp-awards-simplified-btn-radius, 4px);
	cursor:          pointer;
	font-size:       1em;
	font-family:     inherit;
	font-weight:     600;
	text-decoration: none;
	color:           #1d2327;
	line-height:     1.4;
}

.ff-public-action[data-primary="true"],
.ff-public-action--primary {
	background:   var(--nsp-awards-simplified-btn-bg,     #0073aa);
	color:        var(--nsp-awards-simplified-btn-text,   #fff);
	border-color: var(--nsp-awards-simplified-btn-border, #006291);
}

.ff-public-action:focus-visible {
	outline:        2px solid var(--nsp-awards-simplified-form-focus, #0073aa);
	outline-offset: 2px;
}

/* Success checkmark circle */
.ff-public-success {
	width:         3.5em;
	height:        3.5em;
	border-radius: 50%;
	background:    var(--nsp-awards-simplified-btn-bg, #0073aa);
	color:         #fff;
	display:       flex;
	align-items:   center;
	justify-content: center;
	font-size:     1.5em;
	font-weight:   700;
	margin-bottom: 0.75em;
}

/* State panels (confirmation, closed, unavailable, pre-open) */
.ff-public-state {
	padding:    1.5em;
	text-align: center;
}

.ff-public-state .ff-public-success {
	margin-left:  auto;
	margin-right: auto;
}

/* Review summary items */
.ff-public-review-list {
	list-style: none;
	padding:    0;
	margin:     0 0 1em;
}

.ff-public-review-item {
	border:        1px solid var(--nsp-awards-simplified-form-border, #ddd);
	border-radius: var(--nsp-awards-simplified-form-radius, 4px);
	padding:       0.75em;
	margin-bottom: 0.625em;
}

.ff-public-review-item dl {
	display:               grid;
	grid-template-columns: max-content 1fr;
	gap:                   0.2em 0.75em;
	margin:                0;
}

.ff-public-review-item dt {
	font-weight: 600;
	color:       #555;
}

.ff-public-review-item dd {
	margin: 0;
}

/* Ballot: parish filter strip */
.ff-public-parishes {
	display:       flex;
	flex-wrap:     wrap;
	gap:           0.5em;
	margin-bottom: 1.25em;
}

.ff-public-parish-button {
	padding:       0.35em 0.875em;
	border:        1px solid var(--nsp-awards-simplified-form-border, #bbb);
	border-radius: var(--nsp-awards-simplified-btn-radius, 4px);
	background:    #fff;
	color:         var(--nsp-awards-simplified-primary, #0073aa);
	cursor:        pointer;
	font-size:     0.9375em;
	font-family:   inherit;
}

.ff-public-parish-button[aria-pressed="true"] {
	background:   var(--nsp-awards-simplified-btn-bg, #0073aa);
	color:        var(--nsp-awards-simplified-btn-text, #fff);
	border-color: var(--nsp-awards-simplified-btn-border, #006291);
}

.ff-public-parish-button:focus-visible {
	outline:        2px solid var(--nsp-awards-simplified-form-focus, #0073aa);
	outline-offset: 2px;
}

/* Ballot: category header */
.ff-public-category-heading {
	font-size:     1em;
	font-weight:   700;
	margin:        1.25em 0 0.5em;
	display:       flex;
	align-items:   baseline;
	gap:           0.5em;
}

.ff-public-scope {
	font-size:  0.8125em;
	font-weight: 400;
	color:      #666;
}

/* Ballot: nominee row */
.ff-public-nominee {
	display:         flex;
	align-items:     center;
	justify-content: space-between;
	padding:         0.5em 0;
	border-bottom:   1px solid var(--nsp-awards-simplified-form-border, #eee);
	gap:             1em;
}

.ff-public-nominee > div {
	flex: 1;
}

.ff-public-nominee strong {
	display: block;
}

.ff-public-nominee .ff-public-meta {
	margin-top: 0.1em;
}

.ff-public-nominee-button {
	padding:       0.35em 0.875em;
	border:        1px solid var(--nsp-awards-simplified-form-border, #bbb);
	border-radius: var(--nsp-awards-simplified-btn-radius, 4px);
	background:    #fff;
	color:         var(--nsp-awards-simplified-primary, #0073aa);
	cursor:        pointer;
	font-size:     0.875em;
	font-family:   inherit;
	white-space:   nowrap;
}

.ff-public-nominee-button[aria-pressed="true"] {
	background:   var(--nsp-awards-simplified-btn-bg, #0073aa);
	color:        var(--nsp-awards-simplified-btn-text, #fff);
	border-color: var(--nsp-awards-simplified-btn-border, #006291);
}

.ff-public-nominee-button:focus-visible {
	outline:        2px solid var(--nsp-awards-simplified-form-focus, #0073aa);
	outline-offset: 2px;
}

/* Hidden real radio input (behind nominee button) */
.ff-public-nominee-radio {
	position: absolute;
	opacity:  0;
	width:    1px;
	height:   1px;
	overflow: hidden;
}

/* Vote review summary row */
.ff-public-summary {
	display:         flex;
	align-items:     center;
	justify-content: space-between;
	padding:         0.625em 0;
	border-bottom:   1px solid var(--nsp-awards-simplified-form-border, #eee);
	gap:             1em;
}

.ff-public-summary > div {
	flex: 1;
}

.ff-public-summary strong {
	display: block;
}

/* Submitter info section */
.ff-public-submitter {
	background:    #f9f9f9;
	border:        1px solid var(--nsp-awards-simplified-form-border, #ddd);
	border-radius: var(--nsp-awards-simplified-form-radius, 4px);
	padding:       0.875em 1em;
	margin-bottom: 1.25em;
	font-size:     0.9375em;
}

/* Scrollable table region */
.ff-public-table-wrap {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.ff-public-table-wrap table {
	min-width: max-content;
}

/* ---- Responsive ---- */
@media (max-width: 390px) {
	.ff-public-grid {
		grid-template-columns: 1fr;
	}

	.ff-public-actions {
		flex-direction: column;
		align-items:    stretch;
	}

	.ff-public-action {
		text-align: center;
	}

	.nsp-awards-ff-public-nav {
		flex-direction: row;
		overflow-x:     auto;
	}

	.nsp-awards-ff-public-nav__link {
		font-size: 0.875em;
		padding:   0.5em 0.875em;
	}
}

@media (prefers-reduced-motion: reduce) {
	.* {
		transition: none !important;
		animation:  none !important;
	}
}

@media (forced-colors: active) {
	.ff-public-action[data-primary="true"] {
		border: 2px solid ButtonText;
	}
}

/* --- S13H public conformance: business update --- */

.ff-public-grid {
	grid-template-columns: 1fr 1fr;
	gap: 13px;
}

.ff-public-state {
	padding:    0;
	text-align: left;
}

.ff-public-state .ff-public-success {
	margin-left:  0;
	margin-right: 0;
}

@media (max-width: 680px) {
	.ff-public-grid {
		grid-template-columns: 1fr;
	}
}

/* --- S13H public conformance: voting (states 4-8) --- */

.ff-public-heading {
	margin: 0 0 8px;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 30px;
	font-weight: 500;
}

.ff-public-intro {
	margin: 6px 0 17px;
	line-height: 1.5;
}

.ff-public-meta {
	font-size: 12px;
	color: #5f7480;
}

.p.ff-public-meta {
	margin: 6px 0 17px;
}

.ff-public-grid {
	grid-template-columns: 1fr 1fr;
	gap: 13px;
	margin-bottom: 0;
}

.ff-public-field {
	gap: 5px;
	font-size: 12px;
	font-weight: 500;
}

.ff-public-field input,
.ff-public-field select,
.ff-public-field textarea {
	padding: 10px;
	border: 1px solid var(--nsp-awards-simplified-form-border, #a9c9d6);
	border-radius: var(--nsp-awards-simplified-form-radius, 5px);
	font-size: 14px;
}

.ff-public-check {
	gap: 8px;
	margin: 14px 0;
	font-size: 13px;
}

.ff-public-check input[type="checkbox"] {
	margin-top: 2px;
}

.ff-public-actions {
	gap: 9px;
	margin-top: 19px;
}

.ff-public-action,
.ff-public-parish-button,
.ff-public-nominee-button {
	appearance: none;
	padding: 9px 12px;
	border: 1px solid var(--nsp-awards-simplified-btn-border, #165272);
	border-radius: var(--nsp-awards-simplified-btn-radius, 6px);
	background: #fff;
	color: var(--nsp-awards-simplified-primary, #165272);
	font-size: 13px;
	font-weight: 500;
	line-height: 1.4;
	cursor: pointer;
}

.ff-public-action[data-primary="true"],
.ff-public-action--primary,
.ff-public-parish-button[aria-pressed="true"],
.ff-public-nominee-button[aria-pressed="true"] {
	border-color: var(--nsp-awards-simplified-btn-border, #165272);
	background: var(--nsp-awards-simplified-btn-bg, #165272);
	color: var(--nsp-awards-simplified-btn-text, #fff);
}

.ff-public-success {
	display: grid;
	place-items: center;
	width: 52px;
	height: 52px;
	margin-bottom: 15px;
	border-radius: 50%;
	background: #3f744f;
	color: #fff;
	font-size: 24px;
	font-weight: 500;
}

.ff-public-state {
	padding: 0;
	text-align: left;
}

.ff-public-state .ff-public-success {
	margin-left: 0;
	margin-right: 0;
}

.ff-public-note {
	padding: 13px 15px;
	border-left: 4px solid #e5892a;
	background: #faf1db;
	line-height: 1.45;
	font-size: 14px;
}

.ff-public-parishes {
	gap: 8px;
	margin: 17px 0 20px;
}

.ff-public-category-heading {
	display: block;
	margin: 22px 0 9px;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 19px;
	font-weight: 500;
}

.ff-public-scope {
	display: inline-block;
	margin-left: 7px;
	padding: 3px 6px;
	border-radius: 999px;
	background: #efe5dc;
	color: #6a4932;
	font-size: 11px;
	font-weight: 400;
}

.ff-public-nominee,
.ff-public-summary {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 14px;
	margin: 9px 0;
	padding: 12px 14px;
	border: 1px solid var(--nsp-awards-simplified-form-border, #c9e4ec);
	border-radius: 7px;
	background: #ebf7fc;
	font-size: 14px;
}

.ff-public-nominee strong,
.ff-public-summary strong {
	display: block;
	margin-bottom: 3px;
}

@media (max-width: 680px) {
	.ff-public-grid {
		grid-template-columns: 1fr;
	}

	.ff-public-field[data-wide="true"] {
		grid-column: auto;
	}

	.ff-public-nominee,
	.ff-public-summary {
		flex-direction: column;
		align-items: flex-start;
	}
}

/* --- S13H public conformance: nomination public flow (states 1-3) --- */
/* Values match the approved public mockup (family-favorites-public-walkthrough-v2).
 * Style-store variables still win where one maps to the same concept; the
 * fallbacks below are the approved mockup values. */

.{
	font-family: var(--nsp-awards-simplified-font-family, Arial, Helvetica, sans-serif);
	color:       var(--nsp-awards-simplified-text, #25211d);
}

.nsp-awards-ff-public-nav {
	align-items:   center;
	gap:           6px;
	border-bottom: none;
}

.nsp-awards-ff-public-nav__link {
	border:        1px solid var(--nsp-awards-simplified-btn-border, #165272);
	border-radius: var(--nsp-awards-simplified-btn-radius, 6px);
	padding:       9px 12px;
	margin-bottom: 0;
	background:    #fff;
	color:         #165272;
	font-size:     13px;
	font-weight:   500;
}

.nsp-awards-ff-public-nav__link[aria-current="page"] {
	border-color: var(--nsp-awards-simplified-btn-bg, #165272);
	background:   var(--nsp-awards-simplified-btn-bg, #165272);
	color:        var(--nsp-awards-simplified-btn-text, #fff);
}

/* Update My Business sits at the far right on desktop (mockup .ff-public-update-link). */
.nsp-awards-ff-public-nav__link:last-child {
	margin-left: auto;
}

.ff-public-heading {
	margin:      0 0 8px;
	font-family: Georgia, "Times New Roman", serif;
	font-size:   30px;
	font-weight: 500;
}

.ff-public-intro {
	margin:      6px 0 17px;
	line-height: 1.5;
}

.ff-public-grid {
	grid-template-columns: 1fr 1fr;
	gap:                   13px;
	margin-bottom:         0;
}

.ff-public-field {
	display:     grid;
	gap:         5px;
	font-size:   12px;
	font-weight: 500;
}

.ff-public-field span {
	font-weight: inherit;
	color:       inherit;
}

.ff-public-field input,
.ff-public-field select,
.ff-public-field textarea {
	min-width:     0;
	padding:       10px;
	border:        1px solid var(--nsp-awards-simplified-form-border, #a9c9d6);
	border-radius: var(--nsp-awards-simplified-form-radius, 5px);
	background:    #fff;
	color:         var(--nsp-awards-simplified-text, #25211d);
	font-size:     14px;
	font-weight:   400;
}

.ff-public-field textarea {
	min-height: 72px;
	resize:     vertical;
}

.ff-public-check {
	gap:         8px;
	margin:      14px 0;
	font-size:   13px;
	font-weight: 400;
}

.ff-public-check input[type="checkbox"] {
	width:      auto;
	margin-top: 2px;
}

.ff-public-actions {
	gap:        9px;
	margin-top: 19px;
}

.ff-public-action {
	border:        1px solid var(--nsp-awards-simplified-btn-border, #165272);
	border-radius: var(--nsp-awards-simplified-btn-radius, 6px);
	padding:       var(--nsp-awards-simplified-btn-pad-y, 9px) var(--nsp-awards-simplified-btn-pad-x, 12px);
	background:    #fff;
	color:         #165272;
	font-size:     13px;
	font-weight:   500;
}

.ff-public-action[data-primary="true"],
.ff-public-action--primary {
	border-color: var(--nsp-awards-simplified-btn-border, #165272);
	background:   var(--nsp-awards-simplified-btn-bg, #165272);
	color:        var(--nsp-awards-simplified-btn-text, #fff);
}

.ff-public-summary {
	justify-content: space-between;
	align-items:     center;
	gap:             14px;
	margin:          9px 0;
	padding:         12px 14px;
	border:          1px solid var(--nsp-awards-simplified-form-border, #c9e4ec);
	border-radius:   7px;
	background:      #ebf7fc;
	font-size:       14px;
}

.ff-public-summary strong {
	margin-bottom: 3px;
}

.ff-public-success {
	width:         52px;
	height:        52px;
	margin-bottom: 15px;
	background:    #3f744f;
	font-size:     24px;
	font-weight:   500;
}

.ff-public-state {
	padding:    0;
	text-align: left;
}

.ff-public-state .ff-public-success {
	margin-left:  0;
	margin-right: 0;
}

@media (max-width: 680px) {
	.nsp-awards-ff-public-nav {
		width: 100%;
	}

	.nsp-awards-ff-public-nav__link:last-child {
		margin-left: 0;
	}

	.ff-public-grid {
		grid-template-columns: 1fr;
	}

	.ff-public-grid .ff-public-field[data-wide="true"] {
		grid-column: auto;
	}

	.ff-public-summary {
		flex-direction: column;
		align-items:    flex-start;
	}
}

@media (max-width: 390px) {
	.ff-public-actions {
		flex-direction: row;
		align-items:    center;
	}

	.nsp-awards-ff-public-nav {
		flex-wrap:  wrap;
		overflow-x: visible;
	}

	.nsp-awards-ff-public-nav__link {
		font-size: 13px;
		padding:   9px 12px;
	}
}

/* --- S13H public conformance: required-field markers (Des 2026-08-31) --- */
.ff-public-req { color: #e5892a; font-weight: 600; }
