/* Only what theme.json can't express: states, decorations, small layout helpers.
   Colors always via presets. */

:root {
	--pr-ease: var(--wp--custom--duration) ease;
}

::selection { background: var(--wp--preset--color--yellow); color: var(--wp--preset--color--dark); }

/* Focus: visible on every surface (yellow ring + dark outer ring) */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--wp--preset--color--yellow);
	outline-offset: 2px;
	box-shadow: 0 0 0 5px var(--wp--preset--color--dark);
	border-radius: var(--wp--custom--radius--small);
}

.skip-link.screen-reader-text:focus {
	background: var(--wp--preset--color--dark);
	color: var(--wp--preset--color--surface);
	font-weight: 700;
	padding: 0.75rem 1.5rem;
	z-index: 100000;
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

html { scroll-behavior: smooth; scroll-padding-top: 6rem; }

/* Header / main / footer and full-width sections touch each other */
.wp-site-blocks > * { margin-block-start: 0; }
:where(.wp-block-post-content, main) > .alignfull { margin-block: 0; }

/* WCAG 2.2 target size: stand-alone links at least 24px high */
.pr-more a, .pr-team a, .wp-block-post-title a { display: inline-block; padding-block: .3rem; }

/* ---------- Header ---------- */
.pr-site-header { position: sticky; top: 0; z-index: 50; box-shadow: 0 4px 18px rgba(5, 5, 66, .25); }
.admin-bar .pr-site-header { top: var(--wp-admin--admin-bar--height, 32px); }
.pr-header .wp-block-site-logo img { height: auto; max-height: 72px; width: auto; }
.pr-nav .wp-block-navigation-item__content.wp-block-navigation-item__content { text-decoration: none; }
.pr-nav .wp-block-navigation-item__content.wp-block-navigation-item__content:hover { color: var(--wp--preset--color--yellow); }
.pr-nav .wp-block-navigation__responsive-container-open,
.pr-nav .wp-block-navigation__responsive-container-close { color: var(--wp--preset--color--surface); min-width: 44px; min-height: 44px; }
.pr-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { font-size: var(--wp--preset--font-size--x-large); }
.pr-lang ul { display: flex; gap: .25rem; list-style: none; margin: 0; padding: 0; }
.pr-lang a { color: var(--wp--preset--color--soft); font-size: var(--wp--preset--font-size--x-small); font-weight: 800; text-decoration: none; text-transform: uppercase; padding: .35rem .4rem; }
.pr-lang .current-lang a, .pr-lang a:hover { color: var(--wp--preset--color--yellow); }
.pr-social .wp-social-link { color: var(--wp--preset--color--surface); }
.pr-social .wp-social-link:hover { color: var(--wp--preset--color--orange); }
.pr-header__right, .pr-nav .wp-block-navigation__container, .pr-social { flex-wrap: nowrap; }
.pr-header__right { align-items: center; }
.pr-nav .wp-block-navigation__responsive-container-open { align-items: center; justify-content: center; }
.pr-nav .wp-block-navigation__container { gap: 1.25rem; }
.pr-nav .wp-block-navigation-item__label { white-space: nowrap; }
/* Core switches to the hamburger at 600px; six items need it until 1024px. */
@media (min-width: 600px) and (max-width: 1023px) {
	.pr-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.pr-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}
@media (max-width: 1023px) {
	.pr-header .pr-social { display: none; }
	.pr-header__right .pr-lang { order: -1; } /* ES/EN before the hamburger, which sits at the edge */
}

/* ---------- Footer ---------- */
.pr-footer a { color: var(--wp--preset--color--surface); text-decoration: none; }
.pr-footer a:hover { text-decoration: underline; color: var(--wp--preset--color--surface); }
.pr-footer__list { list-style: none; padding: 0; margin: 0; display: grid; gap: .4rem; }
.pr-footer .pr-footer__sep { border-color: currentColor; opacity: .25; }

/* ---------- Bands & section titles ---------- */
.pr-band .wp-block-post-title, .pr-band .wp-block-query-title { color: var(--wp--preset--color--yellow); }
.pr-section-title { position: relative; padding-bottom: .55rem; text-transform: uppercase; }
.pr-section-title::after {
	content: ""; position: absolute; left: 50%; bottom: -6px; transform: translateX(-50%);
	width: 88px; height: 5px; border-radius: 5px; background: var(--wp--preset--color--purple);
}
.has-dark-background-color .pr-section-title::after,
.has-purple-background-color .pr-section-title::after { background: var(--wp--preset--color--yellow); }
.pr-section-title.has-text-align-left::after { left: 0; transform: none; }

/* ---------- Cards ---------- */
.pr-card {
	border: 2px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius--large);
	box-shadow: var(--wp--preset--shadow--card); overflow: hidden;
	transition: transform var(--pr-ease), box-shadow var(--pr-ease), border-color var(--pr-ease);
}
.pr-card:hover, .pr-card:focus-within { transform: translateY(-4px); border-color: var(--wp--preset--color--purple); box-shadow: var(--wp--preset--shadow--raised); }
.pr-post-card .wp-block-post-featured-image { margin: 0; }
/* Equal card heights within a row */
.is-layout-grid > .pr-card { align-self: stretch; }
.wp-block-post-template.is-layout-grid > li { display: flex; }
.wp-block-post-template.is-layout-grid > li > .pr-card { flex: 1; }
.pr-post-card .wp-block-post-title a { color: var(--wp--preset--color--dark); text-decoration: none; }
.pr-post-card .wp-block-post-title a:hover { color: var(--wp--preset--color--purple); }
.pr-post-card .wp-block-post-terms a { color: var(--wp--preset--color--purple); text-decoration: none; }

