/* Banner geometry is determined only by the image's intrinsic ratio. */
body .hero,body .clear-hero,body .about-hero,body .material-banner,body .story-banner,body .project-banner{display:block;height:auto;min-height:0;padding:0;overflow:visible}
body .hero>.hero-image,body .clear-hero>.backdrop,body .about-hero>.backdrop,body .material-banner>.backdrop,body .story-banner>.backdrop,body .project-banner>.backdrop{position:relative;inset:auto;width:100%;height:auto;max-width:100%;object-fit:contain;z-index:0}
body .hero-shade,body .clear-hero:after,body .about-hero:after,body .material-banner:after,body .story-banner:after,body .project-banner:after{display:none}
body .hero-content,body .clear-hero>.container,body .about-hero>.container{position:absolute;top:50%;left:15%;width:70%;transform:translateY(-50%);z-index:1}
body .hero h1{font-size:clamp(28px,3vw,54px);text-shadow:0 2px 8px #0009;margin-bottom:24px}
body .clear-hero-copy,body .about-hero-copy{max-width:590px;padding:24px}
body .clear-hero h1,body .about-hero h2{font-size:clamp(28px,2.6vw,44px)}
body .clear-hero li,body .about-hero p{font-size:17px;line-height:1.6}
body .clear-hero ul{gap:10px;margin-top:22px}
body .material-content{padding-block:36px}body .material-content>div:last-child{padding:0;background:transparent}
body .story-grid{padding-block:42px;color:#18202c}body .story-grid p{color:#465362}body .story-grid article+article{border-color:#d9dee5}
body .project-content{position:relative;max-width:none;padding:32px 0;background:none;color:#18202c}body .project-content h2,body .project-content p{color:#18202c;text-shadow:none}body .project-content p{max-width:750px}
body .intro-copy{width:52%;max-width:900px;padding:74px 0 66px}
body .intro-copy .intro-lead{font-size:clamp(21px,1.5vw,27px);line-height:1.55;max-width:780px;margin:0 auto 26px}
body .intro-copy>p:last-child{max-width:720px;font-size:17px;line-height:1.85}
body .approach-grid{padding:54px 24%;grid-template-columns:.8fr 1.2fr;gap:48px}
body .approach-grid h2{font-size:27px;line-height:1.3}body .approach-grid>div>p:not(.eyebrow){font-size:17px;line-height:1.8}
body .capabilities>.container>.section-heading{padding-top:10px;margin-bottom:60px}body #capabilities-title{font-size:30px;line-height:1.4}
body .portfolio.container{width:50%;max-width:none}body .portfolio .section-heading{width:100%}body .portfolio h2{font-size:clamp(30px,2.5vw,44px)}
body .portfolio-grid{gap:28px;grid-template-columns:repeat(2,minmax(0,1fr))}
body .portfolio-card{display:block;padding:0;min-height:0;background:white;box-shadow:none;border-radius:0;overflow:hidden;color:#18202c;transition:transform .4s,box-shadow .4s}
body .portfolio-card>img{position:relative;inset:auto;width:100%;height:auto;aspect-ratio:1;object-fit:contain;z-index:0;transition:transform .7s cubic-bezier(.2,.7,.2,1),filter .7s}
body .portfolio-card:after{display:none}body .portfolio-text{position:relative;min-height:0;padding:22px 12px 30px 0;background:white;color:#18202c;transform:none;opacity:1}
body .portfolio-text>span{color:#65758a;text-shadow:none;font-size:11px;font-weight:600}body .portfolio-text h3{color:#14243b;text-shadow:none;font-size:23px;line-height:1.3;padding-right:36px}body .portfolio-text p{color:#536170;text-shadow:none;font-size:16px;font-weight:400;max-width:none;line-height:1.75}
body .portfolio-arrow{bottom:auto;top:12px;right:12px;transition:transform .4s,background .4s}
@media(hover:hover){body .portfolio-card:hover,body .portfolio-card:focus-visible{transform:translateY(-5px);box-shadow:0 16px 35px #10243814}body .portfolio-card:hover>img,body .portfolio-card:focus-visible>img{transform:scale(1.045);filter:saturate(1.08)}body .portfolio-card:hover .portfolio-arrow{transform:rotate(45deg);background:#a51b2c}body .portfolio-card:hover .portfolio-text{transform:none}}
.contact-banner img{width:100%;height:auto;display:block}.contact-masthead{text-align:center;padding:64px 0 12px}.contact-masthead h1{font-size:clamp(34px,3.5vw,50px);margin-bottom:22px}.contact-masthead>p:last-child{max-width:700px;margin:auto;color:#465362;font-size:19px;line-height:1.8}.contact-page .contact{padding-top:42px;grid-template-columns:1fr 1.2fr;gap:60px}.contact-page .contact-copy{grid-column:1;grid-row:1;padding-top:10px}.contact-page .inquiry-form{grid-column:2;grid-row:1;background:#f5f7fa;padding:30px;border-radius:8px}.contact-page .inquiry-form h2{font-size:28px;margin-bottom:12px}.contact-page .inquiry-form>p:first-of-type{font-size:16px;margin-bottom:24px;color:#536170}.contact-page .contact-copy h2{font-size:30px}.contact-page .form-grid label{font-size:14px}.contact-page .form-grid input,.contact-page .form-grid select,.contact-page .form-grid textarea{font-size:16px;border-radius:4px}
@media(max-width:1100px){body .hero-content,body .clear-hero>.container,body .about-hero>.container{position:relative;top:auto;left:auto;transform:none;width:calc(100% - 48px);padding-block:32px}body .hero h1{color:#18202c;text-shadow:none}body .hero h1 span{color:inherit}body .clear-hero-copy,body .about-hero-copy{max-width:none;background:none;padding:0}body .clear-hero-copy h1,body .clear-hero-copy li,body .clear-hero-copy .eyebrow,body .about-hero-copy h2,body .about-hero-copy p{color:#18202c;text-shadow:none}body .clear-hero li:before{color:#bc2435;text-shadow:none}body .intro-copy{width:75%}body .approach-grid{padding-inline:12.5%}body .portfolio.container{width:70%}.contact-page .contact{gap:30px}}
@media(max-width:720px){body .hero-content,body .clear-hero>.container,body .about-hero>.container{width:calc(100% - 40px)}body .hero h1{font-size:29px}body .intro-copy{width:calc(100% - 48px);padding-block:48px}body .intro-copy .intro-lead{font-size:21px}body .approach-grid{padding:40px 24px;grid-template-columns:1fr;gap:28px}body .portfolio.container{width:calc(100% - 40px)}body .portfolio-grid{grid-template-columns:1fr;gap:32px}body .portfolio-text{padding-bottom:12px}.contact-masthead{padding-top:40px}.contact-page .contact{grid-template-columns:1fr}.contact-page .contact-copy,.contact-page .inquiry-form{grid-column:1;grid-row:auto}.contact-page .inquiry-form{padding:22px}.contact-masthead>p:last-child{font-size:17px}body .material-content{padding-block:28px}body .project-content{padding-block:26px}}
