/* Customer refinement, October 2026: shared typography, page introductions and portraits. */
:root{--ink:#292929;--muted:#626262;--paper:#f2f2f2;--line:#dedede}
body{color:var(--ink)}
h1,h2,h3,.hero h1,.career h2,.contact h2,.quick-paths strong{letter-spacing:-.025em}
.hero h1{letter-spacing:-.035em;line-height:1.02}
.header-contact{font-weight:700;font-size:14px}.nav-trigger{font-weight:500}
.positioning h2 span{color:inherit}
.page-intro{background:var(--paper);padding:64px 0 54px}
.page-intro .eyebrow{margin-bottom:22px}
.page-intro h1,.page-intro .team-title{font-size:clamp(38px,5.2vw,76px);font-weight:700;line-height:1.09;letter-spacing:-.025em;max-width:1160px;overflow-wrap:break-word;hyphens:auto}
.page-intro .detail-lead{font-size:clamp(17px,1.45vw,20px);line-height:1.65;max-width:780px;margin-top:24px;color:var(--muted)}
.page-intro .breadcrumb{margin-bottom:32px;font-size:14px}
.page-content{padding-block:58px 84px}.page-content>.prose{max-width:1040px}
.page-content .prose>p,.page-content .prose>ul,.page-content .prose>details{max-width:790px}
.detail-layout{padding-block:58px 90px;gap:clamp(30px,6vw,90px);align-items:start}
.prose{font-size:17px;line-height:1.75;color:var(--ink)}
.prose h2{font-size:clamp(25px,2.25vw,34px);font-weight:700;line-height:1.25;letter-spacing:-.02em;margin-top:42px;margin-bottom:18px}
.prose h2:first-child{margin-top:0}.prose h3{font-size:21px;font-weight:600;line-height:1.35;letter-spacing:-.015em}
.prose p{margin-block:0 20px}.prose li{margin-block:8px}.prose a:not(.button){text-underline-offset:4px}
.detail-facts{padding:28px;background:var(--paper);border-top:2px solid var(--red);position:sticky;top:118px}
.detail-facts .fact-heading{font-size:17px;font-weight:700;letter-spacing:0;text-transform:none;margin-bottom:24px}
.detail-facts dt{font-size:14px;font-weight:600;color:var(--ink)}.detail-facts dd{font-size:16px;line-height:1.6;overflow-wrap:anywhere;text-transform:none}
.detail-contact{border-top:1px solid var(--line);padding-top:22px;margin-top:24px;font-size:15px}.detail-contact>p{margin-bottom:16px}
.detail-contact>a{display:flex;align-items:center;gap:12px;font-size:15px;line-height:1.5;margin-top:12px;overflow-wrap:anywhere}.contact-icon{flex-shrink:0;display:inline-block}
.service-person{display:flex;align-items:center;gap:16px;border-top:1px solid var(--line);padding-top:22px;margin-top:26px}.service-person img{width:104px;height:128px;object-fit:cover;object-position:center 20%}.service-person span{min-width:0}.service-person small,.service-person strong,.service-person span>span{display:block}.service-person small{font-size:12px;color:var(--muted)}.service-person strong{color:var(--red);font-size:18px;margin-block:3px}.service-person span>span{font-size:12px}
.contact.section{padding-block:65px}.contact h2{font-size:clamp(36px,4.4vw,64px)}
.contact-top{gap:40px}.contact-actions{max-width:480px;width:100%;justify-self:end}.contact-actions>p{font-size:16px;line-height:1.6;margin-bottom:20px}
.contact-actions .contact-email,.contact-actions .phone{min-height:52px;padding:14px 18px;font-size:17px;letter-spacing:0;justify-content:flex-start;gap:12px}.contact-actions .contact-email>span{margin-left:auto;font-size:20px}.contact-actions .phone:after{margin-left:auto;font-size:20px}
.footer-brand{display:flex;flex-direction:column;align-items:flex-start;text-align:left;line-height:1.1;letter-spacing:.015em}.footer-brand span{display:block;margin:10px 0 0;padding:0;letter-spacing:.13em;text-align:left;line-height:1.35}
.archive-body{padding-block:48px 86px}.archive-grid{margin-top:40px}.archive-card h2{font-size:25px;line-height:1.25;letter-spacing:-.02em}.archive-card p{font-size:16px}.archive-copy{margin-bottom:40px}
.project-filters{padding-bottom:30px;border-bottom:1px solid var(--line)}.project-filter-grid{display:grid;grid-template-columns:1.7fr 1fr 1fr auto;gap:16px;align-items:end}.project-filter-grid label{display:flex;flex-direction:column;gap:8px;font-size:14px;font-weight:600}.project-filter-grid input,.project-filter-grid select{width:100%;min-width:0;height:50px;border:1px solid #aaa;padding:10px 12px;background:#fff;color:var(--ink);font:inherit;font-weight:400;border-radius:0}.project-filter-grid .button{border:0;min-height:50px;cursor:pointer}.filter-status{margin-top:18px;font-size:14px;display:flex;gap:20px;align-items:center}.filter-status a{color:var(--red);text-decoration:underline;text-underline-offset:4px}.empty-projects{grid-column:1/-1;padding:25px 0}.empty-projects h2{font-size:28px;margin-bottom:15px}
.equipment-section{position:relative;padding:0 0 34px 74px;border-bottom:1px solid var(--line);margin-bottom:38px;max-width:960px}.equipment-section .section-number{position:absolute;top:4px;left:0;color:var(--red);font-size:14px}.equipment-section>h2{margin-top:0}.equipment-highlight{background:var(--paper);padding:22px 26px;border-left:2px solid var(--red)}.equipment-highlight strong{font-size:20px}
.milestones{list-style:none;padding:0!important;margin:30px 0!important}.milestones>li{display:grid;grid-template-columns:90px 1fr;gap:25px;border-top:1px solid var(--line);padding:25px 0;margin:0}.milestones>li>strong{font-size:28px;color:var(--red);line-height:1.2}.milestones p{font-size:16px;margin:10px 0 0}.company-ethics{border-block:1px solid var(--line);padding:20px 0}.company-ethics summary{cursor:pointer;font-weight:700}.company-ethics[open]>p:first-of-type{margin-top:20px}.company-ethics p{font-size:16px}
.team-section{background:#fff}.team-section .person-photo{aspect-ratio:4/5;background:var(--paper)}.person-photo img{object-position:center 20%;width:100%;height:100%;object-fit:cover}.person-card{scroll-margin-top:120px;min-width:0}.person-info h3{font-size:25px;letter-spacing:-.015em}.person-description{font-size:15px;line-height:1.65}.person-services{display:flex;flex-direction:column;gap:9px;margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}.person-services a{display:flex;justify-content:space-between;gap:14px;font-size:13px;line-height:1.45;color:var(--ink)}.person-services a span{color:var(--red)}.person-services a:hover{color:var(--red)}
.qualification-tab{position:fixed;right:0;top:52%;z-index:45;writing-mode:vertical-rl;display:flex;align-items:center;gap:14px;background:#292929;color:#fff;padding:20px 12px;font-size:13px;font-weight:600;letter-spacing:.025em;box-shadow:0 3px 18px #0002;transition:transform 200ms ease,opacity 200ms ease}.qualification-tab[data-enhanced]{opacity:0;transform:translateX(105%);pointer-events:none}.qualification-tab.is-visible{opacity:1;transform:none;pointer-events:auto}.qualification-tab span{font-size:22px;line-height:1}
.qualification-drawer{position:fixed;inset:0 0 0 auto;width:min(460px,100%);height:100dvh;max-height:100dvh;max-width:100%;margin:0;border:0;padding:76px 36px 36px;color:var(--ink);background:#fff;overflow:auto;overscroll-behavior:contain;box-shadow:-12px 0 50px #0002}.qualification-drawer::backdrop{background:#0006}.qualification-drawer h2{font-size:38px;letter-spacing:-.025em;line-height:1.12;margin-bottom:24px}.drawer-close{position:absolute;top:20px;right:22px;width:44px;height:44px;border:1px solid var(--line);background:#fff;font-size:30px;line-height:1;cursor:pointer}.qualification-list{margin:0 0 24px}.qualification-list>div{padding:21px 0;border-top:1px solid var(--line)}.qualification-list dt{font-size:17px;font-weight:700;line-height:1.4;margin-bottom:7px}.qualification-list dd{margin:0;color:var(--muted);font-size:15px;line-height:1.6}body.qualification-open{overflow:hidden}
@media(max-width:1100px){.project-filter-grid{grid-template-columns:1fr 1fr}.project-filter-grid label:first-child{grid-column:1/-1}.project-filter-grid .button{grid-column:1/-1}.detail-facts{padding:24px}.detail-layout{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:34px}}
@media(max-width:760px){.page-intro{padding-block:42px 38px}.page-intro h1{font-size:clamp(34px,6.5vw,50px)}.page-intro .breadcrumb{margin-bottom:25px}.page-content,.detail-layout{padding-block:38px 58px}.detail-layout{grid-template-columns:1fr}.detail-facts{position:static}.prose{font-size:16px}.contact-actions{max-width:none}.contact-top{grid-template-columns:1fr}.contact-actions .contact-email,.contact-actions .phone{font-size:16px}.team-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 22px}.person-info h3{font-size:22px}.equipment-section{padding-left:0;padding-top:30px}.equipment-section .section-number{top:0}.qualification-tab{top:auto;bottom:20px;writing-mode:horizontal-tb;padding:12px 15px;font-size:12px}.qualification-tab span{font-size:18px}}
@media(max-width:480px){.team-grid{grid-template-columns:1fr}.person-info h3{font-size:25px}.project-filter-grid{grid-template-columns:1fr}.project-filter-grid label{grid-column:1}.milestones>li{grid-template-columns:1fr;gap:12px}.qualification-drawer{padding:70px 25px 28px}.contact-actions .contact-email{font-size:15px}.hero h1{font-size:clamp(39px,10vw,54px)}}
@media(prefers-reduced-motion:reduce){.qualification-tab{transition:none}}
@media print{.qualification-tab,.qualification-drawer{display:none!important}.page-intro{background:white;padding:0}.page-intro h1{font-size:26pt}.page-content{padding:0}}

/* Full-site consistency audit, October 2026. */
.eyebrow{text-transform:uppercase}
.archive-card .eyebrow{font-size:11px;line-height:1.5}
.service-archive .archive-card-text{display:flex;flex-direction:column;height:100%}
.service-archive .archive-card h2{hyphens:auto;overflow-wrap:break-word;min-height:2.5em}
.service-archive .archive-card-text>p:not(.eyebrow):not(.service-card-focus){line-height:1.6;min-height:4.8em}
.service-archive .service-card-focus{font-size:14px;line-height:1.6;color:var(--muted);margin-block:0 22px}
.service-card-focus>span{display:block;color:var(--ink);font-size:12px;font-weight:600;margin-bottom:5px}
.service-archive .service-person{margin-top:auto;padding-block:20px;border-block:1px solid var(--line)}
.service-archive .service-person img{width:64px;height:80px;flex-shrink:0}
.service-archive .service-person strong{font-size:17px}
.service-archive .text-link{margin-top:20px;align-self:flex-start}
.project-image-text{display:flex;align-items:center;justify-content:center;background:var(--paper);border-top:2px solid var(--red);padding:28px 45px 28px 28px}
.project-image-category{font-size:20px;line-height:1.35;font-weight:600;color:var(--muted);text-wrap:balance}
.page-intro+.team-section{padding-top:58px}
.team-section .person-photo{border-bottom:0}
.person-tasks{margin-top:20px}.person-tasks-label{font-size:12px;font-weight:600;color:var(--ink);margin-bottom:10px}
.person-description{margin:0;padding-left:17px;list-style:disc}.person-description li{margin-block:0 8px}
.person-description li::marker{color:var(--red);font-size:.7em}
.team-intro-copy p{margin:0}
.single-hofmann_service .detail-facts dl{display:block}
.single-hofmann_service .detail-facts dt{margin:0;padding:0;border:0}
.single-hofmann_service .detail-facts dd{margin:6px 0 0;padding:0;border:0;overflow-wrap:break-word;hyphens:auto}
@media(max-width:1100px){.service-archive{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.detail-layout{display:grid;grid-template-columns:minmax(0,1fr)}.detail-facts{order:-1;width:100%;position:static}.page-intro+.team-section{padding-top:38px}.service-archive{grid-template-columns:1fr}.service-archive .archive-card h2{min-height:0}.service-archive .archive-card-text>p:not(.eyebrow):not(.service-card-focus){min-height:0}}
@media print{.detail-layout{display:block}.person-tasks{break-inside:avoid}}