.pr-upper { text-transform: uppercase; }
.pr-subhead { margin-top: var(--wp--preset--spacing--60) !important; margin-bottom: var(--wp--preset--spacing--40) !important; letter-spacing: .04em; }

/* ---------- Hero ---------- */
.pr-hero { position: relative; overflow: hidden; isolation: isolate; }
.pr-hero::before, .pr-hero::after {
	content: ""; position: absolute; z-index: -1; border-radius: 50%; filter: blur(70px); opacity: .18;
	animation: pr-drift 18s ease-in-out infinite alternate;
}
.pr-hero::before { width: 26rem; height: 26rem; top: -9rem; left: -7rem; background: var(--wp--preset--color--purple); }
.pr-hero::after { width: 22rem; height: 22rem; bottom: -10rem; right: -6rem; background: var(--wp--preset--color--orange); animation-direction: alternate-reverse; }
@keyframes pr-drift { to { transform: translate(2.5rem, 1.5rem); } }
.pr-hero h1 { line-height: 1.08; }
.pr-hero__accent { display: block; color: var(--wp--preset--color--surface); }
.pr-stats { border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--surface) 18%, transparent); }
.pr-stat p { margin: 0; text-align: center; }
@media (max-width: 600px) {
	.pr-stats.pr-stats { gap: 1rem; flex-wrap: nowrap; align-items: flex-start; }
	.pr-stat { flex: 1 1 0; min-width: 0; }
}

/* Buttons */
.pr-arrow .wp-block-button__link::after { content: "→"; margin-left: .55rem; display: inline-block; transition: transform var(--pr-ease); }
.pr-arrow .wp-block-button__link:hover::after { transform: translateX(3px); }
.wp-block-button__link { transition: transform var(--pr-ease), box-shadow var(--pr-ease), background-color var(--pr-ease), color var(--pr-ease); }
.wp-block-button__link:hover { transform: translateY(-2px); }
.is-style-outline.pr-btn-light .wp-block-button__link { background: transparent; color: var(--wp--preset--color--surface); border: 2px solid var(--wp--preset--color--surface); }
.is-style-outline.pr-btn-light .wp-block-button__link:hover { background: var(--wp--preset--color--surface); color: var(--wp--preset--color--dark); }
.is-style-outline.pr-btn-dark .wp-block-button__link { background: transparent; color: var(--wp--preset--color--dark); border: 2px solid var(--wp--preset--color--dark); }
.is-style-outline.pr-btn-dark .wp-block-button__link:hover { background: var(--wp--preset--color--dark); color: var(--wp--preset--color--yellow); }

