/* ── Brand custom properties ──────────────────────────────── */
:root {
	--ukdtc-dark-purple:   var(--wp--preset--color--dark-purple,   #280447);
	--ukdtc-medium-purple: var(--wp--preset--color--medium-purple, #3F0770);
	--ukdtc-dc-purple:     var(--wp--preset--color--dc-purple,     #540A95);
	--ukdtc-stone-purple:  var(--wp--preset--color--stone-purple,  #B2AAF1);
	--ukdtc-aqua:          var(--wp--preset--color--aqua,          #00d2d2);
	--ukdtc-dark-grey:     var(--wp--preset--color--dark-grey,     #3C4B55);
	--ukdtc-medium-grey:   var(--wp--preset--color--medium-grey,   #AFB7BA);
	--ukdtc-light-grey:    var(--wp--preset--color--light-grey,    #F0F0F0);
	--ukdtc-surface:       var(--wp--preset--color--surface,       #f7f5fc);
	--ukdtc-rule:          var(--wp--preset--color--rule,          #e8e5f0);

	--ukdtc-poppins:       var(--wp--preset--font-family--poppins, 'Poppins', system-ui, sans-serif);
	--ukdtc-roboto:        var(--wp--preset--font-family--roboto,  'Roboto', system-ui, sans-serif);

	--ukdtc-max:           var(--wp--style--global--content-size, 1280px);
	--ukdtc-pad:           clamp(24px, 4.5vw, 72px);
}

/* ── Accent rule (core/separator variation) ───────────────── */
.wp-block-separator.is-style-accent-rule {
	width: 48px !important;
	max-width: 48px !important;
	height: 4px !important;
	border: none !important;
	background-color: var(--ukdtc-aqua) !important;
	border-radius: 2px;
	margin-block-end: 16px;
}

/* ── Button utilities (used by hero, route cards, etc) ────── */
.ukdtc-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 14px 32px;
	border-radius: 100px;
	font-family: var(--ukdtc-poppins);
	font-size: 1rem;
	font-weight: 500;
	letter-spacing: 0.02em;
	border: 2px solid transparent;
	transition: all 0.18s;
	cursor: pointer;
	text-decoration: none;
	line-height: 1;
}
.ukdtc-btn--primary       { background: var(--ukdtc-dc-purple); color: #fff; border-color: var(--ukdtc-dc-purple); }
.ukdtc-btn--primary:hover { background: var(--ukdtc-medium-purple); border-color: var(--ukdtc-medium-purple); }
.ukdtc-btn--aqua          { background: var(--ukdtc-aqua); color: var(--ukdtc-dark-purple); border-color: var(--ukdtc-aqua); }
.ukdtc-btn--aqua:hover    { background: #00b8b8; }
.ukdtc-btn--outline       { background: transparent; color: var(--ukdtc-dark-purple); border-color: var(--ukdtc-dark-purple); }
.ukdtc-btn--outline:hover { background: var(--ukdtc-dark-purple); color: #fff; }
.ukdtc-btn--outline-white       { background: transparent; color: #fff; border-color: rgba(255,255,255,.5); }
.ukdtc-btn--outline-white:hover { background: #fff; color: var(--ukdtc-dark-purple); border-color: #fff; }
.ukdtc-btn--sm { padding: 10px 24px; font-size: 0.875rem; }
.ukdtc-btn--lg { padding: 18px 40px; font-size: 1rem; }

/* ── Badge utilities ──────────────────────────────────────── */
.ukdtc-badge {
	display: inline-block;
	padding: 8px 14px 6px;
	border-radius: 100px;
	font-family: Poppins, sans-serif;
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	line-height:1;
}
.ukdtc-badge--stone         { background: var(--ukdtc-stone-purple); color: var(--ukdtc-dark-purple); }
.ukdtc-badge--aqua          { background: var(--ukdtc-aqua); color: var(--ukdtc-dark-purple); }
.ukdtc-badge--outline       { border: 1.5px solid var(--ukdtc-rule); color: var(--ukdtc-dark-grey); }
.ukdtc-badge--outline-white { border: 1.5px solid rgba(255,255,255,.3); color: rgba(255,255,255,.7); }

/* ── Heading utility ──────────────────────────────────────
 * Drops a short aqua bar above any heading. Add the class to the
 * h1–h6 itself (e.g. <h2 class="ukdtc-heading">…</h2>).
 */
.ukdtc-heading::before {
	content: '';
	display: block;
	width: 32px;
	height: 3px;
	background: var(--ukdtc-aqua);
	border-radius: 2px;
	margin-bottom: 12px;
}

/* ── Focus styles for keyboard nav ────────────────────────── */
.ukdtc-btn:focus-visible,
a:focus-visible,
button:focus-visible {
	outline: 2px solid var(--ukdtc-aqua);
	outline-offset: 2px;
}

/* ── Programme Blocks template: skin FacetWP grid as UKDTC case cards ─
 * Scoped to .ukdtc-programme-canvas so other FacetWP grids on the site
 * are untouched. FacetWP Layout Builder structure:
 *   .fwpl-layout              ← grid of results
 *     .fwpl-result            ← one card per post
 *       .fwpl-row
 *         .fwpl-col
 *           .fwpl-item        ← image (1st), title (2nd), excerpt (3rd)
 *
 * Items are matched by `:nth-child` because the `el-xxxxxx` classes
 * FacetWP appends are auto-generated and aren't stable across layouts.
 */
.ukdtc-programme-canvas .fwpl-layout {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}

/* Card */
.ukdtc-programme-canvas .fwpl-result {
	border: 1.5px solid var(--ukdtc-rule);
	background: #ffffff;
	overflow: hidden;
	transition: box-shadow 0.2s;
	display: flex;
	flex-direction: column;
}
.ukdtc-programme-canvas .fwpl-result:hover {
	box-shadow: 0 4px 24px rgba(40, 4, 71, 0.1);
}

/* Inner row/col are transparent flex passthroughs so .fwpl-item
   positioning still works under :nth-child below. */
.ukdtc-programme-canvas .fwpl-result > .fwpl-row,
.ukdtc-programme-canvas .fwpl-result .fwpl-col {
	display: flex;
	flex-direction: column;
	flex: 1;
	width: auto;
	margin: 0;
	padding: 0;
}

.ukdtc-programme-canvas .fwpl-col > .fwpl-item {
	margin: 0;
}

/* 1st item: image */
.ukdtc-programme-canvas .fwpl-col > .fwpl-item:nth-child(1) {
	width: 100%;
	height: 180px;
	background: var(--ukdtc-surface);
	border-bottom: 1px solid var(--ukdtc-rule);
	overflow: hidden;
}
.ukdtc-programme-canvas .fwpl-col > .fwpl-item:nth-child(1) a {
	display: block;
	width: 100%;
	height: 100%;
}
.ukdtc-programme-canvas .fwpl-col > .fwpl-item:nth-child(1) img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* 2nd item: title */
.ukdtc-programme-canvas .fwpl-col > .fwpl-item:nth-child(2) {
	padding: 18px 18px 0;
}
.ukdtc-programme-canvas .fwpl-col > .fwpl-item:nth-child(2) h3 {
	font-family: var(--ukdtc-poppins);
	font-size: 1rem;
	font-weight: 600;
	margin: 0 0 6px;
	line-height: 1.35;
}
.ukdtc-programme-canvas .fwpl-col > .fwpl-item:nth-child(2) h3 a {
	color: var(--ukdtc-dark-purple);
	text-decoration: none;
}
.ukdtc-programme-canvas .fwpl-col > .fwpl-item:nth-child(2) h3 a:hover {
	color: var(--ukdtc-dc-purple);
	text-decoration: none;
}

/* 3rd item: excerpt */
.ukdtc-programme-canvas .fwpl-col > .fwpl-item:nth-child(3) {
	padding: 0 18px 22px;
	font-family: var(--ukdtc-roboto);
	font-size: 0.875rem;
	color: var(--ukdtc-dark-grey);
	line-height: 1.6;
	flex: 1;
}

@media (max-width: 1024px) {
	.ukdtc-programme-canvas .fwpl-layout {
		grid-template-columns: repeat(2, 1fr);
	}
}
@media (max-width: 640px) {
	.ukdtc-programme-canvas .fwpl-layout {
		grid-template-columns: 1fr;
	}
}

/* ── Programme Blocks template: FacetWP checkbox facets as UKDTC pills ─
 * FacetWP adds `.checked` to a `.facetwp-checkbox` when it's selected and
 * also paints a small checkmark/arrow background image. We reset that and
 * style each checkbox as a UKDTC filter lozenge. Scoped to the template
 * so other FacetWP facets on the site keep their default look.
 */
.ukdtc-programme-canvas .facetwp-facet {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 24px;
}

.ukdtc-programme-canvas .facetwp-checkbox {
	background-image: none !important;
	padding: 7px 18px;
	margin: 0;
	border-radius: 100px;
	border: 1.5px solid var(--ukdtc-rule);
	font-family: var(--ukdtc-poppins);
	font-size: 0.875rem;
	font-weight: 500;
	cursor: pointer;
	background-color: #ffffff;
	color: var(--ukdtc-dark-grey);
	transition: all 0.15s;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	line-height: 1;
}

.ukdtc-programme-canvas .facetwp-checkbox:hover:not(.checked) {
	border-color: var(--ukdtc-dc-purple);
	color: var(--ukdtc-dc-purple);
}

.ukdtc-programme-canvas .facetwp-checkbox.checked {
	background-color: var(--ukdtc-dc-purple);
	color: #ffffff;
	border-color: var(--ukdtc-dc-purple);
}

.ukdtc-programme-canvas .facetwp-counter {
	font-size: 0.8125rem;
	opacity: 0.7;
}

/* ── Programme Blocks template: Salesforce Web-to-Lead form skin ──────
 * Targets the raw .form-row / .form-col markup the Salesforce snippet
 * outputs. Scoped to the template canvas so other forms on the site
 * are untouched. Labels stack above inputs; inputs and selects get
 * the UKDTC token treatment (border, focus, padding); the submit
 * button reuses the .ukdtc-btn--primary look from above.
 */
.ukdtc-programme-canvas form .form-row {
	margin: 0 0 18px;
}
.ukdtc-programme-canvas form .form-col {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.ukdtc-programme-canvas form label {
	font-family: var(--ukdtc-poppins);
	font-size: 0.875rem;
	font-weight: 500;
	color: var(--ukdtc-dark-purple);
}

/* Text inputs + selects */
.ukdtc-programme-canvas form input[type="text"],
.ukdtc-programme-canvas form input[type="email"],
.ukdtc-programme-canvas form input[type="url"],
.ukdtc-programme-canvas form input[type="tel"],
.ukdtc-programme-canvas form input:not([type]),
.ukdtc-programme-canvas form textarea,
.ukdtc-programme-canvas form select {
	width: 100%;
	max-width: 480px;
	padding: 10px 14px;
	border: 1.5px solid var(--ukdtc-rule);
	border-radius: 8px;
	background: #ffffff;
	font-family: var(--ukdtc-roboto);
	font-size: 1rem;
	color: var(--ukdtc-dark-purple);
	transition: border-color 0.15s, box-shadow 0.15s;
	box-sizing: border-box;
}
.ukdtc-programme-canvas form input:focus,
.ukdtc-programme-canvas form textarea:focus,
.ukdtc-programme-canvas form select:focus {
	outline: none;
	border-color: var(--ukdtc-dc-purple);
	box-shadow: 0 0 0 3px rgba(84, 10, 149, 0.12);
}

.ukdtc-programme-canvas form select[multiple] {
	min-height: 132px;
	padding: 6px 8px;
}
.ukdtc-programme-canvas form select[multiple] option {
	padding: 6px 8px;
	border-radius: 4px;
}

/* Checkboxes — label wraps input + text, render inline */
.ukdtc-programme-canvas form label:has(> input[type="checkbox"]) {
	flex-direction: row;
	align-items: flex-start;
	gap: 10px;
	font-weight: 400;
	font-family: var(--ukdtc-roboto);
	font-size: 0.875rem;
	color: var(--ukdtc-dark-grey);
	line-height: 1.5;
	cursor: pointer;
}
.ukdtc-programme-canvas form input[type="checkbox"] {
	width: 18px;
	height: 18px;
	margin: 2px 0 0;
	accent-color: var(--ukdtc-dc-purple);
	flex-shrink: 0;
}
.ukdtc-programme-canvas form label a {
	color: var(--ukdtc-dc-purple);
	text-decoration: underline;
}
.ukdtc-programme-canvas form label a:hover {
	text-decoration: none;
}

/* Inline validation message */
.ukdtc-programme-canvas form #email-error {
	font-family: var(--ukdtc-roboto);
	font-size: 0.875rem;
}

/* Submit button — match .ukdtc-btn .ukdtc-btn--primary */
.ukdtc-programme-canvas form input[type="submit"] {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 14px 32px;
	border-radius: 100px;
	font-family: var(--ukdtc-poppins);
	font-size: 1rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	border: 2px solid var(--ukdtc-dc-purple);
	background: var(--ukdtc-dc-purple);
	color: #ffffff;
	cursor: pointer;
	line-height: 1;
	transition: all 0.18s;
	-webkit-appearance: none;
	appearance: none;
}
.ukdtc-programme-canvas form input[type="submit"]:hover,
.ukdtc-programme-canvas form input[type="submit"]:focus {
	background: var(--ukdtc-medium-purple);
	border-color: var(--ukdtc-medium-purple);
}

/* ── Programme Blocks template: release the theme's max-width clamp ── */
.ukdtc-programme-canvas .main-content {
	max-width: none;
	width: 100%;
}
.ukdtc-programme-canvas .main-content > article {
	width: 100%;
	max-width: none;
}
.ukdtc-programme-canvas .site-footer {
	margin-top: 0;
}

/* ── Content-size constraint for blocks without an `__inner` well ───── */
/* Pattern A blocks (section, video-strip, hub-subnav, page-nav, hero)   */
/* already use `var(--ukdtc-max)` on their inner element, so re-pointing */
/* that token to --wp--style--global--content-size covers them.         */
.ukdtc-pillars,
.ukdtc-stats-band,
.ukdtc-partners,
.ukdtc-route-grid,
.ukdtc-case-cards,
.ukdtc-flow-row,
.ukdtc-audience,
.ukdtc-service-cards,
.ukdtc-tech-grid,
.ukdtc-eoi-form {
	max-width: var(--ukdtc-max);
	margin-inline: auto;
}
