/* Working copy: quiet editorial references, process and contact options. */
.article-card { display:grid; grid-template-columns:clamp(105px,23%,150px) 1fr; max-width:650px; margin:2.3rem 0 0; overflow:hidden; color:#30241a; background:#f1e4d1; border:1px solid #d4b991; border-radius:7px; text-decoration:none; box-shadow:0 9px 25px rgba(36,24,14,.08); }
.article-card + .article-card { margin-top:1rem; }
.article-card:hover,.article-card:focus-visible { border-color:#996328; box-shadow:0 10px 30px rgba(36,24,14,.15); }
.article-card__image { width:100%; height:100%; min-height:160px; object-fit:cover; background:#e5d9c8; }
.article-card__image--logo { object-fit:contain; padding:18px; background:#fff; }
.article-card__copy { padding:clamp(18px,3vw,28px); display:flex; flex-direction:column; align-items:flex-start; }
.article-card__eyebrow { color:#8d5d29; font:500 .68rem 'IBM Plex Mono',monospace; letter-spacing:.08em; text-transform:uppercase; }
.article-card__title { display:block; margin-top:.5rem; font-size:clamp(1.15rem,1.55vw,1.4rem); font-weight:700; line-height:1.16; letter-spacing:-.035em; }
.article-card__summary { display:block; margin-top:.55rem; color:#5f5042; font-size:.87rem; line-height:1.45; }
.article-card__link { display:block; margin-top:.9rem; font-size:.78rem; font-weight:700; color:#7f4e1d; }
.article-card--home { grid-template-columns:minmax(210px,43%) 1fr; margin:clamp(55px,7vw,85px) auto 0; }
.article-card__image--learning { object-position:55% center; }
.article-card__art { display:flex; flex-direction:column; justify-content:center; align-items:center; gap:.6rem; min-height:160px; color:#ffe1ac; background:radial-gradient(circle at center, #815323, #34251a 75%); }
.article-card__art > span { font-size:clamp(2.5rem,5vw,3.8rem); font-weight:600; line-height:1; }
.article-card__art small { font:500 .62rem 'IBM Plex Mono',monospace; letter-spacing:.12em; line-height:1.4; text-align:center; }
.article-card__publication { display:flex; flex-wrap:wrap; gap:.5rem 1.15rem; margin-top:.9rem; font-size:.78rem; font-weight:700; }
.article-card__publication a { color:#7f4e1d; text-underline-offset:.2em; }
@media(max-width:480px) { .article-card.article-card--home { grid-template-columns:1fr; } .article-card__image--learning { height:auto; min-height:0; aspect-ratio:16 / 9; } }
@media(max-width:480px) { .article-card { grid-template-columns:100px minmax(0,1fr); } .article-card__image { min-height:100%; } .article-card__copy { padding:17px; } .article-card__image--logo { padding:10px; } }
.process-intro { margin-top:3rem; padding-top:1.5rem; border-top:1px solid var(--line); max-width:760px; }
.process-intro p { line-height:1.65; color:#4d463f; }
.process-accordion { max-width:900px; margin-top:clamp(32px,4vw,52px); }
.process-accordion__intro { display:flex; align-items:center; gap:10px; color:#6b5a49; font-size:.9rem; margin:0 0 16px; }
.process-step { margin:8px 0; border:1px solid #d7c8b4; border-radius:6px; background:#f1e9dd; overflow:hidden; }
.process-step[open] { border-color:#c88d45; background:#f5e6d0; }
.process-step summary { display:grid; grid-template-columns:47px 28px 1fr 32px; align-items:center; gap:14px; min-height:76px; padding:18px clamp(18px,3vw,28px); color:#2d241a; font-size:clamp(1rem,1.5vw,1.2rem); font-weight:700; cursor:pointer; list-style:none; }
.process-step summary::-webkit-details-marker { display:none; }
.process-step summary::after { content:'+'; justify-self:end; color:#9b652a; font-size:1.75rem; font-weight:400; line-height:1; }
.process-step[open] summary::after { content:'−'; }
.process-step summary:hover { background:rgba(217,155,75,.12); }
.process-step__icon { display:grid; place-items:center; width:47px; height:47px; border:1px solid #b9884d; border-radius:50%; color:#77501f; background:#f9f0e2; }
.process-step__icon svg { width:27px; height:27px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.process-step__number { color:#96652e; font:500 .72rem 'IBM Plex Mono',monospace; letter-spacing:.08em; }
.process-step__body { padding:0 clamp(18px,3vw,28px) 27px calc(clamp(18px,3vw,28px) + 103px); }
.process-step__body h3 { margin:0 0 12px; font-size:clamp(1.25rem,2vw,1.55rem); letter-spacing:-.035em; }
.process-step__body p { max-width:740px; margin:0; color:#4d463f; font-size:1rem; line-height:1.7; }
.process-step__body p + p { margin-top:1em; }
@media(max-width:480px) { .process-step summary { grid-template-columns:40px 24px 1fr 25px; gap:8px; } .process-step__icon { width:40px; height:40px; } .process-step__icon svg { width:24px; height:24px; } .process-step__body { padding-left:18px; } }
.process-explorer { margin-top:clamp(36px,5vw,64px); }
.process-tabs { display:none; }
.process-ready .process-tabs { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; }
.process-tabs button { min-height:108px; padding:20px 16px; color:#4e4031; text-align:left; font:650 .9rem/1.3 'Bricolage Grotesque',sans-serif; background:#eee5d8; border:1px solid #ddcdb7; border-radius:5px; cursor:pointer; }
.process-tabs button span { display:block; margin-bottom:12px; color:#9a6c32; font:500 .7rem 'IBM Plex Mono',monospace; letter-spacing:.08em; }
.process-tabs button:hover { background:#e7d6be; }
.process-tabs button[aria-selected="true"] { color:#21180f; border-color:#c58d47; background:#f0ca8d; }
.process-tabs button[aria-selected="true"] span { color:#75501f; }
.process-instruction { display:none; margin:14px 0 20px; color:#756655; font-size:.82rem; }
.process-ready .process-instruction { display:block; }
.process-panel { padding:clamp(26px,4vw,45px); margin:12px 0; background:#ede4d7; border-left:3px solid #ca914b; border-radius:0 5px 5px 0; }
.process-panel[hidden] { display:none; }
.process-panel h3 { margin:0 0 16px; font-size:clamp(1.45rem,2.3vw,2rem); line-height:1.15; letter-spacing:-.04em; }
.process-panel p { max-width:780px; margin:0; color:#4d463f; font-size:clamp(1.02rem,1.2vw,1.12rem); line-height:1.7; }
.process-line { display:grid; grid-template-columns:repeat(5,1fr); gap:0; margin:2.5rem 0 1rem; list-style:none; padding:0; }
.process-line li { border-top:2px solid #d1ad7c; padding:1rem 1rem 0 0; font-size:.86rem; line-height:1.35; font-weight:650; }
.process-line li span { display:block; color:#9a6c32; margin-bottom:.4rem; font:500 .72rem 'IBM Plex Mono',monospace; }
.guides-note { margin-top:4rem; display:grid; grid-template-columns:.8fr 1fr; gap:clamp(30px,7vw,100px); }
.guides-note p { color:#4d463f; line-height:1.72; }
.bio-intro { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1fr); gap:clamp(45px,8vw,120px); align-items:start; }
.bio-columns { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(40px,7vw,100px); margin-top:clamp(70px,9vw,120px); padding-top:clamp(45px,6vw,75px); border-top:1px solid rgba(39,31,23,.2); }
.bio-chapter h2 { margin:0 0 25px; font-size:clamp(2rem,3.2vw,3rem); line-height:1.08; letter-spacing:-.05em; }
.bio-chapter .article-card { margin-top:2rem; }
.bio-resource { margin-top:2rem; padding:clamp(24px,3vw,35px); color:#f7ede0; background:#2b241e; border-radius:7px; }
.bio-resource .eyebrow { color:#efbb72; margin-bottom:13px; }
.bio-resource h3 { margin-bottom:12px; font-size:1.3rem; line-height:1.2; letter-spacing:-.03em; }
.bio-resource p:not(.eyebrow) { color:#e1d6ca; font-size:.96rem; line-height:1.6; }
.bio-resource a { color:#ffcc83; font-size:.88rem; font-weight:700; text-underline-offset:.2em; }
@media(max-width:760px) { .bio-intro,.bio-columns { grid-template-columns:1fr; gap:42px; } .bio-columns { margin-top:65px; } }
.goals-graphic { margin:clamp(60px,8vw,105px) 0 0; padding:clamp(26px,4vw,52px); border:1px solid rgba(255,199,126,.22); border-radius:8px; color:#f8ede0; background:radial-gradient(ellipse at 50% 110%,rgba(228,153,57,.18),transparent 56%),linear-gradient(130deg,#32261c,#171411); }
.goals-graphic figcaption { margin-bottom:2rem; color:#e8b875; font:500 .74rem 'IBM Plex Mono',monospace; letter-spacing:.12em; text-transform:uppercase; }
.goals-flow { display:grid; grid-template-columns:1fr .62fr 1fr; align-items:center; gap:clamp(18px,3vw,38px); }
.goals-node { min-height:205px; padding:clamp(22px,3vw,36px); border:1px solid rgba(255,209,144,.3); border-radius:5px; background:rgba(255,227,182,.045); }
.goals-end { background:linear-gradient(145deg,rgba(255,187,95,.22),rgba(255,192,115,.055)); border-color:rgba(255,193,106,.55); }
.goals-label { display:block; margin-bottom:16px; color:#e9b774; font:500 .7rem 'IBM Plex Mono',monospace; letter-spacing:.1em; text-transform:uppercase; }
.goals-node strong { display:block; font-size:clamp(1.4rem,2vw,1.9rem); line-height:1.12; letter-spacing:-.04em; }
.goals-node p,.goals-bridge p { margin:.9rem 0 0; color:#e5d7c5; font-size:.96rem; line-height:1.5; }
.goals-bridge { text-align:center; }
.goals-bridge span { color:#ffbf69; font-size:2.25rem; line-height:1; }
.goals-bridge p { font-size:.86rem; }
.contact-options { padding:clamp(70px,9vw,120px) 0; }
.contact-grid { display:grid; grid-template-columns:.75fr 1.1fr; gap:clamp(40px,8vw,110px); align-items:start; }
.contact-grid h2 { font-size:clamp(2.1rem,4vw,3.5rem); }
.contact-grid p { color:#4d463f; line-height:1.7; }
.contact-direct { font-size:1.05rem; font-weight:650; text-underline-offset:.2em; overflow-wrap:anywhere; }
.contact-form { padding:clamp(24px,4vw,48px); border:1px solid rgba(39,31,23,.18); background:#efe7da; border-radius:8px; }
.contact-form h3 { font-size:1.5rem; margin:0 0 .6rem; letter-spacing:-.035em; }
.contact-form .form-lead { margin-bottom:1.5rem; font-size:.95rem; }
.form-fields { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.field { display:flex; flex-direction:column; gap:.45rem; margin-bottom:1.1rem; }
.field label { font-size:.85rem; font-weight:650; }
.field input,.field textarea { width:100%; padding:.85rem; border:1px solid #b7aa98; border-radius:4px; background:#fffdf9; color:#1a1612; font:inherit; }
.field textarea { min-height:150px; resize:vertical; }
.contact-form button { border:0; cursor:not-allowed; opacity:.6; }
.form-status { font-size:.84rem; margin:1rem 0 0; }
.contact-hero { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(220px,.75fr); align-items:center; gap:clamp(40px,8vw,120px); }
.contact-message { max-width:750px; position:relative; z-index:1; }
.contact-message .page-heading { max-width:11ch; }
.contact-email { color:#ffe0aa; text-underline-offset:.22em; overflow-wrap:anywhere; }
.contact-lantern-stage { position:relative; display:grid; place-items:center; min-height:340px; isolation:isolate; }
.contact-lantern-halo { position:absolute; width:min(100%,440px); aspect-ratio:1; border-radius:50%; background:radial-gradient(circle,rgba(255,181,71,.32),rgba(220,125,33,.10) 31%,transparent 67%); animation:contact-halo 6s ease-in-out infinite; }
.contact-lantern { position:relative; display:block; width:clamp(120px,15vw,190px); height:auto; color:#f6e6c9; filter:drop-shadow(0 0 18px rgba(255,181,71,.25)); animation:contact-float 8s ease-in-out infinite; }
.contact-lantern rect[x="20"][y="28"] { animation:contact-pane 6s ease-in-out infinite; }
@keyframes contact-halo { 0%,100% { opacity:.62; transform:scale(.96); } 50% { opacity:1; transform:scale(1.06); } }
@keyframes contact-float { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-7px); } }
@keyframes contact-pane { 0%,100% { opacity:.72; } 50% { opacity:1; } }
.brand .mark rect[x="20"][y="28"] { animation:v3-lantern 6s ease-in-out infinite; }
@keyframes v3-lantern { 0%,100% { opacity:.75 } 50% { opacity:1 } }
@media(max-width:760px) { .process-line { grid-template-columns:1fr; gap:.5rem; } .process-line li { border-top:0; border-left:2px solid #d1ad7c; padding:.2rem 0 .6rem 1rem; } .process-line li span { display:inline; margin-right:.7rem; } .guides-note,.contact-grid,.form-fields { grid-template-columns:1fr; } }
@media(max-width:760px) { .process-ready .process-tabs { grid-template-columns:repeat(2,minmax(0,1fr)); } .process-tabs button { min-height:80px; padding:14px; } .process-tabs button span { margin-bottom:7px; } }
@media(max-width:760px) { .goals-flow { grid-template-columns:1fr; gap:14px; } .goals-node { min-height:0; } .goals-bridge { display:flex; align-items:center; text-align:left; gap:14px; padding-left:12px; } .goals-bridge span { transform:rotate(90deg); } .goals-bridge p { margin:0; } }
@media(max-width:760px) { .contact-hero { grid-template-columns:1fr; gap:0; } .contact-lantern-stage { min-height:250px; margin-top:20px; } .contact-lantern { width:120px; } }
@media(prefers-reduced-motion:reduce) { .brand .mark rect[x="20"][y="28"], .contact-lantern, .contact-lantern-halo, .contact-lantern rect[x="20"][y="28"] { animation:none; } }

/* Contact invitation after the Work with Us steps, and in every footer */
.process-cta { max-width:900px; margin-top:28px; padding:24px 28px; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px 28px; border:1px solid rgba(186,135,67,.4); border-radius:8px; background:rgba(255,181,71,.08); }
.process-cta__title { margin:0; font-size:clamp(1.3rem,2vw,1.6rem); font-weight:600; letter-spacing:-.03em; color:#2a221b; }
.process-cta__actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px 20px; font-size:.9rem; color:#4d463f; }
.process-cta__actions span a { color:inherit; text-underline-offset:3px; }
.footer-meta { display:flex; flex-direction:column; align-items:flex-end; gap:8px; text-align:right; }
.footer-contact a { color:#ffcf86; text-decoration:none; white-space:nowrap; border-bottom:1px solid rgba(255,181,71,.45); }
.footer-contact a:hover, .footer-contact a:focus-visible { color:#fff; border-bottom-color:currentColor; }
@media (max-width:760px) {
  .process-cta { padding:22px; }
  .footer-meta { align-items:flex-start; text-align:left; }
}

/* The desktop graphics label themselves; keep the caption only where the plain mobile cards replace them */
.concept-graphic figcaption { display:none; }
@media (max-width:760px) { .concept-graphic figcaption { display:block; } }

/* Skip link for keyboard and screen-reader users; hidden until focused */
.skip-link { position:absolute; left:16px; top:-80px; z-index:100; padding:10px 16px; border-radius:4px; color:#1e1912; background:#ffb547; font-weight:700; font-size:.9rem; text-decoration:none; }
.skip-link:focus { top:12px; }
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
