/* Section-level semantic colours. Every flexible layout shares this contract. */
.tpr-section {
  --surface: #F6F3E9;
  --ink: #293D3B;
  --soft-ink: #556560;
  --accent: #185D43;
  --rule: #CED3C7;
  --card: #FFFDF8;
  --card-hover: #EAEFDF;
  --art: #DCE6CF;
  --art-rule: #ADBDA2;
  --button-bg: #185D43;
  --button-ink: #F6F3E9;
  --button-hover: #113F31;
  --field-border: #7F9385;
  --error: #A42626;
  color-scheme: light;
  background: var(--surface);
  color: var(--ink);
  display: flow-root;
}
.tpr-scheme-dark {
  --surface: #293D3B;
  --ink: #F6F3E9;
  --soft-ink: #CAD5CF;
  --accent: #CFDDBA;
  --rule: #526864;
  --card: #314844;
  --card-hover: #3B544D;
  --art: #314844;
  --art-rule: #647C70;
  --button-bg: #DCE6CF;
  --button-ink: #113F31;
  --button-hover: #F6F3E9;
  --field-border: #8DAB9B;
  --error: #FFC2AF;
  color-scheme: dark;
}
.tpr-section :is(h1,h2,h3,h4) {color: var(--ink)}
.tpr-section .hero h1,
.tpr-section :is(.eyebrow,.card-top svg,.step-number),
.tpr-section .prose a {color: var(--accent)}
.tpr-section :is(.hero-note,.section-intro,.number,.service-card p,.work-card>p:last-child,.steps-grid p,.founder-mark small,.faqs details>div,.nf-form-fields-required) {color: var(--soft-ink)}
.tpr-section :is(.hero-inner,.trust-strip,.work-section,.split-section,.steps-grid article,.faqs details,.content-grid article) {border-color: var(--rule)}
.tpr-section :is(.work-section,.process-section) {background: transparent;color: inherit}
.tpr-section .status-dot {background: var(--accent);box-shadow: 0 0 0 4px color-mix(in srgb,var(--accent) 12%,transparent)}
.tpr-section :is(.service-card,.form-card) {background: var(--card);border-color: var(--rule)}
.tpr-section .service-card:hover {background: var(--card-hover);border-color: var(--accent)}
.tpr-section .service-card .card-top svg {width:40px;height:40px}
.tpr-section .button {background: var(--button-bg);color: var(--button-ink);border-color: var(--button-bg)}
.tpr-section .button:hover {background: var(--button-hover);border-color: var(--button-hover)}
.tpr-section .button-quiet {background: transparent;color: var(--ink);border-color: transparent}
.tpr-section .button-quiet:hover {background: transparent;color: var(--accent);border-color: transparent}
.tpr-section .text-link {color: var(--accent)}
.tpr-section .button .tpr-icon,.tpr-section .text-link .tpr-icon {transition:transform .2s}
.tpr-section .button:hover .tpr-icon,.tpr-section .text-link:hover .tpr-icon {transform:translateX(4px)}
.tpr-section :is(a,button,summary,input,textarea,select):focus-visible {outline-color: var(--accent)}
.tpr-section ::selection {background: var(--button-bg);color: var(--button-ink)}
.tpr-section .signal-art {background: var(--art);border-color: var(--art-rule);color:var(--ink)}
.tpr-section .orbit {border-color:var(--art-rule);opacity:.45}
.tpr-section :is(.call-card,.orbit-pin) {background:var(--surface);color:var(--accent);border-color:var(--rule)}
.tpr-section .call-card strong {color:var(--accent)}
.tpr-section .call-caption {color:var(--soft-ink)}
.tpr-section .call-icon {background:var(--button-bg);color:var(--button-ink)}
.tpr-section .call-line {background:var(--art-rule)}
.tpr-section .work-image {background:var(--art);border-color:var(--rule)}
.tpr-section .image-placeholder {color:var(--accent)}
.tpr-section .round-arrow {background:var(--button-bg);color:var(--button-ink)}
.tpr-section .faqs summary>span {display:flex;color:var(--accent)}
.tpr-section .faqs summary .tpr-icon {width:23px;height:23px}
.tpr-section .cta-section {background:transparent;border-radius:0;margin-block:0;padding:72px 0;position:relative}
.tpr-layout-cta {border-block:1px solid var(--rule)}
.tpr-section .cta-section h2 {font-size:clamp(36px,4vw,56px)}
.tpr-section .nf-form-content label {color:var(--ink)}
.tpr-section .nf-form-content :is(input:not([type=button]):not([type=submit]):not([type=checkbox]):not([type=radio]),textarea,select) {background:var(--surface)!important;color:var(--ink)!important;border-color:var(--field-border)!important;accent-color:var(--accent)}
.tpr-section .nf-form-content ::placeholder {color:var(--soft-ink);opacity:1}
.tpr-section .nf-form-content :is(input[type=submit],input[type=button],button) {background:var(--button-bg)!important;color:var(--button-ink)!important;border-color:var(--button-bg)!important;border-radius:100px;padding:15px 25px;height:auto;white-space:normal;max-width:100%;cursor:pointer}
.tpr-section .nf-form-content :is(input[type=submit],input[type=button],button):hover {background:var(--button-hover)!important;border-color:var(--button-hover)!important}
.tpr-section .nf-response-msg {background:var(--art);color:var(--ink);border-color:var(--accent)}
.tpr-section :is(.nf-error-msg,.ninja-forms-req-symbol) {color:var(--error)}
.tpr-section .nf-error .ninja-forms-field {border-color:var(--error)!important}
.tpr-section .nf-error.field-wrap .nf-field-element:after {background:var(--error);color:var(--surface)}
.tpr-section .nf-pass.field-wrap .nf-field-element:after {color:var(--accent)}
.tpr-section .nf-form-content :is(input,textarea):focus {outline:3px solid var(--accent);outline-offset:3px}
.tpr-section .ninja-forms-noscript-message {background:var(--card);color:var(--ink);border-color:var(--rule)}
@media(max-width:620px) {.tpr-section .cta-section {padding-block:54px}.tpr-section .cta-section h2 {font-size:38px}}