/* ---------- Strategy ---------- */
/* Core stacks columns below 782px; the Sin/Con comparison stays side by side from 600px */
@media (min-width: 600px) and (max-width: 781px) {
	.pr-strategy .wp-block-columns { flex-wrap: nowrap !important; }
	.pr-strategy .wp-block-columns > .wp-block-column { flex-basis: 0 !important; flex-grow: 1; }
}
.pr-strategy__col { border-radius: var(--wp--custom--radius--large); padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40); }
.pr-strategy__col--no { border: 1px solid color-mix(in srgb, var(--wp--preset--color--surface) 18%, transparent); background: color-mix(in srgb, var(--wp--preset--color--surface) 6%, transparent); }
.pr-list { list-style: none; padding: 0; display: grid; gap: .7rem; }
.pr-list li { padding-left: 1.6rem; position: relative; }
.pr-list li::before { position: absolute; left: 0; font-weight: 900; }
.pr-list--no li { color: var(--wp--preset--color--soft); }
.pr-list--no li::before { content: "✕"; color: var(--wp--preset--color--orange); }
.pr-list--yes li::before { content: "✓"; color: var(--wp--preset--color--yellow); }

/* ---------- Services ---------- */
.pr-service { position: relative; height: 100%; }
.pr-service::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 5px; background: var(--wp--preset--color--purple); }
.pr-service h3 { margin: 0; }
.pr-service .pr-more { margin-top: auto !important; }
.pr-more a { text-decoration: none; }
.pr-more a::after { content: " →"; }

/* ---------- Team ---------- */
.pr-team__photo img { border-radius: var(--wp--custom--radius--large); box-shadow: var(--wp--preset--shadow--card); }
.pr-team h3, .pr-team p { margin: 0; }

/* ---------- Cases ---------- */
.pr-case-card .wp-block-post-featured-image { margin: 0; overflow: hidden; }
.pr-case-card .wp-block-post-featured-image img { transition: transform var(--wp--custom--duration) ease; }
.pr-case-card:hover .wp-block-post-featured-image img { transform: scale(1.04); }
.pr-case-card .wp-block-post-title a { color: var(--wp--preset--color--dark); text-decoration: none; }

/* Centered rows: fixed-width items so an incomplete last row stays centered */
.pr-team-row > .pr-team { flex: 0 1 18rem; }
.pr-people > .pr-person { flex: 0 0 11rem; }
.pr-logos > .pr-logo { flex: 0 0 9rem; }
@media (max-width: 600px) {
	.pr-people > .pr-person, .pr-logos > .pr-logo { flex-basis: calc(50% - var(--wp--preset--spacing--30) / 2); }
}

/* ---------- Clients ---------- */
.pr-person { margin: 0; position: relative; border-radius: var(--wp--custom--radius--large); overflow: hidden; box-shadow: var(--wp--preset--shadow--card); }
.pr-person img { width: 100%; transition: transform var(--wp--custom--duration) ease; }
.pr-person figcaption {
	position: absolute; inset: auto 0 0 0; margin: 0; padding: 1.5rem .6rem .6rem; text-align: center;
	color: var(--wp--preset--color--surface); font-weight: 800; font-size: var(--wp--preset--font-size--small);
	background: linear-gradient(transparent, var(--wp--preset--color--dark));
}
.pr-person:hover img, .pr-person:focus-within img { transform: scale(1.06); }
/* Partner logos are white/colour on transparent: they need the dark card, as on the original site */
.pr-logo { margin: 0; background: var(--wp--preset--color--dark); border: 2px solid transparent; border-radius: var(--wp--custom--radius--large); box-shadow: var(--wp--preset--shadow--card); aspect-ratio: 1; transition: transform var(--pr-ease), border-color var(--pr-ease); }
.pr-logo a { display: grid; place-items: center; width: 100%; height: 100%; }
.pr-logo:hover, .pr-logo:focus-within { transform: translateY(-3px); border-color: var(--wp--preset--color--yellow); }
.pr-logo img { max-width: 80%; max-height: 80%; object-fit: contain; }

