/* Shared core-block presentation. No Elementor selectors or global body resets. */
@font-face { font-family: Manrope; src: url('../fonts/manrope-latin.woff2') format('woff2'); font-style: normal; font-weight: 200 800; font-display: swap; }
.arc-section {
  --arc-navy: var(--wp--preset--color--arc-navy, #061a2e);
  --arc-lime: var(--wp--preset--color--arc-lime, #b9e34a);
  --arc-surface: var(--wp--preset--color--arc-surface, #f1f5f6);
  position: relative; isolation: isolate; box-sizing: border-box; margin: 0; padding: var(--wp--custom--arc--section-space, clamp(3.5rem,7vw,7rem)) max(24px,5vw);
  color: var(--arc-navy); background: var(--arc-surface); font-family: var(--wp--preset--font-family--arc-manrope, Manrope,Arial,sans-serif); overflow-wrap: anywhere;
}
.arc-section *, .arc-section *::before, .arc-section *::after { box-sizing: border-box; }
.arc-section__inner { position: relative; z-index: 1; max-width: var(--wp--custom--arc--content-width,1200px); margin: 0 auto; }
.arc-section h1, .arc-section h2, .arc-section h3 { font-family: inherit; color: inherit; font-weight: 600; letter-spacing: -.055em; line-height: 1.08; margin: 0 0 24px; }
.arc-section h1 { max-width: 1000px; font-size: var(--wp--preset--font-size--arc-hero,clamp(2.6rem,6vw,6.5rem)); }
.arc-section h2 { font-size: var(--wp--preset--font-size--arc-heading,clamp(2rem,4.5vw,4.5rem)); }
.arc-section p { max-width: 700px; font-size: var(--wp--preset--font-size--arc-body,1.125rem); line-height: 1.75; margin: 0 0 24px; }
.arc-section .arc-eyebrow { font-size: .75rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; margin-bottom: 24px; }
.arc-section .wp-block-buttons { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 32px; }
.arc-section .wp-block-button__link { display: inline-flex; align-items: center; gap: 16px; padding: 18px 28px; border-radius: 99px; border: 0; background: var(--arc-lime); color: var(--arc-navy); font: 700 1rem/1.4 Manrope,Arial,sans-serif; text-decoration: none; cursor: pointer; }
.arc-section .wp-block-button__link::after { content: ''; width: 18px; height: 18px; flex: 0 0 18px; background: currentColor; -webkit-mask: var(--arc-icon-arrow-right) center/contain no-repeat; mask: var(--arc-icon-arrow-right) center/contain no-repeat; }
.arc-section .wp-block-button__link:hover { background: white; color: var(--arc-navy); }
.arc-section .wp-block-button__link:focus-visible { outline: 3px solid #36c5e8; outline-offset: 4px; }
.arc-hero, .arc-cta { background: var(--arc-navy); color: white; }
.arc-hero { min-height: 80vh; display: grid; align-items: center; padding-top: max(150px,12vw); }
.arc-hero__image { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; z-index: -2; }
.arc-hero__image img { width: 100%; height: 100%; object-fit: cover; }
.arc-hero::after, .arc-cta::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg,rgba(6,26,46,.84),rgba(6,26,46,.4)); z-index: -1; pointer-events: none; }
.arc-hero > .arc-section__inner { width: 100%; }
.arc-cta .arc-section__inner { max-width: 950px; text-align: center; }
.arc-cta p { margin-left: auto; margin-right: auto; }
.arc-cta .wp-block-buttons { justify-content: center; }
.arc-media { max-width: 1200px; margin: 0 auto; gap: clamp(24px,5vw,80px); grid-template-columns: 1fr 1fr; }
.arc-media .wp-block-media-text__content { padding: 0; }
.arc-media .wp-block-media-text__media img { width: 100%; height: auto; aspect-ratio: 1/1; object-fit: cover; }
.arc-media h2 { font-size: clamp(2rem,3.5vw,3.6rem); }
.arc-lead { font-size: 1.25em; font-weight: 600; line-height: 1.7; }
.arc-gutenberg-page { margin: 0; padding: 0; }
@media(max-width:767px) {
  .arc-media.wp-block-media-text { grid-template-columns: 1fr; }
  .arc-media.wp-block-media-text .wp-block-media-text__media { grid-column: 1; grid-row: 1; }
  .arc-media.wp-block-media-text .wp-block-media-text__content { grid-column: 1; grid-row: 2; }
  .arc-hero { min-height: 72svh; }
  .arc-section .wp-block-button__link { padding: 16px 22px; }
}

.arc-projects-block, .arc-news-block { width: 100%; margin: 32px 0 0; }
.arc-projects-block .project-archive__grid { padding: 0; }
.arc-projects-block--featured .projects-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: 32px; }
.arc-block-empty-editor { padding: 32px; background: #f8fafc; border: 2px dashed #cbd5e1; border-radius: 6px; text-align: center; color: #64748b; font-size: 14px; margin: 16px 0; }

/* Native block wrappers for the approved, existing corporate layouts. */
.arc-migrated-section { --navy: var(--wp--preset--color--arc-navy, #061a2e); --lime: var(--wp--preset--color--arc-lime, #b9e34a); max-width: none; margin: 0; }
.arc-migrated-section .wp-block-group { margin-block-start: 0; margin-block-end: 0; }
.arc-migrated-section figure.wp-block-image { margin: 0; }
.arc-migrated-section .wp-block-image img { display: block; }
.arc-migrated-section .about-hero__visual > figure,
.arc-migrated-section .about-capability__image > figure { width: 100%; height: 100%; }
.arc-migrated-section .about-hero__visual > figure > img,
.arc-migrated-section .about-capability__image > figure > img { width: 100%; height: 100%; object-fit: cover; max-width: none; }
.arc-migrated-section.about-quote > figure { position: absolute; inset: 0; width: 100%; height: 100%; }
.arc-migrated-section.about-quote > figure > img { width: 100%; height: 100%; object-fit: cover; }
.arc-migrated-section .eyebrow { font-size: 10px; line-height: normal; margin: 0; }
.arc-migrated-section .about-hero__kicker { margin: 0 0 18px; color: var(--lime); font-size: 10px; line-height: normal; }
.arc-migrated-section .about-capability__image > p { position: absolute; z-index: 2; left: 34px; bottom: 30px; font-size: 10px; font-weight: 750; letter-spacing: .16em; text-transform: uppercase; }
.arc-migrated-section .about-capability__item > p { padding-top: 5px; color: var(--lime); font-size: 10px; font-weight: 800; }
.arc-migrated-section .about-brand > p:first-child { position: absolute; top: 22px; right: 22px; margin: 0; }
.arc-migrated-section .about-brand > p:has(strong) { margin: 0; text-transform: none; }
.arc-migrated-section .wp-block-quote { border: 0; padding: 0; }
.arc-migrated-section .wp-block-quote p { font: inherit; margin: 0; }
.arc-migrated-section .wp-block-buttons { margin: 0; }
.arc-migrated-section .wp-block-button { padding: 0; }
.arc-migrated-section .wp-block-button__link { font: inherit; color: inherit; background: transparent; border: 0; border-radius: inherit; padding: 0; text-decoration: none; display: inline-flex; align-items: center; gap: 15px; }
.arc-migrated-section .wp-block-button__link::after { content: ''; display: inline-block; width: 18px; height: 18px; flex: 0 0 18px; background: currentColor; mask: var(--arc-icon-arrow-up-right) center/contain no-repeat; -webkit-mask: var(--arc-icon-arrow-up-right) center/contain no-repeat; }
.arc-migrated-section .wp-block-button.btn .wp-block-button__link { padding: 18px 25px; }
.arc-migrated-section .wp-block-button.text-link { padding-bottom: 9px; }
.arc-migrated-section .arc-gb-icon { pointer-events: none; }
.arc-migrated-section:is(.services-hero,.services-contact) > figure { position: absolute; inset: 0; width: 100%; height: 100%; }
.arc-migrated-section:is(.services-hero,.services-contact) > figure img { width: 100%; height: 100%; object-fit: cover; }
.arc-migrated-section .arc-cta-button .wp-block-button__link { padding: 17px 24px; border-radius: 99px; color: var(--navy); background: var(--lime); font-size: 12px; font-weight: 800; }
.arc-migrated-section .arc-cta-button--secondary .wp-block-button__link { color: #fff; background: var(--navy); }
.arc-migrated-section:is(.services-contact,.projects-contact,.contact-cta) .wp-block-buttons { justify-content: center; }
.arc-migrated-section .services-hero__footer .wp-block-buttons { grid-column: 1; }
/* Gutenberg turns the reference <a.scroll-link> into a Button wrapper plus
   link. Keep that wrapper shrink-to-fit and override core's 100% link width:
   otherwise the label's min-content width is a single character. */
.arc-migrated-section .scroll-link { display: inline-flex; width: fit-content; }
.arc-migrated-section .scroll-link .wp-block-button__link { width: auto; white-space: nowrap; font-size: 10px; gap: 13px; }
.arc-migrated-section .scroll-link .wp-block-button__link::after { order: -1; width: 46px; height: 46px; flex-basis: 46px; padding: 14px; border: 1px solid rgba(255,255,255,.42); border-radius: 50%; mask: var(--arc-icon-arrow-down) center/18px 18px no-repeat; -webkit-mask: var(--arc-icon-arrow-down) center/18px 18px no-repeat; }
.arc-migrated-section .services-process__step .arc-gb-icon { width: 42px; height: 42px; margin: 40px 0; }
.arc-migrated-section .projects-hero__feature > figure { width: 100%; height: 100%; }
.arc-migrated-section .projects-hero__feature > figure img { width: 100%; height: 100%; object-fit: cover; }
.arc-migrated-section .projects-value__item > p:first-child { position: absolute; top: 24px; left: 27px; font-size: 9px; color: #87949b; }
.arc-migrated-section .projects-value__item .arc-gb-icon { position: absolute; top: 23px; right: 26px; width: 28px; height: 28px; color: #1766a1; }
.arc-migrated-section :is(.about-hero__rings,.projects-contact__rings) > div { position: absolute; border: 1px solid rgba(116,182,224,.2); border-radius: 50%; }
.arc-migrated-section :is(.about-hero__rings,.projects-contact__rings) > div:nth-child(1) { inset: 0; }
.arc-migrated-section :is(.about-hero__rings,.projects-contact__rings) > div:nth-child(2) { inset: 20%; }
.arc-migrated-section :is(.about-hero__rings,.projects-contact__rings) > div:nth-child(3) { inset: 40%; }
@media(max-width:767px) { .arc-migrated-section .services-hero__footer .wp-block-buttons { grid-column: 1 / -1; } }

/* Home keeps the existing composition; only native figure/button wrappers differ. */
.arc-migrated-section .hero__image img { width: 100%; height: 100%; object-fit: cover; }
.arc-migrated-section.hero h1 em { color: var(--lime); font-style: normal; }
/* Core Group layout resets block margins. Restore the approved Home section-top
   rhythm at the owning component, not with a page-specific heading margin. */
.arc-migrated-section.services .section-top { margin-block-end: clamp(2.8125rem, 5vw, 4.0625rem); }
.arc-migrated-section.contact-cta > figure { position: absolute; inset: 0; width: 100%; height: 100%; }
.arc-migrated-section.contact-cta > figure img { width: 100%; height: 100%; object-fit: cover; }
.arc-migrated-section .service-card > .wp-block-buttons { position: absolute; inset: 0; z-index: 4; }
.arc-migrated-section .arc-service-card-link { width: 100%; height: 100%; }
.arc-migrated-section .arc-service-card-link .wp-block-button__link { display: block; width: 100%; height: 100%; overflow: hidden; text-indent: -9999px; border-radius: 0; }
.arc-migrated-section .arc-service-card-link .wp-block-button__link::after { display: none; }
.arc-migrated-section .arc-service-card-link .wp-block-button__link:focus-visible { outline: 3px solid var(--lime); outline-offset: -5px; }
.arc-migrated-section .service-card__arrow .arc-gb-icon { width: 24px; height: 24px; }
