/*
Theme Name: York HEOR Group (Hello Child)
Description: Brand child theme for York HEOR Group on Hello Elementor. Own CSS and vanilla JS only; header and footer are Elementor Header & Footer Builder templates.
Author: York HEOR Group
Version: 2.0.0
Template: hello-elementor
Text Domain: york-hello-child
*/

/* Self-hosted brand font (SIL Open Font License 1.1). One family for headings and body. */
@font-face {
	font-family: "Libre Franklin"; src: url("fonts/libre-franklin-var.woff2") format("woff2");
	font-weight: 100 900; font-style: normal; font-display: swap;
}

/* ---------------------------------------------------------------
   1. Brand tokens and base
---------------------------------------------------------------- */
:root {
	--yk-navy: #0B2545;
	--yk-navy-2: #12325B;
	--yk-teal: #13A89E;
	--yk-teal-dark: #0E8A82;
	--yk-light: #EEF4F8;
	--yk-line: #D9E3EC;
	--yk-text: #44546A;
	--yk-radius: 4px;
	--yk-ease: cubic-bezier(.2,.7,.2,1);
	--yk-header-h: 88px;
}
html { scroll-behavior: smooth; }
html.yk-lock, html.yk-lock body { overflow: hidden; }
body {
	margin: 0; background: #fff; color: var(--yk-text);
	font-family: "Libre Franklin", system-ui, -apple-system, "Segoe UI", sans-serif;
	font-size: 17px; line-height: 1.65; -webkit-font-smoothing: antialiased;
}
button, input, select, textarea,
h1, h2, h3, h4, h5, h6,
.elementor-heading-title,
.elementor-widget-text-editor,
.elementor-widget-icon-list .elementor-icon-list-text { font-family: "Libre Franklin", system-ui, -apple-system, "Segoe UI", sans-serif; }
h1, h2, h3, h4, h5, h6, .elementor-heading-title { color: var(--yk-navy); letter-spacing: -0.005em; font-weight: 600; line-height: 1.25; margin-top: 0; }
p { color: var(--yk-text); margin: 0 0 1em; }
p, li, .elementor-widget-text-editor { letter-spacing: .01em; }
a { color: var(--yk-teal-dark); text-decoration: none; }
a:hover { color: var(--yk-navy); }
img { max-width: 100%; height: auto; }
::selection { background: var(--yk-teal); color: #fff; }
:focus-visible { outline: 2px solid var(--yk-teal); outline-offset: 2px; }
.yk-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.yk-tight p, .yk-tight { margin: 0; }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.yk-muted p { color: var(--yk-teal-dark); font-weight: 600; }
.yk-dark .yk-muted p { color: #7FD8D0; }
.yk-statement p { font-size: 22px; line-height: 1.5; color: var(--yk-navy); font-weight: 500; max-width: 980px; margin: 0; }
@media (max-width: 767px) { .yk-statement p { font-size: 19px; } }
.yk-dark p, .yk-dark .elementor-widget-text-editor { color: #C5D3E3; }
.yk-dark h1, .yk-dark h2, .yk-dark h3, .yk-dark .elementor-heading-title { color: #fff; }

/* ---------------------------------------------------------------
   2. Header (HFE template): transparent over navy, white + sticky on scroll
---------------------------------------------------------------- */
#masthead { position: fixed !important; top: 0; left: 0; right: 0; z-index: 999; background: transparent; transition: background-color .3s ease, box-shadow .3s ease; }
#masthead .bhf-hidden { display: none; }
.admin-bar #masthead { top: 32px; }
@media (max-width: 782px) { .admin-bar #masthead { top: 46px; } }
#masthead .elementor-location-header, #masthead > .elementor { background: transparent; }
.yk-header, .yk-header > .e-con-inner { height: var(--yk-header-h); min-height: 0 !important; padding-top: 0 !important; padding-bottom: 0 !important; transition: height .3s ease; }
.yk-nav .hfe-nav-menu > li { height: var(--yk-header-h); display: flex; align-items: center; transition: height .3s ease; }
#masthead.is-scrolled { --yk-header-h: 72px; }
#masthead.is-scrolled, body.yk-solid-header #masthead { background: #fff; box-shadow: 0 1px 0 rgba(11,37,69,.10); }
.yk-logo-wrap { position: relative; }
.yk-logo img { width: 176px; height: auto; display: block; transition: opacity .25s ease; }
.yk-logo-dark { position: absolute !important; left: 0; top: 50%; transform: translateY(-50%); opacity: 0; pointer-events: none; }
#masthead.is-scrolled .yk-logo-light, body.yk-solid-header .yk-logo-light { opacity: 0; pointer-events: none; }
#masthead.is-scrolled .yk-logo-dark, body.yk-solid-header .yk-logo-dark { opacity: 1; pointer-events: auto; }
@media (max-width: 767px) { .yk-logo img { width: 148px; } }

/* desktop navigation (HFE Navigation Menu widget) */
.yk-nav .hfe-nav-menu > li > a.hfe-menu-item, .yk-nav .hfe-nav-menu > li > .hfe-has-submenu-container > a.hfe-menu-item {
	color: #fff; font-size: 15px; font-weight: 500; letter-spacing: 0; padding: 0 16px; line-height: 1.2;
	transition: color .2s ease;
}
#masthead.is-scrolled .yk-nav .hfe-nav-menu > li > a.hfe-menu-item,
#masthead.is-scrolled .yk-nav .hfe-nav-menu > li > .hfe-has-submenu-container > a.hfe-menu-item,
body.yk-solid-header .yk-nav .hfe-nav-menu > li > a.hfe-menu-item,
body.yk-solid-header .yk-nav .hfe-nav-menu > li > .hfe-has-submenu-container > a.hfe-menu-item { color: var(--yk-navy); }
.yk-nav .hfe-nav-menu > li > a.hfe-menu-item:hover, .yk-nav .hfe-nav-menu > li > .hfe-has-submenu-container > a.hfe-menu-item:hover,
.yk-nav .hfe-nav-menu > li.current-menu-item > a.hfe-menu-item { color: #7FD8D0; }
#masthead.is-scrolled .yk-nav .hfe-nav-menu > li > a.hfe-menu-item:hover,
#masthead.is-scrolled .yk-nav .hfe-nav-menu > li > .hfe-has-submenu-container > a.hfe-menu-item:hover,
#masthead.is-scrolled .yk-nav .hfe-nav-menu > li.current-menu-item > a.hfe-menu-item,
body.yk-solid-header .yk-nav .hfe-nav-menu > li > a.hfe-menu-item:hover { color: var(--yk-teal-dark); }
.yk-nav .sub-arrow { color: inherit; padding-left: 6px; }
.yk-nav .sub-arrow i, .yk-nav .sub-arrow svg { display: none; }
.yk-nav .sub-arrow::after { content: ""; display: inline-block; width: 6px; height: 6px; border: solid currentColor; border-width: 0 1.5px 1.5px 0; transform: translateY(-3px) rotate(45deg); margin-left: 4px; }
.yk-nav .hfe-nav-menu .sub-menu {
	background: #fff; border: 1px solid #E3EAF1; border-radius: var(--yk-radius); padding: 10px 0; min-width: 340px;
	box-shadow: 0 18px 40px -24px rgba(11,37,69,.35);
}
.yk-nav .hfe-nav-menu .sub-menu a.hfe-sub-menu-item { color: var(--yk-navy) !important; padding: 11px 24px; font-size: 14.5px; font-weight: 500; line-height: 1.4; background: transparent; white-space: normal; }
.yk-nav .hfe-nav-menu .sub-menu a.hfe-sub-menu-item:hover, .yk-nav .hfe-nav-menu .sub-menu .current-menu-item > a.hfe-sub-menu-item { background: var(--yk-light); color: var(--yk-teal-dark) !important; }
/* one line, never wrapping; tighter spacing on 1200 to 1365px laptops */
.yk-nav .hfe-nav-menu { flex-wrap: nowrap !important; white-space: nowrap; }
.yk-nav, .yk-desk .elementor-widget-navigation-menu { flex-shrink: 0; }
@media (max-width: 1365px) { .yk-nav .hfe-nav-menu > li > a.hfe-menu-item, .yk-nav .hfe-nav-menu > li > .hfe-has-submenu-container > a.hfe-menu-item { padding: 0 12px; } .yk-desk { column-gap: 18px !important; } }
/* below 1200px the hamburger menu takes over (Elementor's own tablet breakpoint is 1024px) */
@media (min-width: 1025px) and (max-width: 1199px) {
	.yk-header .yk-desk { display: none !important; }
	.yk-header .yk-burger-w.elementor-hidden-desktop { display: block !important; }
	.yk-header .yk-mpanel.elementor-hidden-desktop { display: flex !important; }
}

/* burger button */
.yk-burger, .yk-close { background: none; border: 0; padding: 8px; cursor: pointer; color: #fff; display: inline-flex; flex-direction: column; gap: 5px; }
.yk-burger span { display: block; width: 24px; height: 2px; background: currentColor; border-radius: 1px; }
#masthead.is-scrolled .yk-burger, body.yk-solid-header .yk-burger { color: var(--yk-navy); }
.yk-close svg { width: 22px; height: 22px; fill: currentColor; }

/* mobile / tablet menu panel */
.yk-mpanel { position: fixed !important; inset: 0; z-index: 1000; background: var(--yk-navy); padding: 24px 24px 36px !important;
	display: flex; flex-direction: column; justify-content: space-between; overflow-y: auto;
	opacity: 0; visibility: hidden; transform: translateY(-8px); transition: opacity .3s ease, transform .3s var(--yk-ease), visibility 0s linear .3s; }
.yk-mpanel.is-open { opacity: 1; visibility: visible; transform: none; transition: opacity .3s ease, transform .3s var(--yk-ease); }
.admin-bar .yk-mpanel { top: 46px; }
.yk-mpanel .yk-mnav .hfe-nav-menu { display: block; }
.yk-mpanel .yk-mnav li { height: auto !important; }
.yk-mpanel > .e-con:first-child { flex-wrap: nowrap !important; justify-content: space-between !important; align-items: center !important; }
.yk-mpanel .elementor-widget-html { width: auto !important; flex: 0 0 auto; }
.yk-mpanel .yk-mnav li { border-bottom: 1px solid rgba(255,255,255,.1); }
.yk-mpanel .yk-mnav a.hfe-menu-item { color: #fff !important; font-size: 19px; font-weight: 600; padding: 16px 0 !important; background: none !important; }
.yk-mpanel .yk-mnav .sub-menu { display: block !important; height: auto !important; max-height: none !important; overflow: visible !important; position: static !important; visibility: visible !important; opacity: 1 !important; background: none !important; border: 0 !important; box-shadow: none !important; padding: 0 0 10px !important; width: auto !important; transform: none !important; }
.yk-mpanel .yk-mnav .sub-menu li { border: 0 !important; }
.yk-mpanel { flex-direction: column !important; flex-wrap: nowrap !important; }
.yk-mpanel > .e-con { width: 100% !important; }
.yk-mpanel .yk-mnav a.hfe-sub-menu-item { color: #C5D3E3 !important; font-size: 15px; font-weight: 500; padding: 8px 0 8px 14px !important; background: none !important; }
.yk-mpanel .yk-mnav .sub-arrow { display: none; }
.yk-mpanel .yk-contact-lines a { color: #fff; }
.yk-mpanel .yk-contact-lines p { color: #fff; }

/* ---------------------------------------------------------------
   3. Page header (navy band with photo, H1 and breadcrumbs)
---------------------------------------------------------------- */
.yk-pagehead { position: relative; }
.yk-pagehead .yk-ph-title .elementor-heading-title { color: #fff; line-height: 1.15; max-width: 900px; }
.yk-crumbs p { margin: 0; font-size: 14px; color: rgba(255,255,255,.8); }
.yk-crumbs a { color: rgba(255,255,255,.85); }
.yk-crumbs a:hover { color: #fff; }
.yk-crumbs .sep { margin: 0 10px; color: rgba(255,255,255,.5); }

/* ---------------------------------------------------------------
   4. 404 and search (Hello templates)
---------------------------------------------------------------- */
main#content.site-main { max-width: 1200px; margin: 0 auto; padding: 150px 25px 90px; }
@media (max-width: 767px) { main#content.site-main { padding: 120px 20px 64px; } }
.yk-404-links { display: flex; flex-wrap: wrap; gap: 20px; align-items: center; margin: 28px 0 8px; }
.yk-404-btn { background: var(--yk-teal); color: #fff !important; padding: 15px 26px; border-radius: var(--yk-radius); font-weight: 600; font-size: 15px; }
.yk-404-btn:hover { background: var(--yk-navy); }
.yk-404-link { font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }
body.search article.post { padding: 18px 0; border-bottom: 1px solid var(--yk-line); }
body.search article.post .entry-title { font-size: 22px; margin: 0; }
body.error404 .page-header .entry-title, body.search .page-header .entry-title { font-size: clamp(32px, 4vw, 48px); color: var(--yk-navy); }
body.error404 .page-content p, body.search .page-content p { font-size: 18px; }
body.error404 .page-content::after { content: ""; display: block; }
.search-form { display: flex; gap: 10px; max-width: 520px; margin-top: 24px; }
.search-form input[type=search] { flex: 1; border: 1px solid var(--yk-line); border-radius: var(--yk-radius); padding: 12px 14px; font-size: 16px; }
.search-form button, .search-form input[type=submit] { background: var(--yk-teal); color: #fff; border: 0; border-radius: var(--yk-radius); padding: 12px 20px; font-weight: 600; cursor: pointer; }
.search-form button:hover, .search-form input[type=submit]:hover { background: var(--yk-navy); }

/* ---------------------------------------------------------------
   5. Contact form (Contact Form 7, standard tags)
---------------------------------------------------------------- */
.yk-form .yk-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; }
@media (max-width: 767px) { .yk-form .yk-row2 { grid-template-columns: 1fr; } }
.yk-form .yk-field { display: block; margin-bottom: 18px; }
.yk-form input[type=text], .yk-form input[type=email], .yk-form input[type=tel], .yk-form select, .yk-form textarea {
	width: 100%; border: 0; border-bottom: 1px solid var(--yk-line); border-radius: 0; background: transparent;
	padding: 12px 2px; font-size: 16px; color: var(--yk-navy); font-family: inherit; transition: border-color .2s ease;
}
.yk-form textarea { min-height: 130px; resize: vertical; }
.yk-form input:focus, .yk-form select:focus, .yk-form textarea:focus { outline: none; border-bottom-color: var(--yk-teal); }
.yk-form ::placeholder { color: #7A8AA0; opacity: 1; }
.yk-form select { appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--yk-navy) 50%), linear-gradient(135deg, var(--yk-navy) 50%, transparent 50%); background-position: calc(100% - 14px) 50%, calc(100% - 9px) 50%; background-size: 5px 5px; background-repeat: no-repeat; padding-right: 28px; }
.yk-form .wpcf7-submit {
	background: var(--yk-teal); color: #fff; border: 0; border-radius: var(--yk-radius); padding: 16px 28px;
	font-size: 15px; font-weight: 600; cursor: pointer; transition: background-color .2s ease; font-family: inherit;
}
.yk-form .wpcf7-submit:hover { background: var(--yk-navy); }
.yk-form .wpcf7-not-valid-tip { font-size: 13px; color: #B3261E; margin-top: 4px; }
.wpcf7 form .wpcf7-response-output { margin: 16px 0 0; border-radius: var(--yk-radius); font-size: 15px; }
.yk-form .wpcf7-spinner { margin: 0 0 0 12px; }

/* ---------------------------------------------------------------
   6. Content blocks
---------------------------------------------------------------- */
/* plain lists: small square bullet in the accent colour */
.yk-ul, .yk-ol { margin: 0; padding: 0; }
.yk-ul { list-style: none; }
.yk-ul li { position: relative; padding: 0 0 0 20px; margin: 0 0 10px; color: var(--yk-navy); line-height: 1.55; }
.yk-ul li::before { content: ""; position: absolute; left: 0; top: .62em; width: 6px; height: 6px; background: var(--yk-teal); }
.yk-ul-dark li, .yk-dark .yk-ul li { color: #fff; }
.yk-ul-2 { columns: 2; column-gap: 40px; }
.yk-ul-2 li { break-inside: avoid; }
@media (max-width: 767px) {
	.yk-ul-2 { columns: 1; }
}

.yk-ol { list-style: none; counter-reset: yk; }
.yk-ol li { counter-increment: yk; display: flex; gap: 18px; padding: 16px 0; border-top: 1px solid var(--yk-line); color: var(--yk-navy); font-weight: 500; }
.yk-ol li:last-child { border-bottom: 1px solid var(--yk-line); }
.yk-ol li::before { content: counter(yk) "."; color: var(--yk-teal-dark); font-weight: 600; min-width: 22px; }

/* divided lists */
.yk-divided > .yk-div-item { border-top: 1px solid var(--yk-line); }
.yk-divided-1 > .yk-div-item:last-child,
.yk-divided:not(.yk-divided-2) > .yk-div-item:last-child { border-bottom: 1px solid var(--yk-line); }
.yk-divided-dark > .yk-div-item { border-color: rgba(255,255,255,.16) !important; }
.yk-item-title { margin: 0; font-size: 20px !important; line-height: 1.3 !important; font-weight: 600 !important; letter-spacing: -0.005em; }
.yk-link-item .yk-item-title a { color: var(--yk-navy) !important; transition: color .2s ease; }
.yk-link-item:hover .yk-item-title a { color: var(--yk-teal-dark) !important; }

/* columns with a top rule */
.yk-col-rule { border-top: 2px solid var(--yk-navy); }
.yk-col-rule-dark { border-top-color: var(--yk-teal); }

/* table-like grid (deliverables, tools) */
.yk-table { border-top: 1px solid var(--yk-line); }
.yk-table > .yk-cell { border-bottom: 1px solid var(--yk-line); }
.yk-table-dark, .yk-table-dark > .yk-cell { border-color: rgba(255,255,255,.18); }

/* photos: one radius, no frames */

.yk-photo img { aspect-ratio: 4 / 3; }
.yk-photo-tall img { aspect-ratio: 4 / 4.6; }

/* services photo grid */

/* CTA band */
.yk-cta { position: relative; }

/* contact */
.yk-form-card { background: #fff; border: 1px solid var(--yk-line); border-radius: var(--yk-radius); }
.yk-form-card .wpcf7 input, .yk-form-card .wpcf7 textarea, .yk-form-card .wpcf7 select { color: var(--yk-navy); border-radius: 0; }
.yk-form-card .wpcf7-submit {
	background: var(--yk-teal) !important; color: #fff !important; fill: #fff !important; border: 0 !important;
	border-radius: var(--yk-radius); padding: 16px 28px !important; width: auto !important; display: inline-flex; gap: 10px; align-items: center;
	font-size: 15px !important; font-weight: 600; letter-spacing: .01em; text-transform: none; transition: background-color .2s ease;
}
.yk-form-card .wpcf7-submit .icon { display: none; }
.yk-form-card .wpcf7-submit:hover { background: var(--yk-navy) !important; }
.yk-form-card .wpcf7-submit::before, .yk-form-card .wpcf7-submit::after { display: none !important; }
.yk-form-card select option { color: var(--yk-navy); background: #fff; }
.yk-contact-lines p { font-weight: 600; line-height: 1.8; }
.yk-contact-lines a { color: var(--yk-navy); }
.yk-dark .yk-contact-lines a, .yk-mmenu .yk-contact-lines a { color: #fff; }

/* ---------------------------------------------------------------
   7. Footer
---------------------------------------------------------------- */

.yk-footer .yk-logo img { width: 170px; }
.yk-footer h6.elementor-heading-title { text-transform: uppercase; letter-spacing: .12em; font-size: 13px !important; }
.yk-foot-links .elementor-icon-list-text { color: #C5D3E3 !important; transition: color .2s ease; }
.yk-foot-links a:hover .elementor-icon-list-text { color: #fff !important; }
.yk-foot-bottom { border-top: 1px solid rgba(255,255,255,.12); }
.yk-social .elementor-social-icon { background: var(--yk-navy-2) !important; border: 1px solid rgba(255,255,255,.18); border-radius: var(--yk-radius) !important; transition: background-color .2s ease; }
.yk-social .elementor-social-icon:hover { background: var(--yk-teal) !important; }

/* 404 */

/* back to top */

/* ---------------------------------------------------------------
   8. Quiet motion: one fade/slide-in per block (js/reveal.js)
---------------------------------------------------------------- */
.yk-js .yk-reveal { opacity: 0; transform: translateY(16px); transition: opacity .6s cubic-bezier(.2,.7,.2,1), transform .6s cubic-bezier(.2,.7,.2,1); }
.yk-js .yk-reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
	.yk-js .yk-reveal { opacity: 1; transform: none; }
}

/* Growla mouse trail: disabled */

/* ---------------------------------------------------------------
   9. FAQ (details/summary) and related services
---------------------------------------------------------------- */
.yk-faq { border-top: 1px solid var(--yk-line); }
.yk-faq-item { border-bottom: 1px solid var(--yk-line); }
.yk-faq-item summary {
	list-style: none; cursor: pointer; padding: 20px 40px 20px 0; position: relative;
	color: var(--yk-navy); font-weight: 600 !important; font-size: 18px !important; line-height: 1.4;
}
.yk-faq-item summary::-webkit-details-marker { display: none; }
.yk-faq-item summary::after {
	content: "+"; position: absolute; right: 4px; top: 50%; transform: translateY(-50%);
	color: var(--yk-teal-dark); font-size: 22px; font-weight: 500;
}
.yk-faq-item[open] summary::after { content: "\2212"; }
.yk-faq-item summary:hover { color: var(--yk-teal-dark); }
.yk-faq-item summary:focus-visible { outline: 2px solid var(--yk-teal); outline-offset: 2px; }
.yk-faq-item p { margin: 0 0 22px; max-width: 760px; }
.yk-related-row { border-top: 1px solid var(--yk-line); }
.yk-related { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px 32px; }
.yk-related a { color: var(--yk-teal-dark); font-weight: 600; text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.yk-related a:hover { color: var(--yk-navy); }
.yk-footer .yk-foot-head .elementor-heading-title { text-transform: uppercase; letter-spacing: .12em; font-size: 13px !important; }

/* ---------------------------------------------------------------
   10. v3 dense layout: grids, cards, panels, timeline, checklists
---------------------------------------------------------------- */
.elementor-widget-text-editor { font-size: 17px; }
h3.elementor-heading-title, .yk-item-title { color: var(--yk-navy); }

/* grids: width = (100% - (n-1) * column gap) / n, using Elementor's container gap variable */
.yk-grid > .elementor-element { flex-grow: 0; margin-bottom: 0 !important; }
.yk-grid { --yk-cg: var(--column-gap, 24px); }
.yk-grid-2 > .elementor-element { width: calc((100% - 1 * var(--yk-cg)) / 2) !important; }
.yk-grid-3 > .elementor-element { width: calc((100% - 2 * var(--yk-cg)) / 3) !important; }
.yk-grid-4 > .elementor-element { width: calc((100% - 3 * var(--yk-cg)) / 4) !important; }
.yk-grid-5 > .elementor-element { width: calc((100% - 4 * var(--yk-cg)) / 5) !important; }
@media (max-width: 1024px) {
	.yk-grid-3 > .elementor-element, .yk-grid-4 > .elementor-element { width: calc((100% - var(--yk-cg)) / 2) !important; }
	.yk-grid-5 > .elementor-element { width: calc((100% - 2 * var(--yk-cg)) / 3) !important; }
}

@media (max-width: 767px) {
	.yk-grid-2 > .elementor-element, .yk-grid-3 > .elementor-element, .yk-grid-4 > .elementor-element { width: 100% !important; }
	.yk-grid-5 > .elementor-element, .yk-ind-grid > .elementor-element, .yk-lang-grid > .elementor-element { width: calc((100% - var(--yk-cg)) / 2) !important; }
	.yk-why > .elementor-element { width: 100% !important; }
}

/* cards: thin border, subtle hover */
.yk-card2 { background: #fff; border: 1px solid var(--yk-line); border-radius: var(--yk-radius); transition: border-color .2s ease, box-shadow .2s ease; position: relative; }
.yk-card2:hover { border-color: #B9CAD9; box-shadow: 0 10px 24px -18px rgba(11,37,69,.45); }
.yk-card2-dark { background: rgba(255,255,255,.04); border-color: rgba(255,255,255,.16); }
.yk-card2-dark:hover { border-color: rgba(255,255,255,.34); box-shadow: none; }
.e-con.yk-card2 { height: auto; }
.yk-grid > .yk-card2, .yk-grid > .e-con { align-self: stretch; }

/* service photo cards (whole card clickable) */
.yk-svc-card { overflow: hidden; }
.yk-card-photo img { width: 100%; aspect-ratio: 2 / 1; object-fit: cover; border-radius: var(--yk-radius) var(--yk-radius) 0 0; display: block; }
.yk-stretch::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.yk-svc-card:hover .yk-item-title a { color: var(--yk-teal-dark) !important; }
.yk-svc-card .yk-item-title { font-size: 19px !important; }
.yk-line-icon .elementor-icon { font-size: 24px; color: var(--yk-teal); }
.yk-line-icon .elementor-icon svg { width: 24px; height: 24px; fill: var(--yk-teal); }
.yk-card2-dark .yk-line-icon .elementor-icon svg { fill: #7FD8D0; }

/* section heading row with a text link */

@media (max-width: 767px) {
	.yk-sec-link .e-con, .yk-sec-link { justify-content: flex-start !important; }
}

.yk-subhead { margin-top: 8px; }

/* big key-questions block (home) */
.yk-bigq { list-style: none; margin: 0; padding: 0; columns: 2; column-gap: 48px; }
.yk-bigq li { break-inside: avoid; padding: 16px 0 16px; border-top: 2px solid var(--yk-navy); margin-bottom: 14px; font-weight: 600 !important; color: var(--yk-navy); line-height: 1.35 !important; font-size: 22px !important; letter-spacing: -0.01em; }
@media (max-width: 767px) {
	.yk-bigq { columns: 1; }
	.yk-bigq li { font-size: 19px !important; }
}

.yk-q-cards .elementor-heading-title { font-size: 18px !important; }

/* approach: three connected steps */
.yk-steps { position: relative; }
.yk-step-no .elementor-heading-title { display: inline-flex; width: 30px; height: 30px; align-items: center; justify-content: center; border: 1.5px solid var(--yk-teal); border-radius: 50%; color: var(--yk-teal-dark) !important; }

/* horizontal timeline (stacks on mobile) */
.yk-timeline { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(7, 1fr); counter-reset: tl; position: relative; }
.yk-timeline::before { content: ""; position: absolute; left: 4%; right: 4%; top: 17px; height: 1.5px; background: var(--yk-line); }
.yk-timeline li { counter-increment: tl; position: relative; text-align: center; padding: 0 8px; }
.yk-tl-dot { display: flex; width: 36px; height: 36px; margin: 0 auto 14px; border-radius: 50%; background: #fff; border: 1.5px solid var(--yk-teal); align-items: center; justify-content: center; position: relative; z-index: 1; }
.yk-tl-dot::before { content: counter(tl); font-weight: 700; color: var(--yk-teal-dark); font-size: 15px; }
.yk-tl-label { display: block; font-weight: 600; color: var(--yk-navy); line-height: 1.35; font-size: 16px; }
@media (max-width: 900px) {
	.yk-timeline { grid-template-columns: 1fr; gap: 14px; }
	.yk-timeline::before { left: 17px; right: auto; top: 18px; bottom: 18px; width: 1.5px; height: auto; }
	.yk-timeline li { display: flex; align-items: center; gap: 14px; text-align: left; padding: 0; }
	.yk-tl-dot { margin: 0; flex-shrink: 0; }
}

/* checklist panels (deliverables, applications) */
.yk-check { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px 28px; }
.yk-check-2 { grid-template-columns: repeat(2, 1fr); }
.yk-check li { position: relative; padding-left: 28px; font-weight: 500; color: var(--yk-navy); line-height: 1.45; }
.yk-check li::before { content: ""; position: absolute; left: 2px; top: .28em; width: 6px; height: 11px; border: solid var(--yk-teal); border-width: 0 2px 2px 0; transform: rotate(45deg); }
.yk-dark .yk-check li { color: #fff; }
.yk-dark .yk-check li::before { border-color: #7FD8D0; }
@media (max-width: 767px) {
	.yk-check, .yk-check-2 { grid-template-columns: 1fr; }
}

/* slim contact strip */
.yk-strip { border: 1px solid var(--yk-line); border-left: 3px solid var(--yk-teal); border-radius: var(--yk-radius); background: #fff; }
.yk-strip-text { max-width: 760px; }
.yk-strip-text p { color: var(--yk-navy); font-weight: 500; }

/* photos sized to the text beside them */
.yk-photo-fit, .yk-photo-fit .elementor-widget-container { height: 100%; }
.yk-photo-fit img { height: 100% !important; min-height: 260px; max-height: 460px; aspect-ratio: auto !important; object-fit: cover; }
@media (max-width: 767px) {
	.yk-photo-fit img { min-height: 0; max-height: 260px; aspect-ratio: 16 / 10 !important; }
}

/* statements tighter */
.yk-statement p { font-size: 22px; }
@media (max-width: 767px) {
	.yk-statement p { font-size: 19px; }
}

/* card titles: never split words mid-letter */
.yk-card2 .elementor-heading-title, .yk-card2 h3 { word-break: normal; overflow-wrap: normal; hyphens: manual; }
.yk-q-cards > .elementor-element:last-child:nth-child(odd) { width: 100% !important; }
@media (max-width: 767px) {
	.yk-grid-5 > .yk-card2, .yk-ind-grid > .yk-card2 { padding: 16px 14px !important; }
	.yk-grid-5 .elementor-heading-title, .yk-ind-grid .elementor-heading-title { font-size: 15.5px !important; }
	.yk-grid-5 .elementor-widget-text-editor, .yk-grid-5 .elementor-widget-text-editor p { font-size: 14px !important; }
}

/* ===============================================================
   11. Pattern pass (2026-10-19): split hero, feature strip, statement,
   bento, connected lines, card hover, FAQ, CTA band, wipe + bars.
   Motion: once, 400 to 700 ms, ease-out, transform/opacity/clip only.
================================================================ */
:root { --yk-ease: cubic-bezier(.2,.7,.2,1); }

/* 1. Split hero with photo mosaic */
.yk-hero2 { position: relative; overflow: hidden; }
.yk-hero2 .yk-hero-title .elementor-heading-title { line-height: 1.14 !important; letter-spacing: -0.01em; }
.yk-hero2 .yk-hero-sub p { max-width: 560px; color: #C5D3E3; }
.yk-mosaic { align-items: flex-start; }
.yk-mos img { width: 100%; display: block; object-fit: cover; border-radius: var(--yk-radius); }
.yk-mos-a img, .yk-mos-d img { aspect-ratio: 4 / 3; }
.yk-mos-b img, .yk-mos-c img { aspect-ratio: 4 / 5; }
.yk-mos-col2 { margin-top: 56px; }
@media (max-width: 1024px) {
	.yk-mos-col2 { margin-top: 32px; }
}

@media (max-width: 767px) {
	.yk-mos-b img, .yk-mos-c img { aspect-ratio: 1 / 1; }
	.yk-mos-col2 { margin-top: 24px; }
}

.yk-js .yk-hero2 .yk-hero-text > .elementor-element { opacity: 0; transform: translateY(14px); transition: opacity .6s var(--yk-ease), transform .6s var(--yk-ease); }
.yk-js .yk-hero2 .yk-mos { opacity: 0; transform: translateY(28px); transition: opacity .7s var(--yk-ease), transform .7s var(--yk-ease); }
.yk-js .yk-hero2.is-in .yk-hero-text > .elementor-element, .yk-js .yk-hero2.is-in .yk-mos { opacity: 1; transform: none; }

/* 2. Feature strip under the hero */
.yk-why-sec { border-bottom: 1px solid var(--yk-line); }
.yk-strip-lead p { color: var(--yk-navy); font-weight: 500; }
.yk-sq-icon .elementor-icon { border-radius: var(--yk-radius) !important; background-color: var(--yk-navy) !important; }
.yk-sq-icon .elementor-icon svg { fill: #fff !important; }
.yk-feat > .yk-sq-icon { flex-shrink: 0; width: auto !important; }

/* stagger groups */
.yk-js .yk-stagger > .yk-item { opacity: 0; transform: translateY(16px); transition: opacity .55s var(--yk-ease), transform .55s var(--yk-ease), border-color .2s ease, box-shadow .2s ease; }
.yk-js .yk-scale > .yk-item { transform: scale(.97); }
.yk-js .yk-stagger.is-in > .yk-item { opacity: 1; transform: none; }

/* 3. Statement band with scroll-linked word reveal */
.yk-statement-big .yk-words { font-size: 40px !important; line-height: 1.25 !important; font-weight: 600 !important; letter-spacing: -0.01em; color: var(--yk-navy) !important; max-width: 1000px; margin: 0; }
@media (max-width: 1024px) {
	.yk-statement-big .yk-words { font-size: 32px !important; }
}

@media (max-width: 767px) {
	.yk-statement-big .yk-words { font-size: 25px !important; }
}

.yk-js .yk-w { opacity: .2; transition: opacity .4s ease-out; }
.yk-js .yk-w.on { opacity: 1; }

/* 4. Dark bento */
.yk-bento { display: grid !important; grid-template-columns: repeat(3, 1fr); grid-auto-rows: minmax(150px, auto); gap: 20px; }
.yk-bento > .elementor-element { width: auto !important; margin: 0 !important; }
.yk-bento > .yk-b-tall { grid-column: 1; grid-row: 1 / span 2; }
.yk-bento > .yk-b-photo { grid-column: 2 / span 2; grid-row: 1; overflow: hidden; }
.yk-bento > .yk-b-a { grid-column: 2; grid-row: 2; }
.yk-bento > .yk-b-b { grid-column: 3; grid-row: 2; }
.yk-b-photo .yk-b-img, .yk-b-photo .yk-b-img .elementor-widget-container { height: 100%; }
.yk-b-img img { width: 100%; height: 100% !important; min-height: 200px; max-height: 260px; object-fit: cover; display: block; border-radius: var(--yk-radius); }
@media (max-width: 767px) {
	.yk-bento { grid-template-columns: 1fr; }
	.yk-bento > .elementor-element { grid-column: auto !important; grid-row: auto !important; }
	.yk-bento > .yk-b-photo { order: -1; }
	.yk-b-img img { max-height: 200px; }
}

/* 5. Image clip wipe + accent-bar list */
.yk-js .yk-wipe img { clip-path: inset(0 100% 0 0); transition: clip-path .7s var(--yk-ease); }
.yk-js .yk-wipe.is-in img { clip-path: inset(0 0 0 0); }
.yk-bars { list-style: none; margin: 0; padding: 0; }
.yk-bars li { position: relative; padding: 2px 0 2px 18px; margin: 0 0 14px; color: var(--yk-text); line-height: 1.6; }
.yk-bars li::before { content: ""; position: absolute; left: 0; top: 4px; bottom: 4px; width: 3px; background: var(--yk-teal); border-radius: 2px; }
.yk-js .yk-bars li { opacity: 0; transform: translateX(-12px); transition: opacity .5s var(--yk-ease), transform .5s var(--yk-ease); }
.yk-js .yk-bars.is-in li { opacity: 1; transform: none; }
.yk-lead p { color: var(--yk-navy); }

/* 6. Connected process lines: drawn progress --p (0 to 1) set by JS; full without JS */
.yk-line { --p: 1; }
.yk-timeline::after { content: ""; position: absolute; left: 4%; right: 4%; top: 17px; height: 2px; background: var(--yk-teal); transform: scaleX(var(--p)); transform-origin: left center; z-index: 0; }
.yk-tl-dot { transition: background-color .35s ease-out, border-color .35s ease-out; }
.yk-tl-dot::before { transition: color .35s ease-out; }
.yk-tl-dot.is-on { background: var(--yk-teal); border-color: var(--yk-teal); }
.yk-tl-dot.is-on::before { color: #fff; }
@media (max-width: 900px) {
	.yk-timeline::after { left: 17px; right: auto; top: 18px; bottom: 18px; width: 2px; height: auto; transform: scaleY(var(--p)); transform-origin: center top; }
}

.yk-steps.yk-line { position: relative; }
.yk-steps.yk-line::before, .yk-steps.yk-line::after {
	content: ""; position: absolute; top: 43px; left: 43px; height: 2px; z-index: 2;
	right: calc(33.333% - 62px);
}
.yk-steps.yk-line::before { background: var(--yk-line); }
.yk-steps.yk-line::after { background: var(--yk-teal); transform: scaleX(var(--p)); transform-origin: left center; }
.yk-steps .yk-step-no { position: relative; z-index: 3; }
.yk-steps .yk-step-no .elementor-heading-title { background: #fff; transition: background-color .35s ease-out, color .35s ease-out; }
.yk-steps .yk-step-no.is-on .elementor-heading-title { background: var(--yk-teal); color: #fff !important; }
@media (max-width: 1024px) {
	.yk-steps.yk-line::before, .yk-steps.yk-line::after { display: none; }
}

/* 7. Service cards: lift + image zoom */
.yk-svc-card { transition: transform .35s var(--yk-ease), box-shadow .35s ease, border-color .2s ease, opacity .55s var(--yk-ease); }
.yk-svc-card:hover, .yk-js .yk-stagger.is-in > .yk-svc-card:hover { transform: translateY(-4px); box-shadow: 0 18px 36px -24px rgba(11,37,69,.45); }
.yk-svc-card .yk-card-photo { overflow: hidden; border-radius: var(--yk-radius) var(--yk-radius) 0 0; }
.yk-svc-card .yk-card-photo img { transition: transform .6s var(--yk-ease); }
.yk-svc-card:hover .yk-card-photo img { transform: scale(1.04); }

/* 8. FAQ: centred narrow column, circular +/- that rotates */
.elementor-element.yk-faq-wrap { width: 100% !important; max-width: 820px !important; align-self: center; }
.yk-faq-item summary { padding-right: 56px; }
.yk-faq-item summary::after {
	content: "+"; right: 0; width: 32px; height: 32px; border: 1.5px solid var(--yk-teal); border-radius: 50%;
	display: flex; align-items: center; justify-content: center; line-height: 1; font-size: 20px;
	transition: transform .35s var(--yk-ease), background-color .25s ease, color .25s ease;
	transform: translateY(-50%) rotate(0deg);
}
.yk-faq-item[open] summary::after { content: "+"; transform: translateY(-50%) rotate(45deg); background: var(--yk-teal); color: #fff; }
.yk-faq-item p { overflow: hidden; }

/* 9. CTA band: solid navy, subtle background shift on button hover only */
.yk-cta { transition: background-color .4s ease-out; }
.yk-cta:has(.yk-btn:hover) { background-color: #0F2D53 !important; }

@media (prefers-reduced-motion: reduce) {
	.yk-js .yk-hero2 .yk-hero-text > .elementor-element, .yk-js .yk-hero2 .yk-mos, .yk-js .yk-stagger > .yk-item,
	.yk-js .yk-bars li, .yk-js .yk-w { opacity: 1 !important; transform: none !important; }
	.yk-js .yk-wipe img { clip-path: none !important; }
}

/* ---------------------------------------------------------------
   12. Core button widget (theme-independent buttons)
---------------------------------------------------------------- */
.yk-btn .elementor-button { font-family: "Libre Franklin", sans-serif; font-weight: 600; font-size: 15px; line-height: 1.2; letter-spacing: .01em; text-transform: none; border-radius: var(--yk-radius); transition: background-color .2s ease, color .2s ease, box-shadow .2s ease; }
.yk-btn-solid .elementor-button { background-color: var(--yk-teal) !important; color: #fff !important; }
.yk-btn-solid .elementor-button:hover { background-color: var(--yk-navy) !important; color: #fff !important; }
.yk-dark .yk-btn-solid .elementor-button:hover, .yk-cta .yk-btn-solid .elementor-button:hover { background-color: #fff !important; color: var(--yk-navy) !important; }
.yk-btn-ghost .elementor-button { background: transparent !important; color: var(--yk-navy) !important; box-shadow: inset 0 0 0 1.5px var(--yk-navy); }
.yk-btn-ghost .elementor-button:hover { background-color: var(--yk-navy) !important; color: #fff !important; }
.yk-dark .yk-btn-ghost .elementor-button { color: #fff !important; box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.75); }
.yk-dark .yk-btn-ghost .elementor-button:hover { background-color: #fff !important; color: var(--yk-navy) !important; }
.yk-btn-link .elementor-button { background: transparent !important; padding: 0 !important; color: var(--yk-teal-dark) !important; text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.yk-btn-link .elementor-button:hover { color: var(--yk-navy) !important; }
.yk-dark .yk-btn-link .elementor-button { color: #7FD8D0 !important; }
.yk-dark .yk-btn-link .elementor-button:hover { color: #fff !important; }
.yk-head-btn .elementor-button { white-space: nowrap; padding: 13px 20px !important; }
.yk-sec-link .elementor-widget-button { text-align: right; }
@media (max-width: 767px) {
	.yk-sec-link .elementor-widget-button { text-align: left; }
}

/* No layout shift: static footer (no fixed footer reveal), fixed-ratio photos on mobile */

@media (max-width: 767px) {
	.yk-photo-fit img { height: auto !important; aspect-ratio: 16 / 10 !important; max-height: none; }
}


/* service card titles: navy, teal on hover */
.yk-item-title a { color: var(--yk-navy) !important; transition: color .2s ease; }
.yk-svc-card:hover .yk-item-title a, .yk-link-item:hover .yk-item-title a { color: var(--yk-teal-dark) !important; }

/* ===============================================================
   13. Home redesign (2026-10-19 review): why cards, mission band, question cards,
   workflow step cards, "Who we support" tabs, two-column FAQ, centred CTA band.
================================================================ */
/* section actions sit under the content */
.yk-under { margin-top: 4px; }
.yk-btn-lg .elementor-button { min-height: 54px; padding: 18px 34px !important; font-size: 16px; display: inline-flex; align-items: center; }

/* equal-height card rows */
.yk-eq > .elementor-element { display: flex; flex-direction: column; }

/* 1. Why cards */
.yk-why-card { background: #fff; }
.yk-why-card h3.elementor-heading-title { line-height: 1.3; }
.yk-why-card .yk-sq-icon .elementor-icon { width: 42px; height: 42px; display: inline-flex; align-items: center; justify-content: center; padding: 0 !important; }
.yk-why-card .yk-sq-icon .elementor-icon svg { width: 18px; height: 18px; }
.yk-why-card .yk-sq-icon { flex: 0 0 auto; width: auto !important; }
.yk-why-card p { max-width: 34ch; }

/* 2. Mission band */
.yk-mission-frame { align-items: stretch; }
.yk-mission-photo img { min-height: 300px; max-height: 380px; }
.yk-label .elementor-heading-title { text-transform: uppercase; letter-spacing: .16em; }
.yk-statement-dark .yk-words { color: #fff !important; font-size: 36px !important; line-height: 1.3 !important; max-width: 640px; }
@media (max-width: 1024px) { .yk-statement-dark .yk-words { font-size: 30px !important; } }
@media (max-width: 767px) { .yk-statement-dark .yk-words { font-size: 24px !important; } .yk-mission-photo img { min-height: 0; } }

/* 3. Key question cards */
.yk-qcards { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.yk-qcards li {
	position: relative; background: #fff; border: 1px solid var(--yk-line); border-radius: var(--yk-radius);
	padding: 18px 52px 18px 22px; color: var(--yk-navy); font-weight: 600; font-size: 17px; line-height: 1.4;
	transition: border-color .2s ease, transform .3s var(--yk-ease);
}
.yk-qcards li::after {
	content: ""; position: absolute; right: 22px; top: 50%; width: 8px; height: 8px; margin-top: -4px;
	border: solid var(--yk-teal); border-width: 2px 2px 0 0; transform: rotate(45deg);
}
.yk-qcards li:hover { border-color: var(--yk-teal); transform: translateX(3px); }

/* 5. Workflow step cards on the drawn line */
.yk-timeline { gap: 12px; }
.yk-timeline::before, .yk-timeline::after { top: 21px; }
.yk-timeline li { padding: 0; display: flex; flex-direction: column; align-items: center; }
.yk-tl-dot { width: 44px; height: 44px; margin: 0 auto 14px; background: #fff; }
.yk-tl-dot::before { font-size: 16px; }
.yk-tl-label {
	width: 100%; flex: 1; background: #fff; border: 1px solid var(--yk-line); border-radius: var(--yk-radius);
	padding: 16px 12px; text-align: center; font-size: 16.5px !important; font-weight: 600; line-height: 1.35;
	color: var(--yk-navy); display: flex; align-items: center; justify-content: center; min-height: 86px;
}
@media (max-width: 900px) {
	.yk-timeline { gap: 12px; }
	.yk-timeline::before, .yk-timeline::after { left: 21px; top: 22px; bottom: 22px; }
	.yk-timeline li { flex-direction: row; align-items: center; gap: 16px; }
	.yk-tl-dot { margin: 0; flex-shrink: 0; }
	.yk-tl-label { min-height: 0; justify-content: flex-start; text-align: left; padding: 14px 16px; }
}

/* 6+7. Who we support tabs */
.yk-tablist { display: inline-flex; gap: 6px; padding: 5px; background: var(--yk-light); border-radius: var(--yk-radius); margin-bottom: 24px; flex-wrap: wrap; }
.yk-tab {
	border: 0 !important; background: transparent !important; color: var(--yk-navy) !important; font: 600 16px/1.2 "Libre Franklin", sans-serif !important;
	padding: 13px 22px !important; border-radius: var(--yk-radius) !important; cursor: pointer; box-shadow: none !important;
	transition: background-color .2s ease, color .2s ease;
}
.yk-tabs .yk-tab[aria-selected="true"] { background: var(--yk-navy) !important; color: #fff !important; }
.yk-tabs .yk-tab:not([aria-selected="true"]):hover { background: #DDEBF2 !important; }
.yk-tabpanel:focus-visible { outline: 2px solid var(--yk-teal); outline-offset: 4px; }
.yk-tabpanel[hidden] { display: none; }
.yk-ti-grid { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.yk-ti-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.yk-ti-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1024px) { .yk-ti-5 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .yk-ti-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .yk-ti-5, .yk-ti-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .yk-ti { padding: 14px 12px; column-gap: 10px; } .yk-ti-t { font-size: 15.5px; } .yk-ti-d { font-size: 15px; } }
@media (max-width: 420px) { .yk-ti-5 { grid-template-columns: 1fr; } }
.yk-ti {
	display: grid; grid-template-columns: 34px 1fr; column-gap: 12px; row-gap: 4px; align-items: center;
	border: 1px solid var(--yk-line); border-radius: var(--yk-radius); padding: 16px; background: #fff; align-content: start;
	transition: background-color .2s ease, border-color .2s ease;
}
.yk-ti:hover { background: #E6F6F4; border-color: #B7E3DE; }
.yk-ti-i { width: 34px; height: 34px; border-radius: var(--yk-radius); background: #E6F6F4; display: flex; align-items: center; justify-content: center; }
.yk-ico { width: 17px; height: 17px; fill: var(--yk-teal-dark); }
.yk-ti:hover .yk-ti-i { background: #fff; }
.yk-ti-t { overflow-wrap: normal; hyphens: manual; font-weight: 600; color: var(--yk-navy); font-size: 16.5px; line-height: 1.35; }
.yk-ti-d { grid-column: 1 / -1; font-size: 15.5px; color: var(--yk-text); line-height: 1.5; margin-top: 6px; }
.yk-tab-more { margin: 22px 0 0; }
.yk-more-btn {
	display: inline-flex; align-items: center; min-height: 48px; padding: 0 24px; border-radius: var(--yk-radius);
	box-shadow: inset 0 0 0 1.5px var(--yk-navy) !important; color: var(--yk-navy) !important; font-weight: 600; font-size: 15px; text-decoration: none !important;
	transition: background-color .2s ease, color .2s ease;
}
.yk-more-btn:hover { background: var(--yk-navy) !important; color: #fff !important; }

/* 8. CTA band centred */
.yk-cta .yk-cta-text p { max-width: 640px; margin: 0 auto; }
.yk-cta .yk-cta-title .elementor-heading-title { max-width: 760px; margin: 0 auto; }

/* line geometry measured by reveal.js (first node to last node) */
.yk-line.yk-measured::before, .yk-line.yk-measured::after { left: var(--l) !important; right: auto !important; top: var(--t) !important; bottom: auto !important; width: var(--w) !important; height: var(--h) !important; }
.yk-line.yk-measured:not(.yk-vertical)::after { transform: scaleX(var(--p)); transform-origin: left center; }
.yk-line.yk-measured.yk-vertical::after { transform: scaleY(var(--p)); transform-origin: center top; }

/* tabs on phones: icon above the title so words never break; therapeutic areas one per row */
@media (max-width: 767px) {
	.yk-ti-4 .yk-ti { grid-template-columns: 1fr; row-gap: 10px; }
	.yk-ti-4 .yk-ti-t { font-size: 15.5px; }
}
@media (max-width: 520px) { .yk-ti-5 { grid-template-columns: 1fr; } }

/* ---------------------------------------------------------------
   14. Final pass: header contrast on page headers, consent, footer legal line, policy page
---------------------------------------------------------------- */
/* darker band behind the transparent header so white nav text keeps AA contrast over any photo */
.yk-pagehead::after {
	content: ""; position: absolute; left: 0; right: 0; top: 0; height: 190px; z-index: 0; pointer-events: none;
	background: linear-gradient(180deg, rgba(11,37,69,.88) 0%, rgba(11,37,69,.6) 55%, rgba(11,37,69,0) 100%);
}
.yk-pagehead > .e-con-inner, .yk-pagehead > .elementor-element { position: relative; z-index: 1; }

.yk-form .yk-consent { margin: 4px 0 20px; font-size: 14.5px; line-height: 1.5; color: var(--yk-text); }
.yk-form .yk-consent .wpcf7-list-item { margin: 0; }
.yk-form .yk-consent label { display: flex; gap: 10px; align-items: flex-start; cursor: pointer; }
.yk-form .yk-consent input[type=checkbox] { width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--yk-teal); flex: 0 0 auto; }
.yk-form .yk-consent a { text-decoration: underline; text-underline-offset: 3px; }

.yk-foot-legal p { margin: 0; color: #8EA3BC; font-size: 14px; }
.yk-foot-legal .sep { margin: 0 10px; }
.yk-foot-legal a { color: #C5D3E3; text-decoration: underline; text-underline-offset: 3px; }
.yk-foot-legal a:hover { color: #fff; }

.yk-policy { max-width: 820px; }
.yk-policy-block h2.elementor-heading-title { margin-bottom: 4px; }
.yk-policy .yk-ul { margin: 0 0 14px; }

/* ===============================================================
   15. Final review pass (2026-10-20)
================================================================ */
/* ---- Radius system: 12px cards/panels/photos, 8px controls and small icon tiles ---- */
:root { --yk-radius: 12px; --yk-r-ctl: 8px; }
.yk-btn .elementor-button, .yk-404-btn, .yk-more-btn, .search-form input[type=search], .search-form button,
.search-form input[type=submit], .yk-form .wpcf7-submit, .yk-form-card .wpcf7-submit, .wpcf7 form .wpcf7-response-output,
.yk-tab, .yk-vtab, .yk-sq-icon .elementor-icon, .yk-ti-i, .yk-social .elementor-social-icon, .yk-burger, .yk-close,
.yk-nav .hfe-nav-menu .sub-menu { border-radius: var(--yk-r-ctl) !important; }
.yk-form input[type=text], .yk-form input[type=email], .yk-form input[type=tel], .yk-form select, .yk-form textarea {
	border: 1px solid var(--yk-line) !important; border-radius: var(--yk-r-ctl) !important; background-color: #fff !important;
	padding: 13px 14px !important;
}
.yk-form input:focus, .yk-form select:focus, .yk-form textarea:focus { border-color: var(--yk-teal) !important; box-shadow: 0 0 0 3px rgba(19,168,158,.15); }
.yk-form select { background-position: calc(100% - 18px) 50%, calc(100% - 13px) 50% !important; }
.yk-form .yk-consent input[type=checkbox] { border-radius: 4px; }
.yk-form .yk-consent input[type=checkbox]:focus-visible { outline: 2px solid var(--yk-teal); outline-offset: 2px; border-radius: var(--yk-r-ctl); }
/* clip photos inside rounded cards; card photos round only the top corners */
.yk-card2, .yk-svc-card, .yk-form-card, .yk-strip, .yk-b-photo { overflow: hidden; }
.yk-svc-card .yk-card-photo, .yk-svc-card .yk-card-photo img { border-radius: var(--yk-radius) var(--yk-radius) 0 0 !important; }
.yk-photo img, .yk-mos img, .yk-b-img img, .yk-mission-photo img, .elementor-widget-image.yk-photo img { border-radius: var(--yk-radius) !important; }
.yk-pagehead, .yk-hero2, .yk-cta { border-radius: 0; }
.yk-mpanel { border-radius: 0; }

/* ---- Not links: no arrows, no hover lift, no pointer ---- */
.yk-qcards li { padding: 18px 22px !important; border-left: 3px solid var(--yk-teal) !important; cursor: default; }
.yk-qcards li::after { content: none !important; display: none !important; }
.yk-qcards li:hover { border-color: var(--yk-line) !important; border-left-color: var(--yk-teal) !important; transform: none !important; }
.yk-card2:not(.yk-svc-card):hover { border-color: var(--yk-line); box-shadow: none; }
.yk-card2-dark:not(.yk-svc-card):hover { border-color: rgba(255,255,255,.16); }
.yk-panel:hover { box-shadow: none; }
.yk-row:hover { padding-left: 0 !important; }
.yk-row:hover .yk-num .elementor-heading-title { color: var(--yk-teal) !important; }
.yk-chip:hover, .yk-app:hover, .yk-lang:hover { transform: none; box-shadow: none; }
.yk-ti:hover { background: #fff; border-color: var(--yk-line); }

/* ---- Project Workflow: horizontal connected steps in one panel (vertical under 900px) ---- */
.yk-flow { list-style: none; margin: 0; padding: 40px 28px 36px; position: relative; counter-reset: flow; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; background: #fff; border: 1px solid var(--yk-line); border-radius: var(--yk-radius); }
.yk-flow li { counter-increment: flow; display: flex; flex-direction: column; align-items: center; text-align: center; position: relative; z-index: 1; }
.yk-flow .yk-tl-dot { width: 52px; height: 52px; margin: 0; flex: 0 0 52px; background: #fff; border: 2px solid var(--yk-teal); border-radius: 50%; display: flex; align-items: center; justify-content: center; }
.yk-flow .yk-tl-dot::before { content: counter(flow); font-weight: 700; font-size: 17px; color: var(--yk-teal-dark); }
.yk-flow .yk-tl-dot.is-on { background: var(--yk-teal); }
.yk-flow .yk-tl-dot.is-on::before { color: #fff; }
.yk-flow-label { margin-top: 16px; font-size: 16.5px; font-weight: 600; color: var(--yk-navy); line-height: 1.35; max-width: 150px; }
.yk-flow::before, .yk-flow::after { content: ""; position: absolute; left: 10%; right: 10%; top: 65px; height: 2px; z-index: 0; }
.yk-flow::before { background: #D3E0EA; }
.yk-flow::after { background: var(--yk-teal); transform: scaleX(var(--p, 1)); transform-origin: left center; }
.yk-js .yk-flow .yk-flow-label { opacity: 0; transform: translateY(8px); transition: opacity .45s ease-out, transform .45s ease-out; }
.yk-js .yk-flow li.is-on .yk-flow-label { opacity: 1; transform: none; }
.yk-flow-head .yk-under { margin-bottom: 4px; width: auto !important; flex: 0 0 auto !important; }
@media (max-width: 767px) { .yk-flow-head .yk-under { --justify-content: flex-start !important; justify-content: flex-start !important; } }
@media (max-width: 1100px) { .yk-flow { padding: 36px 16px 32px; } .yk-flow-label { font-size: 15px; } }
@media (max-width: 900px) {
	.yk-flow { grid-template-columns: 1fr; gap: 0; padding: 12px 20px; }
	.yk-flow li { flex-direction: row; text-align: left; gap: 16px; padding: 10px 0; }
	.yk-flow .yk-tl-dot { width: 44px; height: 44px; flex-basis: 44px; }
	.yk-flow .yk-tl-dot::before { font-size: 16px; }
	.yk-flow-label { margin: 0; max-width: none; font-size: 17px; }
	.yk-flow::before, .yk-flow::after { left: 41px; right: auto; top: 34px; bottom: 34px; width: 2px; height: auto; }
	.yk-flow::after { transform: scaleY(var(--p, 1)); transform-origin: center top; }
	.yk-js .yk-flow .yk-flow-label { transform: translateX(10px); }
}

/* ---- Who We Support: two columns, vertical tabs, divided list ---- */
.yk-who2 { display: grid; grid-template-columns: 5fr 7fr; gap: 56px; align-items: start; }
.yk-who-title { font-size: 36px; margin: 0 0 14px; }
.yk-who-intro { font-size: 17px; color: var(--yk-text); margin: 0 0 22px; max-width: 420px; }
.yk-who-intro[hidden], .yk-tab-more[hidden] { display: none; }
.yk-vtablist { display: flex; flex-direction: column; gap: 8px; margin-bottom: 26px; }
.yk-vtab {
	all: unset; box-sizing: border-box; display: block; width: 100%; cursor: pointer; padding: 18px 20px 18px 22px;
	font: 600 18px/1.3 "Libre Franklin", sans-serif !important; color: var(--yk-text) !important;
	border: 1px solid var(--yk-line) !important; border-left: 3px solid transparent !important; background: #fff !important;
	transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.yk-vtab:hover { color: var(--yk-navy) !important; background: var(--yk-light) !important; }
.yk-vtab[aria-selected="true"] { color: var(--yk-navy) !important; background: #E6F6F4 !important; border-color: #B7E3DE !important; border-left-color: var(--yk-teal) !important; }
.yk-vtab:focus-visible { outline: 2px solid var(--yk-teal); outline-offset: 2px; }
.yk-who2 .yk-tab-more { margin: 0; }
.yk-who-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 32px; }
.yk-who-list li { display: grid; grid-template-columns: 36px 1fr; column-gap: 14px; row-gap: 4px; padding: 16px 0; border-bottom: 1px solid var(--yk-line); align-content: start; }
.yk-who-list .yk-ti-i { width: 36px; height: 36px; grid-row: span 2; background: #E6F6F4; display: flex; align-items: center; justify-content: center; }
.yk-who-list .yk-ico { width: 17px; height: 17px; fill: var(--yk-teal-dark); }
.yk-who-list .yk-ti-t { font-size: 17px; font-weight: 600; color: var(--yk-navy); line-height: 1.3; white-space: nowrap; overflow-wrap: normal; }
.yk-who-list .yk-ti-d { grid-column: 2; font-size: 15px; color: #5E6E84; line-height: 1.5; margin: 0; }
@media (max-width: 1199px) { .yk-who-list .yk-ti-t { white-space: normal; } }
@media (max-width: 1024px) { .yk-who2 { grid-template-columns: 1fr; gap: 28px; } .yk-who-intro { max-width: none; } }
@media (max-width: 767px) {
	.yk-who-title { font-size: 26px; }
	.yk-vtablist { flex-direction: row; }
	.yk-vtab { text-align: center; padding: 14px 10px; font-size: 16px !important; border-left-width: 1px !important; border-bottom: 3px solid transparent !important; }
	.yk-vtab[aria-selected="true"] { border-left-color: #B7E3DE !important; border-bottom-color: var(--yk-teal) !important; }
	.yk-who-list { grid-template-columns: 1fr; }
}
.yk-js .yk-who2 .yk-tabpanel li { opacity: 0; transform: translateY(8px); }
.yk-js .yk-who2 .yk-tabpanel.is-in li { opacity: 1; transform: none; transition: opacity .22s ease-out, transform .22s ease-out; transition-delay: calc(var(--i, 0) * 40ms); }
@media (prefers-reduced-motion: reduce) {
	.yk-js .yk-flow .yk-flow-label, .yk-js .yk-who2 .yk-tabpanel li { opacity: 1 !important; transform: none !important; }
}
/* tab selectors and FAQ items follow the 12px card radius */
.yk-vtab { border-radius: var(--yk-radius) !important; }
.yk-faq { border-top: 0 !important; display: grid; gap: 10px; }
.yk-faq-item { border: 1px solid var(--yk-line) !important; border-radius: var(--yk-radius); background: #fff; padding: 0 22px; overflow: hidden; }
.yk-faq-item p { margin: 0 0 20px !important; }
.yk-faq-item[open] { border-color: #B7E3DE !important; }
/* FAQ: compact questions and short answers */
.yk-faq-item summary { padding-top: 17px !important; padding-bottom: 17px !important; font-size: 17px !important; }
.yk-faq-item p { font-size: 15.5px !important; line-height: 1.6 !important; color: var(--yk-text); margin: -4px 0 18px !important; max-width: none; }
@media (max-width: 767px) { .yk-faq-item summary { font-size: 16px !important; } .yk-faq-item p { font-size: 15px !important; } }

/* ---------------------------------------------------------------
   15. Inner pages v4: light page header and varied section layouts
---------------------------------------------------------------- */
/* page header: light band, text left, rounded photo right on a soft teal offset */
.yk-pagehead2 { position: relative; overflow: hidden; }
.yk-pagehead2 .yk-ph-title .elementor-heading-title { color: var(--yk-navy); line-height: 1.12; letter-spacing: -0.015em; max-width: 640px; }
.yk-pagehead2 .yk-ph-lead p { color: var(--yk-text); line-height: 1.6; max-width: 560px; margin: 0; }
.yk-pagehead2 .yk-crumbs p { color: #5E6E84; }
.yk-pagehead2 .yk-crumbs a { color: var(--yk-teal-dark); font-weight: 500; }
.yk-pagehead2 .yk-crumbs a:hover { color: var(--yk-navy); }
.yk-pagehead2 .yk-crumbs .sep { color: #9AABBE; }
.yk-pagehead2 .yk-crumbs [aria-current] { color: var(--yk-navy); font-weight: 500; }
.yk-ph-photo { position: relative; height: 100%; }
.yk-ph-photo::before { content: ""; position: absolute; left: -18px; bottom: -18px; width: 62%; height: 58%; background: #CDEBE8; border-radius: var(--yk-radius); z-index: 0; }
.yk-ph-photo img { position: relative; z-index: 1; width: 100%; height: 100% !important; min-height: 340px; max-height: 420px; object-fit: cover; aspect-ratio: auto !important; border-radius: var(--yk-radius); }
.yk-ph-compact .yk-ph-title .elementor-heading-title { max-width: 820px; }
.yk-ph-compact .yk-ph-lead p { max-width: 720px; }
.yk-js .yk-pagehead2 .yk-ph-text > .elementor-element { opacity: 0; transform: translateY(14px); transition: opacity .6s var(--yk-ease), transform .6s var(--yk-ease); }
.yk-js .yk-pagehead2.is-in .yk-ph-text > .elementor-element { opacity: 1; transform: none; }
.yk-js .yk-pagehead2 .yk-ph-photo::before { opacity: 0; transform: translate(10px, -10px); transition: opacity .7s var(--yk-ease) .25s, transform .7s var(--yk-ease) .25s; }
.yk-js .yk-pagehead2.is-in .yk-ph-photo::before { opacity: 1; transform: none; }
@media (max-width: 1024px) {
	.yk-ph-photo::before { display: none; }
	.yk-ph-photo img { min-height: 0; max-height: 360px; aspect-ratio: 16 / 9 !important; height: auto !important; }
}
@media (max-width: 767px) { .yk-ph-photo img { max-height: 240px; } }

/* sticky title column beside a long list (desktop only) */
@media (min-width: 1025px) { .yk-sticky { position: sticky !important; top: 108px; align-self: flex-start; } }
.yk-side-photo img { height: 100% !important; min-height: 260px; object-fit: cover; aspect-ratio: auto !important; }

/* service intro: heading left, copy right, hairline under */
.yk-svc-intro { border-bottom: 1px solid var(--yk-line); }
.yk-svc-intro .yk-title .elementor-heading-title { max-width: 420px; }

/* shared icon tile used in lists */
.yk-ic { width: 44px; height: 44px; flex: 0 0 44px; border-radius: var(--yk-r-ctl); background: #E6F6F4; display: inline-flex; align-items: center; justify-content: center; }
.yk-ic .yk-ico { width: 19px; height: 19px; fill: var(--yk-teal-dark); }
.yk-dark .yk-ic { background: rgba(127,216,208,.14); }
.yk-dark .yk-ic .yk-ico { fill: #7FD8D0; }

/* divided icon rows */
.yk-rows { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr; column-gap: 36px; }
.yk-rows-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.yk-rows li { display: grid; grid-template-columns: 44px 1fr; column-gap: 16px; row-gap: 4px; align-items: center; align-content: start; padding: 18px 0; border-bottom: 1px solid #D3E0EA; }
.yk-rows li:has(.yk-r-d) { align-items: start; }
.yk-rows .yk-ic { grid-row: span 2; }
.yk-rows .yk-r-t { font-size: 18px; font-weight: 600; color: var(--yk-navy); line-height: 1.35; align-self: center; }
.yk-rows .yk-r-d { grid-column: 2; font-size: 15.5px; color: var(--yk-text); line-height: 1.55; }
.yk-rows-compact li { padding: 16px 0; }
.yk-rows-compact .yk-r-t { font-size: 17px; }
@media (max-width: 767px) { .yk-rows-2 { grid-template-columns: 1fr; } .yk-rows .yk-r-t { font-size: 17px; } }

/* key questions: large questions on hairlines */
.yk-qlist { list-style: none; margin: 0; padding: 0; }
.yk-qlist li { display: flex; align-items: center; gap: 18px; padding: 22px 0; border-bottom: 1px solid #D3E0EA; font-size: 20px; font-weight: 600; color: var(--yk-navy); line-height: 1.4; }
.yk-qlist li:first-child { padding-top: 4px; }
.yk-qlist li span { border-left: 3px solid var(--yk-teal); padding-left: 18px; }
@media (max-width: 767px) { .yk-qlist li { font-size: 17px; gap: 14px; padding: 16px 0; } .yk-qlist li span { padding-left: 14px; } }

/* data sources: three columns under a teal rule, no boxes */
.yk-srcs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; }
.yk-srcs > div { border-top: 2px solid var(--yk-teal); padding-top: 26px; }
.yk-srcs h3 { font-size: 21px; margin: 18px 0 12px; }
.yk-srcs .yk-ul li { padding-top: 6px; padding-bottom: 6px; }
@media (max-width: 900px) { .yk-srcs { grid-template-columns: 1fr; gap: 28px; } }

/* study types: photo bento */
.yk-bento { display: grid; grid-template-columns: 5fr 7fr; gap: 16px; }
.yk-bento-photo { position: relative; border-radius: var(--yk-radius); overflow: hidden; min-height: 320px; }
.yk-bento-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; border-radius: var(--yk-radius); }
.yk-bento-cells { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.yk-bento-cell { background: #fff; border-radius: var(--yk-radius); padding: 28px 26px; border: 1px solid var(--yk-line); }
.yk-bento-cell h3 { font-size: 20px; margin: 18px 0 8px; }
.yk-bento-cell p { margin: 0; font-size: 15.5px; line-height: 1.55; }
.yk-bento-cell:nth-child(2) { background: var(--yk-navy); border-color: var(--yk-navy); }
.yk-bento-cell:nth-child(2) h3 { color: #fff; }
.yk-bento-cell:nth-child(2) p { color: #C5D3E3; }
.yk-bento-cell:nth-child(2) .yk-ic { background: rgba(127,216,208,.14); }
.yk-bento-cell:nth-child(2) .yk-ico { fill: #7FD8D0; }
@media (max-width: 900px) { .yk-bento { grid-template-columns: 1fr; } .yk-bento-photo { min-height: 240px; } }
@media (max-width: 560px) { .yk-bento-cells { grid-template-columns: 1fr; } }

/* research areas: editorial index rows */
.yk-index { list-style: none; margin: 0; padding: 0; border-top: 1px solid #D3E0EA; }
.yk-index li { display: grid; grid-template-columns: 44px minmax(0, 5fr) minmax(0, 6fr); column-gap: 24px; align-items: center; padding: 22px 0; border-bottom: 1px solid #D3E0EA; }
.yk-index h3 { font-size: 21px; margin: 0; }
.yk-index p { margin: 0; font-size: 16.5px; color: var(--yk-text); }
@media (max-width: 767px) { .yk-index li { grid-template-columns: 44px 1fr; row-gap: 4px; } .yk-index h3 { font-size: 18px; } .yk-index p { grid-column: 2; font-size: 15.5px; } }

/* applications on navy: large accent-bar rows beside a photo */
.yk-apps .yk-bars li { color: #fff; font-size: 21px; font-weight: 600; line-height: 1.35; padding: 6px 0 6px 20px; margin-bottom: 18px; }
.yk-apps .yk-bars li::before { background: #7FD8D0; }
@media (max-width: 767px) { .yk-apps .yk-bars li { font-size: 18px; margin-bottom: 12px; } }

/* methodological expertise: one panel split by hairlines */
.yk-methods { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); background: #fff; border: 1px solid var(--yk-line); border-radius: var(--yk-radius); }
.yk-methods > div { padding: 30px 26px; border-left: 1px solid var(--yk-line); }
.yk-methods > div:first-child { border-left: 0; }
.yk-methods h3 { font-size: 19px; margin: 18px 0 14px; min-height: 2.6em; }
.yk-methods ul { list-style: none; margin: 0; padding: 0; }
.yk-methods li { padding: 9px 0; border-top: 1px dashed #D3E0EA; color: var(--yk-navy); font-weight: 500; font-size: 15.5px; }
@media (max-width: 1024px) {
	.yk-methods { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.yk-methods > div:nth-child(3) { border-left: 0; }
	.yk-methods > div:nth-child(n+3) { border-top: 1px solid var(--yk-line); }
	.yk-methods h3 { min-height: 0; }
}
@media (max-width: 600px) { .yk-methods { grid-template-columns: 1fr; } .yk-methods > div { border-left: 0; } .yk-methods > div + div { border-top: 1px solid var(--yk-line); } }

/* programming languages: big type in one strip */
.yk-langs { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid var(--yk-line); border-radius: var(--yk-radius); overflow: hidden; }
.yk-langs li { padding: 30px 20px; text-align: center; font-size: 34px; font-weight: 700; letter-spacing: -0.01em; color: var(--yk-navy); border-left: 1px solid var(--yk-line); background: #fff; }
.yk-langs li:first-child { border-left: 0; }
@media (max-width: 600px) { .yk-langs { grid-template-columns: repeat(2, minmax(0, 1fr)); } .yk-langs li { font-size: 26px; padding: 22px 12px; } .yk-langs li:nth-child(3) { border-left: 0; } .yk-langs li:nth-child(n+3) { border-top: 1px solid var(--yk-line); } }

/* deliverables: document rows */
.yk-docs { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 36px; }
.yk-docs-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.yk-docs-1 { grid-template-columns: 1fr; }
.yk-docs li { display: flex; align-items: center; gap: 16px; padding: 18px 0; border-bottom: 1px solid #D3E0EA; font-size: 18px; font-weight: 600; color: var(--yk-navy); line-height: 1.35; }
.yk-dark .yk-docs li { color: #fff; border-bottom-color: rgba(255,255,255,.16); }
.yk-dark .yk-docs { border-top: 1px solid rgba(255,255,255,.16); }
@media (max-width: 1024px) { .yk-docs { grid-template-columns: repeat(2, minmax(0, 1fr)); } .yk-docs-1 { grid-template-columns: 1fr; } }
@media (max-width: 600px) { .yk-docs, .yk-docs-2 { grid-template-columns: 1fr; } .yk-docs li { font-size: 17px; } }

/* about: statement, mission and vision without boxes, values on rules */
.yk-statement-md .yk-words { font-size: 32px !important; line-height: 1.35 !important; max-width: 1040px; }
@media (max-width: 1024px) { .yk-statement-md .yk-words { font-size: 27px !important; } }
@media (max-width: 767px) { .yk-statement-md .yk-words { font-size: 22px !important; } }
.yk-mv { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid #D3E0EA; }
.yk-mv > div { padding: 30px 40px 4px 0; display: grid; grid-template-columns: 44px 1fr; column-gap: 18px; align-items: center; }
.yk-mv > div + div { border-left: 1px solid #D3E0EA; padding-left: 40px; }
.yk-mv h3 { font-size: 22px; margin: 0; }
.yk-mv p { grid-column: 2; margin: 8px 0 0; font-size: 17px; }
@media (max-width: 767px) { .yk-mv { grid-template-columns: 1fr; } .yk-mv > div { padding-right: 0; } .yk-mv > div + div { border-left: 0; padding-left: 0; border-top: 1px solid #D3E0EA; margin-top: 26px; } }
.yk-values { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px 40px; }
.yk-values li { border-top: 2px solid var(--yk-teal); padding-top: 24px; }
.yk-values h3 { font-size: 21px; margin: 18px 0 8px; }
.yk-values p { margin: 0; font-size: 16px; line-height: 1.6; }
.yk-values-photo img { height: 100% !important; min-height: 240px; object-fit: cover; aspect-ratio: auto !important; }
@media (max-width: 600px) { .yk-values { grid-template-columns: 1fr; gap: 28px; } }

/* services overview: "our services span" as a light panel */
.yk-span { background: var(--yk-light); border-radius: var(--yk-radius); padding: 32px 30px; }
.yk-span h3 { font-size: 20px; margin: 0 0 18px; }
.yk-check-1 { grid-template-columns: 1fr; }

/* therapeutic areas: one panel of tiles split by hairlines */
.yk-tiles { list-style: none; margin: 12px 0 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border: 1px solid var(--yk-line); border-radius: var(--yk-radius); overflow: hidden; }
.yk-tiles li { padding: 28px 22px 30px; border-right: 1px solid var(--yk-line); border-bottom: 1px solid var(--yk-line); background: #fff; }
.yk-tiles li:nth-child(5n) { border-right: 0; }
.yk-tiles li:nth-child(n+6) { border-bottom: 0; }
.yk-tiles h3 { font-size: 18px; margin: 18px 0 8px; line-height: 1.3; }
.yk-tiles p { margin: 0; font-size: 15px; line-height: 1.55; }
@media (max-width: 1024px) {
	.yk-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.yk-tiles li { border-right: 1px solid var(--yk-line) !important; border-bottom: 1px solid var(--yk-line) !important; }
	.yk-tiles li:nth-child(2n) { border-right: 0 !important; }
	.yk-tiles li:nth-child(n+9) { border-bottom: 0 !important; }
}
@media (max-width: 560px) {
	.yk-tiles { grid-template-columns: 1fr; }
	.yk-tiles li { border-right: 0 !important; border-bottom: 1px solid var(--yk-line) !important; display: grid; grid-template-columns: 44px 1fr; column-gap: 14px; padding: 18px; }
	.yk-tiles li:last-child { border-bottom: 0 !important; }
	.yk-tiles .yk-ic { grid-row: span 2; }
	.yk-tiles h3 { margin: 2px 0 4px; }
}

/* contact: enquiry types on teal rules, contact lines with icons */
.yk-cinfo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
.yk-cinfo > div { border-top: 2px solid var(--yk-teal); padding-top: 22px; }
.yk-cinfo h3 { font-size: 20px; margin: 0 0 8px; }
.yk-cinfo p { margin: 0 0 14px; font-size: 15.5px; }
.yk-cinfo .yk-check { gap: 10px; }
.yk-cinfo .yk-check li { font-size: 15.5px; }
.yk-clines { list-style: none; margin: 34px 0 0; padding: 26px 0 0; border-top: 1px solid var(--yk-line); display: flex; flex-wrap: wrap; gap: 18px 40px; }
.yk-clines li { display: flex; align-items: center; gap: 14px; }
.yk-clines a { color: var(--yk-navy); font-weight: 600; font-size: 17px; }
.yk-clines a:hover { color: var(--yk-teal-dark); }
@media (max-width: 600px) { .yk-cinfo { grid-template-columns: 1fr; gap: 26px; } }

/* motion safety */
@media (prefers-reduced-motion: reduce) {
	.yk-js .yk-pagehead2 .yk-ph-text > .elementor-element, .yk-js .yk-pagehead2 .yk-ph-photo::before { opacity: 1 !important; transform: none !important; }
}

/* deliverables strip: one row of documents on navy */
.yk-docstrip { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(var(--n, 5), minmax(0, 1fr)); border-top: 1px solid rgba(255,255,255,.16); border-bottom: 1px solid rgba(255,255,255,.16); }
.yk-docstrip li { display: flex; flex-direction: column; gap: 16px; padding: 28px 24px 30px; border-left: 1px solid rgba(255,255,255,.16); color: #fff; font-size: 18px; font-weight: 600; line-height: 1.35; }
.yk-docstrip li:first-child { border-left: 0; padding-left: 0; }
@media (max-width: 1024px) { .yk-docstrip { grid-template-columns: repeat(2, minmax(0, 1fr)); border-bottom: 0; } .yk-docstrip li { border-left: 0; padding: 20px 0; border-bottom: 1px solid rgba(255,255,255,.16); flex-direction: row; align-items: center; } }
@media (max-width: 600px) { .yk-docstrip { grid-template-columns: 1fr; } .yk-docstrip li { font-size: 17px; } }
/* page header buttons sit side by side on phones */
@media (max-width: 767px) { .yk-pagehead2 .yk-ph-text .e-con { flex-wrap: wrap !important; flex-direction: row !important; gap: 12px !important; } .yk-pagehead2 .yk-btn .elementor-button { padding: 14px 18px !important; } }
/* phones: one photo per page is enough (header); side photos drop out, stacked intro sits tighter */
@media (max-width: 767px) { .yk-side-photo { display: none !important; } }
@media (max-width: 1024px) { .yk-svc-intro { --gap: 18px; --row-gap: 18px; row-gap: 18px !important; } }
@media (max-width: 767px) { .e-con:has(> .yk-side-photo:only-child) { display: none !important; } }

/* ---------------------------------------------------------------
   16. Homepage v4: why panel over the hero, data sources bento
---------------------------------------------------------------- */
.yk-why-panel { position: relative; z-index: 2; margin-top: -72px !important; background: #fff; border-radius: var(--yk-radius); padding: 36px 40px 40px !important; box-shadow: 0 30px 60px -40px rgba(11,37,69,.45); }
.yk-whystrip { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.yk-whystrip li { padding: 4px 28px 0; border-left: 1px solid var(--yk-line); }
.yk-whystrip li:first-child { border-left: 0; padding-left: 0; }
.yk-whystrip li:last-child { padding-right: 0; }
.yk-whystrip h3 { font-size: 19px; margin: 18px 0 8px; line-height: 1.3; }
.yk-whystrip p { margin: 0; font-size: 15.5px; line-height: 1.6; }
@media (max-width: 1024px) {
	.yk-why-panel { margin-top: -56px !important; padding: 30px 28px 32px !important; }
	.yk-whystrip { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 28px; }
	.yk-whystrip li:nth-child(3) { border-left: 0; padding-left: 0; }
	.yk-whystrip li:nth-child(2) { padding-right: 0; }
}
@media (max-width: 600px) {
	.yk-why-panel { margin-top: -44px !important; padding: 26px 20px 24px !important; }
	.yk-whystrip { grid-template-columns: 1fr; row-gap: 0; }
	.yk-whystrip li { border-left: 0; padding: 18px 0; border-top: 1px solid var(--yk-line); display: grid; grid-template-columns: 44px 1fr; column-gap: 14px; }
	.yk-whystrip li:first-child { border-top: 0; padding-top: 0; }
	.yk-whystrip .yk-ic { grid-row: span 2; }
	.yk-whystrip h3 { margin: 2px 0 4px; font-size: 18px; }
}

.yk-ds-bento { display: grid; grid-template-columns: 1.1fr 1fr 1fr; grid-template-rows: auto auto; gap: 16px; }
.yk-ds-cell { border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.04); border-radius: var(--yk-radius); padding: 30px 28px; }
.yk-ds-cell:first-child { grid-row: 1 / span 2; background: #0E7C75; border-color: #0E7C75; }
.yk-ds-cell:first-child .yk-ic { background: rgba(255,255,255,.18); }
.yk-ds-cell:first-child .yk-ico { fill: #fff; }
.yk-ds-cell:first-child .yk-ul-dark li::before { background: #fff; }
.yk-ds-cell h3 { color: #fff; font-size: 21px; margin: 18px 0 14px; }
.yk-ds-cell .yk-ul li { color: #E3ECF5; }
.yk-ds-cell:first-child .yk-ul li { color: #fff; font-size: 17px; padding-top: 5px; padding-bottom: 5px; }
.yk-ds-photo { grid-column: 2 / span 2; position: relative; min-height: 210px; border-radius: var(--yk-radius); overflow: hidden; }
.yk-ds-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 1024px) { .yk-ds-bento { grid-template-columns: 1fr 1fr; } .yk-ds-cell:first-child { grid-row: auto; grid-column: 1 / span 2; } .yk-ds-photo { grid-column: 1 / span 2; } }
@media (max-width: 600px) { .yk-ds-bento { grid-template-columns: 1fr; } .yk-ds-cell:first-child, .yk-ds-photo { grid-column: auto; } .yk-ds-photo { min-height: 180px; } }
/* Related services: keep three across on tablets (no orphan card), one column on phones */
@media (min-width: 768px) and (max-width: 1024px) {
	.yk-related3 > .elementor-element { width: calc((100% - 2 * var(--yk-cg)) / 3) !important; }
	.yk-related3 .yk-card2 .elementor-heading-title, .yk-related3 .yk-link-title a { font-size: 17px !important; }
}

/* legal pages (tools/legal/legal_text.py) */
.legal-doc { max-width: 860px; }
.legal-doc h2 { margin: 36px 0 10px; font-size: 24px; line-height: 1.25; }
.legal-doc h2:first-child { margin-top: 0; }
.legal-doc p { margin: 0 0 12px; }
.legal-ul { margin: 0 0 14px !important; padding: 0 0 0 22px !important; list-style: disc !important; }
.legal-ul li { margin: 0 0 6px; list-style: disc !important; display: list-item !important; }
.legal-doc a { text-decoration: underline; text-underline-offset: 3px; }
.legal-ph { padding: 1px 6px; border-radius: 4px; background: #FFF3BF; color: #5C4400; font-weight: 600; }
.legal-tw { overflow-x: auto; margin: 6px 0 14px; }
.legal-table { width: 100%; min-width: 640px; border-collapse: collapse; font-size: 15px; line-height: 1.5; }
.legal-table th, .legal-table td { padding: 10px 12px; border: 1px solid color-mix(in srgb, currentColor 22%, transparent); text-align: left; vertical-align: top; background: transparent; }
.legal-table th { font-weight: 600; }
.legal-table td:first-child { overflow-wrap: anywhere; min-width: 150px; }

/* CookieYes banner: site corners, smaller buttons */
.cky-consent-container .cky-consent-bar, .cky-modal { border-radius: 12px; }
.cky-consent-container .cky-btn, .cky-modal .cky-btn { border-radius: 8px; font-size: 14px; font-weight: 600; line-height: 20px; padding: 10px 14px; transition: background-color .15s ease, color .15s ease, border-color .15s ease; }
.cky-consent-container .cky-btn:hover, .cky-modal .cky-btn:hover { opacity: 1; background-color: #13A89E !important; border-color: #13A89E !important; color: #fff !important; }
.cky-modal .cky-preference-content-wrapper a { text-decoration: underline; }
.cky-btn-revisit-wrapper { border-radius: 8px; }

/* Client address on the Contact page */
.yk-cline-t { color: var(--yk-navy); font-weight: 600; font-size: 17px; }
.yk-foot-links .elementor-icon-list-text { overflow-wrap: anywhere; }
.yk-foot-links .elementor-icon-list-text { overflow-wrap: normal; }
@media (max-width: 480px) { .yk-foot-links .elementor-icon-list-text { overflow-wrap: anywhere; } }
