/* Photography-led presentation. All project imagery is hosted locally. */
.visual-home .hero-layout{grid-template-columns:1.05fr .95fr;gap:64px;min-height:0;padding-block:64px 72px}
.visual-home .hero h1{font-size:clamp(48px,5.8vw,78px);line-height:1.05;letter-spacing:-.06em;margin-bottom:26px}
.visual-home .hero-sub{max-width:510px;font-size:17px;line-height:1.8}
.visual-home .hero-foot{margin-top:34px}
.hero-project{margin:0;position:relative;min-width:0;border-radius:18px;overflow:hidden;background:#263d3a;box-shadow:0 28px 65px #0003}
.hero-project>img{width:100%;height:540px;display:block;object-fit:cover;object-position:50% 70%}
.hero-project:after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,#081a22e8);pointer-events:none}
.hero-project figcaption{position:absolute;left:30px;right:28px;bottom:27px;z-index:1;color:#fff}
.hero-project figcaption span,.portfolio-card figcaption>span{display:block;font-size:10px;font-weight:800;letter-spacing:.17em;margin-bottom:12px}
.hero-project figcaption strong{display:block;font-family:Manrope,Arial,sans-serif;font-size:27px;line-height:1.2;letter-spacing:-.04em}
.hero-project figcaption small{display:block;font-size:12px;color:#d4e8de;margin-top:10px}
.visual-home .ticker-items{padding-block:22px}
.visual-home .services-section{background:#f5f6f2}
.visual-home .service-card{border-radius:14px;border-color:#dfe6df}
.portfolio-section{background:#fff}
.portfolio-section .section-desc{max-width:350px}
.portfolio-grid{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:22px;align-items:start}
.portfolio-card{margin:0;min-width:0}
.portfolio-card>img{display:block;width:100%;height:320px;object-fit:cover;object-position:center;border-radius:12px;background:#edf1eb}
.portfolio-feature>img{height:425px;object-position:50% 72%}
.portfolio-card figcaption{padding-top:22px}
.portfolio-card figcaption>span{color:#477160;margin-bottom:10px}
.portfolio-card h3{font-size:23px;margin-bottom:9px}
.portfolio-card p{font-size:14px;color:#677482;line-height:1.7}
.portfolio-bottom{margin-top:35px;padding-top:26px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:24px}
.portfolio-bottom p{margin:0;font-size:15px;color:#596b65}
.portfolio-bottom .text-link{margin:0;color:#176348;border-color:#176348}
.visual-home .social-section{padding-block:75px}
.visual-home .future-section{padding-block:70px}
.visual-catalog .catalog-hero{padding-block:54px 60px}
.catalog-hero-layout{display:grid;grid-template-columns:1.05fr .95fr;gap:70px;align-items:center}
.visual-catalog .catalog-hero h1{font-size:clamp(38px,4.5vw,62px);line-height:1.12;max-width:650px}
.visual-catalog .catalog-hero p:not(.eyebrow){max-width:510px;font-size:16px;line-height:1.85}
.catalog-hero-layout figure{margin:0;position:relative;overflow:hidden;border-radius:14px}
.catalog-hero-layout img{width:100%;height:340px;display:block;object-fit:cover;object-position:50% 48%}
.catalog-hero-layout figcaption{position:absolute;inset:auto 0 0;padding:38px 20px 17px;background:linear-gradient(transparent,#071b25d9);font-size:12px;font-weight:600;color:#fff}
.visual-catalog .catalog-section{background:#f5f6f2}
.visual-catalog .catalog-jump{gap:10px;margin-bottom:46px}
.visual-catalog .catalog-jump a{background:#fff;border-color:#d6e1da;border-radius:7px;padding-inline:15px}
.visual-catalog .catalog-group{scroll-margin-top:24px}
.visual-catalog .catalog-group-heading{padding-top:10px;margin-bottom:25px}
.visual-catalog .catalog-group-heading h2{font-size:34px}
.visual-catalog .catalog-card{border-color:#dce5de;border-radius:12px;background:#fff;box-shadow:0 6px 16px #183f2b04}
.visual-catalog .catalog-card h3{font-size:21px;line-height:1.25}
.visual-catalog .catalog-code{color:#286c51;letter-spacing:.12em;font-size:10px}
.visual-catalog .catalog-card>a{color:#125438;font-weight:800;border-top:1px solid #e2eae4}
.visual-catalog .catalog-card>a:hover{color:#0b3021;text-decoration:underline;text-underline-offset:4px}
.visual-catalog .catalog-card>a:focus-visible{outline:3px solid #14785a;outline-offset:4px}
.visual-catalog .contact-section{border-top:1px solid #dfe8e0;background:#fff}
.visual-catalog .contact-copy h2{font-size:clamp(34px,3.8vw,48px)}
.visual-catalog .selected-service{line-height:1.7;border:1px solid #c3e6d4}
.visual-catalog .form-panel{min-width:0}
@media(max-width:1000px) and (min-width:701px){
 .visual-home .hero-layout,.catalog-hero-layout{gap:30px}
 .visual-home .hero h1{font-size:clamp(44px,5.8vw,60px)}
 .hero-project>img{height:500px}
 .portfolio-grid{gap:18px}
 .portfolio-card>img{height:290px}
 .portfolio-feature>img{height:370px}
 .portfolio-card h3{font-size:20px}
}
@media(max-width:700px){
 .visual-home .hero-layout{display:grid;grid-template-columns:1fr;gap:34px;padding-block:42px}
 .visual-home .hero h1{font-size:clamp(40px,10.5vw,59px);line-height:1.08}
 .visual-home .hero-sub{font-size:16px}
 .hero-project>img{height:360px;object-position:50% 68%}
 .hero-project figcaption{left:23px;bottom:22px}
 .hero-project figcaption strong{font-size:26px}
 .portfolio-grid{grid-template-columns:1fr;gap:32px}
 .portfolio-card>img,.portfolio-feature>img{height:340px;object-position:50% 65%}
 .portfolio-card:nth-child(2)>img{object-position:center}
 .portfolio-card h3{font-size:25px}
 .portfolio-card figcaption{padding-top:18px}
 .portfolio-bottom{display:block}
 .portfolio-bottom .text-link{margin-top:20px}
 .catalog-hero-layout{grid-template-columns:1fr;gap:30px}
 .visual-catalog .catalog-hero{padding-block:40px}
 .visual-catalog .catalog-hero h1{font-size:clamp(36px,9vw,48px)}
 .catalog-hero-layout img{height:240px}
 .visual-catalog .catalog-group-heading h2{font-size:30px}
 .visual-catalog .catalog-jump{margin-bottom:30px}
}
@media(max-width:360px){.hero-project>img{height:320px}.portfolio-card>img,.portfolio-feature>img{height:290px}}

/* Landscape La Reforma photo: retain the building and garden in every crop. */
.hero-project>img{height:auto;aspect-ratio:1672/941;object-position:center}
.hero-project figcaption small{max-width:360px}
@media(max-width:700px){.hero-project>img{height:auto;aspect-ratio:1672/941}.hero-project figcaption strong{font-size:22px}.hero-project figcaption small{font-size:10px}}
