/* Contractor CMS V2.0.2 — Corporate Type System
   Non-destructive stylesheet: preserves all CMS logic, imagery and content.
   Primary: Plus Jakarta Sans (headlines and interfaces)
   Secondary: Inter (paragraphs, metadata and forms).
   Both gracefully fall back to system fonts when offline. */
:root {
  --font-head: 'Plus Jakarta Sans', 'Segoe UI', Arial, sans-serif;
  --font-body: 'Inter', 'Segoe UI', Arial, sans-serif;
  --readable-ink: #263b49;
  --readable-muted: #566977;
}
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body {font-family:var(--font-body); font-size:15px; line-height:1.65; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;}
button,input,select,textarea {font-family:var(--font-body)}
:where(h1,h2,h3,h4) {text-wrap:balance}
:where(p,li) {overflow-wrap:break-word}

/* Brand, menu and buttons */
.brand {max-width:350px}
.brand-copy strong{font-family:var(--font-head);font-size:12px;font-weight:800;letter-spacing:-.015em;line-height:1.36}
.brand-copy small,.footer-brand small{font-family:var(--font-body);font-size:9px;letter-spacing:.12em;line-height:1.35}
.site-nav>a{font-family:var(--font-body);font-size:13px;font-weight:600;letter-spacing:-.008em}
.nav-cta{font-family:var(--font-body);font-size:12px;font-weight:700;letter-spacing:-.007em}
.btn {font-family:var(--font-body);font-size:13px;font-weight:700;letter-spacing:-.012em;line-height:1.3}

