/* Refinements of the supplied light Fly system. */
body { font-size: 20px; }
.eyebrow, .header-note { display: none; }
.section { padding-block: 88px; }
h2 { font-size: 48px; line-height: 1.12; }
.section-heading { gap: 48px; align-items: end; }
.section-heading > p { max-width: 490px; font-size: 20px; line-height: 1.6; }
.button, .button-small, .text-link { font-size: 18px; }
.button { min-height: 56px; }
.button:hover { box-shadow: none; }
.button svg, .text-link svg { width: 22px; height: 22px; }
.desktop-nav { font-size: 18px; gap: 24px; }
.header-inner { gap: 26px; }
.header-cta { margin-left: auto; font-size: 18px; }
.header .wordmark { font-size: 30px; }
.hero { display: flex; flex-direction: column; }
.hero-inner { padding-block: 52px; min-height: 690px; }
.hero h1 { font-size: 78px; margin: 0 0 26px; max-width: 600px; }
.hero-lead { font-size: 22px; line-height: 1.55; max-width: 560px; }
.hero-actions { gap: 28px; margin-top: 32px; }
.hero-actions .text-link { font-size: 18px; }
.hero-note { font-size: 18px; line-height: 1.5; max-width: 495px; margin-top: 24px; }
.hero-image { inset: 0 0 0 auto; width: 59%; height: 100%; object-fit: contain; object-position: center; opacity: 1; transform: none; }
.proof-grid { padding-block: 30px; gap: 28px; }
.proof-grid > div { gap: 22px; }
.proof-grid p { font-size: 18px; line-height: 1.5; }
.proof-grid > div + div { padding-left: 28px; }
.proof-number { font-size: 46px; }
.task-directions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 72px; }
.task-direction { display: flex; flex-direction: column; align-items: start; padding: 30px 0 38px; border-top: 1px solid var(--ink); }
.direction-heading { display: flex; gap: 24px; align-items: center; margin-bottom: 20px; font-size: 18px; color: var(--muted); }
.direction-number { font-size: 42px; color: var(--blue); line-height: 1; }
.task-direction h3 { font-size: 32px; max-width: 520px; line-height: 1.18; }
.task-direction p { font-size: 20px; line-height: 1.6; color: var(--muted); margin-block: 20px 26px; max-width: 560px; }
.task-direction .text-link { margin-top: auto; color: var(--blue); padding-block: 6px; }
.task-direction .text-link svg { transition: transform .2s ease; }
.task-direction .text-link:hover svg { transform: translate(3px, -3px); }
.secondary-tasks { flex-wrap: wrap; gap: 18px 28px; font-size: 18px; }
.secondary-tasks svg { width: 20px; height: 20px; }
.case-top { justify-content: flex-start; }
.case-top img { width: 205px; max-height: 44px; }
.case-heading { grid-template-columns: 1.4fr .7fr; gap: 48px; }
.case-heading h2 { font-size: 48px; }
.case-heading > div > p { font-size: 20px; max-width: 680px; line-height: 1.6; }
.case-metric > p { font-size: 18px !important; }
.case-bottom { gap: 36px; }
.case-bottom p, .case-bottom .button { font-size: 18px; }
.sale-journey { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); list-style: none; margin: 48px 0 34px; padding: 0; }
.sale-journey li { position: relative; padding: 25px 24px 0 0; border-top: 2px solid #7299df; display: flex; flex-direction: column; align-items: start; }
.sale-journey li::before { content: ''; position: absolute; left: 0; top: -5px; width: 8px; height: 8px; background: var(--blue); border-radius: 50%; }
.sale-journey li:not(:last-child)::after { content: ''; position: absolute; right: 13px; top: -5px; width: 7px; height: 7px; border-top: 2px solid var(--blue); border-right: 2px solid var(--blue); transform: rotate(45deg); }
.journey-index { font-size: 28px; color: var(--blue); margin-bottom: 18px; }
.sale-journey h3 { font-size: 24px; line-height: 1.25; }
.sale-journey p { font-size: 18px; color: #526173; line-height: 1.55; margin: 16px 0 24px; }
.journey-system { font-size: 18px; color: #214987; margin-top: auto; }
.competencies { background: white; }
.competency-list { display: grid; grid-template-columns: minmax(330px, .85fr) minmax(0, 1.45fr); grid-template-rows: repeat(6, minmax(70px, 1fr)); column-gap: 64px; min-height: 470px; }
.competency { display: contents; }
.competency::details-content { display: contents; }
.competency summary { grid-column: 1; display: flex; align-items: center; gap: 18px; border-top: 1px solid var(--line); padding: 20px 0; list-style: none; font-size: 20px; line-height: 1.4; cursor: pointer; }
.competency summary::-webkit-details-marker { display: none; }
.competency summary > span { font-size: 18px; color: var(--muted); }
.competency summary svg { margin-left: auto; margin-right: 6px; width: 20px; height: 20px; }
.competency[open] summary { color: var(--blue); border-top-color: var(--blue); }
.competency[open] summary svg { transform: rotate(45deg); }
.competency:nth-child(1) summary { grid-row: 1; }
.competency:nth-child(2) summary { grid-row: 2; }
.competency:nth-child(3) summary { grid-row: 3; }
.competency:nth-child(4) summary { grid-row: 4; }
.competency:nth-child(5) summary { grid-row: 5; }
.competency:nth-child(6) summary { grid-row: 6; }
.competency-content { grid-column: 2; grid-row: 1 / 7; border-top: 1px solid var(--blue); padding-top: 26px; }
.competency:not([open]) .competency-content { display: none; }
.competency[open] .competency-content { animation: content-in .16s ease-out; }
@keyframes content-in { from { opacity: .5; } to { opacity: 1; } }
.competency-content h3 { max-width: 670px; font-size: 36px; line-height: 1.16; }
.competency-content > p { font-size: 20px; line-height: 1.6; color: var(--muted); margin-top: 20px; }
.capability-route { display: flex; justify-content: space-between; align-items: center; gap: 14px; margin: 28px 0; padding: 22px 0; border-block: 1px solid var(--line); font-size: 20px; }
.capability-route strong { font-weight: 500; color: var(--blue); }
.capability-route svg { width: 22px; color: var(--blue); }
.capability-change { display: grid; grid-template-columns: .85fr 1.15fr; gap: 34px; margin: 0; }
.capability-change dt { color: var(--muted); font-size: 18px; margin-bottom: 12px; }
.capability-change div:last-child dt { color: var(--blue); }
.capability-change dd { margin: 0; font-size: 20px; line-height: 1.55; }
.capability-change div:first-child dd { color: var(--muted); }
.process h2 { font-size: 48px; }
.process .section-heading > p { font-size: 20px; }
.process-steps h3 { font-size: 24px; }
.process-steps p { font-size: 20px; min-height: 0; line-height: 1.6; padding-bottom: 24px; }
.process-steps li { display: flex; flex-direction: column; align-items: start; }
.process-number { font-size: 42px; }
.step-deliverable { width: 100%; font-size: 18px; margin-top: auto; padding-top: 18px; }
.participation h3 { font-size: 22px; }
.participation p { font-size: 20px; line-height: 1.6; }
.participation svg, .budget-primary > svg, .sheet-heading svg, .budget-footnote svg { display: none; }
.budget-primary h3 { font-size: 36px; }
.budget-primary p { font-size: 20px; line-height: 1.6; max-width: 550px; }
.budget-primary .button { font-size: 18px; }
.estimate-sheet { background: none; padding-inline: 0; }
.sheet-heading, .estimate-sheet dl > div { font-size: 18px; }
.estimate-sheet dl > div { padding-block: 17px; }
.budget-footnote { font-size: 18px; }
.product-row { grid-template-columns: 190px .75fr 1.25fr auto; gap: 28px; }
.product-row > img { width: 190px; }
.product-category { font-size: 18px; }
.product-row h3 { font-size: 36px; }
.product-row > p { font-size: 20px; line-height: 1.6; }
.product-link { font-size: 18px; }
.about-heading { grid-template-columns: 1.5fr .7fr; gap: 80px; }
.about h2 { font-size: 48px; line-height: 1.15; }
.about-intro { font-size: 22px; line-height: 1.6; color: var(--muted); margin-top: 30px; max-width: 690px; }
.experience { padding-left: 48px; }
.experience strong { font-size: 100px; color: var(--blue); }
.experience > span { font-size: 20px; }
.certificate-link { display: flex; gap: 18px; align-items: center; margin-top: 30px; font-size: 18px; }
.certificate-link img { width: 116px; height: auto; border: 1px solid var(--line); }
.certificate-link svg { display: inline-block; vertical-align: middle; }
.clients > span { font-size: 18px; }
.clients > img { max-height: 40px; opacity: 1; }
.certificate-dialog { border: 0; padding: 0; border-radius: 24px; width: fit-content; max-width: calc(100vw - 32px); max-height: calc(100dvh - 32px); background: white; overflow: hidden; }
.certificate-dialog::backdrop { background: #17221fc2; }
.certificate-dialog > img { width: auto; max-width: calc(100vw - 32px); max-height: calc(100dvh - 32px); object-fit: contain; }
.certificate-close { position: absolute; top: 12px; right: 12px; background: white; z-index: 1; }
body:has(.certificate-dialog[open]) { overflow: hidden; }
.faq h2 { font-size: 44px; margin-top: 0; }
.faq-grid > div > p:last-child, .faq details > p { font-size: 20px; line-height: 1.65; }
.faq summary { font-size: 22px; padding-block: 24px; }
.faq summary svg { width: 22px; height: 22px; }
.contact-grid { grid-template-columns: 1fr 1.15fr; gap: 72px; }
.contact h2 { font-size: 54px; margin-top: 0; }
.contact-copy > p:not(.eyebrow) { font-size: 22px; line-height: 1.6; }
.contact-email { font-size: 22px; }
.contact-form > label { font-size: 20px; }
.contact-form textarea { font-size: 20px; min-height: 166px; line-height: 1.55; background: #ffffff8c; }
.contact-form > .button { font-size: 18px; }
.topic-picker { border: 0; padding: 0; margin: 0 0 30px; min-width: 0; }
.topic-picker legend { padding: 0; font-size: 24px; font-weight: 500; margin-bottom: 18px; }
.topic-options { display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; }
.topic-options label { display: flex; align-items: center; gap: 12px; margin: 0; min-height: 78px; padding: 12px 0; border-top: 1px solid #829c47; cursor: pointer; font-size: 18px; line-height: 1.4; font-weight: 400; }
.topic-options input { appearance: none; flex: 0 0 20px; width: 20px; height: 20px; margin: 0; border: 1.5px solid currentColor; border-radius: 50%; background: transparent; }
.topic-options input:checked { background: var(--ink); box-shadow: inset 0 0 0 4px var(--lime); }
.topic-options label > span { color: var(--ink); font-size: 18px; font-weight: inherit; margin: 0; }
.topic-options label:has(input:checked) { font-weight: 600; border-color: var(--ink); }
.topic-options label:hover { border-color: var(--ink); }
.topic-options label:focus-within { outline: 2px solid var(--ink); outline-offset: 4px; }
.email-draft, .form-note, .form-status, .privacy-link { font-size: 18px; }
.form-note, .form-status { max-width: 550px; line-height: 1.5; }
.email-draft svg { width: 22px; height: 22px; }
.footer-top > span, .footer-top > a:not(.wordmark), .footer-bottom { font-size: 18px; }
.footer-top { flex-wrap: wrap; }
.footer-bottom { line-height: 1.65; }
@media (max-width: 1190px) {
  .header { height: 76px; }
  .desktop-nav { display: none; }
  .menu-toggle { display: grid; }
  .hero-inner { min-height: 650px; padding-block: 48px; }
  .hero h1 { font-size: 66px; }
  .hero-lead { font-size: 20px; max-width: 490px; }
  .hero-image { width: 51%; right: 0; }
  .hero-actions { max-width: 490px; flex-wrap: wrap; gap: 22px; }
  .hero-note { max-width: 425px; }
  .proof-grid { gap: 20px; }
  .proof-grid > div { display: block; }
  .proof-grid p { margin-top: 12px; }
  .section-heading { align-items: start; }
  .section-heading > p { max-width: 390px; }
  h2, .case-heading h2, .process h2, .about h2 { font-size: 42px; }
  .task-directions { column-gap: 44px; }
  .competency-list { grid-template-columns: minmax(290px, .85fr) minmax(0, 1.2fr); column-gap: 35px; min-height: 610px; }
  .competency-content h3 { font-size: 30px; }
  .capability-change { grid-template-columns: 1fr; gap: 18px; }
  .capability-route { gap: 8px; font-size: 18px; }
  .process-steps { grid-template-columns: 1fr 1fr; row-gap: 38px; }
  .process-steps li:nth-child(3) { padding-left: 0; border-left: 0; }
  .sale-journey { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 30px; }
  .product-row { grid-template-columns: 170px 1fr auto; gap: 16px 24px; }
  .product-row > img { width: 170px; grid-row: 1/3; }
  .product-row > p { grid-row: 2; grid-column: 2; }
  .product-link { grid-column: 3; grid-row: 1/3; }
  .about-heading { gap: 40px; grid-template-columns: 1.3fr .8fr; }
  .experience { padding-left: 30px; }
  .experience strong { font-size: 82px; }
  .clients { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 25px; }
  .clients > span { grid-column: 1/-1; }
  .contact-grid { gap: 40px; grid-template-columns: .85fr 1.15fr; }
  .contact h2 { font-size: 44px; }
  .topic-options { grid-template-columns: 1fr; }
  .topic-options label { min-height: 56px; }
}
@media (max-width: 900px) {
  .section-heading { display: block; }
  .section-heading > p { max-width: 660px; margin-top: 24px; }
  .hero-inner { min-height: 0; padding-top: 42px; padding-bottom: 16px; }
  .hero h1 { font-size: 64px; max-width: 650px; }
  .hero-lead { font-size: 22px; max-width: 620px; }
  .hero-actions { max-width: none; }
  .hero-image { position: static; order: 1; width: 100%; height: auto; aspect-ratio: 3/2; max-height: 280px; object-fit: contain; object-position: center; }
  .hero-inner::after { display: none; }
  .proof-grid { grid-template-columns: 1fr; gap: 0; }
  .proof-grid > div { display: flex; padding-block: 16px; }
  .proof-grid > div + div { padding-left: 0; border-left: 0; border-top: 1px solid var(--line); }
  .proof-grid p { margin-top: 0; }
  .competency-list { display: block; min-height: 0; }
  .competency { display: block; }
  .competency summary { min-height: 78px; font-size: 22px; }
  .competency-content { border: 0; padding: 12px 0 36px; }
  .capability-change { grid-template-columns: 1fr 1fr; }
  .competency-content h3 { font-size: 32px; }
  .capability-route { font-size: 22px; }
  .case-heading { grid-template-columns: 1fr; gap: 30px; }
  .case-metric { justify-content: start; }
  .case-metric > span { font-size: 90px; }
  .case-bottom { display: block; }
  .case-bottom .button { margin-top: 26px; }
  .participation { grid-template-columns: 1fr; gap: 20px; }
  .budget-grid { gap: 44px; grid-template-columns: 1fr; }
  .about-heading { grid-template-columns: 1fr; }
  .experience { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 35px; border: 0; padding: 0; }
  .experience > span { grid-column: 1; margin: 0; }
  .certificate-link { grid-column: 2; grid-row: 1/3; margin: 0; }
  .faq-grid, .contact-grid { grid-template-columns: 1fr; gap: 40px; }
  .contact h2 { font-size: 48px; }
  .topic-options { grid-template-columns: 1fr 1fr; }
  .topic-options label { min-height: 72px; }
}
@media (max-width: 560px) {
  .wrap { width: calc(100% - 40px); }
  .header { height: 70px; }
  .header-inner { gap: 14px; }
  .header .wordmark { font-size: 28px; }
  .header-cta { display: none; }
  .menu-toggle { margin-left: auto; width: 44px; height: 44px; }
  .hero h1 { font-size: 48px; line-height: 1.04; margin: 0 0 22px; }
  .hero-inner { padding-top: 24px; }
  .hero-lead { font-size: 20px; line-height: 1.5; }
  .hero-actions { margin-top: 18px; align-items: start; flex-direction: column; gap: 18px; }
  .hero-actions .button { font-size: 18px; padding: 15px 18px; min-height: 54px; }
  .hero-actions .text-link { font-size: 18px; max-width: none; gap: 14px; }
  .hero-note { font-size: 18px; max-width: none; margin-top: 20px; }
  .hero-image { height: clamp(130px, calc(100svh - 620px), 220px); aspect-ratio: auto; object-fit: cover; max-height: none; margin-top: 0; }
  .section { padding-block: 58px; }
  h2, .case-heading h2, .process h2, .about h2, .faq h2 { font-size: 34px; }
  .section-heading > p { font-size: 20px; line-height: 1.55; }
  .task-directions { grid-template-columns: 1fr; }
  .task-direction { padding: 26px 0 30px; }
  .task-direction h3 { font-size: 28px; }
  .direction-heading { margin-bottom: 18px; }
  .direction-number { font-size: 36px; }
  .secondary-tasks { flex-direction: column; align-items: start; font-size: 18px; }
  .secondary-tasks > span { flex-basis: auto; }
  .case-heading > div > p { font-size: 20px; }
  .case-metric { display: grid; grid-template-columns: auto 30px auto; }
  .case-metric > p { grid-column: 1/-1; font-size: 18px !important; }
  .sale-journey { grid-template-columns: 1fr; margin-top: 36px; row-gap: 0; }
  .sale-journey li { display: grid; grid-template-columns: 46px minmax(0, 1fr); gap: 8px 14px; padding: 24px 0; border-top: 1px solid #b5c8e7; }
  .sale-journey li::before, .sale-journey li::after { display: none; }
  .journey-index { grid-row: 1/4; font-size: 28px; margin: 0; }
  .sale-journey h3 { font-size: 24px; }
  .sale-journey p { margin: 0; font-size: 20px; }
  .journey-system { grid-column: 2; font-size: 18px; }
  .case-bottom .button { font-size: 18px; width: auto; }
  .case-top img { width: 190px; max-height: 38px; }
  .competency summary { font-size: 20px; gap: 12px; }
  .competency-content h3 { font-size: 28px; }
  .capability-route { font-size: 18px; gap: 6px; }
  .capability-route svg { width: 18px; height: 18px; }
  .capability-change { grid-template-columns: 1fr; gap: 22px; }
  .process-steps { grid-template-columns: 1fr; gap: 30px; }
  .process-steps li, .process-steps li + li { padding: 0; border-left: 0; }
  .process-steps h3 { font-size: 26px; }
  .process-steps p { font-size: 20px; min-height: 0; }
  .step-deliverable { font-size: 18px; }
  .participation h3 { font-size: 24px; }
  .participation p { font-size: 20px; }
  .budget-primary h3 { font-size: 32px; }
  .estimate-sheet { padding: 22px 0 0; }
  .estimate-sheet dl > div { grid-template-columns: 1fr; gap: 4px; font-size: 20px; }
  .estimate-sheet dd { text-align: left; }
  .budget-footnote { font-size: 18px; }
  .product-row { grid-template-columns: 110px minmax(0, 1fr); gap: 14px 20px; padding-block: 28px; }
  .product-row > img { width: 110px; grid-row: 1; }
  .product-row > p { grid-column: 1/-1; grid-row: 2; font-size: 20px; }
  .product-row h3 { font-size: 30px; }
  .product-category { font-size: 18px; }
  .product-link { grid-column: 1/-1; grid-row: 3; font-size: 18px; gap: 14px; }
  .experience { display: block; }
  .experience strong { font-size: 86px; }
  .experience > span { font-size: 20px; margin-top: 12px; }
  .certificate-link { margin-top: 26px; }
  .about-intro { font-size: 20px; }
  .clients { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px; }
  .clients > img { max-height: 40px; }
  .faq summary { font-size: 20px; }
  .faq details > p { font-size: 20px; }
  .contact h2 { font-size: 36px; }
  .contact-copy > p:not(.eyebrow) { font-size: 20px; }
  .contact-email { font-size: 22px; }
  .topic-options { grid-template-columns: 1fr; }
  .topic-options label { min-height: 58px; }
  .contact-form textarea { font-size: 20px; }
  .contact-form > .button { font-size: 18px; }
  .footer-top > span { flex-basis: 100%; font-size: 18px; }
  .footer-top > a:not(.wordmark), .footer-bottom { font-size: 18px; }
  .footer-bottom > * { flex-basis: 100%; }
}
@media (max-width: 360px) {
  .hero h1 { font-size: 42px; }
  h2, .case-heading h2, .process h2, .about h2, .faq h2 { font-size: 30px; }
  .contact h2 { font-size: 32px; }
  .product-row { grid-template-columns: 86px minmax(0, 1fr); gap: 14px; }
  .product-row > img { width: 86px; }
  .product-category { overflow-wrap: anywhere; }
  .capability-route { flex-wrap: wrap; justify-content: flex-start; gap: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .task-direction .text-link svg { transition: none; }
}