/* ---------- Testimonials ---------- */
.pr-quote { margin: 0; border-left: 0; display: flex; flex-direction: column; }
.pr-quote::before { content: "“"; font-size: 4rem; line-height: .6; font-weight: 900; color: var(--wp--preset--color--purple); }
.pr-quote p { font-size: var(--wp--preset--font-size--medium); }
.pr-quote cite { margin-top: auto; padding-top: 1rem; font-style: normal; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }
.pr-quote cite strong { color: var(--wp--preset--color--dark); font-size: var(--wp--preset--font-size--medium); }

/* ---------- Contact ---------- */
.pr-contact a { color: var(--wp--preset--color--yellow); }
.pr-contact a:hover { color: var(--wp--preset--color--surface); }
.pr-contact .pr-contact__form a { color: var(--wp--preset--color--purple); }
.pr-contact .wp-block-button__link { color: var(--wp--preset--color--dark); }

/* Fluent Forms inside the contact block */
.pr-contact__form .ff-el-input--label label { font-weight: 700; color: var(--wp--preset--color--dark); }
/* Same 1.5px border on every field; border colour mixes to ≥3:1 on white (WCAG 1.4.11) */
.pr-contact__form .ff-el-form-control {
	border: 1.5px solid color-mix(in srgb, var(--wp--preset--color--muted) 70%, var(--wp--preset--color--surface));
	border-radius: var(--wp--custom--radius--small); padding: .75rem .9rem; font: inherit; line-height: 1.5;
	color: var(--wp--preset--color--ink); background-color: var(--wp--preset--color--surface);
	transition: border-color var(--pr-ease), box-shadow var(--pr-ease);
}
/* Specific enough to beat Fluent Forms' select:not([size]):not([multiple]) { height: auto } */
.pr-contact__form .fluentform .ff-el-group :is(input, select).ff-el-form-control { height: 3.25rem; }
/* Subtle focus: violet border + soft halo instead of the site-wide yellow ring */
.pr-contact__form .ff-el-form-control:focus,
.pr-contact__form .ff-el-form-control:focus-visible {
	outline: none; border-color: var(--wp--preset--color--purple);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--wp--preset--color--purple) 22%, transparent);
	border-radius: var(--wp--custom--radius--small);
}
.pr-contact__form .ff-el-help-message { margin-top: .35rem; font-size: var(--wp--preset--font-size--small); font-style: normal; color: var(--wp--preset--color--muted); }
.pr-contact__form .ff-el-is-error .ff-el-form-control { border-color: var(--wp--preset--color--orange-text); }
.pr-contact__form .error, .pr-contact__form .text-danger { color: var(--wp--preset--color--orange-text); font-size: var(--wp--preset--font-size--small); }
.pr-contact__form .ff_tc_checkbox, .pr-contact__form .ff_tc_label { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }
.pr-contact__form .ff-btn-submit.ff-btn-submit {
	background: var(--wp--preset--color--yellow); color: var(--wp--preset--color--dark); border: 0;
	border-radius: var(--wp--custom--radius--medium); font-weight: 900; padding: .95rem 1.4rem; font-size: var(--wp--preset--font-size--medium);
	transition: transform var(--pr-ease), box-shadow var(--pr-ease);
}
.pr-contact__form .ff-btn-submit.ff-btn-submit:hover { transform: translateY(-2px); box-shadow: var(--wp--preset--shadow--raised); }
.pr-contact__form .ff-message-success { border: 0; background: var(--wp--preset--color--lilac); color: var(--wp--preset--color--dark); border-radius: var(--wp--custom--radius--medium); font-weight: 700; }

