/* 2026-10 redesign: Services and AI pages, closing band. Built from the Positioning Revision mockups. */
/* ===== Services, photographic direction (new CSS; colors only in the token block) ===== */
.svcp { color: #3A3A3A; }
.svcp * { box-sizing: border-box; }
.svcp .in { max-width: 72rem; margin: 0 auto; padding-left: .5rem; padding-right: .5rem; }
@media (min-width: 768px) { .svcp .in { padding-left: 1.5rem; padding-right: 1.5rem; } }

/* full-bleed plate inside the layout's container */
.svcp-plate { position: relative; background: var(--p-bg); color: var(--p-fg); }
.svcp-plate::before, .svcp-plate::after { content: ''; position: absolute; top: 0; bottom: 0; width: 50vw; background: var(--p-bg); }   /* side extensions to the viewport edge; body has overflow-x: clip */
.svcp-plate::before { right: 100%; }
.svcp-plate::after { left: 100%; }
.svcp-plate .in { position: relative; }
.svcp-plate .in { padding-top: 4rem; padding-bottom: 4.25rem; }
@media (min-width: 960px) { .svcp-plate .in { padding-top: 5rem; padding-bottom: 5.25rem; display: grid; grid-template-columns: 5fr 7fr; gap: 4.5rem; align-items: start; } }

/* page head */
.svcp-head { padding: 4rem 0 3.5rem; }
@media (min-width: 960px) { .svcp-head { padding: 5.5rem 0 4.5rem; } }
.svcp-title { font-family: Nevins, Georgia, serif; font-weight: 400; font-size: clamp(3rem, 6vw, 4.5rem); line-height: 1.04; letter-spacing: .005em; margin: 0; color: #3A3A3A; }
.svcp-intro { font-family: Georgia, Cambria, 'Times New Roman', serif; font-size: clamp(1.2rem, 1.8vw, 1.45rem); line-height: 1.45; max-width: 36rem; margin: 1.75rem 0 0; text-wrap: pretty; }
.svcp-jump { display: flex; flex-direction: column; gap: .6rem; margin: 2.5rem 0 0; padding: 0; list-style: none; }
@media (min-width: 768px) { .svcp-jump { flex-direction: row; flex-wrap: wrap; gap: .75rem 2.75rem; } }
.svcp-jump a { display: inline-flex; align-items: center; gap: .55rem; font-size: 1.05rem; font-weight: 400; color: var(--c-strong); text-decoration: none; transition: color .2s; }
.svcp-jump a .svcp-arrow { color: var(--c-accent); }
.svcp-jump a:hover, .svcp-jump a:focus-visible { color: var(--c-link); outline: none; }
.svcp-jump a:hover .svcp-arrow, .svcp-jump a:focus-visible .svcp-arrow { transform: translateX(4px); }

/* section head on the plate */
.svcp-sect { scroll-margin-top: 6.5rem; }
.svcp-h2wrap { display: flex; align-items: baseline; gap: 1.25rem; }
.svcp-rule { width: 3.5rem; height: 2px; background: var(--p-rule); flex: none; transform: translateY(-.55rem); }
.svcp-h2 { font-family: Nevins, Georgia, serif; font-weight: 400; font-size: clamp(2.1rem, 3.6vw, 2.9rem); line-height: 1.1; margin: 0; color: var(--p-fg); text-wrap: balance; }
.svcp-desc { font-weight: 400; font-size: 1.12rem; line-height: 1.75; max-width: 56ch; margin: 1.5rem 0 0; color: var(--p-body); text-wrap: pretty; }
@media (min-width: 960px) { .svcp-desc { margin-top: 0; } }
.svcp-more { display: inline-flex; align-items: center; gap: .5rem; margin-top: 1.5rem; font-size: 1rem; font-weight: 400; color: var(--p-fg); text-decoration: none; border-bottom: 1px solid var(--p-rule); padding-bottom: .15rem; transition: color .2s, border-color .2s; }
.svcp-more .svcp-arrow { color: var(--p-rule); }
.svcp-more:hover, .svcp-more:focus-visible { color: var(--p-hover); border-color: var(--p-hover); outline: none; }
.svcp-more:hover .svcp-arrow, .svcp-more:focus-visible .svcp-arrow { transform: translateX(4px); }
.svcp-arrow { width: 1.1rem; height: 1.1rem; flex: none; transition: transform .25s; }

/* cream zone */
.svcp-zone { padding: 3.5rem 0 4.5rem; }
@media (min-width: 960px) { .svcp-zone { padding: 4.25rem 0 5.5rem; } }
.svcp-sub { display: flex; align-items: baseline; gap: 1rem; margin: 0 0 1.75rem; }
.svcp-sub .svcp-rule { width: 2.25rem; background: var(--c-accent); transform: translateY(-.3rem); }
.svcp-sub h3, .svcp-sub h2 { font-family: WorkSans, Arial, Helvetica, sans-serif; font-weight: 400; font-size: 1.2rem; line-height: 1.2; margin: 0; color: var(--c-strong); }
.svcp-sub + .svcp-sub, .svcp-zone > * + .svcp-sub { margin-top: 3.5rem; }

.svcp-engs { display: grid; grid-template-columns: 1fr; gap: 2rem; }
@media (min-width: 1200px) { .svcp-engs { grid-template-columns: repeat(3, 1fr); gap: 2rem; } }
.svcp-eng { background: var(--c-panel); border-top: 2px solid var(--c-accent); padding: 1.4rem 1.5rem 1.6rem; }
.svcp-lead { font-family: Georgia, Cambria, 'Times New Roman', serif; font-size: 1.3rem; line-height: 1.35; margin: 0 0 1.1rem; color: #3A3A3A; text-wrap: pretty; }
.svcp-bullets { list-style: disc outside; margin: 0; padding: 0 0 0 1.15rem; }   /* bullets start under the lead; text indented (Ida 10/28) */
.svcp-bullets li { font-weight: 400; font-size: .95rem; line-height: 1.65; margin: 0 0 .7rem; padding-left: .1rem; }
.svcp-bullets li:last-child { margin-bottom: 0; }
.svcp-bullets li::marker { color: var(--c-accent); }

.svcp-clients { font-weight: 300; font-size: 1.12rem; line-height: 1.7; max-width: 60ch; margin: 0; text-wrap: pretty; }
.svcp-more.on-cream { color: var(--c-link); border-color: var(--c-accent); margin-top: 1.25rem; }
.svcp-more.on-cream .svcp-arrow { color: var(--c-accent); }
.svcp-more.on-cream:hover, .svcp-more.on-cream:focus-visible { color: var(--c-strong); border-color: var(--c-strong); }

.svcp-essays { list-style: none; margin: 0; padding: 0; }
.svcp-essays li { margin: 0 0 .7rem; }
.svcp-essays a { display: inline-flex; align-items: flex-start; gap: .65rem; font-family: Georgia, Cambria, 'Times New Roman', serif; font-style: italic; font-size: 1.2rem; line-height: 1.4; color: #3A3A3A; text-decoration: none; transition: color .2s; }
.svcp-essays a .svcp-arrow { color: var(--c-accent); margin-top: .35rem; width: 1rem; height: 1rem; }
.svcp-essays a:hover, .svcp-essays a:focus-visible { color: var(--c-link); outline: none; }
.svcp-essays a:hover .svcp-arrow { transform: translateX(4px); }

/* CTA (site-wide include; restyled per version) */
.svcp-cta { background: var(--cta-bg); color: var(--cta-fg); }
.svcp-cta .inner { max-width: 44rem; margin: 0 auto; text-align: center; padding: 5.5rem 1.5rem; }
.svcp-cta h3 { font-family: Nevins, Georgia, serif; font-weight: 400; font-size: clamp(2.1rem, 3.6vw, 2.9rem); line-height: 1.1; margin: 0 0 1.25rem; color: var(--cta-fg); }
.svcp-cta p { font-weight: 300; font-size: 1.2rem; line-height: 1.55; margin: 0 0 2.5rem; color: var(--cta-body); }
.svcp-btn { display: inline-flex; align-items: center; gap: .65rem; padding: 1rem 2.1rem; font-size: 1.05rem; font-weight: 400; color: var(--btn-fg); background: var(--btn-bg); text-decoration: none; transition: background .3s; }
.svcp-btn:hover, .svcp-btn:focus-visible { background: var(--btn-hover); outline: none; }
.svcp-btn:hover .svcp-arrow, .svcp-btn:focus-visible .svcp-arrow { transform: translateX(4px); }

/* ===== Photographic A2 tokens: Teal plates, coral accents, revised ===== */
.svcp, .svcp-cta {
  --p-bg: #0F4C5C; --p-fg: #F5F0E8; --p-body: #F5F0E8;
  --p-rule: #E07A5F; --p-hover: #FFFFFF;
  --c-strong: #0F4C5C; --c-accent: #E07A5F; --c-link: #984E13;   /* 5.39:1 on beige, 4.69:1 on the gradient's deep end #EAE0D4 */
  --c-panel: rgba(255, 255, 255, .55);     /* light panel behind each engagement */
  --cta-bg: #0F4C5C;                        /* flat, no gradient */
  --cta-fg: #F5F0E8; --cta-body: rgba(245, 240, 232, .92);
  --btn-bg: #F5F0E8; --btn-fg: #0F4C5C; --btn-hover: #FFFFFF;
}

/* Recent Work: four cases as two by two */
@media (min-width: 900px) { .svcp-engs.aip-engs4 { grid-template-columns: repeat(2, 1fr); } }

/* ===== AI page additions (same tokens as Services A2) ===== */
.aip-quotes { list-style: none; margin: 0 0 3.5rem; padding: 0; display: grid; gap: 1.25rem 2.5rem; grid-template-columns: 1fr; }
@media (min-width: 900px) { .aip-quotes { grid-template-columns: 1fr 1fr; } }
.aip-quotes li { font-family: Georgia, Cambria, 'Times New Roman', serif; font-style: italic; font-size: 1.15rem; line-height: 1.55;
  border-left: 2px solid var(--c-accent); padding: .1rem 0 .1rem 1.1rem; color: #3A3A3A; }
.aip-body { font-weight: 400; font-size: .95rem; line-height: 1.65; margin: 0; }
/* the approach: how an engagement runs, inside the teal plate under its paragraph (the mockup's offers-in-the-band treatment) */
.aip-approach { grid-column: 1 / -1; margin-top: 2.75rem; padding-top: 2.25rem; border-top: 1px solid rgba(245, 240, 232, .22); }
@media (min-width: 960px) { .aip-approach { margin-top: 3.25rem; } }
.aip-approach .svcp-sub { margin-bottom: 1.5rem; }
.aip-approach .svcp-sub h3, .aip-approach .svcp-sub h2 { color: var(--p-fg); }
.aip-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr; }
.aip-steps li { padding: 1.4rem 0 1.5rem; border-top: 1px solid rgba(245, 240, 232, .22); }
.aip-steps li:first-child { border-top: 0; padding-top: 0; }
@media (min-width: 960px) {
  .aip-steps { grid-template-columns: repeat(3, 1fr); }
  .aip-steps li, .aip-steps li:first-child { padding: 0 2rem .5rem 2rem; border-top: 0; border-left: 1px solid rgba(245, 240, 232, .22); }
  .aip-steps li:first-child { padding-left: 0; border-left: 0; }
  .aip-steps li:last-child { padding-right: 0; }
}
.aip-step-name { font-family: Georgia, Cambria, 'Times New Roman', serif; font-size: 1.35rem; line-height: 1.3; margin: 0 0 .7rem; color: #F5F0E8; }
.aip-step-body { font-weight: 400; font-size: 1rem; line-height: 1.7; margin: 0; color: #F5F0E8; max-width: 34rem; }
/* the inquiry form sits on the plate grid: title in the heading column, fields under the paragraph column */
.aip-form { display: grid; grid-template-columns: 1fr; gap: 1.75rem; margin: 0; }
@media (min-width: 960px) { .aip-form { grid-template-columns: 5fr 7fr; gap: 4.5rem; align-items: start; } }
.aip-formhead { display: flex; align-items: baseline; gap: 1rem; }
.aip-formhead .svcp-rule { width: 2.25rem; background: var(--c-accent); transform: translateY(-.4rem); }
.aip-formtitle { font-family: Georgia, Cambria, 'Times New Roman', serif; font-size: 1.35rem; line-height: 1.35; margin: 0; color: #3A3A3A; }
.aip-fields { display: grid; grid-template-columns: 1fr; gap: 1.25rem 1.5rem; }
@media (min-width: 640px) { .aip-fields { grid-template-columns: 1fr 1fr; } .aip-fields .aip-wide, .aip-fields .aip-submit { grid-column: 1 / -1; } }
.aip-form label { display: grid; gap: .4rem; font-size: .85rem; font-weight: 400; color: var(--c-strong); }
.aip-form input, .aip-form select, .aip-form textarea { font: inherit; font-weight: 400; font-size: 1rem; line-height: 1.4; color: #3A3A3A;
  padding: .75rem .9rem; background: rgba(255, 255, 255, .7); border: 1px solid rgba(15, 76, 92, .3); border-radius: 0; width: 100%; box-sizing: border-box;
  transition: border-color .2s, background .2s; }
.aip-form textarea { resize: vertical; min-height: 7.5rem; }
.aip-form input::placeholder, .aip-form textarea::placeholder { color: #767676; }
.aip-form input:focus, .aip-form select:focus, .aip-form textarea:focus { outline: none; border-color: var(--c-strong); background: #fff; box-shadow: 0 0 0 2px rgba(224, 122, 95, .35); }
.aip-submit { justify-self: start; display: inline-flex; align-items: center; gap: .65rem; font: inherit; font-weight: 400; font-size: 1.05rem;
  padding: 1rem 2.1rem; border: 0; border-radius: 0; background: var(--c-strong); color: #F5F0E8; cursor: pointer; transition: background .3s; margin-top: .25rem; }
.aip-submit .svcp-arrow { width: 1.1rem; height: 1.1rem; transition: transform .25s; }
.aip-submit:hover, .aip-submit:focus-visible { background: #0A3542; outline: none; }
.aip-submit:hover .svcp-arrow, .aip-submit:focus-visible .svcp-arrow { transform: translateX(4px); }

/* ===== Site-wide pass (2026-10-28): homepage, About, Resources, Work Together, essays. Same tokens as Services A2. ===== */

/* shared additions */
.svcp-plate .in.stack { display: block; }                                   /* plate with the heading above its content instead of beside it */
.svcp-h2wrap.on-cream .svcp-rule { background: var(--c-accent); }
.svcp-h2wrap.on-cream .svcp-h2 { color: #3A3A3A; }
.svcp-zone > .svcp-h2wrap { margin-bottom: 2.5rem; }
.svcp-body { font-weight: 400; font-size: 1.12rem; line-height: 1.75; max-width: 60ch; margin: 0 0 1.4rem; color: #3A3A3A; text-wrap: pretty; }
.svcp-body:last-child { margin-bottom: 0; }
.svcp-body a, .svcp-intro a { color: var(--c-link); text-decoration: underline; text-underline-offset: .18em; text-decoration-thickness: 1px; transition: color .2s; }
.svcp-body a:hover, .svcp-intro a:hover, .svcp-body a:focus-visible, .svcp-intro a:focus-visible { color: var(--c-strong); outline: none; }
.svcp-desc a { color: inherit; text-decoration: none; border-bottom: 1px solid var(--p-rule); transition: color .2s, border-color .2s; }
.svcp-desc a:hover, .svcp-desc a:focus-visible { color: var(--p-hover); border-color: var(--p-hover); outline: none; }
.svcp-photo { display: block; width: 100%; height: auto; filter: saturate(.84) contrast(1.05) sepia(.1); }   /* the mockup's photo treatment, square corners */
.svcp-split { display: grid; grid-template-columns: 1fr; gap: 2rem; }       /* portrait beside text */
@media (min-width: 768px) { .svcp-split { grid-template-columns: 4fr 8fr; gap: 3.5rem; align-items: start; } }
.svcp-split .svcp-body { max-width: 60ch; }
.svcp-split .svcp-more.on-cream { margin-top: .5rem; }
/* quotes with attribution (the AI page's quote list, with a footer) */
.svcp-quotes { columns: 1; column-gap: 3rem; }
@media (min-width: 900px) { .svcp-quotes { columns: 2; } }
.svcp-quote { margin: 0 0 2.25rem; padding: .1rem 0 .1rem 1.1rem; border-left: 2px solid var(--c-accent); break-inside: avoid; }
.svcp-quote p { font-family: Georgia, Cambria, 'Times New Roman', serif; font-style: italic; font-size: 1.15rem; line-height: 1.55; margin: 0; color: #3A3A3A; text-wrap: pretty; }
.svcp-quote footer { font-size: .9rem; font-weight: 400; margin-top: .7rem; color: var(--c-strong); }

/* --- homepage --- */
.hp-hero { display: flex; align-items: center; min-height: 56vh; padding: 3.5rem 0 4rem; }
@media (min-width: 960px) { .hp-hero { padding: 4.5rem 0 5rem; } }
.hp-hero .in { width: 100%; }
.hp-eyebrow { display: flex; align-items: baseline; gap: 1rem; margin: 0 0 1.6rem; }
.hp-eyebrow .svcp-rule { width: 2.25rem; background: var(--c-accent); transform: translateY(-.3rem); }
.hp-eyebrow p { font-weight: 400; font-size: 1.05rem; line-height: 1.4; margin: 0; color: var(--c-strong); text-wrap: balance; }
.hp-statement { font-family: Nevins, Georgia, serif; font-weight: 400; font-size: clamp(2.5rem, 4.6vw, 3.9rem); line-height: 1.06; letter-spacing: .005em; margin: 0; max-width: 54rem; color: #3A3A3A; text-wrap: balance; }
.hp-lede { font-weight: 300; font-size: clamp(1.15rem, 1.7vw, 1.4rem); line-height: 1.55; margin: 1.75rem 0 0; max-width: 42rem; color: #3A3A3A; text-wrap: pretty; }
.hp-lede .hp-em { font-weight: 400; white-space: nowrap; }
.hp-offerin .svcp-h2wrap { margin-bottom: 2.75rem; }
.hp-offergrid { display: grid; grid-template-columns: 1fr; }
.hp-offer { display: flex; flex-direction: column; align-items: flex-start; padding: 1.75rem 0; border-top: 1px solid rgba(245, 240, 232, .22); color: inherit; text-decoration: none; }
.hp-offer:first-child { border-top: 0; padding-top: 0; }
.hp-offer:last-child { padding-bottom: 0; }
@media (min-width: 900px) {
  .hp-offergrid { grid-template-columns: 1fr 1fr; }
  .hp-offer, .hp-offer:first-child, .hp-offer:last-child { padding: .25rem 3rem .5rem; border-top: 0; border-left: 1px solid rgba(245, 240, 232, .22); }
  .hp-offer:first-child { padding-left: 0; border-left: 0; }
  .hp-offer:last-child { padding-right: 0; }
}
.hp-offer h3 { font-family: Georgia, Cambria, 'Times New Roman', serif; font-weight: 400; font-size: clamp(1.5rem, 2.2vw, 1.8rem); line-height: 1.25; margin: 0 0 .85rem; color: #F5F0E8; transition: color .3s; text-wrap: balance; }
.hp-offer p { font-weight: 400; font-size: 1.12rem; line-height: 1.7; margin: 0; max-width: 34rem; color: var(--p-body); text-wrap: pretty; }
.hp-offer .svcp-more { margin-top: auto; padding-top: 1.25rem; }
.hp-offer:hover h3, .hp-offer:focus-visible h3 { color: #FFFFFF; }
.hp-offer:hover .svcp-more, .hp-offer:focus-visible .svcp-more { color: var(--p-hover); border-color: var(--p-hover); }
.hp-offer:hover .svcp-arrow, .hp-offer:focus-visible .svcp-arrow { transform: translateX(4px); }
.hp-offer:focus-visible { outline: 2px solid var(--p-rule); outline-offset: 8px; }
.hp-praise .svcp-quotes { margin-top: .5rem; }

/* --- About --- */
.abp-figure { margin: 3rem 0 0; }
.abp-figure .svcp-photo { aspect-ratio: 21 / 10; object-fit: cover; object-position: center 45%; }
@media (max-width: 767px) { .abp-figure .svcp-photo { aspect-ratio: 16 / 11; } }
.abp-values .svcp-h2wrap { margin-bottom: 2.75rem; }
.abp-icon { display: block; width: 3rem; height: 3rem; margin: 0 0 1rem; }
.abp-icon [stroke="#C1661F"] { stroke: var(--p-rule); }
.abp-icon [fill="#C1661F"] { fill: var(--p-rule); }
.abp-founder { scroll-margin-top: 6.5rem; }
.abp-links { font-size: 1rem; }

/* --- Resources: a list, one column, titles dominant (Ida 10/28: panels read as noise) --- */
.rsp-list { max-width: 46rem; margin: 0 0 1rem; padding: 0; list-style: none; border-top: 1px solid rgba(58, 58, 58, .14); }
.rsp-item { display: grid; grid-template-columns: 1.4rem 1fr; gap: 0 .9rem; align-items: start; padding: 1.5rem 0 1.6rem; border-bottom: 1px solid rgba(58, 58, 58, .14); color: inherit; text-decoration: none; }
@media (min-width: 640px) { .rsp-item { grid-template-columns: 1.6rem 1fr; gap: 0 1.1rem; padding: 1.75rem 0 1.85rem; } }
.rsp-icon { width: 1.4rem; height: 1.4rem; margin-top: .3rem; color: var(--c-accent); flex: none; transition: color .2s; }
@media (min-width: 640px) { .rsp-icon { width: 1.6rem; height: 1.6rem; margin-top: .35rem; } }
.rsp-title { font-family: Georgia, Cambria, 'Times New Roman', serif; font-weight: 400; font-size: clamp(1.35rem, 2vw, 1.6rem); line-height: 1.25; margin: 0; color: #3A3A3A; transition: color .2s; text-wrap: balance; }
.rsp-sub { grid-column: 2; font-weight: 400; font-size: .95rem; line-height: 1.5; margin: .45rem 0 0; color: var(--c-strong); }
.rsp-desc { grid-column: 2; font-weight: 300; font-size: .98rem; line-height: 1.6; margin: .55rem 0 0; max-width: 60ch; color: #5C5C5C; text-wrap: pretty; }
.rsp-meta { grid-column: 2; display: block; font-size: .82rem; font-weight: 400; margin: .7rem 0 0; color: var(--c-strong); }
.rsp-item:hover .rsp-title, .rsp-item:focus-visible .rsp-title { color: var(--c-link); }
.rsp-item:hover .rsp-icon, .rsp-item:focus-visible .rsp-icon { color: var(--c-strong); }
.rsp-item:focus-visible { outline: 2px solid var(--c-accent); outline-offset: 6px; }
.rsp-list + .svcp-sub { margin-top: 3.5rem; }

/* --- Work Together --- */
.wtp-body { margin-top: 2rem; }
.wtp-quotes { margin-top: 3.25rem; }
.wtp-quotes .svcp-quote { margin-bottom: 1.5rem; }
.aip-form.wtp-form { display: block; max-width: 46rem; }
.wtp-form .aip-fields > div { display: grid; gap: .4rem; }
.wtp-form label { display: block; }

/* --- Essays (resource layout): light touch --- */
.esp .esp-grid { max-width: none; margin: 0; }
@media (min-width: 1024px) { .esp .esp-grid { grid-template-columns: minmax(0, 42rem) 12rem; gap: 2.5rem; justify-content: start; } }
.esp .esp-col { margin-left: 0; margin-right: 0; }
#reading-progress { background-color: #E07A5F; }
.esp-back { display: inline-flex; align-items: center; gap: .35rem; font-size: .9rem; font-weight: 400; color: var(--c-link); text-decoration: none; transition: color .2s; }
.esp-back svg { width: 1rem; height: 1rem; transition: transform .25s; }
.esp-back:hover, .esp-back:focus-visible { color: var(--c-strong); outline: none; }
.esp-back:hover svg, .esp-back:focus-visible svg { transform: translateX(-4px); }
.esp-title { font-family: Nevins, Georgia, serif; font-weight: 400; font-size: clamp(2.4rem, 4.6vw, 3.4rem); line-height: 1.08; margin: 0 0 1.1rem; color: #3A3A3A; text-wrap: balance; }
.esp-sub { font-family: Georgia, Cambria, 'Times New Roman', serif; font-size: clamp(1.15rem, 1.6vw, 1.35rem); line-height: 1.45; margin: 0 0 1.1rem; color: #3A3A3A; text-wrap: pretty; }
.esp-meta { display: flex; align-items: center; gap: .75rem; font-size: .9rem; font-weight: 400; color: var(--c-strong); }
.esp-meta .esp-sep { color: var(--c-accent); }
.esp-toc-label { display: flex; align-items: center; gap: .6rem; font-size: .85rem; font-weight: 400; margin: 0 0 .85rem; color: var(--c-strong); }
.esp-toc-label::before { content: ''; width: 1.5rem; height: 2px; background: var(--c-accent); flex: none; }
.esp .toc-link { color: #6B6B6B; opacity: 1; font-weight: 300; }
.esp .toc-link:hover, .esp .toc-link:focus-visible { color: var(--c-strong); opacity: 1; }
.esp .toc-link.toc-active { color: var(--c-link); font-weight: 400; }
.esp .esp-hero img { border-radius: 0; }
.esp .hero-figcaption, .esp .resource-body figcaption { color: #5C5C5C; }
.esp .hero-figcaption a, .esp .resource-body figcaption a { color: var(--c-link); }
.esp .hero-figcaption a:hover, .esp .resource-body figcaption a:hover { color: var(--c-strong); }
.esp .resource-body h2 { font-family: Nevins, Georgia, serif; font-weight: 400; font-size: clamp(1.75rem, 2.6vw, 2.1rem); line-height: 1.15; color: #3A3A3A; margin-top: 3.5rem; margin-bottom: 1.25rem; padding-bottom: 0; border-bottom: 0; }
.esp .resource-body h2::before { content: ''; display: block; width: 2.25rem; height: 2px; background: var(--c-accent); margin-bottom: 1rem; }
.esp .resource-body h3 { font-family: WorkSans, Arial, Helvetica, sans-serif; font-weight: 400; font-size: 1.25rem; line-height: 1.3; color: var(--c-strong); margin-top: 2.5rem; margin-bottom: .9rem; }
.esp .resource-body a { color: var(--c-link); text-decoration: underline; text-underline-offset: .15em; text-decoration-thickness: 1px; }
.esp .resource-body a:hover, .esp .resource-body a:focus-visible { color: var(--c-strong); }
.esp .resource-body blockquote { border-left: 2px solid var(--c-accent); padding-left: 1.1rem; font-family: Georgia, Cambria, 'Times New Roman', serif; font-style: italic; font-weight: 400; color: #3A3A3A; }
.esp .resource-body figure img { border-radius: 0; }
.esp .resource-body li::marker { color: var(--c-accent); }
.esp .resource-body .footnote-ref, .esp .resource-body .footnotes .footnote-backref { color: var(--c-link); }
.esp .resource-body .footnote-ref:hover, .esp .resource-body .footnotes .footnote-backref:hover { color: var(--c-strong); }
.esp .resource-body .footnotes { border-top: 1px solid rgba(58, 58, 58, .15); }

/* Homepage Core Offerings: more room on the teal so the band holds the reader (Ida 10/28) */
.svcp-plate .in.hp-offerin { padding-top: 9rem; padding-bottom: 9.5rem; }
@media (min-width: 960px) { .svcp-plate .in.hp-offerin { padding-top: 15rem; padding-bottom: 15.5rem; } }
.hp-offerin .svcp-h2wrap { margin-bottom: 7rem; }
@media (min-width: 960px) {
  .hp-offer, .hp-offer:first-child, .hp-offer:last-child { padding-left: 4rem; padding-right: 4rem; }
  .hp-offer:first-child { padding-left: 0; }
  .hp-offer:last-child { padding-right: 0; }
}
.hp-offer h3 { margin-bottom: 1.1rem; }
.hp-offer .svcp-more { padding-top: 1.75rem; }

/* Homepage: small AI teaser at the bottom right of the Core Offerings band (Ida 10/28) */
.hp-aitease { margin: 4.5rem 0 0; text-align: right; }
.hp-aitease a { display: inline-flex; align-items: center; gap: .5rem; font-family: Georgia, Cambria, 'Times New Roman', serif; font-style: italic; font-size: 1.05rem; color: #F5F0E8; text-decoration: none; }
.hp-aitease a:hover, .hp-aitease a:focus-visible { color: #FFFFFF; }
.hp-aitease .svcp-arrow { width: 1rem; height: 1rem; color: var(--c-accent); transition: transform .3s; }
.hp-aitease a:hover .svcp-arrow, .hp-aitease a:focus-visible .svcp-arrow { transform: translateX(4px); }
@media (max-width: 959px) { .hp-aitease { text-align: left; margin-top: 3rem; } }

/* AI teaser anchored to the bottom of the band, well clear of the offerings (Ida 10/28) */
@media (min-width: 960px) {
  .svcp-plate .in.hp-offerin { padding-bottom: 3.5rem; }
  .hp-aitease { margin-top: 12rem; }
}
.svcp-plate .in.hp-offerin { padding-bottom: 2.5rem; }
.hp-aitease { margin-top: 7rem; }
@media (min-width: 960px) { .hp-aitease { margin-top: 12rem; } }

/* About: generous breathing room, matching the homepage band (Ida 10/28) */
.abp-figure { margin-top: 4.5rem; margin-bottom: 4rem; }
@media (min-width: 960px) { .abp-figure { margin-top: 6rem; margin-bottom: 7rem; } }
.abp-values .svcp-plate .in { padding-top: 7rem; padding-bottom: 7.5rem; }
@media (min-width: 960px) { .abp-values .svcp-plate .in { padding-top: 11rem; padding-bottom: 11.5rem; } }
.abp-values .svcp-h2wrap { margin-bottom: 4.5rem; }
@media (min-width: 960px) { .abp-values .svcp-h2wrap { margin-bottom: 6rem; } }
.abp-values .aip-steps li { padding-bottom: 2rem; }
@media (min-width: 960px) {
  .abp-values .aip-steps li, .abp-values .aip-steps li:first-child { padding-left: 3rem; padding-right: 3rem; }
  .abp-values .aip-steps li:first-child { padding-left: 0; }
  .abp-values .aip-steps li:last-child { padding-right: 0; }
}
.abp-values .abp-icon { margin-bottom: 1.5rem; }
.svcp-zone.abp-founder { padding-top: 6rem; padding-bottom: 7rem; }
@media (min-width: 960px) { .svcp-zone.abp-founder { padding-top: 10rem; padding-bottom: 11rem; } }
.abp-founder .svcp-sub, .abp-founder .svcp-h2wrap { margin-bottom: 3.5rem; }

/* Work Together: generous breathing room, matching About and the homepage band (Ida 10/28) */
.svcp-head.wtp-head { padding-bottom: 6rem; }
@media (min-width: 960px) { .svcp-head.wtp-head { padding-bottom: 9rem; } }
.wtp-body { margin-top: 2.75rem; }
.wtp-quotes { margin-top: 5rem; }
@media (min-width: 960px) { .wtp-quotes { margin-top: 6.5rem; } }
.wtp-contact .svcp-plate .in { padding-top: 7rem; padding-bottom: 7.5rem; }
@media (min-width: 960px) { .wtp-contact .svcp-plate .in { padding-top: 10rem; padding-bottom: 10.5rem; } }
.wtp-contact .svcp-zone { padding-top: 5.5rem; padding-bottom: 7rem; }
@media (min-width: 960px) { .wtp-contact .svcp-zone { padding-top: 8rem; padding-bottom: 10rem; } }

/* Homepage Meet Ida and Candid Praise: more room (Ida 10/28) */
.svcp-zone.hp-meet { padding-top: 6rem; padding-bottom: 4rem; }
@media (min-width: 960px) { .svcp-zone.hp-meet { padding-top: 9.5rem; padding-bottom: 6rem; } }
.svcp-zone.hp-praise { padding-top: 5rem; padding-bottom: 7rem; }
@media (min-width: 960px) { .svcp-zone.hp-praise { padding-top: 7rem; padding-bottom: 10rem; } }
.hp-meet .svcp-h2wrap, .hp-praise .svcp-h2wrap { margin-bottom: 3.5rem; }
@media (min-width: 960px) { .hp-meet .svcp-h2wrap, .hp-praise .svcp-h2wrap { margin-bottom: 4.5rem; } }

/* Homepage hero, light touch (Ida 10/28): HEAD layout kept; eyebrow in the system's teal, block on the site's content edge, rose/terracotta ornaments gone */
.hp-herov2 .in { width: 100%; }
.hp-herov2 .hp-kicker { color: var(--c-strong); }

/* Work Together: the three conditions as large points (Ida 10/28) */
.wtp-points { list-style: none; margin: 2.75rem 0 1rem; padding: 0; display: grid; grid-template-columns: 1fr; gap: 2.25rem; max-width: 64rem; }
@media (min-width: 900px) { .wtp-points { grid-template-columns: repeat(3, 1fr); gap: 3rem; margin-top: 3.5rem; } }
.wtp-points li { position: relative; padding-top: 1.4rem; font-family: Georgia, Cambria, 'Times New Roman', serif; font-size: clamp(1.4rem, 2.1vw, 1.7rem); line-height: 1.3; color: #3A3A3A; text-wrap: balance; }
.wtp-points li::before { content: ""; position: absolute; top: 0; left: 0; width: 3.5rem; height: 2px; background: var(--c-accent); }

/* Work Together points as a vertical bulleted list (Ida 10/28, replaces the three-across row) */
.wtp-points { display: block; max-width: 42rem; margin: 2.25rem 0 .5rem; padding: 0; }
@media (min-width: 900px) { .wtp-points { margin-top: 2.5rem; } }
.wtp-points li { padding: 0 0 0 2.25rem; margin: 0 0 1.1rem; font-size: clamp(1.35rem, 2vw, 1.6rem); line-height: 1.35; text-wrap: pretty; }
.wtp-points li:last-child { margin-bottom: 0; }
.wtp-points li::before { top: .62em; left: .35rem; width: .5rem; height: .5rem; border-radius: 50%; background: var(--c-accent); }

/* Site-wide breathing room, matching the homepage and About (Ida 10/28). Page-specific rules above still win where set. */
.svcp-head { padding-top: 5rem; padding-bottom: 5.5rem; }
@media (min-width: 960px) { .svcp-head { padding-top: 7rem; padding-bottom: 8rem; } }
.svcp-plate .in { padding-top: 7rem; padding-bottom: 7.5rem; }
@media (min-width: 960px) { .svcp-plate .in { padding-top: 10rem; padding-bottom: 10.5rem; } }
.svcp-zone { padding-top: 5.5rem; padding-bottom: 7rem; }
@media (min-width: 960px) { .svcp-zone { padding-top: 7.5rem; padding-bottom: 9.5rem; } }
.svcp-sub { margin-bottom: 2.5rem; }
.svcp-sub + .svcp-sub, .svcp-zone > * + .svcp-sub { margin-top: 5rem; }
@media (min-width: 960px) { .svcp-sub + .svcp-sub, .svcp-zone > * + .svcp-sub { margin-top: 6.5rem; } }
.aip-approach { margin-top: 6rem; }
.aip-approach .svcp-sub { margin-bottom: 2.25rem; }
