/* Layout additions shared by the frontend and the block editor. */
.tt-header { border-bottom: 1px solid #dfe3ea; background: #fff; }
.tt-header-inner { min-height: 100px; gap: 32px; }
.tt-header .wp-block-site-logo { flex-shrink: 0; }
.tt-header .wp-block-site-logo img { width: 210px; height: auto; }
.tt-navigation { gap: 32px; }
.tt-navigation .wp-block-navigation__container { gap: 32px; }
.tt-navigation .wp-block-navigation-item__content { text-decoration: none; }
.tt-navigation .wp-block-navigation-item:last-child .wp-block-navigation-item__content { background: #1a2980; color: #fff; padding: 12px 20px; border-radius: 3px; }
.tt-main { margin-block: 0 !important; }
.tt-main > .wp-block-post-content.alignfull { max-width: none; width: auto; }
.tt-section { padding-block: clamp(48px, 7vw, 96px); margin-block: 0 !important; }
.tt-section-inner { width: 100%; max-width: 1200px; }
.tt-section-heading { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: start; }
.tt-section-heading > :first-child, .tt-section-heading > p { margin-block: 0; }
.tt-section-inner > :first-child { margin-top: 0; }
.tt-section-inner > :last-child { margin-bottom: 0; }
.tt-section-inner > p { max-width: 760px; }
.tt-section h2 { max-width: 760px; }
.tt-hero { padding-top: clamp(40px, 5vw, 72px); }
.tt-hero .wp-block-columns { align-items: center; }
.tt-hero h1 { max-width: 660px; margin-block: 0 24px; }
.tt-hero .tt-lead { max-width: 620px; }
.tt-hero .wp-block-buttons { margin-top: 32px; }
.tt-hero .wp-block-image img { width: 100%; height: auto; aspect-ratio: 1.14; object-fit: cover; object-position: 58% center; border-radius: 4px; }
.tt-hero .wp-block-image figcaption { color: #20262e; font-size: 13px; line-height: 1.5; margin-top: 8px; }
.tt-section .wp-block-columns { margin-bottom: 0; }
.tt-services .tt-item { padding-top: 24px; border-top: 2px solid #1a2980; }
.tt-services .wp-block-columns, .tt-infrastructure .wp-block-columns, .tt-process .wp-block-columns { margin-top: 40px; }
.tt-item h3 { margin-block: 0 16px; }
.tt-item p { margin-block: 0; }
.tt-infrastructure { background: #1a2980; color: #fff; }
.tt-infrastructure h2, .tt-infrastructure h3, .tt-infrastructure a { color: #fff; }
.tt-infrastructure a { text-underline-offset: 4px; }
.tt-infrastructure .tt-item { padding-top: 24px; border-top: 1px solid #8793c1; }
.tt-profile, .tt-qualifications { background: #f3f5f8; }
.tt-profile .wp-block-columns { align-items: center; }
.tt-profile .wp-block-image img { width: 100%; height: auto; object-fit: cover; }
.tt-experience .tt-item { display: grid; grid-template-columns: .9fr 1.5fr; gap: 48px; padding-block: 24px; border-top: 1px solid #dfe3ea; }
.tt-experience .tt-item h3 { margin-block: 0; }
.tt-experience .tt-item h3 { max-width: 760px; }
.tt-experience .tt-item p, .tt-profile p, .tt-legal p { max-width: 760px; }
.tt-process .tt-item { padding-top: 24px; border-top: 1px solid #a9b0c0; }
.tt-contact { background: #f3f5f8; }
.tt-contact .tt-email { font-size: clamp(22px, 3vw, 32px); font-weight: 600; overflow-wrap: anywhere; }
.tt-contact .wp-block-buttons { margin-top: 24px; }
.tt-legal .tt-item { margin-top: 32px; }
.tt-legal h1 { max-width: 760px; }
.tt-legal { overflow-wrap:anywhere; }
.tt-notice { padding: 16px 24px; border-left: 3px solid #1a2980; background: #f3f5f8; font-size: 16px; }
.tt-footer { margin-top: 0; padding-block: 48px 32px; border-top: 1px solid #dfe3ea; }
.tt-footer-inner { gap: 40px; }
.tt-footer .wp-block-site-logo img { width: 190px; height: auto; }
.tt-footer a { text-underline-offset: 4px; }
.tt-footer .wp-block-list { list-style: none; padding: 0; margin: 0; }
.tt-footer .wp-block-list li + li { margin-top: 8px; }
.tt-footer .tt-footer-note { font-size: 16px; max-width: 420px; }
.tt-preview-note { margin: 0; padding: 16px 20px; text-align: center; background: #f3f5f8; color: #20262e; font-size: 14px; }
.tt-section a:focus-visible, .tt-header a:focus-visible, .tt-footer a:focus-visible, .tt-header button:focus-visible { outline: 3px solid #2c65de; outline-offset: 5px; }
.tt-infrastructure a:focus-visible { outline-color: #fff; }
.tt-section .wp-block-button__link:hover, .tt-navigation .wp-block-navigation-item:last-child .wp-block-navigation-item__content:hover { background: #2c65de; color: #fff; }
.tt-section .is-style-outline .wp-block-button__link { background: transparent; color: #1a2980; }
.tt-section .is-style-outline .wp-block-button__link:hover { background: #f3f5f8; color: #1a2980; }
.tt-section .wp-block-button__link { overflow-wrap: anywhere; text-align: center; }
.tt-section [id] { scroll-margin-top: 24px; }
@media (max-width: 781px) {
  .tt-header-inner { min-height: 80px; gap: 16px; }
  .tt-header .wp-block-site-logo img { width: 160px; }
  .tt-navigation .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none; }
  .tt-navigation .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
  .tt-section .wp-block-columns { gap: 32px; }
  .tt-section-heading, .tt-experience .tt-item { grid-template-columns: 1fr; gap: 24px; }
  .tt-hero .wp-block-image img { aspect-ratio: 1.35; }
  .tt-footer .wp-block-columns { gap: 32px; }
}
@media (prefers-reduced-motion: reduce) {
  .tt-section *, .tt-header *, .tt-footer * { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

.tt-profile .wp-block-image img { aspect-ratio:2/3; object-position:center top; max-height:660px; }

.button, .wp-block-button__link, .nav-contact { transition:background-color 200ms ease,color 200ms ease; }
:focus-visible { transition:none !important; }
@media (prefers-reduced-motion:reduce) { * { scroll-behavior:auto !important; transition:none !important; } }
