/* Shared layout contract: page gutters belong to containers/bleed sections,
   never to every nested column. Components own only their internal spacing. */
:root{
 --uf-page-bg:#f8f8f8;
 --uf-surface:#fff;
 --uf-field-bg:#f4f4f4;
 --uf-gutter:20px;
 --uf-space:24px;
 --uf-card-padding:30px;
 --uf-content-end-space:64px;
}
body,#main{background:var(--uf-page-bg)}
.uf-header,.uf-contact-layout,.uf-contact-panel,.uf-content-card,.uf-job-card,
.uf-project-meta{background:var(--uf-surface)}
.uf-contact-form input:not([type=checkbox]),.uf-contact-form textarea{background:var(--uf-field-bg)}
.uf-page-our-people .uf-native-column:has(>.team-image){background:var(--uf-surface)!important}
.uf-page-content{padding-bottom:0}
.uf-page-content>:last-child{margin-bottom:0!important}
@media(max-width:770px){
 .uf-container{width:calc(100% - var(--uf-gutter)*2)}
 .uf-page-content .uf-native-row{margin-inline:0!important}
 .uf-page-content .uf-native-column{padding-inline:0!important}
 .uf-page-content>.uf-native-wide{width:100vw;left:50%;margin-left:-50vw!important;margin-right:0!important;padding-inline:var(--uf-gutter)}
 .uf-page-content .uf-native-row .uf-native-row{width:auto;left:auto;margin-inline:0!important;padding-inline:0}
 /* Split colored/image sections reach the edge; text inside keeps the gutter. */
 .uf-page-content>.uf-native-edge{padding-inline:0}
 .uf-page-content>.uf-native-edge>.uf-native-column:not(:empty){padding-inline:var(--uf-gutter)!important}
 .uf-page-content .uf-native-image{margin:0 0 var(--uf-space)}
 .uf-page-content .uf-native-image img{max-width:100%;height:auto}
 .uf-page-content .uf-native-heading h3{overflow-wrap:break-word}
 .uf-page-about-us .row-overlay>.uf-native-column{padding-top:32px!important}
 .uf-page-about-us .row-overlay .uf-native-heading h3{font-size:28px;line-height:1.3}
 .uf-page-about-us .row-overlay .uf-reason{padding:24px 0 24px 30px}
 .uf-page-about-us .row-overlay .uf-reason:before{left:0;top:24px}
 .uf-page-about-us .row-overlay .uf-native-heading h6{font-size:19px;line-height:1.4}
 .uf-page-content .uf-native-column:has(>.team-image){padding:30px var(--uf-gutter)!important}
 .uf-contact-panel,.uf-contact-brochure{padding:30px var(--uf-gutter)!important}
}

