/* Block editor content inside custom subpage layouts: the Image block's
   <figure> carries the browser's default figure margin, which the theme's
   section classes never accounted for. Group blocks are plain divs with no
   browser default margin, so they're deliberately left alone here — the
   theme's own classes (e.g. .page-width's margin-inline:auto) must keep
   full control of their margins. */
main figure.wp-block-image { margin: 0; }
main .wp-block-image { line-height: 0; }
/* WP always wraps Group block children in this extra div; make it
   invisible to the box model so the theme's grid/flex section classes
   (which expect their real children directly) keep working unchanged. */
main .wp-block-group > .wp-block-group__inner-container { display: contents; }

/* display:contents fixes layout, but the inner-container div is still a real
   DOM node, so EVERY site.css rule written with a direct ">" child combinator
   (targeting the theme's original, block-free markup) no longer matches once
   that markup lives inside a Group block — a ">" combinator requires true
   DOM adjacency; display:contents only changes box generation, not the DOM
   tree, so it does not help selector matching (verified directly: a ">"
   selector's .matches() returns false across a display:contents wrapper).
   This block mechanically restates every such rule in site.css as its
   descendant-combinator equivalent (same declarations, ">" replaced with a
   space), generated by walking site.css's parsed rule list so none were
   missed by hand. Descendant selectors are supersets of child selectors, so
   this is safe everywhere, including templates that still emit unwrapped
   markup (front-page.php, news templates) — a genuine direct-child match
   there satisfies the descendant version too, with identical declarations. */
