/* Small refinements on the existing Oesta layout; no theme or palette change. */
.site-header .header-inner{height:146px}
.brand img{height:132px;width:auto;max-width:160px;object-fit:contain}
.footer-brand img{height:100px;width:auto;max-width:140px}
.footer-business{margin:.8rem 0 0;color:#bac4bb;font-size:.78rem}
.footer-credit{font-size:.72rem;color:#aeb9b0;letter-spacing:.02em}.footer-credit a:hover{text-decoration:underline;text-underline-offset:2px}
.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}
.gallery-grid figure{min-width:0}
.gallery-grid img{height:280px;object-fit:cover;background:#d7dbd4}
.gallery-grid figcaption{min-height:3.2em;line-height:1.45}
.home-gallery figure:first-child img{object-position:center 45%}
.gallery-intro{margin:0 0 38px}
.case-card{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(260px,.9fr);gap:36px;align-items:center;margin:0 0 64px;padding:24px;background:#ebece5;border-top:3px solid var(--brand-blue-dark)}
.case-card figure{margin:0;position:relative}
.case-card img{width:100%;height:360px;object-fit:cover}
.case-card figcaption{font-size:.82rem;color:#536058;padding:10px 2px 0}
.case-card h2,.case-card h3,.gallery-heading h2{font:400 clamp(2rem,3vw,3rem)/1.1 var(--serif);margin:0 0 14px}
.case-card p:not(.eyebrow){color:#536058}
.gallery-heading{margin:0 0 24px}
.home-gallery figcaption{position:static;background:transparent;color:var(--ink);padding:12px 2px;font-size:.86rem}
.cta-copy{max-width:520px;color:#e2e6df;margin:12px 0 0}
.contact-disabled{align-self:start;border-left:4px solid #2A5596}
.contact-disabled h2{font:400 1.7rem/1.2 var(--serif)}
.contact-disabled p:last-child{margin-bottom:0}
@media(max-width:800px){
 .site-header .header-inner{height:136px;gap:8px}
 .brand img{height:118px;max-width:86px}
 .site-header nav{top:136px}
 .footer-brand img{height:94px;max-width:112px}
 .gallery-grid{grid-template-columns:1fr}
 .gallery-grid img{height:310px}
 .case-card{grid-template-columns:1fr;gap:18px;margin-bottom:44px;padding:18px}
 .case-card img{height:auto;max-height:420px}
}
@media(min-width:560px) and (max-width:800px){
 .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .gallery-grid img{height:250px}
}
@media(max-width:420px){
 .site-header .header-inner{gap:6px}
 .brand img{height:112px;max-width:80px}
 .header-cta{font-size:.68rem;padding:8px 9px}
 .nav-toggle{padding:7px 9px}
 .gallery-grid img{height:280px}
}
@media(prefers-reduced-motion:reduce){.site-header *{transition:none!important}}

.joint-types-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:22px 0 38px}
.joint-type-card{padding:20px 22px;background:var(--white);border:1px solid var(--line);border-top:3px solid var(--brand-blue-dark)}
.joint-type-card h3{margin:0 0 8px;font:400 1.35rem/1.25 var(--serif)}
.joint-type-card p{margin:0;color:#536058;font-size:.96rem}
@media(max-width:600px){.joint-types-grid{grid-template-columns:1fr;gap:12px}.joint-type-card{padding:17px 18px}}@media(max-width:560px){.partner-block .partner-card{grid-template-columns:64px minmax(0,1fr);gap:14px;padding:18px}.partner-block .partner-logo{width:52px;height:60px}.partner-copy h2{font-size:1.8rem}}

/* Logo-derived Oesta blues; neutral surfaces preserve text contrast. */
.site-header .header-inner{height:170px}
.site-header .brand img{width:auto;height:156px;max-width:160px;max-height:calc(100% - 14px);object-fit:contain}
.site-header{border-bottom-color:#D9DED8}
.site-header nav a[aria-current=page]{color:#2A5596;font-weight:700}
.site-header nav a:focus-visible,.text-link:focus-visible,.button:focus-visible,.nav-toggle:focus-visible{outline:3px solid #3062AD;outline-offset:4px}
.hero .eyebrow,.hero h1 em,.cta-band .eyebrow,.page-hero .eyebrow{color:#FFFFFF}
.hero h1 em{text-decoration:underline;text-decoration-color:#3062AD;text-decoration-thickness:.08em;text-underline-offset:.15em}
.button-light{background:#3062AD;border-color:#3062AD;color:#FFFFFF}
.button-light:hover{background:#2A5596;border-color:#2A5596;color:#FFFFFF}
.footer-brand img{width:56px;height:56px;max-width:none;object-fit:contain;filter:none;margin-bottom:16px}
@media(max-width:800px){
  .site-header .header-inner{height:152px}
  .site-header .brand img{height:134px;max-width:100px}
  .site-header nav{top:152px}
}
@media(max-width:420px){.site-header .brand img{height:128px;max-width:90px}}
@media(max-width:600px){.hero h1 em{font-size:clamp(2.5rem,12vw,4.4rem)}}

/* Keep the masonry joints in view across desktop and narrow mobile hero crops. */
.hero-image{background-position:center 54%}
@media(max-width:800px){.hero-image{background-position:68% center}}
@media(max-width:360px){.hero-image{background-position:72% center}}

.before-after-project{margin:0 0 64px}
.santpoort-project{margin:0 0 64px;padding:28px;background:#ebece5;border-top:3px solid var(--brand-blue-dark)}
.santpoort-project .gallery-heading p:last-child{max-width:780px;color:#536058}
.santpoort-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}
.santpoort-grid figure{margin:0;min-width:0;background:#fff}
.santpoort-grid img{display:block;width:100%;height:auto;object-fit:contain}
.before-after-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.before-after-grid figure{margin:0;min-width:0;background:#ebece5}
.before-after-grid img{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover}
.before-after-grid figcaption{padding:12px 16px;font-size:.9rem;font-weight:700}
@media(max-width:800px){.before-after-project,.santpoort-project{margin-bottom:44px}.santpoort-project{padding:20px}.santpoort-grid{gap:14px}.before-after-grid{grid-template-columns:1fr 1fr;gap:14px}.before-after-grid figure:last-child{grid-column:1/-1}.before-after-grid figure:last-child img{max-height:520px;object-position:center 45%}}
@media(max-width:420px){.before-after-grid{grid-template-columns:1fr;gap:12px}.before-after-grid figure:last-child{grid-column:auto}.before-after-grid img{max-height:440px}.before-after-grid figcaption{padding:10px 12px}}
@media(max-width:560px){.santpoort-project{padding:16px}.santpoort-grid{grid-template-columns:1fr;gap:12px}}

/* Responsive, keyboard-operable image browsing without a gallery framework. */
.gallery-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:18px}
.gallery-grid figure,.before-after-grid figure,.santpoort-grid figure,.case-card figure{overflow:hidden}
.gallery-trigger{display:block;position:relative;overflow:hidden;background:#dfe2dc;cursor:zoom-in}
.gallery-trigger img{width:100%;height:100%;min-height:0;aspect-ratio:4/3;object-fit:cover;transition:transform .35s ease}
.gallery-trigger:hover img,.gallery-trigger:focus-visible img{transform:scale(1.025)}
.gallery-trigger:focus-visible,.carousel-button:focus-visible,.viewer-button:focus-visible,.viewer-close:focus-visible{outline:3px solid #3062AD;outline-offset:3px;z-index:1}
.site-header .button-small,.site-header .nav-toggle{min-height:44px}
.home-gallery .gallery-trigger img{height:300px;aspect-ratio:4/3}
.case-card .gallery-trigger img{height:360px;aspect-ratio:4/3}
.before-after-grid .gallery-trigger img{height:auto;aspect-ratio:3/4;object-fit:cover}
.santpoort-grid .gallery-trigger img{height:auto;aspect-ratio:4/3;object-fit:cover}
.social-carousel-section{background:#f5f4ef}.partner-block{background:#f5f4ef}.partner-block .partner-card{display:grid;grid-template-columns:88px minmax(0,1fr);gap:24px;align-items:center;margin:0;padding:28px 32px;background:#fff;border:1px solid #D9DED8}.partner-block .partner-logo{display:block;width:60px;height:70px;object-fit:contain}.partner-copy h2{font:400 clamp(1.8rem,3vw,2.6rem)/1.1 var(--serif);margin:0 0 12px;color:var(--ink)}.partner-copy p:not(.eyebrow){max-width:640px;margin:0;color:#536058}.partner-block .eyebrow{margin-bottom:8px}.partner-block .text-link{display:inline-flex;gap:8px;margin-top:13px}.partner-note{display:block;margin-top:8px;color:#536058;font-size:.75rem}
.social-carousel-intro{max-width:520px;color:#536058;margin:14px 0 0}
.social-carousel{max-width:860px;margin:0 auto}
.social-carousel-track{display:grid;grid-template-columns:1fr}
.social-slide{grid-area:1/1;margin:0;background:#ebece5;min-width:0}
.social-slide[hidden]{display:none}
.social-slide .gallery-trigger{max-height:min(68vh,760px)}
.social-slide .gallery-trigger img{width:100%;height:min(68vh,760px);aspect-ratio:3/4;object-fit:contain;background:#182d49}
.social-slide figcaption{display:flex;justify-content:space-between;gap:1rem;padding:14px 18px;font-weight:700}
.social-slide figcaption span{font-size:.78rem;color:#536058;letter-spacing:.08em}
.carousel-controls{display:flex;align-items:center;justify-content:center;gap:24px;padding-top:16px}
.carousel-status{margin:0;min-width:130px;text-align:center;font-size:.88rem;color:#536058}
.carousel-button,.viewer-button,.viewer-close{border:1px solid #536058;background:#fff;color:#10284A;min-width:44px;min-height:44px;font:inherit;cursor:pointer}
.carousel-button:hover,.viewer-button:hover,.viewer-close:hover{background:#e9e9e2}
#image-viewer{width:min(96vw,1100px);max-width:none;max-height:94vh;padding:0;border:0;background:#10284A;color:#fff}
#image-viewer::backdrop{background:rgba(5,16,32,.9)}
.viewer-toolbar{display:flex;justify-content:flex-end;padding:10px;gap:8px}
.viewer-close{font-size:1.5rem;line-height:1}
.viewer-content{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;align-items:center;gap:10px;padding:0 14px 14px}
.viewer-content img{max-height:78vh;width:100%;height:auto;object-fit:contain}
.viewer-content .viewer-button{color:#10284A}
.viewer-caption{min-height:2rem;padding:0 72px 12px;text-align:center;color:#e2e6df}
@media(max-width:800px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.home-gallery .gallery-trigger img{height:250px}.case-card .gallery-trigger img{height:auto;max-height:420px}.viewer-content{grid-template-columns:44px minmax(0,1fr) 44px;gap:4px;padding-inline:6px}.viewer-content img{max-height:72vh}}
@media(max-width:560px){.gallery-grid{grid-template-columns:1fr}.home-gallery .gallery-trigger img{height:290px}.santpoort-grid .gallery-trigger img{aspect-ratio:4/3}.social-carousel-section .section-heading{align-items:flex-start}.social-slide .gallery-trigger img{height:min(62vh,620px)}.viewer-content{grid-template-columns:40px minmax(0,1fr) 40px}.viewer-content img{max-height:68vh}.viewer-caption{padding-inline:12px}}
@media(prefers-reduced-motion:reduce){.gallery-trigger img{transition:none}}
