/*--------------------------------------------------------------
BE Internal — Forms & data-entry styling
Carried over from the classic Beyond Empower theme. Colours,
type and page width live in theme.json; this file covers the
things theme.json can't style: raw form fields, Gravity Forms,
GravityView, and the non-block buttons/link blocks the data
recording system relies on.
--------------------------------------------------------------*/

/* Text inputs, textareas, selects
--------------------------------------------------------------*/
input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
input[type="range"],
input[type="date"],
input[type="month"],
input[type="week"],
input[type="time"],
input[type="datetime"],
input[type="datetime-local"],
input[type="color"],
select,
textarea {
	color: var(--wp--preset--color--contrast);
	border: 2px solid var(--wp--preset--color--contrast);
	border-radius: 0;
	padding: 5px;
	font-family: var(--wp--preset--font-family--mukta);
}

textarea {
	width: 100%;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="number"]:focus,
input[type="tel"]:focus,
input[type="range"]:focus,
input[type="date"]:focus,
input[type="month"]:focus,
input[type="week"]:focus,
input[type="time"]:focus,
input[type="datetime"]:focus,
input[type="datetime-local"]:focus,
input[type="color"]:focus,
select:focus,
textarea:focus {
	color: #111;
	border: 2px solid var(--wp--preset--color--focus-yellow);
	outline: 4px solid var(--wp--preset--color--contrast);
}

/* Non-block buttons (form submits, plugin-rendered buttons, etc.)
   The core/button block itself is styled via theme.json's
   styles.elements.button — these selectors keep raw HTML buttons
   and plugin markup (Gravity Forms, GravityView) matching it.
--------------------------------------------------------------*/
button,
a.button,
input[type="button"],
input[type="reset"],
input[type="submit"],
.edit_entry_button a,
a.gv-button-cancel,
a.front-login {
	font-size: 20px!important;
	cursor: pointer;
	border: 1px solid var(--wp--preset--color--primary);
	border-radius: 0;
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
	text-decoration: none;
	line-height: 1;
	padding: 10px 15px 8px;
	box-shadow: 0 2px var(--wp--preset--color--primary-hover);
}

button:hover,
a.button:hover,
input[type="button"]:hover,
input[type="reset"]:hover,
input[type="submit"]:hover,
.edit_entry_button a:hover {
	border-color: var(--wp--preset--color--primary-hover);
	background: var(--wp--preset--color--primary-hover);
	box-shadow: 0 2px #144314;
}

button:active,
button:focus,
a.button:focus,
input[type="button"]:active,
input[type="button"]:focus,
input[type="reset"]:active,
input[type="reset"]:focus,
input[type="submit"]:active,
input[type="submit"]:focus,
.edit_entry_button a:focus {
	border-color: var(--wp--preset--color--contrast);
}

/* Custom radio buttons
--------------------------------------------------------------*/
input[type="radio"],
input[type="radio"]:focus {
	display: none;
	outline-style: none;
	box-shadow: none;
	border-color: transparent;
}

input[type="radio"] label {
	position: relative;
	cursor: pointer;
}

input[type="radio"] + label:before {
	content: '';
	display: inline-block;
	width: 24px;
	height: 24px;
	margin: -3px 8px 0 -20px;
	vertical-align: middle;
	cursor: pointer;
	border-radius: 50%;
	background-color: var(--wp--preset--color--base);
	border: 2px solid var(--wp--preset--color--contrast);
}

input[type="radio"]:checked + label:before {
	content: '';
	display: inline-block;
	width: 24px;
	height: 24px;
	margin: -3px 8px 0 -20px;
	border-radius: 50%;
	background-color: var(--wp--preset--color--contrast);
	border: 2px solid var(--wp--preset--color--contrast);
}

/* Custom checkboxes
--------------------------------------------------------------*/
input[type="checkbox"] {
	opacity: 0;
}

input[type="checkbox"] + label {
	position: relative;
	overflow: hidden;
	padding-left: 35px;
	cursor: pointer;
	display: inline-block;
}

input[type="checkbox"] + label:before,
input[type="checkbox"] + label:after {
	content: '';
	position: absolute;
	left: 0;
	z-index: 1;
	transition: 0.2s;
}

input[type="checkbox"]:not(:checked) + label:after {
	width: 20px;
	height: 20px;
	border: 2px solid var(--wp--preset--color--contrast);
	top: 0;
}

input[type="checkbox"]:checked + label:after {
	top: 0;
	width: 20px;
	height: 20px;
	border: 2px solid var(--wp--preset--color--contrast);
	background-color: var(--wp--preset--color--contrast);
	z-index: 0;
	border-radius: 2px;
}

input[type="checkbox"]:not(:checked) + label:before {
	width: 0;
	height: 0;
	border: 3px solid transparent;
	left: 6px;
	top: 10px;
	transform: rotateZ(37deg);
	transform-origin: 100% 100%;
}

input[type="checkbox"]:checked + label:before {
	top: 0;
	left: 1px;
	width: 8px;
	height: 13px;
	margin-top: 3px;
	border-top: 2px solid transparent;
	border-left: 2px solid transparent;
	border-right: 2px solid var(--wp--preset--color--base);
	border-bottom: 2px solid var(--wp--preset--color--base);
	transform: rotateZ(37deg);
	transform-origin: 100% 100%;
}