/* One photo-carousel control treatment, centered on the images, excluding dots. */
.uf-gallery>.uf-gallery-prev,.uf-gallery>.uf-gallery-next{
 top:var(--uf-gallery-control-y,50%);transform:translateY(-50%);width:44px;height:44px;
 padding:0;border:0;border-radius:0;background:#3a4444e6;color:#fff;
 font-size:24px;line-height:44px;text-align:center;display:grid;place-items:center;
}
.uf-gallery>.uf-gallery-prev{left:0}.uf-gallery>.uf-gallery-next{right:0}
/* Quotes are manual, vertically centered in the largest quote footprint. */
.js .uf-testimonials{display:grid;min-height:0;align-items:center}
.js .uf-testimonials blockquote{display:block!important;grid-area:1 / 1;align-self:center;visibility:hidden;pointer-events:none;margin:0!important}
.js .uf-testimonials blockquote.is-active{display:block!important;visibility:visible;pointer-events:auto;margin:0!important}
.uf-testimonials blockquote p:last-child{margin-bottom:0!important}
.uf-native-wide:has(.uf-testimonials){padding-block:32px!important}
.uf-native-wide:has(.uf-testimonials)>.uf-native-column,
.uf-native-wide:has(.uf-testimonials) .uf-native-text{margin-block:0!important}
.uf-testimonial-controls{height:0;margin:0!important}
.uf-testimonial-controls button{width:32px;height:44px;padding:0;font-size:24px;line-height:44px;top:50%}
/* Portrait geometry is shared by directory cards and individual biographies. */
.uf-page-content .team-image{width:min(300px,100%);max-width:100%;margin:0 auto 30px!important}
.uf-page-content .team-image img{display:block;width:100%;aspect-ratio:1;height:auto;object-fit:cover;border-radius:50%}
:is(.uf-page-leadership-mike,.uf-page-leadership-landon) .team-image+.uf-native-row{margin-top:30px}
:is(.uf-page-leadership-mike,.uf-page-leadership-landon) .uf-button,
.uf-page-contact .uf-button[href*="linkedin.com"]{
 background:#ededed;color:#666;border:1px solid #e5e5e5;border-radius:4px;
 font-size:14px;font-weight:400;line-height:50px;padding:0 12px;display:block;text-align:center;
}
:is(.uf-page-leadership-mike,.uf-page-leadership-landon) .uf-button:hover,
.uf-page-contact .uf-button[href*="linkedin.com"]:hover{background:#ddd}
:is(.uf-page-leadership-mike,.uf-page-leadership-landon) .uf-button:before,
.uf-page-contact .uf-button[href*="linkedin.com"]:before{display:inline-block;margin-right:12px;font-size:18px;vertical-align:middle}
:is(.uf-page-leadership-mike,.uf-page-leadership-landon) .uf-button[href^="mailto:"]:before{content:"✉"}
:is(.uf-page-leadership-mike,.uf-page-leadership-landon) .uf-button[href*="linkedin.com"]:before,
.uf-page-contact .uf-button[href*="linkedin.com"]:before{content:"in";font-size:13px;line-height:14px;padding:1px 2px;border-radius:1px;color:#eee;background:#666;font-weight:700}
@media(max-width:770px){
 /* Stacked sections no longer need desktop overlap reserves or spacer blocks. */
 .uf-page-about-us .row-overlay>.uf-native-column{padding-block:32px!important}
 .uf-page-about-us .uf-native-column:has(>.uf-contact-layout){margin-top:0!important;padding-bottom:32px!important}
 .uf-page-content>.uf-native-edge>.uf-native-column:not(:empty){padding-block:32px!important}
 .uf-page-content>.uf-native-edge>.uf-native-column>.wp-block-spacer{display:none}
 .uf-page-content .uf-native-row .uf-native-row{padding-block:0!important}
 .uf-page-about-us .row-overlay .uf-native-feature{margin-block:0!important}
 .uf-page-content .team-image{margin-inline:auto!important}
 :is(.uf-page-leadership-mike,.uf-page-leadership-landon) .team-image+.uf-native-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:24px}
 :is(.uf-page-leadership-mike,.uf-page-leadership-landon) .team-image+.uf-native-row>.uf-native-column{width:auto;min-width:0}
 :is(.uf-page-leadership-mike,.uf-page-leadership-landon) .team-image+.uf-native-row p{margin:0}
}
@media(max-width:770px){
 .uf-page-about-us .uf-native-column:has(>.uf-contact-layout)>.wp-block-spacer{display:none}
 .uf-page-about-us .row-overlay>.uf-native-column>.uf-native-row+.uf-native-row{margin-top:24px}
}

/* Entry cards share a surface and inset; image proportions and typography remain
   component-specific because projects, job listings and news carry different data. */
.uf-project-card,.uf-content-card,.uf-job-card{background:var(--uf-surface)}
.uf-project-meta,.uf-content-meta,.uf-kind-services .uf-content-meta,
.uf-kind-meetings .uf-content-meta,.uf-job-card{padding:var(--uf-card-padding)}
/* Text/list-ending pages need breathing room; full-bleed ending sections do not. */
:is(.uf-page-leadership-mike,.uf-page-leadership-landon,.uf-page-public-meetings) .uf-page-content{padding-bottom:var(--uf-content-end-space)}
/* Source page rules used wider padding than the 44px button box. Draw chevrons
   geometrically, avoiding clipped font glyphs and inherited line-box metrics. */
.uf-page-content .uf-gallery>.uf-gallery-prev,
.uf-page-content .uf-gallery>.uf-gallery-next,
.uf-gallery>.uf-gallery-prev,.uf-gallery>.uf-gallery-next{
 padding:0;font-size:0;line-height:1;overflow:visible;box-sizing:border-box;
}
.uf-gallery>.uf-gallery-prev:before,.uf-gallery>.uf-gallery-next:before{
 content:"";display:block;width:10px;height:10px;border-top:3px solid currentColor;
 border-right:3px solid currentColor;transform:rotate(45deg);margin-right:4px;
}
.uf-gallery>.uf-gallery-prev:before{transform:rotate(-135deg);margin-right:0;margin-left:4px}
@media(max-width:770px){:root{--uf-card-padding:24px;--uf-content-end-space:40px}}

.uf-editor-card{background:var(--uf-surface);padding:var(--uf-card-padding);margin-block:var(--uf-space)}
.uf-editor-section{margin-block:40px;gap:var(--uf-space)}

/* Gallery geometry is independent of font line boxes and implicit grid rows. */
.uf-gallery>.uf-gallery-prev:before,.uf-gallery>.uf-gallery-next:before{
 position:absolute;top:50%;left:50%;margin:0;
 transform:translate(-65%,-50%) rotate(45deg);
}
.uf-gallery>.uf-gallery-prev:before{transform:translate(-35%,-50%) rotate(-135deg)}
/* Shared entry shell and bottom-left action, regardless of entry type. */
.uf-project-card,.uf-content-card,.uf-job-card,.uf-editor-card{
 background:var(--uf-surface);box-shadow:0 5px 60px #28282814;
 display:flex;flex-direction:column;overflow:hidden;
}
.uf-project-meta,.uf-content-meta{display:flex;flex-direction:column;flex:1}
.uf-project-meta,.uf-content-meta,.uf-kind-news .uf-content-meta,
.uf-kind-services .uf-content-meta,.uf-kind-meetings .uf-content-meta{padding:var(--uf-card-padding)}
.uf-entry-action,.uf-editor-card>.wp-block-buttons:last-child{margin-top:auto;padding-top:20px;align-self:flex-start}
.uf-entry-action .uf-project-view{display:inline-flex;align-items:center;gap:8px;margin:0}
.uf-project-view span{opacity:1!important;margin:0}
.uf-entry-action .uf-project-view:after{content:"→";display:inline-block;line-height:1}
.uf-entry-action .uf-project-view span{display:none}
.uf-project-meta h3,.uf-content-meta h2{margin-top:0}

/* Header surface is stateful: overlay at the hero, solid after scrolling. */
.uf-header.uf-header-overlay:not(.uf-scrolled){background:transparent}
.uf-header.uf-header-overlay.uf-scrolled{background:var(--uf-surface)}
/* Full-width background, page-aligned panel, then an independent panel inset. */
.uf-page-content>.row-overlay.uf-native-wide{
 padding-inline:max(var(--uf-gutter),calc((100vw - 1110px)/2));
}
.uf-page-about-us .row-overlay>.uf-native-column{
 padding-inline:32px!important;
}
.uf-page-about-us .row-overlay .uf-reason{
 padding:24px 20px 24px 38px;
}
.uf-page-about-us .row-overlay .uf-reason:before{left:0;top:24px}
/* A group photo is content, not a cropped decorative background. */
.uf-page-content>.uf-native-edge>.uf-section-photo{
 background:none!important;display:flex;align-items:center;justify-content:center;
 padding:0!important;min-height:0;
}
.uf-section-photo .wp-block-image{margin:0;width:100%}
.uf-section-photo img{display:block;width:100%;height:auto;max-height:none;object-fit:contain}
/* Image-ending pages need the same footer breathing room as text endings. */
.uf-page-content:has(>.uf-native-row:last-child>.uf-native-column:only-child>.uf-native-image){padding-bottom:var(--uf-content-end-space)}
@media(max-width:770px){
 .uf-page-about-us .row-overlay>.uf-native-column{padding-inline:var(--uf-gutter)!important}
 .uf-page-about-us .row-overlay .uf-reason{padding:24px 0 24px 30px}
 .uf-page-content>.uf-native-edge>.uf-section-photo{flex-basis:100%;width:100%;padding:0!important}
}

/* Intro columns align to the shared content container, not inherited 100px insets. */
.uf-page-about-us .uf-layout-18-2,.uf-page-about-us .uf-layout-18-4{padding-inline:15px!important}
/* Fixed logo slots keep strip height independent of image dimensions/window width. */
.uf-clients{padding-block:32px}
.uf-client{flex:0 0 20%;height:90px;padding-inline:20px}
.uf-client img{width:100%;max-width:180px;height:90px;object-fit:contain}
/* Keep the center introduction image from dictating excessive column height. */
.uf-purpose-image img{height:auto;max-height:430px;width:100%;object-fit:cover;object-position:center}
/* Desktop split: fill the photo panel without letterboxing, anchored above faces.
   Stack at narrower widths so a tall text column cannot squeeze the group. */
@media(min-width:1101px){
 .uf-page-careers .uf-native-edge:has(>.uf-section-photo){align-items:stretch}
 .uf-page-content>.uf-native-edge>.uf-section-photo{position:relative;min-height:430px;align-self:stretch;overflow:hidden;background:#3a4444!important}
 .uf-section-photo .wp-block-image{position:absolute;inset:0;height:100%;margin:0}
 .uf-section-photo img{height:100%;width:100%;object-fit:cover;object-position:center top}
}
@media(max-width:1100px){
 .uf-page-careers .uf-native-edge:has(>.uf-section-photo)>.uf-native-column{flex-basis:100%;width:100%}
 .uf-page-content>.uf-native-edge>.uf-section-photo{padding:0!important;min-height:0;display:block}
 .uf-section-photo .wp-block-image{position:static;height:auto;margin:0}
 .uf-section-photo img{height:auto;width:100%;object-fit:contain}
}
@media(max-width:770px){
 .uf-page-about-us .uf-layout-18-2,.uf-page-about-us .uf-layout-18-4{padding-inline:0!important}
 .uf-page-about-us .uf-layout-18-5{margin-top:24px!important}
 .uf-clients{padding-block:40px}
 .uf-client{flex-basis:50%;padding-inline:20px}
 .uf-page-careers .uf-page-content>.uf-native-edge>.uf-native-column.uf-section-photo{padding:0!important}
}
@media(min-width:771px){
 .uf-purpose-image{position:relative;min-height:0}
 .uf-purpose-image figure{position:absolute;inset:0 15px;margin:0}
 .uf-purpose-image img{height:100%;max-height:none;width:100%;object-fit:cover}
}

/* Listing pages end with a deliberate inset; galleries use their own controls. */
.uf-page-news .uf-page-content{padding-bottom:var(--uf-content-end-space)}
.uf-gallery-track{scrollbar-width:none;-ms-overflow-style:none}
.uf-gallery-track::-webkit-scrollbar{display:none;width:0;height:0}
/* Meeting cards have no description: no reserved text height is needed. */
.uf-kind-meetings .uf-content-meta{min-height:0}
.uf-kind-meetings .uf-content-meta h2{line-height:1.5;margin-bottom:0}
/* Preserve the source's informational panel treatment on every meeting detail. */
.single-uf_meeting .uf-native-heading h3{font-size:24px;line-height:1.3;font-weight:600;margin:0}
.single-uf_meeting .uf-native-heading{margin-bottom:24px}
.single-uf_meeting .uf-native-feature{background:#4b5555;color:#fff;padding:40px;margin-block:30px 0}
.single-uf_meeting .uf-native-feature .uf-native-heading h3{color:#fff;font-size:22px}
.single-uf_meeting .uf-native-feature p{color:#fff;font-size:14px;line-height:24px}
.single-uf_meeting .uf-native-feature .uf-button{display:block;text-align:center;background:#222;color:#fff;margin-top:55px;padding:14px 20px}
.single-uf_meeting .uf-downloads{background:transparent;padding:0;margin-top:24px}
.single-uf_meeting .wp-block-spacer:has(+.uf-downloads){display:none}
.single-uf_meeting .uf-download{display:flex;justify-content:space-between;align-items:center;gap:20px;background:#222;color:#fff;padding:20px 30px;font-weight:700}
.single-uf_meeting .uf-download span{background:#fff;color:#222;font-size:10px;padding:5px}
.single-uf_meeting .uf-page-content{padding-bottom:var(--uf-content-end-space)}
@media(max-width:770px){
 .uf-kind-meetings .uf-content-meta{flex:0 0 auto}
 .uf-kind-meetings .uf-entry-action{margin-top:0;padding-top:20px}
 .single-uf_meeting .uf-native-feature{padding:var(--uf-card-padding)}
 .single-uf_meeting .uf-native-feature .uf-button{margin-top:30px}
 .single-uf_meeting .uf-native-row>.uf-native-column+.uf-native-column{margin-top:30px!important}
}
