/* A warm, editorial setting for the RAG offerings. */
.rag-site { background: #faf8f1; }
.rag-site > header { background: #faf8f1; border-color: #e1e3d8; }
.rag-site > header .logo a, .rag-site > header .nav-links a,
.rag-site > header .dropdown-toggle { color: #294637; }
.rag-site > footer { background: #faf8f1; color: #59675d; border-top: 1px solid #e1e3d8; }
.rag-page {
    --rag-ink: #294637;
    --rag-muted: #59675d;
    --rag-accent: #8c4e36;
    --rag-paper: #faf8f1;
    --rag-rule: #d8ded0;
    --rag-serif: 'Iowan Old Style', 'Palatino Linotype', 'Book Antiqua', Georgia, serif;
    color: var(--rag-ink);
    background: var(--rag-paper);
}
.rag-page *, .rag-page *::before, .rag-page *::after { box-sizing: border-box; }
.rag-page .container { max-width: 1200px; padding-left: 2rem; padding-right: 2rem; }
.rag-page [id] { scroll-margin-top: 7rem; }
.rag-page a:focus-visible, .rag-page button:focus-visible, .rag-page summary:focus-visible { outline: 3px solid var(--rag-accent); outline-offset: 5px; }
.rag-page .rag-eyebrow { font-size: .78rem; font-weight: 550; letter-spacing: .045em; margin: 0 0 1.4rem; color: var(--rag-accent); }
.rag-offerings { display: block; }
.rag-offerings .container { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.rag-offerings .container > span { font-size: .76rem; color: var(--rag-muted); }
.rag-offerings .container > div { display: flex; gap: 2rem; }
.rag-offerings a { display: inline-block; color: var(--rag-muted); font-size: .85rem; padding: 1rem 0 .7rem; border-bottom: 1px solid transparent; }
.rag-offerings a[aria-current=page] { border-color: var(--rag-accent); color: var(--rag-ink); }
.rag-hero { padding: 3rem 0 4.5rem; overflow: hidden; }
.rag-hero-grid { display: grid; grid-template-columns: 1.15fr 1fr; gap: 4rem; align-items: center; }
.rag-hero h1 { font-family: var(--rag-serif); font-weight: 400; font-size: clamp(3.2rem, 5.5vw, 4.8rem); line-height: 1.06; letter-spacing: -.04em; margin: 0 0 1.6rem; }
.rag-hero h1 span { color: #517252; font-style: italic; }
.rag-page .rag-intro { font-size: 1.12rem; line-height: 1.8; margin: 0 0 1rem; color: #3c5344; max-width: 570px; }
.rag-hero-detail { color: var(--rag-muted); max-width: 530px; font-size: .94rem; line-height: 1.8; margin: 0 0 1.8rem; }
.rag-actions { display: flex; gap: 1.5rem; align-items: center; flex-wrap: wrap; }
.rag-button { display: inline-flex; gap: 1.25rem; align-items: center; justify-content: center; border: 1px solid transparent; border-radius: 100px; background: #315940; color: #fffdf6; padding: .9rem 1.5rem; font: inherit; font-size: .9rem; font-weight: 550; cursor: pointer; text-align: center; }
.rag-button:hover { color: #fffdf6; background: #21412d; }
.rag-hero-link { color: var(--rag-ink); font-size: .85rem; text-decoration: underline; text-decoration-color: #abb5a5; text-underline-offset: 5px; }
.rag-hero-link:hover { color: var(--rag-accent); }
.rag-hero-note { margin: 1.2rem 0 0; color: var(--rag-muted); font-size: .74rem; }
.rag-hero-art { position: relative; padding: 2.6rem 1.5rem; isolation: isolate; }
.rag-hero-art::before { content: ''; position: absolute; z-index: -2; inset: 0 -1rem 0 0; background: #e6eadc; border-radius: 47% 53% 36% 64% / 34% 41% 59% 66%; transform: rotate(-8deg); }
.rag-consulting-hero .rag-hero-art::before { background: #e8e6d5; border-radius: 57% 43% 61% 39% / 45% 56% 44% 55%; transform: rotate(5deg); }
.rag-knowledge-lines { position: absolute; z-index: -1; inset: -1.5rem; width: calc(100% + 3rem); height: calc(100% + 3rem); stroke: #a8b49c; stroke-width: 1.25; stroke-linecap: round; pointer-events: none; }
.rag-knowledge-lines ellipse, .rag-knowledge-lines circle { fill: var(--rag-paper); }
.rag-example { position: relative; margin: 0; padding: 1.7rem; background: #fffef9; border: 1px solid #e2e3d5; border-radius: 20px 32px 20px 12px; box-shadow: 0 16px 35px -24px #54674c60; }
.rag-example figcaption { display: flex; gap: .6rem; align-items: center; font-size: .69rem; color: var(--rag-muted); padding-bottom: 1rem; border-bottom: 1px solid var(--rag-rule); }
.rag-status-dot { width: 6px; height: 6px; border-radius: 50%; background: #789067; flex-shrink: 0; }
.rag-example-question { margin: 1.4rem 0; padding: 1.1rem; background: #eff1e7; border-radius: 14px 14px 14px 3px; }
.rag-example-question > span, .rag-example-answer > span { font-size: .7rem; font-weight: 500; color: var(--rag-muted); }
.rag-example p { margin: .5rem 0 0; font-size: .94rem; line-height: 1.7; }
.rag-example-question p { font-family: var(--rag-serif); font-size: 1.23rem; line-height: 1.45; }
.rag-example-answer { padding: 0 .6rem 1.25rem; }
.rag-source { border-left: 2px solid #9cae89; padding-left: .75rem; font-size: .78rem; margin-top: 1.2rem; }
.rag-source small { display: block; color: var(--rag-muted); font-size: .7rem; }
.rag-example-foot { display: flex; justify-content: space-between; gap: .5rem; border-top: 1px solid var(--rag-rule); padding-top: 1rem; font-size: .7rem; color: var(--rag-muted); }
.rag-example .rag-example-note { font-size: .65rem; color: var(--rag-muted); margin-top: 1rem; }
.rag-section { padding: 5rem 0; }
.rag-section h2 { font-family: var(--rag-serif); font-weight: 400; font-size: clamp(2rem, 3.3vw, 2.9rem); line-height: 1.17; letter-spacing: -.025em; margin: 0 0 1.25rem; max-width: 800px; }
.rag-section h3 { font-family: var(--rag-serif); font-weight: 500; font-size: 1.45rem; letter-spacing: -.015em; margin: 0 0 .8rem; }
.rag-section p { color: var(--rag-muted); line-height: 1.8; }
.rag-page .rag-lead { font-size: 1.04rem; max-width: 730px; margin: 0 0 2.5rem; }
.rag-pipeline { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); list-style: none; margin: 3rem 0 0; padding: 0; gap: 2rem; }
.rag-pipeline li { border-top: 1px solid #b7c3aa; padding-top: 1.5rem; }
.rag-number { display: block; font-size: .68rem; letter-spacing: .06em; color: #65785d; margin-bottom: 1.4rem; }
.rag-pipeline p { font-size: .92rem; margin-bottom: 0; }
.rag-tinted { background: #edf0e6; border-radius: 0 65px 0 65px; }
.rag-split { display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; }
.rag-use-cases article { border-bottom: 1px solid #d2dac8; padding: 1.4rem 0; }
.rag-use-cases article:first-child { padding-top: 0; }
.rag-use-cases p { margin: 0; }
.rag-text-link { color: var(--rag-accent); font-size: .92rem; font-weight: 500; text-decoration: underline; text-decoration-color: #c1a08d; text-underline-offset: 5px; }
.rag-deliverables { padding: 2.2rem; background: #f1ebdf; border-radius: 12px 45px 12px 12px; }
.rag-deliverables ul { margin: 1.5rem 0 0; padding-left: 1.1rem; }
.rag-deliverables li { margin: .9rem 0; font-size: .92rem; }
.rag-deliverables li::marker { color: #879d73; }
.rag-faq-section { border-top: 1px solid var(--rag-rule); }
.rag-faq details { border-bottom: 1px solid var(--rag-rule); }
.rag-faq summary { font-size: .98rem; font-weight: 550; cursor: pointer; padding: 1.1rem 0; }
.rag-faq summary::marker { color: #789067; }
.rag-faq p { font-size: .93rem; margin: 0 0 1.5rem; }
.rag-about { background: #f1ebdf; }
.rag-about p:not(.rag-eyebrow) { margin-top: 0; font-size: 1rem; }
.rag-contact { background: #294b3b; color: #faf8f1; border-radius: 60px 0 0 0; }
.rag-contact-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 5rem; align-items: start; }
.rag-contact-copy { padding-top: 2rem; }
.rag-contact .rag-eyebrow { color: #c9d5b9; }
.rag-contact-copy > p { color: #e0e6d9; }
.rag-next-steps { margin: 2.5rem 0; }
.rag-next-steps > div { display: grid; grid-template-columns: 3rem 1fr; gap: 1rem; border-top: 1px solid #64806a; padding: 1rem 0; }
.rag-next-steps dt { font-weight: 550; font-size: .85rem; color: #cfdbbd; }
.rag-next-steps dd { margin: 0; color: #e0e6d9; font-size: .93rem; }
.rag-contact-copy .rag-small { font-size: .83rem; color: #c7d4c2; }
.rag-contact-copy .rag-agent-contact { margin-top: 2rem; font-size: .85rem; color: #e0e6d9; }
.rag-agent-contact a { color: inherit; text-decoration: underline; text-underline-offset: 4px; }
.rag-agent-contact a:focus-visible { outline-color: #cfdbbd; }
.rag-form-panel { color: var(--rag-ink); background: #fffdf7; border-radius: 26px 26px 12px 26px; padding: 2.25rem; }
.rag-form-panel > h3 { margin-bottom: 1.5rem; font-size: 1.6rem; }
.rag-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem; }
.rag-field-wide { grid-column: 1 / -1; }
.rag-field label { display: block; font-size: .83rem; font-weight: 550; margin-bottom: .4rem; }
.rag-field input, .rag-field textarea, .rag-field select { display: block; width: 100%; max-width: 100%; background: #fafbf5; border: 1px solid #9faa94; border-radius: 8px; padding: .75rem; font: inherit; font-size: .95rem; color: var(--rag-ink); }
.rag-field textarea { resize: vertical; }
.rag-field :is(input, textarea, select):focus-visible { outline: 2px solid #5a7850; outline-offset: 2px; }
.rag-field-errors, .rag-form-errors { color: #a03132; font-size: .85rem; }
.rag-form-errors { background: #fff1ed; border-left: 3px solid #a03132; padding: 1rem; margin-bottom: 1.5rem; }
.rag-field-errors ul { margin: .4rem 0 0; padding-left: 1rem; }
.rag-form-panel .rag-button { width: 100%; }
.rag-page .contact-captcha-field .contact-captcha-refresh { color: var(--rag-ink); border-color: #9faa94; border-radius: 20px; background: #fffdf7; }
.rag-page .contact-captcha-widget input[type=text] { color: var(--rag-ink); border-color: #9faa94; border-radius: 8px; background: #fafbf5; }
.rag-page .contact-captcha-widget :focus-visible { outline-color: #5a7850; }
.rag-success { padding: 2rem 0; }
.rag-success .rag-eyebrow { display: block; color: var(--rag-accent); }
.rag-success h3 { font-size: 1.8rem; }
.rag-review-note { position: relative; background: #fffdf7; padding: 2.5rem 2rem; color: var(--rag-ink); border: 1px solid #e2e3d5; border-radius: 50px 20px 50px 20px; box-shadow: 0 16px 35px -24px #54674c60; }
.rag-note-label { font-size: .75rem; letter-spacing: .03em; margin: 0 0 1rem; font-weight: 500; color: var(--rag-accent); }
.rag-note-question { font-family: var(--rag-serif); font-size: 2.1rem; line-height: 1.2; font-weight: 400; letter-spacing: -.025em; margin: 0 0 1.5rem; }
.rag-review-note ol { list-style: none; margin: 0; padding: 0; }
.rag-review-note li { display: flex; gap: 1rem; align-items: baseline; border-bottom: 1px solid var(--rag-rule); padding: .9rem 0; font-size: .88rem; }
.rag-review-note li span { font-family: var(--rag-serif); font-style: italic; font-size: 1rem; color: #6f855c; }
.rag-note-footer { font-size: .76rem; line-height: 1.7; color: var(--rag-muted); margin: 1.5rem 0 0; }
.rag-engagements { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 3rem; margin-top: 3rem; }
.rag-engagements article { border-top: 1px solid #b7c3aa; padding-top: 1.5rem; }
.rag-engagements h3 { font-size: 1.7rem; }
.rag-engagements h4 { font-size: .78rem; font-weight: 550; margin: 1.75rem 0 .5rem; color: var(--rag-accent); }
.rag-engagements p { font-size: .93rem; margin: .5rem 0 0; }
.rag-diagnostics { margin-top: 2.5rem; }
.rag-diagnostic-row { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; padding: 1.5rem 0; border-bottom: 1px solid #d2dac8; align-items: start; }
.rag-diagnostic-row h3 { font-size: 1.4rem; line-height: 1.4; margin: 0; }
.rag-diagnostic-row p { font-size: .93rem; margin: 0; }
.rag-diagnostic-head { font-size: .78rem; font-weight: 550; color: var(--rag-muted); padding-top: 0; }
.rag-working-steps { padding-left: 1.5rem; margin: 0; }
.rag-working-steps li { padding-left: .75rem; margin-bottom: 2rem; }
.rag-working-steps li::marker { font-family: var(--rag-serif); font-style: italic; color: #789067; }
.rag-working-steps p { margin: 0; }
@media (max-width: 1000px) {
    .rag-hero-grid, .rag-split, .rag-contact-grid { gap: 2.5rem; }
    .rag-hero h1 { font-size: clamp(3rem, 5.1vw, 4.5rem); }
    .rag-hero-art { padding: 2rem .6rem; }
    .rag-example, .rag-review-note { padding: 1.6rem; }
    .rag-pipeline { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.5rem; }
    .rag-form-panel { padding: 1.75rem; }
    .rag-form-grid { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
    .rag-site > header .mobile-only { display: none; }
    .rag-site > header .logo { font-size: 1.05rem; }
    .rag-site > header .nav-links { gap: .5rem 1rem; font-size: .85rem; }
    .rag-page .container { padding-left: 1.5rem; padding-right: 1.5rem; }
    .rag-page [id] { scroll-margin-top: 2rem; }
    .rag-offerings .container { justify-content: center; }
    .rag-offerings .container > span { display: none; }
    .rag-hero { padding: 3rem 0 3.5rem; }
    .rag-hero-grid, .rag-split, .rag-contact-grid, .rag-engagements { grid-template-columns: minmax(0, 1fr); gap: 2.5rem; }
    .rag-hero h1 { font-size: clamp(2.65rem, 8.7vw, 4rem); }
    .rag-page .rag-intro { font-size: 1.03rem; }
    .rag-hero-art { max-width: 470px; width: 100%; margin: .5rem auto 0; padding: 2rem 1rem; }
    .rag-hero-art::before { inset: 0; }
    .rag-section { padding: 3.5rem 0; }
    .rag-page .rag-lead { font-size: 1rem; margin-bottom: 1.5rem; }
    .rag-tinted { border-radius: 0 38px 0 38px; }
    .rag-diagnostic-row { grid-template-columns: 1fr; gap: .75rem; }
    .rag-diagnostic-head { display: none; }
    .rag-contact { border-radius: 38px 0 0 0; }
    .rag-contact-copy { padding-top: 0; }
}
@media (max-width: 420px) {
    .rag-pipeline { grid-template-columns: 1fr; gap: 2rem; }
    .rag-form-panel, .rag-example { padding: 1.25rem; }
    .rag-offerings a { font-size: .8rem; }
    .rag-review-note { padding: 2rem 1.4rem; }
    .rag-example-foot { flex-wrap: wrap; justify-content: flex-start; }
    .rag-note-question { font-size: 1.9rem; }
}
