/* Tsigiro — a quieter, clearer expression of mission support. */
:root { --ink: #102d28; --ink-soft: #425c55; --green: #54d6a5; --green-dark: #087454; --green-soft: #e9f3ec; --paper: #f6f7f2; --grey: #5b7069; --line: rgba(16,45,40,.13); --container: min(1200px, calc(100% - 72px)); --radius: 20px; }
body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
::selection { background: #b5efd2; color: var(--ink); }
a:focus-visible, button:focus-visible, summary:focus-visible { outline: 3px solid #168762; outline-offset: 5px; }
h1, h2, h3 { text-wrap: balance; }
h2 { font-family: inherit; text-transform: none; font-size: clamp(2.3rem, 4vw, 3.8rem); font-weight: 650; line-height: 1.1; letter-spacing: -.05em; }
.section { padding: 96px 0; }
.kicker, .eyebrow { font-size: .69rem; letter-spacing: .14em; font-weight: 750; }
.site-header, .site-header.scrolled { background: rgba(246,247,242,.96); border-bottom: 1px solid var(--line); padding: 13px 0; backdrop-filter: blur(16px); }
.brand-crop { width: 126px; height: 42px; }
.brand-crop img { width: 250px; mix-blend-mode: multiply; }
.primary-navigation { gap: 26px; }
.primary-navigation a { color: var(--ink); font-size: .8rem; }
.primary-navigation .nav-cta, .scrolled .primary-navigation .nav-cta { background: var(--ink); color: white; border: 0; padding: 12px 22px; }
.primary-navigation .nav-cta:hover { background: #215044; color: white; }
.hero { min-height: 780px; background: var(--paper); color: var(--ink); overflow: hidden; }
.hero-content { align-self: center; padding: 156px 0 64px; }
.hero h1 { max-width: 650px; font-family: inherit; text-transform: none; font-size: clamp(3.5rem, 6.3vw, 6rem); font-weight: 650; letter-spacing: -.065em; line-height: 1.02; }
.hero h1 span { color: var(--green-dark); }
.eyebrow { color: var(--green-dark); display: flex; gap: 10px; align-items: center; margin-bottom: 25px; }
.eyebrow::before { content: ""; height: 7px; width: 7px; border-radius: 50%; background: var(--green-dark); }
.hero-copy { max-width: 470px; color: var(--ink-soft); font-size: 1.08rem; line-height: 1.7; margin-top: 24px; }
.hero-media { left: 56%; top: 112px; right: max(36px, calc((100vw - 1280px)/2)); bottom: 70px; border-radius: 150px 24px 24px 24px; overflow: hidden; }
.hero-media img { object-position: 64% center; }
.hero-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(9,40,31,.45), transparent 65%); }
.hero-wash { display: none; }
.hero::after { width: 180px; height: 180px; top: 90px; right: 25px; border-color: rgba(8,116,84,.3); z-index: 1; pointer-events: none; }
.hero-actions { gap: 22px; margin-top: 30px; }
.button { font-size: .85rem; min-height: 50px; padding: 13px 24px; font-weight: 650; }
.button-primary { background: var(--ink); color: white; }
.button-primary:hover { background: #215044; }
.hero .text-link { color: var(--ink); font-size: .85rem; font-weight: 650; text-decoration: none; }
.hero .text-link span { color: var(--green-dark); margin-left: 8px; }
.hero-proof { max-width: 520px; margin-top: 46px; border-color: var(--line); }
.hero-proof li { padding: 18px 12px 0 0; gap: 4px; }
.hero-proof strong { font-size: .75rem; font-weight: 650; }
.hero-proof span { color: var(--grey); font-size: .7rem; }
.hero-stamp { right: max(60px, calc((100vw - 1200px)/2 + 26px)); bottom: 100px; display: flex; gap: 18px; align-items: center; text-align: left; padding: 22px 26px; background: rgba(246,247,242,.95); border: 1px solid rgba(255,255,255,.7); border-radius: 16px; box-shadow: 0 12px 40px #0a2d291a; }
.hero-stamp strong { font-size: 1.05rem; font-weight: 600; line-height: 1.35; letter-spacing: -.025em; }
.hero-stamp small { display: block; margin-top: 8px; color: var(--grey); font-size: .64rem; font-weight: 500; }
.hero-stamp .stamp-symbol { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--green-soft); color: var(--green-dark); font-size: 1.5rem; font-weight: 400; }
.intro { background: #fff; }
.intro-grid { gap: 100px; grid-template-columns: .95fr 1.05fr; }
.intro-copy { font-size: .95rem; }
.intro-copy .lead { font-size: 1.14rem; line-height: 1.65; }
.purpose-panel { box-shadow: none; min-height: 0; grid-template-columns: 1fr 1.1fr; background: var(--paper); margin-top: 50px; }
.purpose-image { min-height: 360px; }
.purpose-copy { padding: 38px 42px; gap: 26px; }
.purpose-block + .purpose-block { padding-top: 26px; }
.purpose-block p { font-size: .99rem; font-weight: 500; line-height: 1.65; margin-top: 12px; }
.services { background: var(--ink); }
.services-heading { grid-template-columns: 1.2fr .8fr; gap: 100px; }
.services-heading > p { color: #b3c8c0; font-size: .94rem; line-height: 1.75; max-width: 370px; }
.services::before { opacity: .5; }
.service-areas { gap: 16px; border: 0; margin-top: 48px; grid-template-columns: repeat(4,minmax(0,1fr)); }
.service-areas .service-card { min-height: 340px; padding: 25px; border: 1px solid #ffffff21; border-radius: 16px; background: #ffffff06; }
.service-areas .service-card:hover { background: #ffffff0c; transform: translateY(-4px); }
.service-card-top { display: flex; justify-content: space-between; align-items: center; }
.service-icon { color: #8fe3bc; display: grid; place-items: center; width: 48px; height: 48px; border: 1px solid #ffffff24; border-radius: 12px; }
.service-icon svg { width: 28px; height: 28px; }
.service-number { color: #a4beb4; font-size: .67rem; }
.service-areas .service-card h3 { font-size: 1.25rem; font-weight: 550; line-height: 1.25; margin-top: 30px; margin-bottom: 16px; letter-spacing: -.03em; }
.service-areas .service-card p { color: #b3c8c0; font-size: .81rem; line-height: 1.7; }
.service-areas .service-tag { font-size: .64rem; text-transform: none; letter-spacing: 0; color: #a1ebc9; text-decoration: none; line-height: 1.6; }
.service-areas .service-card-accent { background: #d8efdd; color: var(--ink); border-color: #d8efdd; }
.service-areas .service-card-accent:hover { background: #e3f5e7; }
.service-card-accent .service-icon { color: var(--green-dark); border-color: #102d2826; }
.service-card-accent .service-number, .service-card-accent .service-tag, .service-areas .service-card-accent p { color: #375c4e; }
.service-explorer { background: var(--paper); }
.explorer-heading { margin-bottom: 36px; }
.explorer-heading h2 { font-size: clamp(2rem,3vw,3rem); }
.explorer-heading > p:last-child { color: var(--grey); font-size: .95rem; }
.service-accordions { border-top: 1px solid var(--line); }
.service-disclosure { border-bottom: 1px solid var(--line); scroll-margin-top: 90px; }
.service-disclosure summary { list-style: none; display: flex; align-items: center; gap: 25px; padding: 27px 0; cursor: pointer; }
.service-disclosure summary::-webkit-details-marker { display: none; }
.disclosure-number { font-size: .7rem; color: var(--green-dark); align-self: flex-start; padding-top: 8px; }
.disclosure-title { flex: 1; }
.disclosure-title strong { display: block; font-size: 1.35rem; font-weight: 600; letter-spacing: -.025em; }
.disclosure-title > span { display: block; color: var(--grey); font-size: .83rem; margin-top: 3px; }
.disclosure-toggle { width: 36px; height: 36px; border: 1px solid var(--line); border-radius: 50%; display: grid; place-items: center; flex-shrink: 0; }
.disclosure-toggle::before { content: "+"; font-size: 1.3rem; font-weight: 400; }
.service-disclosure[open] .disclosure-toggle { color: white; background: var(--ink); }
.service-disclosure[open] .disclosure-toggle::before { content: "−"; }
.service-detail-body { padding: 0 0 32px 40px; }
.service-detail-body .section-heading { max-width: 820px; font-size: .91rem; color: var(--ink-soft); }
.service-detail-body .section-heading p { margin: 0; }
.detail-grid, .process-grid { gap: 12px; margin-top: 25px; }
.detail-card { padding: 24px; border: 1px solid var(--line); border-radius: 12px; }
.detail-card h3 { font-size: 1rem; font-weight: 650; letter-spacing: -.02em; }
.detail-card p { font-size: .84rem; line-height: 1.7; color: var(--grey); }
.process-grid .step-number { margin-bottom: 18px; }
.delivery-grid { display: block; }
.delivery-intro { position: static; display: grid; grid-template-columns: 1fr 1fr; column-gap: 100px; }
.delivery-intro .kicker { grid-column: 1 / -1; }
.delivery-intro > p:not(.kicker) { margin: 0; align-self: end; font-size: .94rem; line-height: 1.75; }
.delivery-line { display: none; }
.layers { grid-template-columns: 1fr 1fr; margin-top: 46px; gap: 22px; }
.layer-card { padding: 36px; display: flex; flex-direction: column; background: var(--paper); border: 1px solid var(--line); }
.layer-card-dark { background: var(--green-soft); color: var(--ink); }
.layer-card-dark .layer-meta { color: var(--green-dark); }
.layer-card h3 { margin: 38px 0 16px; font-size: 2rem; font-weight: 550; letter-spacing: -.04em; }
.layer-card p, .layer-card-dark p { color: var(--ink-soft); font-size: .9rem; line-height: 1.75; }
.layer-card .layer-note, .layer-card-dark .layer-note { border-color: var(--line); color: var(--ink-soft); font-weight: 500; font-size: .82rem; margin-bottom: 26px; }
.layer-action { margin-top: auto; }
.layer-link { box-shadow: none; font-size: .8rem; padding: 10px 0; background: transparent; color: var(--ink); border-radius: 0; }
.layer-link:hover { box-shadow: none; background: transparent; transform: none; text-decoration: underline; text-underline-offset: 5px; }
.layer-link span { color: var(--green-dark); }
.tier-heading { gap: 20px 100px; }
.tier-heading > p:last-child { font-size: .94rem; line-height: 1.75; }
.tier-grid { margin-top: 44px; }
.tier-card { padding: 36px; display: flex; flex-direction: column; }
.tier-card h3 { margin: 24px 0 16px; font-size: 1.7rem; font-weight: 550; letter-spacing: -.04em; }
.capacity-metric { display: flex; align-items: center; gap: 24px; margin-bottom: 25px; }
.capacity-metric > strong { font-size: 4.1rem; font-weight: 500; letter-spacing: -.07em; line-height: 1; }
.capacity-metric > strong > span { font-size: 2rem; }
.capacity-metric > span { font-size: .78rem; color: var(--grey); line-height: 1.7; }
.tier-card-featured .capacity-metric > strong { color: #91e3ba; }
.tier-card-featured .capacity-metric > span { color: #b3c8c0; }
.tier-summary { font-size: .9rem; }
.tier-card ul { margin: 24px 0; }
.tier-card li { font-size: .83rem; padding-top: 11px; padding-bottom: 11px; }
.best-for { font-size: .83rem; margin-bottom: 25px; }
.tier-cta { display: flex; justify-content: space-between; gap: 20px; padding: 14px 20px; background: var(--green-soft); color: var(--ink); border-radius: 8px; text-decoration: none; font-size: .82rem; font-weight: 650; margin-top: auto; }
.tier-card-featured .tier-cta { background: #a6e8c1; }
.tier-cta:hover { background: #c8ecd5; }
.mix-note { padding: 24px 30px; background: #e5eee6; border-radius: 12px; font-size: .9rem; }
.mix-note > span { text-transform: none; font-weight: 650; }
.why-grid { grid-template-columns: .8fr 1.2fr; gap: 90px; }
.why-list article { grid-template-columns: 28px 1fr; gap: 12px 20px; padding: 24px 0; }
.why-list p { grid-column: 2; font-size: .87rem; }
.why-list h3 { font-weight: 600; }
#values { background: var(--paper); }
.values-grid { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 0; border-top: 1px solid var(--line); margin-top: 38px; }
.values-grid .detail-card { background: transparent; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; padding: 26px 26px 26px 0; }
.values-grid .detail-card h3 { color: var(--green-dark); }
.geography-heading { margin-top: 64px; }
.geography-heading h2 { font-size: clamp(2rem,3vw,3rem); }
#values .geography-heading + .detail-grid { gap: 0; }
.geography-heading + .detail-grid .detail-card { background: transparent; border-radius: 0; border: 0; border-top: 1px solid var(--line); padding: 26px 0; }
.geography-heading + .detail-grid .step-number { margin-bottom: 12px; }
.contact { padding: 88px 0; }
.contact-copy h2 { font-size: clamp(2.8rem,5vw,4.7rem); }
.contact-copy > p:not(.kicker) { color: #b3c8c0; font-size: .94rem; }
.contact .button-primary { background: #a6e8c1; color: var(--ink); }
.contact-details a { font-size: .95rem; font-weight: 500; text-decoration: none; }
.contact-details p { font-size: .9rem; }
.site-footer { background: #0b211c; padding-top: 35px; }
.footer-top { padding-bottom: 25px; }
.footer-top > p { font-weight: 500; font-size: 1rem; }
.fab-container { z-index: 19; }
.fab-trigger { border: 1px solid #a6e8c1; box-shadow: 0 4px 16px #102d2826; width: 50px; height: 50px; }
.fab-pulse { display: none; }
@media (max-width: 1100px) {
    .hero h1 { font-size: 4.7rem; }
    .hero-copy { max-width: 43%; }
    .hero-proof { max-width: 48%; }
    .hero-stamp { right: 48px; padding: 18px; }
    .service-areas { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .service-areas .service-card { min-height: 290px; }
}
@media (max-width: 980px) {
    .menu-toggle { border-color: var(--ink); }
    .menu-toggle span:not(.sr-only) { background: var(--ink); }
    .primary-navigation a, .scrolled .primary-navigation a { color: white; }
    .primary-navigation .nav-cta, .scrolled .primary-navigation .nav-cta { background: var(--green); color: var(--ink); }
    .hero { min-height: 730px; }
    .hero-content { padding-top: 145px; }
    .hero h1 { font-size: 4.3rem; }
    .hero-actions { flex-direction: column; align-items: flex-start; gap: 16px; }
    .hero-media { left: 55%; right: 28px; bottom: 75px; }
    .hero-stamp { right: 42px; bottom: 98px; max-width: 36%; gap: 10px; }
    .hero-stamp .stamp-symbol { display: none; }
    .intro-grid, .services-heading, .why-grid, .contact-grid, .tier-heading { grid-template-columns: 1fr; gap: 30px; }
    .purpose-panel { grid-template-columns: .8fr 1.2fr; }
    .purpose-copy { padding: 30px; }
    .services-heading > p { max-width: 650px; }
    .delivery-intro { gap: 20px 40px; }
    .layers { gap: 15px; }
    .layer-card { padding: 28px; }
    .layer-meta { font-size: .63rem; gap: 12px; }
    .values-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 680px) {
    :root { --container: calc(100% - 40px); }
    .section { padding: 64px 0; }
    h2 { font-size: 2.4rem; }
    .site-header, .site-header.scrolled { padding: 10px 0; }
    .hero { display: flex; flex-direction: column; min-height: 0; padding-bottom: 28px; }
    .hero-content { padding: 120px 0 28px; order: 0; }
    .hero h1 { font-size: clamp(3.4rem,12.9vw,5rem); max-width: none; }
    .hero-copy { max-width: none; font-size: 1rem; margin-top: 22px; }
    .hero-actions { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 16px; }
    .hero .text-link { font-size: .8rem; }
    .hero-proof { max-width: none; margin-top: 32px; grid-template-columns: repeat(3,minmax(0,1fr)); }
    .hero-proof li { display: block; padding: 14px 6px 0 0; border-bottom: 0; }
    .hero-proof strong, .hero-proof span { display: block; text-align: left; font-size: .65rem; }
    .hero-proof span { margin-top: 5px; font-size: .62rem; }
    .hero-media { position: relative; inset: auto; width: calc(100% - 40px); height: 310px; margin: 0 auto; border-radius: 70px 16px 16px 16px; order: 1; }
    .hero-media img { object-position: center 43%; }
    .hero::after { display: none; }
    .hero-stamp { display: flex; right: 32px; bottom: 44px; max-width: calc(100% - 64px); padding: 16px 20px; border-radius: 10px; }
    .hero-stamp strong { font-size: .9rem; }
    .hero-stamp small { font-size: .61rem; }
    .intro-copy .lead { font-size: 1.05rem; }
    .purpose-panel { grid-template-columns: 1fr; margin-top: 32px; }
    .purpose-image { min-height: 0; height: 250px; }
    .purpose-copy { padding: 26px; }
    .purpose-block p { font-size: .9rem; }
    .service-areas { grid-template-columns: 1fr; gap: 12px; margin-top: 30px; }
    .service-areas .service-card { min-height: 0; padding: 26px; }
    .service-areas .service-card h3 { margin-top: 22px; font-size: 1.5rem; max-width: 300px; }
    .service-areas .service-card p { font-size: .9rem; margin-bottom: 20px; }
    .service-areas .service-tag { font-size: .78rem; }
    .service-disclosure summary { gap: 14px; padding: 23px 0; }
    .disclosure-title strong { font-size: 1.12rem; }
    .disclosure-title > span { font-size: .76rem; line-height: 1.5; }
    .disclosure-number { padding-top: 5px; }
    .disclosure-toggle { width: 29px; height: 29px; }
    .service-detail-body { padding-left: 0; }
    .detail-grid, .process-grid { grid-template-columns: 1fr; }
    .detail-card { padding: 22px; }
    .delivery-intro { grid-template-columns: 1fr; gap: 0; }
    .delivery-intro > p:not(.kicker) { margin-top: 24px; }
    .layers { grid-template-columns: 1fr; margin-top: 30px; }
    .layer-card { padding: 28px; }
    .layer-card h3 { font-size: 1.8rem; }
    .layer-link { justify-content: space-between; }
    .tier-grid { gap: 18px; margin-top: 30px; }
    .tier-card { padding: 28px; }
    .capacity-metric { gap: 18px; }
    .capacity-metric > strong { font-size: 3.8rem; }
    .capacity-metric > span { font-size: .71rem; }
    .mix-note { padding: 22px; }
    .values-grid { gap: 0 18px; }
    .values-grid .detail-card { padding: 22px 0; }
    .values-grid .detail-card p { font-size: .8rem; }
    .contact { padding: 64px 0; }
    .contact-grid { gap: 40px; }
    .footer-top { flex-direction: row; align-items: center; gap: 10px; }
    .footer-top > p { font-size: .8rem; }
    .brand-footer .brand-crop { width: 125px; }
    .footer-bottom { gap: 18px; }
}
/* Let narrow layouts shrink naturally, including expanded service content. */
.hero h1 { font-stretch: normal; }
.tier-card, .layer-card, .detail-card, .disclosure-title { min-width: 0; }
.capacity-metric { flex-wrap: wrap; }
@media (max-width: 360px) {
    .layer-meta { flex-wrap: wrap; }
    .footer-top { align-items: flex-start; flex-direction: column; }
    .values-grid { grid-template-columns: 1fr; }
}

.version-compare { display: inline-flex; align-items: center; gap: 10px; color: var(--green-dark); font-size: .76rem; margin-top: 20px; text-decoration: none; text-underline-offset: 4px; }
.version-compare:hover { text-decoration: underline; }
.footer-bottom nav { flex-wrap: wrap; }

/* Keep the white footer wordmark visible against the dark background. */
.brand-footer .brand-crop img { mix-blend-mode: screen; }