/* Founder and client proof, v1.2. */
.tpr-section .founder-portrait {gap:24px;margin-top:28px;flex-direction:column;align-items:flex-start}
.tpr-section .founder-portrait .founder-photo {width:320px;height:auto;max-width:100%;aspect-ratio:1;object-fit:cover;border-radius:160px 160px 20px 20px;border:1px solid var(--rule)}
.testimonials-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;align-items:start}
.testimonial-card {margin:0;padding:36px;background:var(--card);border:1px solid var(--rule);border-radius:var(--radius);min-width:0}
.testimonial-mark {display:block;font:700 76px/.75 var(--font-h);color:var(--accent);margin-bottom:16px}
.testimonial-card h3 {font-size:29px;max-width:470px;margin-bottom:24px}
.testimonial-card blockquote {margin:0;font-size:20px;line-height:1.55;color:var(--ink)}
.testimonial-card blockquote p:last-child {margin-bottom:0}
.testimonial-card figcaption {border-top:1px solid var(--rule);margin-top:30px;padding-top:24px;display:flex;flex-direction:column;gap:3px;font-size:15px;color:var(--soft-ink)}
.testimonial-card figcaption strong {font:700 21px/1.35 var(--font-h);color:var(--ink)}
.testimonial-full {margin-top:25px}
.testimonial-full summary {display:flex;justify-content:space-between;align-items:center;gap:18px;list-style:none;cursor:pointer;color:var(--accent);font-size:14px;font-weight:600;padding-block:8px}
.testimonial-full summary::-webkit-details-marker {display:none}
.testimonial-full summary>span {display:flex;transition:transform .2s}
.testimonial-full .tpr-icon {width:20px;height:20px}
.testimonial-full[open] summary>span {transform:rotate(45deg)}
.testimonial-full blockquote {font-size:16px;line-height:1.65;padding-top:18px;color:var(--soft-ink)}
.footer-email {display:inline-block;font-size:16px;color:var(--cream);overflow-wrap:anywhere}
.contact-details a {overflow-wrap:anywhere}
.contact-details .button-quiet {align-self:flex-start}
@media(max-width:620px) {
  .tpr-section .founder-portrait .founder-photo {width:260px;height:auto}
  .testimonials-grid {grid-template-columns:1fr;gap:20px}
  .testimonial-card {padding:28px 24px}
  .testimonial-card h3 {font-size:27px}
  .testimonial-card blockquote {font-size:19px}
  .testimonial-full blockquote {font-size:16px}
}