.field-card img { width: 100%; height: 132px; object-fit: cover; }
.field-card:first-child img { object-position: 55% center; }
.field-card:last-child img { object-position: 37% center; transform: scaleX(-1); }
.field-card div { padding: 18px 16px 19px; }
.flow-intro a { display: inline-flex; align-items: center; gap: 16px; border: 1px solid #77aaf1; background: #fff; color: var(--blue); border-radius: 9px; padding: 9px 14px; font-size: 10px; font-weight: 800; }
.cases-heading a { border: 1px solid #dfb982; color: #a66b16; border-radius: 999px; min-width: 180px; padding: 9px 14px; display: flex; align-items: center; justify-content: space-between; font-size: 10px; font-weight: 800; }
.activities-heading div span { display: block; margin-bottom: 6px; color: var(--blue); font: 800 10px/1.2 Arial, sans-serif; letter-spacing: .16em; }
.activities-heading a { min-width: 172px; min-height: 40px; padding: 0 14px 0 18px; border: 1px solid #8db5e7; border-radius: 999px; color: var(--blue); background: rgba(255,255,255,.8); display: inline-flex; align-items: center; justify-content: space-between; gap: 20px; font-size: 11px; font-weight: 800; }
.activity-card-top span { padding: 5px 10px; border-radius: 999px; background: #eef5ff; color: var(--blue); font-size: 10px; font-weight: 800; }
.activity-report .activity-card-top span { color: #568e10; background: #eff8e5; }
.activity-press .activity-card-top span { color: #b0136f; background: #fff0f8; }
.activity-card a { margin-top: auto; display: inline-flex; align-items: center; gap: 9px; color: var(--blue); font-size: 10.5px; font-weight: 800; }
.activity-card a .arrow { width: 17px; height: 17px; color: #fff; background: var(--blue); }
.number-grid article * { position: relative; z-index: 1; }
.number-grid article span { color: #27323d; font-size: 12px; font-weight: 800; margin-bottom: 8px; }
.bottom-cta article div { padding: 20px 26px; }
.bottom-cta article div div { display: flex; gap: 12px; }
.group-footer div { min-height: 42px; display: flex; align-items: center; }
.people-eyebrow, .people-section-heading span, .visit-copy span { display: block; margin-bottom: 10px; color: var(--green); font: 800 11px/1.2 Arial, sans-serif; letter-spacing: .17em; }
.people-hero-copy p { margin: 0; color: #3e4852; font-size: 15px; line-height: 2; font-weight: 600; }
.people-section-heading p { margin: 0; color: #56616a; font-size: 14px; line-height: 1.85; font-weight: 600; }
.eligibility-grid article span { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; color: #fff; background: var(--green); font: 800 12px Arial, sans-serif; }
.people-work-card img { width: 100%; height: 190px; object-fit: cover; }
.people-work-card:first-child img { object-position: 58% center; }
.people-work-card:last-child img { object-position: 38% center; }
.people-work-card div { padding: 0 23px 25px; }
.day-step span { width: 13px; height: 13px; margin-top: 5px; border: 3px solid #fff; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 2px #8fc84f; position: relative; z-index: 2; }
.day-step:not(:last-child) span::after { content: ""; width: 2px; height: 73px; position: absolute; left: 3px; top: 11px; background: #d8e8c7; }
.day-aside img { width: 100%; height: 235px; object-fit: cover; object-position: 39% center; }
.day-aside div { padding: 28px 30px 31px; }
.start-grid article span { color: #7ab331; font: 800 28px/1 Arial, sans-serif; opacity: .7; }
.people-faq-list summary span, .people-faq-list details div span { color: var(--green); font: 800 20px Arial, sans-serif; }
.people-faq-list details div { padding: 0 54px 24px 64px; display: grid; grid-template-columns: 38px 1fr; gap: 14px; }
.people-faq-list details div p { margin: 0; color: #535f57; font-size: 13px; line-height: 1.9; font-weight: 600; }
.visit-flow article span { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; color: #fff; background: var(--green); font: 800 12px Arial, sans-serif; }
.visit-form-heading span { color: var(--green); font-size: 11px; font-weight: 800; }
.visit-form label span, .visit-interests legend, .visit-message span { display: block; margin-bottom: 8px; color: #3f4a43; font-size: 12px; font-weight: 800; }
.visit-interests label span { min-height: 38px; margin: 0; padding: 0 13px; border: 1px solid #d8e1d5; border-radius: 999px; display: inline-flex; align-items: center; background: #fff; color: #556059; font-size: 11px; }
.visit-consent span { margin: 0 !important; font-size: 11px !important; line-height: 1.7; }
.visit-form small { display: block; margin-top: 10px; text-align: center; color: #778079; font-size: 10px; }
.subpage-hero-copy p { margin:0; color:#3f4a53; font-size:14px; line-height:2; font-weight:600; }
.subpage-section-heading span { display:block; margin-bottom:11px; color:var(--green); font:800 11px/1.2 Arial; letter-spacing:.18em; }
.business-page .subpage-section-heading span, .services-page .subpage-section-heading span, .contact-page .subpage-section-heading span { color:var(--blue); }
.news-page .subpage-section-heading span { color:var(--pink); }
.about-page .subpage-section-heading span { color:var(--purple); }
.subpage-section-heading p { max-width:760px; margin:0; color:#56616a; font-size:14px; line-height:1.9; font-weight:600; }
.subpage-section-heading.is-centered p { margin-inline:auto; }
.principle-icon, .environment-grid article span { width:54px; height:54px; margin-top:22px; border-radius:16px; display:grid; place-items:center; color:var(--green); background:#eef8e4; }
.support-cycle article span, .outsourcing-grid article span { color:#8bb25b; font:800 29px Arial; }
.split-heading-row img, .business-section-intro img { width:100%; height:290px; object-fit:cover; border-radius:24px 55px 24px 45px; }
.team-support-grid article svg { width:48px; height:48px; padding:11px; border-radius:14px; color:var(--green); background:#eef7e5; }
.office-table div, .company-profile-table div { min-height:68px; padding:17px 4px; border-bottom:1px solid #d5ded4; display:grid; grid-template-columns:145px 1fr; gap:24px; }
.office-visit-guide div p { color:#556159; font-size:13px; line-height:1.9; font-weight:600; }
.business-choice a { padding:28px; border:1px solid #d9e4ef; border-radius:20px; display:grid; grid-template-columns:58px 1fr 24px; gap:20px; align-items:center; box-shadow:0 15px 36px rgba(39,68,96,.06); }
.business-choice a span { width:58px; height:58px; border-radius:17px; display:grid; place-items:center; color:var(--blue); background:#eaf3ff; }
.employment-support-grid article span { position:absolute; right:20px; top:18px; color:#d3e3f5; font:800 28px Arial; }
.employment-support-grid article svg { width:49px; height:49px; padding:11px; border-radius:14px; color:var(--blue); background:#eaf3ff; }
.partnership-flow article span { color:var(--blue); font:800 9px Arial; }
.partnership-flow article svg:not(.partnership-arrow) { width:43px; margin:19px 0 0; color:var(--blue); }
.service-index-card span { color:#9daaba; font:800 11px Arial; }
.service-index-card svg:first-of-type { width:48px; height:48px; margin:25px 0 17px; padding:11px; border-radius:14px; }
.service-index-card svg:last-child { width:18px; margin:auto 0 0 auto; }
.service-purple svg { color:var(--purple); background:#f6eafa; }
.service-pink svg { color:var(--pink); background:#fff0f8; }
.service-green svg { color:var(--green); background:#eef8e5; }
.service-blue svg { color:var(--blue); background:#eaf3ff; }
.service-detail-layout.is-reverse .service-detail-visual, .news-story-layout.is-reverse img { order:2; }
.service-detail-visual img, .news-story-layout img { width:100%; height:410px; object-fit:cover; border-radius:25px 65px 25px 52px; }
.service-detail-visual span { width:74px; height:74px; border-radius:50%; display:grid; place-items:center; position:absolute; right:-18px; bottom:-22px; color:#fff; background:var(--ink); font:800 19px Arial; }
.service-detail-copy p { color:#56616a; font-size:13px; line-height:1.9; font-weight:600; }
.service-detail-copy a { display:inline-flex; gap:9px; align-items:center; color:var(--blue); font-size:11.5px; font-weight:800; }
.news-index-card img { width:100%; height:220px; object-fit:cover; }
.news-index-card div { padding:24px; }
.news-story-copy strong { display:block; margin-bottom:19px; font-size:15px; line-height:1.75; }
.news-story-copy p { color:#59646e; font-size:13px; line-height:1.95; font-weight:600; }
.news-story-copy a { display:inline-flex; gap:9px; align-items:center; color:var(--blue); font-size:11px; font-weight:800; }
.representative-copy p { color:#55616a; font-size:13px; line-height:2; font-weight:600; }
.representative-visual span { font:800 13px Arial; letter-spacing:.25em; }
.representative-visual div { margin-top:60px; text-align:center; }
.company-timeline h3 { color:var(--purple); font:800 11px Arial; }
.contact-category-grid article svg { width:52px; height:52px; padding:12px; border-radius:15px; color:var(--blue); background:#eaf3ff; }
.contact-direct-card svg { width:43px; padding:9px; border-radius:13px; background:rgba(255,255,255,.15); }
.inquiry-form label span { display:block; margin-bottom:8px; font-size:12px; font-weight:800; }
.inquiry-form button { width:100%; min-height:54px; border:0; border-radius:12px; display:flex; align-items:center; justify-content:center; gap:24px; color:#fff; background:linear-gradient(135deg,#0b6bd4,#004dad); font:inherit; font-size:13px; font-weight:800; }
.inquiry-form small { display:block; margin-top:10px; text-align:center; color:#778079; font-size:10px; }
.form-preview-notice span { width:58px; height:58px; border-radius:50%; display:grid; place-items:center; color:#fff; background:var(--green); font-size:25px; }
.legal-hero span { color:var(--blue); font:800 11px Arial; }
.legal-body article p, .legal-body address { color:#55616a; font-size:13px; line-height:2; font-style:normal; font-weight:600; }
.page-cta div:first-child span { font:800 9px Arial; letter-spacing:.17em; }
.support-intro-copy p { margin: 0 0 16px; color: #536058; font-size: 13.5px; line-height: 1.95; font-weight: 600; }
.support-dual-model article span { width: 58px; height: 58px; border-radius: 17px; display: grid; place-items: center; color: #fff; background: currentColor; }
.support-dual-model article span svg { width: 29px; height: 29px; }
.support-dual-model article small { margin-top: 38px; font: 800 9px Arial, sans-serif; letter-spacing: .13em; }
.support-fact-grid article span { color: rgba(255,255,255,.48); font: 800 27px Arial; }
.support-menu-top span { width: 48px; height: 48px; border-radius: 14px; display: grid; place-items: center; color: var(--green); background: #ecf7e1; }
.support-timing article span { display: inline-flex; min-height: 25px; padding: 0 10px; border-radius: 999px; align-items: center; color: #4e870e; background: #edf7e2; font-size: 9.5px; font-weight: 800; }
.support-network p { grid-column: 2; margin: -8px 0 0; color: #677169; font-size: 10.5px; line-height: 1.7; }
.entity-summary-copy span { color: var(--green); font: 800 10px/1.2 Arial, sans-serif; letter-spacing: .18em; }
.entity-summary-copy p { margin: 0; color: #4e5d54; font-size: 13px; line-height: 2; font-weight: 600; }
.entity-facts div { min-height: 62px; padding: 13px 4px; border-bottom: 1px solid #d5dfd3; display: grid; grid-template-columns: 125px 1fr; gap: 20px; align-items: center; }
.news-article-meta span { min-height: 28px; padding: 0 11px; border-radius: 999px; display: inline-flex; align-items: center; color: #fff; background: var(--pink); font-size: 9.5px; font-weight: 800; }
.news-article-report .news-article-meta span { background: var(--green); }
.news-article-press .news-article-meta span { background: var(--blue); }
.news-article-hero p { max-width: 770px; margin: 0 0 36px; color: #4e5b53; font-size: 15px; line-height: 1.95; font-weight: 600; }
.news-article-hero img { width: 100%; height: 470px; display: block; object-fit: cover; border-radius: 24px 24px 0 0; }
.news-article-aside span { color: var(--green); font: 800 8.5px Arial, sans-serif; letter-spacing: .15em; }
.news-article-press .news-article-aside span { color: var(--blue); }
.news-article-aside a:not(.news-back-link) { min-height: 48px; margin-top: 22px; padding: 0 15px; border-radius: 11px; display: flex; align-items: center; justify-content: space-between; color: #fff; background: linear-gradient(135deg, #68ac1c, #3e8203); font-size: 10.5px; font-weight: 800; }
.news-article-press .news-article-aside a:not(.news-back-link) { background: linear-gradient(135deg, #0b6bd4, #004dad); }
@media (max-width: 820px) {
  .group-footer div { overflow-x: auto; }
  .support-network p { grid-column: 1; margin-top: 0; }
  .news-article-hero img { height: 350px; }
}
@media (max-width: 520px) {
  .field-card img { height: 175px; }
  .activities-heading a { min-width: 164px; }
  .bottom-cta article div { padding: 28px 22px; }
  .people-hero-copy p { font-size: 13px; }
  .people-section-heading p { font-size: 13px; }
  .people-work-card img { height: 210px; }
  .day-aside div { padding: 24px 22px 27px; }
  .people-faq-list details div { padding: 0 6px 22px 35px; grid-template-columns: 30px 1fr; gap: 8px; }
  .visit-interests label span { padding-inline: 11px; font-size: 10.5px; }
  .support-dual-model article small { margin-top: 24px; }
  .entity-facts div { grid-template-columns: 1fr; gap: 5px; }
  .news-article-hero p { font-size: 13px; }
  .news-article-hero img { height: 260px; border-radius: 17px 17px 0 0; }
}
@media(max-width:820px) {
  .service-detail-layout.is-reverse .service-detail-visual, .news-story-layout.is-reverse img { order:0 }
}
@media(max-width:520px) {
  .office-table div, .company-profile-table div { grid-template-columns:1fr;gap:6px }
  .business-choice a { grid-template-columns:50px 1fr;padding:22px 18px }
  .business-choice a svg { display:none }
  .service-detail-visual img, .news-story-layout img { height:270px }
}

/* WordPress and Contact Form 7 integration */
.screen-reader-text {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.screen-reader-text:focus {
  top: 8px;
  left: 8px;
  z-index: 99999;
  width: auto;
  height: auto;
  padding: 12px 18px;
  clip: auto;
  color: #fff;
  background: #075dc7;
  border-radius: 8px;
}
.main-nav .sooness-menu,
.mobile-menu .sooness-menu {
  margin: 0;
  padding: 0;
  list-style: none;
}
.main-nav .sooness-menu {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: clamp(14px, 1.55vw, 25px);
}
.main-nav .sooness-menu a { display: block; }
.main-nav .current-menu-item > a,
.main-nav .current_page_item > a,
.main-nav .current-menu-parent > a { color: var(--blue); }
.mobile-menu .sooness-menu { display: contents; }
.mobile-contact-link { color: var(--blue); }
.custom-logo-link { display: inline-flex; align-items: center; }
.custom-logo { width: 172px; height: auto; }
.admin-bar .site-header { top: 32px; }
main { overflow: clip; }
.sooness-icon { width: 1.5em; height: 1.5em; }

.wpcf7 { margin: 0; }
.wpcf7-form { margin: 0; }
.wpcf7-form .visit-form-heading p { margin: 0; }
.wpcf7-form .visit-form-grid p,
.wpcf7-form .visit-message p,
.wpcf7-form .visit-consent p { margin: 0; }
.wpcf7-form .visit-form-grid label,
.wpcf7-form .visit-message,
.wpcf7-form .visit-consent { display: block; }
.wpcf7-form-control-wrap { display: block; }
.wpcf7-form .visit-interests .wpcf7-form-control {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}
.wpcf7-form .visit-interests .wpcf7-list-item { margin: 0; }
.wpcf7-form .visit-interests .wpcf7-list-item label {
  min-height: 38px;
  padding: 0 12px;
  border: 1px solid #dce4dc;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: #fff;
  cursor: pointer;
}
.wpcf7-form .visit-interests .wpcf7-list-item-label { margin: 0; font-size: 11px; font-weight: 700; }
.wpcf7-form .wpcf7-acceptance .wpcf7-list-item { margin: 0; }
.wpcf7-form .wpcf7-acceptance label { display: flex; align-items: flex-start; gap: 8px; }
.wpcf7-form .wpcf7-acceptance input { margin-top: 3px; flex: none; }
.wpcf7-form input[type="submit"] {
  width: 100%;
  min-height: 54px;
  border: 0;
  border-radius: 12px;
  color: #fff;
  background: linear-gradient(135deg, #69b813, #4a9700);
  box-shadow: 0 13px 28px rgba(76,153,0,.18);
  font: inherit;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
}
.inquiry-form input[type="submit"] { background: linear-gradient(135deg, #0b6bd4, #004dad); }
.wpcf7-form input[type="submit"]:disabled { opacity: .6; cursor: wait; }
.wpcf7-spinner { display: block; margin: 10px auto 0; }
.wpcf7-not-valid-tip { margin-top: 5px; color: #c40f4f; font-size: 11px; font-weight: 700; }
.wpcf7 form .wpcf7-response-output {
  margin: 18px 0 0;
  padding: 13px 16px;
  border: 1px solid #d6e2d0;
  border-radius: 10px;
  color: #3f4a43;
  background: #f7fbf4;
  font-size: 12px;
  line-height: 1.7;
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output { border-color: #e8b4c5; background: #fff6f9; }
.sooness-form-fallback {
  padding: 32px;
  border: 1px solid #d7e3cf;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 16px 38px rgba(45,69,55,.07);
}
.sooness-form-fallback strong { font-size: 20px; }
.sooness-form-fallback p { color: #58645d; font-size: 13px; line-height: 1.8; }
.sooness-form-fallback a { color: var(--blue); font-weight: 800; }
.sooness-admin-note { padding: 12px; border-radius: 8px; background: #fff7d8; }

.sooness-content-page,
.sooness-not-found { padding-top: 80px; padding-bottom: 100px; }
.sooness-content-page article,
.sooness-not-found > div { max-width: 840px; margin: 0 auto; }
.sooness-content-page h1,
.sooness-not-found h1 { font-size: clamp(34px, 5vw, 54px); }
.sooness-content-page .entry-content { color: #4f5c54; font-size: 14px; line-height: 2; }
.sooness-not-found a { display: inline-flex; margin-top: 20px; padding: 13px 20px; border-radius: 10px; color: #fff; background: var(--blue); font-weight: 800; }
.pagination-wrap { margin-top: 46px; }
.pagination-wrap .nav-links { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.pagination-wrap .page-numbers { min-width: 40px; height: 40px; padding: 0 10px; border: 1px solid #dce4e9; border-radius: 9px; display: grid; place-items: center; font-size: 12px; font-weight: 800; }
.pagination-wrap .current { color: #fff; border-color: var(--blue); background: var(--blue); }
.news-index-card { display: block; }
.news-index-card .news-category .sooness-icon,
.news-index-card time .sooness-icon { width: 14px; height: 14px; }
.news-article-meta .sooness-icon { width: 15px; height: 15px; }
.news-article-body .entry-content > h2 { margin-top: 46px; }
.news-article-body .entry-content > h2:first-child { margin-top: 0; }
.news-article-body .entry-content ul { list-style: none; }
.news-article-body .entry-content li { position: relative; padding-left: 28px; }
.news-article-body .entry-content li::before { content: "✓"; position: absolute; left: 0; color: var(--green); font-weight: 900; }

@media (max-width: 782px) {
  .admin-bar .site-header { top: 46px; }
}
@media (max-width: 820px) {
  .main-nav .sooness-menu { display: none; }
  .mobile-menu .sooness-menu { display: contents; }
}
@media (max-width: 600px) {
  .admin-bar .site-header { top: 0; }
}