/* Gravity Forms overrides
--------------------------------------------------------------*/
.gform_wrapper.gravity-theme .gfield_label {
	font-size: 20px!important;
	margin-bottom: 0;
}

.gform_wrapper.gravity-theme .gf_progressbar_percentage.percentbar_blue {
	height: 30px;
}

.gform_wrapper.gravity-theme .gf_progressbar_percentage,
.gform_wrapper.gravity-theme .gf_progressbar {
	border-radius: 20px;
}

.gform_wrapper.gravity-theme .gf_progressbar_percentage:not(.percentbar_100) {
	border-radius: 20px 0 0 20px;
}

.percentbar_blue {
	background-color: var(--wp--preset--color--primary);
}

.gform_wrapper.gravity-theme .gf_progressbar_percentage span {
	line-height: 31px;
	font-size: 16px;
}

.gform_wrapper.gravity-theme .gfield_radio label {
	font-size: 20px!important;
	padding: 5px 0 0;
}

.gform_wrapper.gravity-theme .description,
.gform_wrapper.gravity-theme .gfield_description,
.gform_wrapper.gravity-theme .gsection_description,
.gform_wrapper.gravity-theme .instruction,
.gform_wrapper.gravity-theme .gfield_header_item,
.gform_wrapper.gravity-theme .gform_fileupload_rules,
.gform_wrapper.gravity-theme .ginput_complex label,
.gform_wrapper.gravity-theme input[type="color"],
.gform_wrapper.gravity-theme input[type="date"],
.gform_wrapper.gravity-theme input[type="datetime-local"],
.gform_wrapper.gravity-theme input[type="datetime"],
.gform_wrapper.gravity-theme input[type="email"],
.gform_wrapper.gravity-theme input[type="month"],
.gform_wrapper.gravity-theme input[type="number"],
.gform_wrapper.gravity-theme input[type="password"],
.gform_wrapper.gravity-theme input[type="search"],
.gform_wrapper.gravity-theme input[type="tel"],
.gform_wrapper.gravity-theme input[type="text"],
.gform_wrapper.gravity-theme input[type="time"],
.gform_wrapper.gravity-theme input[type="url"],
.gform_wrapper.gravity-theme input[type="week"],
.gform_wrapper.gravity-theme select,
.gform_wrapper.gravity-theme textarea {
	font-size: 20px!important;
}

/* GravityView
--------------------------------------------------------------*/
.gv-widget-search {
	margin: 0 -10px;
}

.gv-search-box > label {
	margin-bottom: 10px;
	font-weight: bold;
}

.gv-search-clear {
	padding: 0 20px;
	position: relative;
	top: 5px;
}

.gv-field-label {
	font-weight: bold;
}

table.gv-table-view-content {
	border-collapse: collapse;
}

table.gv-table-view-content tr {
	border-bottom: 1px solid #333;
}

table.gv-table-view-content th,
table.gv-table-view-content tr {
	padding: 20px 5px;
	vertical-align: text-top;
}

table.gv-table-view-content .gv_full_width th {
	display: none;
}

table.gv-table-view-content tr.edit_entry_button {
	height: 60px;
	vertical-align: middle !important;
}

.edit_entry_button a {
	text-decoration: none;
	padding: 5px 15px 5px 15px;
}

tr.view_title {
	background-color: var(--wp--preset--color--light-grey);
}

tr.view_title .gv-field-label {
	font-size: 1.5em;
	font-weight: normal;
}

.gravityview-template-default .post-navigation {
	display: none;
}

/* Link blocks (internal listing/nav shortcuts)
--------------------------------------------------------------*/
ul.be_linkblocks,
ul.entry_linkblocks {
	list-style: none;
	padding: 0;
	margin: 0 -1%;
	display: flex;
	flex-direction: column;
	flex-wrap: wrap;
	justify-content: flex-start;
	align-content: stretch;
	align-items: flex-start;
}

ul.be_linkblocks li,
ul.entry_linkblocks li {
	box-shadow: 0 2px 0 0 rgb(65 64 66 / 30%);
	padding: 15px;
	margin: 0 1% 20px 1%;
	flex: 0 1 auto;
	flex-basis: 100%;
	align-self: stretch;
}

ul.be_linkblocks li {
	background-color: var(--wp--preset--color--light-grey);
}

ul.entry_linkblocks li {
	background-color: var(--wp--preset--color--primary);
	font-size: 1rem;
}

ul.be_linkblocks li a,
ul.entry_linkblocks li a {
	display: block;
	margin: 0 0 20px 0;
}

ul.entry_linkblocks li,
ul.entry_linkblocks li a {
	color: var(--wp--preset--color--base);
}

ul.entry_linkblocks li a {
	font-weight: 500;
	font-size: 1.1rem;
}

@media screen and (min-width: 768px) {
	ul.be_linkblocks,
	ul.entry_linkblocks {
		flex-direction: row;
	}

	ul.be_linkblocks li,
	ul.entry_linkblocks li {
		flex-basis: 23%;
	}
}
