/*
 * Bridge between Elementor's markup and the static site's stylesheets.
 *
 * Every page is built from Elementor containers that carry the static page's
 * own tags and classes, and widgets that hold the static page's own markup.
 * These rules take Elementor's layout defaults out of the way so the site's
 * stylesheets decide the layout, exactly as they did on the static pages.
 */

/* The page wrapper and every widget wrapper are layout-transparent: their
   content takes part in the parent's flow or grid as if it were a direct
   child, which is how the static markup was nested. */
main > .elementor,
.elementor-widget.bc-w { display: contents; }

/* Containers behave as the plain elements they replace. */
.e-con.bc {
	--display: block;
	--padding-top: 0; --padding-right: 0; --padding-bottom: 0; --padding-left: 0;
	--margin-top: 0; --margin-right: 0; --margin-bottom: 0; --margin-left: 0;
	--gap: normal; --row-gap: normal; --column-gap: normal;
	--width: auto; --min-height: 0;
	--flex-wrap: initial; --justify-content: initial; --align-items: initial;
	--align-content: initial; --flex-direction: initial; --container-widget-width: initial;
	--text-align: initial; --overflow: initial; --border-radius: initial;
	--content-width: none;
}

/* The Text Editor wraps its content in one more element while the page is
   open in the editor; keep it transparent too so the editor shows the layout. */
.bc-w > .elementor-text-editor { display: contents; }
.bc-w > .elementor-text-editor::after { content: none; }

/* ------------------------------------------------------------------------
   Contact form. An Elementor Pro Form (so enquiries are emailed and kept
   under Elementor > Submissions), dressed exactly as the static form.enquiry
   with the values from pages-d.css. Each field carries the static classes
   (field, field-wide) from its Advanced > CSS Classes setting.
   ------------------------------------------------------------------------ */
.bc-enquiry .elementor-form-fields-wrapper { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 20px; max-width: 760px; margin: 0; }
@media (max-width: 680px) { .bc-enquiry .elementor-form-fields-wrapper { grid-template-columns: 1fr; } }
.bc-enquiry .elementor-field-group.elementor-column { display: flex; flex-direction: column; flex-wrap: nowrap; align-items: stretch; gap: 8px; width: auto; max-width: none; padding: 0; margin: 0; }
.bc-enquiry .elementor-field-group:has(.field-wide),
.bc-enquiry .elementor-field-group.elementor-field-type-submit { grid-column: 1 / -1; }
.bc-enquiry .elementor-field-group > .elementor-field-label { font-size: 12px; font-weight: 600; color: var(--p-ink); padding: 0; margin: 0; line-height: 1.5; }
.bc-enquiry .elementor-field-group .elementor-field-textual,
.bc-enquiry .elementor-field-group select.elementor-field {
	appearance: none; width: 100%; min-height: 0; padding: 12px 14px; background: #fff; border: 1px solid #DCD5E4; border-radius: 8px;
	color: var(--p-ink); font: 400 14px/1.3 'Switzer', sans-serif; box-shadow: none; transition: border-color .2s ease;
}
.bc-enquiry .elementor-field-group select.elementor-field {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%236B6178' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 14px center; background-size: 16px; padding-right: 40px;
}
.bc-enquiry .elementor-select-wrapper::before,
.bc-enquiry .select-caret-down-wrapper { display: none; }
.bc-enquiry .elementor-field-textual:hover, .bc-enquiry select.elementor-field:hover { border-color: #C6BAD2; }
.bc-enquiry .elementor-field-textual:focus-visible, .bc-enquiry select.elementor-field:focus-visible { border-color: var(--p-ink); }
.bc-enquiry .elementor-field-type-submit { align-items: flex-start; }
.bc-enquiry .elementor-button {
	display: inline-flex; align-items: center; width: max-content; min-height: 0; padding: 13px 17px; background: var(--p-ink); color: #fff;
	border: 2px outset #000; border-radius: 8px; letter-spacing: normal; transition: background .2s ease;
	/* The static button never set a font or border, so it showed the browser's
	   defaults for a button (Arial, a 2px outset border); matched as is. */
	font: 600 13px/normal Arial, sans-serif;
}
.bc-enquiry .elementor-button:hover { background: #332638; color: #fff; }
.bc-enquiry .elementor-button-content-wrapper { display: inline-flex; align-items: center; gap: 10px; }
.bc-enquiry .elementor-button-content-wrapper::after { content: "\e092"; font-family: "Phosphor"; font-weight: normal; line-height: 1; transition: transform .2s ease; }
.bc-enquiry .elementor-button:hover .elementor-button-content-wrapper::after { transform: translate(3px, -3px); }
.bc-enquiry .elementor-form-fields-wrapper > :has(input[name="form_fields[website]"]) { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.bc-enquiry .elementor-message { margin: 14px 0 0; font-size: 12px; }
/* The static button's text kept its trailing space before the icon. */
.bc-enquiry .elementor-button-content-wrapper::after { margin-left: 5px; }
/* The note sat inside the static form's last field (8px gap, 760px wide). */
.bc-enquiry + .bc-w > .form-note { margin-top: 22px; max-width: 760px; }

/* The Image widget prints width and height attributes. The static images had
   none, and the attribute height would beat the site's aspect-ratio rules.
   Zero-specificity, so any rule in the site's stylesheets still wins. */
:where(.elementor-widget-image) img { height: auto; }

/* Fields the static contact form did not have (the job application): a
   multi-line answer and a CV upload, in the same style as the other inputs. */
.bc-enquiry .elementor-field-group textarea.elementor-field { min-height: 0; resize: vertical; line-height: 1.5; }
.bc-enquiry .elementor-field-group .elementor-upload-field {
	width: 100%; padding: 10px 12px; background: #fff; border: 1px dashed #C6BAD2; border-radius: 8px;
	color: var(--p-ink); font: 400 14px/1.3 'Switzer', sans-serif; cursor: pointer;
}
.bc-enquiry .elementor-upload-field::file-selector-button {
	margin-right: 12px; padding: 8px 12px; border: 0; border-radius: 6px; background: var(--p-surface, #F4F1F7);
	color: var(--p-ink); font: 600 13px/1 'Switzer', sans-serif; cursor: pointer;
}
.bc-enquiry .elementor-upload-field:hover { border-color: var(--p-ink); }