/* ---------- Single post / case ---------- */
.pr-band-terms a { color: var(--wp--preset--color--yellow); text-decoration: none; }
.pr-post-meta > * { margin: 0 !important; }
.pr-post-meta > * + *::before { content: "·"; margin-right: 1rem; color: var(--wp--preset--color--soft); }
.pr-feature-image img { border-radius: var(--wp--custom--radius--large); }
.pr-prose { font-size: var(--wp--preset--font-size--large); line-height: 1.75; }
.pr-prose :where(h2, h3, h4) { margin-top: var(--wp--preset--spacing--50); }
.pr-prose h2 { font-size: var(--wp--preset--font-size--x-large); }
.pr-prose h3 { font-size: var(--wp--preset--font-size--large); }
.pr-prose .wp-block-image { margin-block: var(--wp--preset--spacing--40); }
.pr-prose blockquote { border-left: 5px solid var(--wp--preset--color--purple); padding-left: var(--wp--preset--spacing--40); }

/* ---------- Case layout (tools/case-layout.php + case patterns) ---------- */
.pr-case-facts {
	gap: var(--wp--preset--spacing--20) var(--wp--preset--spacing--50);
	background: var(--wp--preset--color--lilac); border-left: 5px solid var(--wp--preset--color--purple);
	border-radius: var(--wp--custom--radius--large); padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--50);
	font-size: var(--wp--preset--font-size--medium); margin-block: var(--wp--preset--spacing--50) !important;
}
.pr-case-facts p { margin: 0; }
.pr-case-chapter {
	margin-top: var(--wp--preset--spacing--70) !important; padding-top: var(--wp--preset--spacing--40);
	border-top: 1px solid var(--wp--preset--color--border); color: var(--wp--preset--color--purple);
	font-size: var(--wp--preset--font-size--xx-large);
}
.pr-case-chapter::before {
	content: ""; display: block; width: 64px; height: 5px; border-radius: 5px; margin-bottom: var(--wp--preset--spacing--30);
	background: var(--wp--preset--color--yellow);
}
.pr-case-row { gap: var(--wp--preset--spacing--60) !important; margin-block: var(--wp--preset--spacing--60) !important; }
.pr-case-row .wp-block-image, .pr-case-row .wp-block-embed { margin: 0; }
.pr-case-row .wp-block-image img { border-radius: var(--wp--custom--radius--large); box-shadow: var(--wp--preset--shadow--card); width: 100%; height: auto; }
.pr-case-row h3 { margin-top: 0; }
.pr-case-gallery { margin-block: var(--wp--preset--spacing--40) var(--wp--preset--spacing--60) !important; gap: var(--wp--preset--spacing--30) !important; align-items: flex-start; justify-content: center; }
/* An incomplete last row keeps the column width instead of stretching one clipping full-width */
.pr-case-gallery.pr-case-gallery > .wp-block-image { flex-grow: 0 !important; }
.pr-case-gallery.pr-case-gallery .wp-block-image img { border-radius: var(--wp--custom--radius--medium); box-shadow: var(--wp--preset--shadow--card); background: var(--wp--preset--color--surface); }
.pr-case-results {
	background: var(--wp--preset--color--dark); color: var(--wp--preset--color--surface);
	border-radius: var(--wp--custom--radius--large); padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--50);
	margin-block: var(--wp--preset--spacing--70) var(--wp--preset--spacing--40) !important;
}
.pr-case-results h2 { color: var(--wp--preset--color--yellow); margin-top: 0; font-size: var(--wp--preset--font-size--x-large); }
.pr-case-results ul { list-style: none; padding: 0; display: grid; gap: .7rem; }
.pr-case-results li { padding-left: 1.8rem; position: relative; }
.pr-case-results li::before { content: "✓"; position: absolute; left: 0; color: var(--wp--preset--color--yellow); font-weight: 900; }
.pr-case-results a { color: var(--wp--preset--color--yellow); }

/* Search */
.pr-search .wp-block-search__input { border-radius: var(--wp--custom--radius--medium); border: 2px solid var(--wp--preset--color--border); padding: .8rem 1rem; }
.pr-search .wp-block-search__button { margin-left: .5rem; }
