/* Focused service exploration and a clear contact handoff. */
[hidden] { display: none !important; }
button, input, select, textarea { font: inherit; }
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid #629424; outline-offset: 4px; }
[id] { scroll-margin-top: 6rem; }
.service-chooser { border: 0; padding: 0; margin: 0 0 2rem; min-width: 0; }
.service-chooser legend { margin-bottom: .9rem; font-weight: 750; }
.goal-buttons, .filter-buttons { display: flex; flex-wrap: wrap; gap: .65rem; }
.goal-buttons button, .filter-buttons button { min-height: 2.9rem; padding: .65rem 1rem; border: 1px solid #bac9b5; background: transparent; border-radius: 2rem; color: #15372b; cursor: pointer; font-size: .92rem; }
.goal-buttons button:hover, .filter-buttons button:hover { background: #e6eddc; }
.goal-buttons button[aria-pressed="true"], .filter-buttons button[aria-pressed="true"] { background: #15372b; border-color: #15372b; color: #fff; }
.service-chooser p { margin: .8rem 0 0; color: #536059; font-size: .88rem; }
.service-disclosure { border-top: 1px solid var(--line); }
.service-disclosure:last-child { border-bottom: 1px solid var(--line); }
.service-disclosure > summary { display: grid; grid-template-columns: 3rem minmax(0,1fr) 2rem; align-items: center; gap: 1.4rem; padding: 1.7rem 0; cursor: pointer; list-style: none; }
.service-disclosure > summary::-webkit-details-marker, .publication-disclosure > summary::-webkit-details-marker { display: none; }
.service-heading { display: grid; gap: .4rem; }
.service-heading .service-label { margin: 0; font-size: .75rem; letter-spacing: .09em; }
.service-heading strong { font-family: var(--serif); font-weight: 400; font-size: clamp(1.7rem,3vw,2.6rem); line-height: 1.13; }
.service-brief { color: #536059; font-size: .95rem; }
.disclosure-mark { display: grid; place-content: center; width: 2rem; height: 2rem; border-radius: 50%; background: #e4ecd9; color: #15372b; }
.disclosure-mark::before { content: '+'; font-size: 1.5rem; line-height: 1; }
details[open] .disclosure-mark::before { content: '−'; }
.service-panel { padding: 0 0 2rem 4.4rem; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem 3rem; }
.service-panel h4 { font-size: .88rem; margin: 1rem 0 .5rem; color: #174d36; }
.service-panel p, .service-panel li { color: #536059; font-size: .96rem; }
.service-panel p { margin: 0 0 .8rem; }
.service-panel ul { padding-left: 1.2rem; margin: 0; }
.service-ai-module { grid-column: 1 / -1; margin-top: .8rem; padding-top: 1.5rem; border-top: 1px solid rgba(255,255,255,.2); }
.service-panel .service-ai-kicker { margin: 0 0 .45rem; color: var(--acid); font-size: .78rem; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; }
.service-panel .service-ai-intro { max-width: 60ch; margin: 0; color: rgba(255,255,255,.9); font-size: 1.05rem; }
.service-cta { grid-column: 1 / -1; justify-self: start; margin-top: .6rem; }
.portfolio-controls { margin: 2.5rem 0 1.5rem; }
.portfolio-controls > p { margin: .8rem 0 0; font-size: .88rem; color: #536059; }
.experience-context { max-width: 65ch; padding: 1rem 1.25rem; border-left: 3px solid #8bb352; color: #456155; background: #eaf0e5; }
.publication-card { display: block; padding: 0; min-width: 0; }
.publication-disclosure { width: 100%; }
.publication-disclosure summary { cursor: pointer; padding: 1.5rem; list-style: none; }
.publication-disclosure-hint { display: inline-block; margin-top: .7rem; color: #174d36; font-size: .88rem; font-weight: 700; }
.publication-disclosure-hint::after { content: ' +'; }
.publication-disclosure[open] .publication-disclosure-hint::after { content: ' −'; }
.publication-detail-copy { padding: 0 1.5rem 1.5rem; }
.publication-detail-copy .publication-link { margin-top: 1.25rem; }
.case-contact { color: #174d36; margin-top: 1rem; font-weight: 700; }
.contact-workspace { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid rgba(255,255,255,.22); display: grid; grid-template-columns: minmax(0,.7fr) minmax(0,1.3fr); gap: 3rem; }
.contact .contact-inner { max-width: 1180px; }
.contact-form-intro h3 { font-family: var(--serif); font-weight: 400; font-size: clamp(1.6rem,2.5vw,2.4rem); line-height: 1.15; margin-top: 0; }
.contact .contact-form-intro p { font-size: .98rem; max-width: 36ch; }
.contact-email { display: inline-block; margin-top: 1rem; text-decoration: underline; text-underline-offset: .25em; }
.form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.2rem; }
.form-grid label { display: flex; flex-direction: column; gap: .4rem; font-size: .9rem; }
.form-grid input, .form-grid select, .form-grid textarea { width: 100%; min-width: 0; border: 1px solid #b7c8b0; border-radius: .3rem; background: #f8faf4; padding: .8rem; color: #15372b; font-size: 1rem; }
.form-grid textarea { resize: vertical; min-height: 7rem; }
.field-wide { grid-column: 1 / -1; }
.contact .form-note, .contact .request-preview > p { font-size: .85rem; line-height: 1.6; color: rgba(255,255,255,.82); }
.request-preview { margin-top: 1.5rem; border: 1px solid rgba(255,255,255,.3); padding: 1.25rem; }
.request-preview h4 { margin: 0 0 1rem; }
.request-preview pre { margin: 0 0 1.5rem; font: inherit; font-size: .92rem; line-height: 1.6; white-space: pre-wrap; overflow-wrap: anywhere; }
.draft-actions { display: flex; flex-wrap: wrap; gap: .8rem; }
/* The navigation collapses before three-language labels can collide on tablets. */
@media (min-width: 761px) and (max-width: 1280px) {
 .menu-button { position: relative; z-index: 52; display: inline-flex; gap: .75rem; align-items: center; min-height: 2.75rem; padding: .55rem; border: 0; background: transparent; color: inherit; cursor: pointer; }
 .menu-lines, .menu-lines::before { display: block; width: 1.4rem; height: 1px; background: currentColor; }
 .menu-lines { position: relative; }
 .menu-lines::before { content: ''; position: absolute; top: -.4rem; }
 .main-nav { position: fixed; inset: 0; z-index: 51; display: flex; flex-direction: column; align-items: flex-start; gap: 1.2rem; padding: 7rem 8vw 2rem; background: var(--paper); color: var(--ink); overflow-y: auto; visibility: hidden; opacity: 0; }
 .main-nav a { font-family: var(--serif); font-size: 1.8rem; line-height: 1.2; }
 .menu-open .main-nav { visibility: visible; opacity: 1; }
 .main-nav .language-picker select { color: var(--ink); background: #fff; border-color: #8b9e86; font-size: 1rem; }
 .menu-open .site-header { color: var(--ink); background: var(--paper); backdrop-filter: none; -webkit-backdrop-filter: none; }
}
@media (max-width:1280px) {
 .menu-open .menu-button { z-index: 60; color: var(--ink); }
 .main-nav { justify-content: flex-start; padding-top: 6.5rem; min-height: 100dvh; }
 .menu-button { min-height: 2.75rem; }
 .main-nav a { white-space: normal; max-width: 100%; }
}
@media (min-width:1281px) { .main-nav { gap: clamp(.75rem,1.25vw,1.5rem); font-size: .78rem; } }
@media (max-width:900px) {
 .contact-workspace { grid-template-columns: 1fr; gap: 1.5rem; }
 .contact .contact-form-intro p { max-width: 60ch; }
}
@media (max-width:700px) {
 .service-disclosure > summary { grid-template-columns: 2rem minmax(0,1fr) 1.6rem; gap: .7rem; padding: 1.4rem 0; }
 .service-panel { grid-template-columns: 1fr; padding-left: 0; gap: .5rem; }
 .service-number { font-size: .78rem; }
 .disclosure-mark { width: 1.6rem; height: 1.6rem; }
 .goal-buttons { gap: .5rem; }
 .goal-buttons button { width: 100%; text-align: left; }
 .form-grid { grid-template-columns: 1fr; }
 .field-wide { grid-column: auto; }
 .draft-actions > * { width: 100%; justify-content: center; }
 .publication-disclosure summary { padding: 1.25rem; }
 .case-study-list { min-width: 0; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *, *::before, *::after { animation:none !important; transition:none !important; } }
/* Contrast follows the established dark services and light contact sections. */
.services .service-chooser p, .services .service-brief, .services .service-panel p, .services .service-panel li { color: rgba(255,255,255,.83); }
.services .service-panel h4 { color: var(--acid); }
.services .service-disclosure { border-color: rgba(255,255,255,.25); }
.services .goal-buttons button { color: #fff; border-color: rgba(255,255,255,.4); }
.services .goal-buttons button:hover { background: rgba(255,255,255,.1); }
.services .goal-buttons button[aria-pressed="true"] { background: var(--acid); border-color: var(--acid); color: #103f2c; }
.services .service-number { color: var(--acid); }
.contact .contact-inner { width: 100%; min-width: 0; }
.contact-workspace { border-top-color: rgba(16,63,44,.25); }
.contact .form-note, .contact .request-preview > p { color: #34543e; }
.request-preview { border-color: #91aa82; background: rgba(255,255,255,.3); }
.contact-workspace > *, .form-grid > * { min-width: 0; }
.reveal { opacity: 1; transform: none; }
.services :focus-visible { outline-color: var(--acid); }