/* Cover typography: intentional hierarchy without extreme tracking */
.eyebrow {font-family:var(--font-body);font-size:11px;font-weight:750;letter-spacing:.115em;line-height:1.5}
.section-number {font-family:var(--font-body);font-size:11px;font-weight:700;letter-spacing:.11em}
.hero h1{font-family:var(--font-head);font-weight:800;font-size:clamp(40px,5.25vw,72px);line-height:1.15;letter-spacing:-.042em;max-width:870px}
.hero-content>p {font-size:clamp(15px,1.35vw,17px);line-height:1.85;letter-spacing:-.005em;max-width:640px;color:#dbe3e9}
.hero-promises span{font-size:12px;font-weight:650;letter-spacing:0}
.hero-scroll,.hero-bottom-right{font-family:var(--font-body);font-size:10px;letter-spacing:.1em}

/* Section titles and supporting copy */
.intro-right h2,.section-heading h2,.partner-top h2 {
  font-family:var(--font-head);font-size:clamp(32px,3.3vw,46px);font-weight:800;line-height:1.27;letter-spacing:-.037em;
}
.intro-right p{font-size:14.5px;line-height:1.9;color:var(--readable-muted)}
.intro-right .section-lead{font-size:15.5px;line-height:1.85;color:#3e5666}
.section-heading>p {font-size:14px;line-height:1.85;color:var(--readable-muted);max-width:400px}
.values-list strong{font-family:var(--font-head);font-size:14px;line-height:1.45;letter-spacing:-.018em}
.values-list small{font-size:12.5px;line-height:1.65;color:var(--readable-muted)}
.text-link{font-family:var(--font-body);font-size:13px;font-weight:700;letter-spacing:-.01em}

/* Expertise and portfolio: small descriptions in previous version were difficult to read */
.service-card h3{font-family:var(--font-head);font-size:16px;font-weight:750;line-height:1.48;letter-spacing:-.02em}
.service-card p{font-size:13.5px;line-height:1.75;color:var(--readable-muted)}
.service-bottom{font-family:var(--font-body);font-size:10px;letter-spacing:.055em}
.filter{font-family:var(--font-body);font-size:12px;line-height:1.3;letter-spacing:-.005em}
.project-body h3{font-family:var(--font-head);font-size:18px;font-weight:750;line-height:1.43;letter-spacing:-.027em}
.project-body p{font-size:13.5px;line-height:1.75;color:var(--readable-muted)}
.project-meta{font-size:11px;letter-spacing:.01em}
.project-partner>span{font-size:11px;line-height:1.45}
.project-partner strong{font-size:12px;line-height:1.5;font-weight:700}
.partner-top>p{font-size:14px;line-height:1.85}
.partner-grid small{font-family:var(--font-body);font-size:10.5px;letter-spacing:.07em}
.partner-note{font-size:12px;line-height:1.7}
.process-grid h3{font-family:var(--font-head);font-size:15px;line-height:1.5;letter-spacing:-.02em}
.process-grid p{font-size:13.5px;line-height:1.8;color:var(--readable-muted)}

/* Contact and footer */
.contact-main h2{font-family:var(--font-head);font-size:clamp(35px,4.6vw,61px);font-weight:800;letter-spacing:-.045em;line-height:1.2}
.contact-main>p{font-size:15px;line-height:1.82}
.contact-meta span{font-family:var(--font-body);font-size:10px;letter-spacing:.1em}
.contact-meta strong{font-size:14px;line-height:1.65;font-weight:600;overflow-wrap:anywhere}
.contact-form h3{font-family:var(--font-head);font-size:21px;line-height:1.4;letter-spacing:-.03em}
.contact-form label{font-size:12.5px;font-weight:700;letter-spacing:-.005em}
.contact-form input,.contact-form select,.contact-form textarea{font-size:14px;line-height:1.5;min-height:45px}
.form-info{font-size:12px;line-height:1.75}
.footer-brand strong{font-family:var(--font-head);font-size:14px;line-height:1.5;letter-spacing:-.015em}
.footer-inner>div:first-child>p{font-size:13px;line-height:1.8;color:#bdcad3}
.footer-nav a{font-size:12px}
.footer-bottom{font-size:11px;letter-spacing:0;color:#9baab5}

/* Dialog, metadata, and editable project content */
.dialog-content h2{font-family:var(--font-head);letter-spacing:-.03em;line-height:1.27}
.dialog-content p,.dialog-content li{font-size:14px;line-height:1.75}
.dialog-gallery figcaption{font-size:12.5px}

/* CMS admin: independent user interface; no changes to form behavior */
body:has(.shell),body:has(.login-page){font-family:var(--font-body);font-size:14px;line-height:1.6}
body:has(.shell) :is(h1,h2,h3,h4,.display),body:has(.login-page) :is(h1,h2,h3,h4,.display){font-family:var(--font-head);letter-spacing:-.024em}
.side-brand .brand-title{font-family:var(--font-head);font-size:14px;letter-spacing:-.01em}
.side-nav .nav-item{font-family:var(--font-body);font-size:13px;font-weight:600}
.topbar .crumb{font-size:13px}
.page-heading h1{font-size:26px;line-height:1.32;font-weight:800}
.page-heading p{font-size:14px;line-height:1.7}
.card-head h2,.card-head h3{font-family:var(--font-head);font-size:17px;line-height:1.4}
.field label{font-size:13px;font-weight:700}
.field input,.field textarea,.field select,.search-input{font-size:14px;line-height:1.5}
.items-table td{font-size:13px;line-height:1.5}
.btn-primary,.btn-dark,.btn-soft{font-family:var(--font-body)}

@media (max-width:1100px){
  .site-nav{gap:12px}
  .site-nav>a{font-size:12px}
  .nav-cta{font-size:11px;padding:12px 14px}
  .brand-copy strong{font-size:11px}
}
@media (max-width:900px){
  .hero h1{font-size:clamp(39px,6.2vw,60px);line-height:1.17}
  .section-heading>p{max-width:100%}
}
@media (max-width:680px){
  body{font-size:15px}
  .brand-copy strong{font-size:11px}
  .brand-copy small{font-size:8px;letter-spacing:.07em}
  .hero h1{font-size:clamp(35px,8.5vw,49px);line-height:1.18;letter-spacing:-.038em}
  .hero-content>p{font-size:15px;line-height:1.78}
  .hero-promises span{font-size:11px}
  .intro-right h2,.section-heading h2,.partner-top h2{font-size:clamp(30px,7.5vw,38px);letter-spacing:-.034em;line-height:1.25}
  .intro-right p,.section-heading>p,.partner-top>p{font-size:14px}
  .service-card p,.project-body p,.process-grid p{font-size:13.5px}
  .project-body h3{font-size:18px}
  .contact-main h2{font-size:clamp(34px,8.2vw,44px)}
  .contact-form input,.contact-form select,.contact-form textarea{font-size:16px} /* avoids iOS automatic zoom */
  .page-heading h1{font-size:23px}
  .topbar .crumb{font-size:12px}
}
@media (max-width:380px){
  .brand-copy strong{font-size:10px}
  .hero h1{font-size:34px}
}
