/* Ritmo vertical global: blocos compactos, legíveis e sem vazios artificiais. */
.section{padding:68px 0}
.section-heading{margin-bottom:30px}
.section-heading.split{grid-template-columns:1.38fr .62fr;gap:6%;align-items:start}
.section-heading.split>p{padding-top:2rem}
.section h2{font-size:clamp(2.4rem,3.45vw,3.9rem)}
.intro .section-heading h2,.residences .section-heading h2{font-size:clamp(2.4rem,3.15vw,3.55rem)}
.section h2,.contact h2{text-wrap:balance}
.section p,.contact p{text-wrap:pretty}
.eyebrow{margin-bottom:.75rem}
html{scroll-padding-top:56px}
main>section[id],header[id]{scroll-margin-top:56px}
.section-heading>*,.story-copy,.sticky-copy,.contact-panel{min-width:0}

.dual-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.focus-card{min-height:340px;padding:30px}
.focus-card h3{font-size:clamp(1.9rem,2.45vw,2.8rem);margin-bottom:1rem}
.engineering{background:linear-gradient(rgba(13,34,28,.8),rgba(13,34,28,.94)),url(images/ibiza-fachada.jpg) center/cover;color:#fff}
.engineering h3{font-size:clamp(1.7rem,2.15vw,2.35rem)}

.story{padding:48px 0}
.story-grid{grid-template-columns:1.08fr .92fr;gap:5%;align-items:center}
.story-image{margin:0;min-width:0;overflow:hidden}
.story-image img{height:480px}
.story-image-main img{object-position:center 42%}
.story-copy h2{font-size:clamp(2.45rem,3.25vw,3.65rem)}
.story-copy p:not(.eyebrow){font-size:1rem;line-height:1.55;margin:.65rem 0}
.story-copy strong{color:var(--ink)}

.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,clamp(210px,24svh,250px))}
.project-card.featured{grid-column:span 2}
.project-grid .text-card{grid-column:auto}
.card-overlay{padding:25px}
.card-overlay h3{font-size:clamp(1.45rem,1.65vw,1.85rem)}
.card-overlay small{display:block;margin-top:.35rem;color:rgba(255,255,255,.84);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase}
.text-card{padding:30px}
.text-card h3{font-size:clamp(2.15rem,2.6vw,2.75rem)}
.portfolio-note{margin-top:1rem}

.spe-intro{gap:7%;margin-bottom:36px}
.spe-definition{padding-top:1.2rem}
.spe-definition p{margin:.65rem 0}
.spe-steps article{padding-top:22px;padding-bottom:24px}
.spe-steps h3{margin:1rem 0 .55rem}
.roles-panel{margin-top:36px}
.roles-panel>div{padding:25px}
.role span{margin-bottom:.8rem}
.spe-disclaimer{margin-top:18px}

.spe-heading{grid-template-columns:.42fr 1fr .72fr;gap:4%;align-items:start}
.spe-heading>p:last-child{padding-top:.35rem}
.spe-grid{gap:14px}
.spe-card{grid-template-rows:270px auto}
.spe-card>div{padding:22px 24px}
.spe-card h3{font-size:2.3rem;margin:.45rem 0 .6rem}
.spe-card p{margin:.5rem 0}
.spe-card.reverse{transform:none}

.management-section{padding-top:72px}
.management-grid{gap:6%}
.sticky-copy{top:108px}
.sticky-copy>p:not(.eyebrow){margin:.75rem 0}
.services article{padding:1.25rem 0}
.services h3{margin-bottom:.35rem}

.principles{padding:44px 0}
.principles .eyebrow{margin-bottom:1.1rem}
.contact-image img{min-height:500px}
.contact-panel{padding:clamp(45px,5vw,72px)}
.contact-actions{margin:1.7rem 0}
.contact-actions a{gap:1rem}
.contact-actions a span{flex:0 0 auto}
.contact-actions a,.footer-grid a{overflow-wrap:anywhere}
footer{padding-top:48px}
.footer-grid{padding-bottom:32px}

/* Engenharia estrutural: composição compacta e alinhada ao restante do site. */
.engineering-section{background:#10271f;color:#fff;padding:0}
.engineering-profile-chapter{display:block;min-height:0;padding:44px 0 32px}
.engineering-services-chapter{display:block;min-height:0;padding:44px 0}
.engineering-intro{display:grid;grid-template-columns:1.2fr .8fr;gap:8%;align-items:end;margin-bottom:36px}
.engineering-intro h2{font-size:clamp(2.6rem,3.8vw,4.2rem)}
.engineering-intro>p{color:rgba(255,255,255,.7);font-size:1.05rem;margin:0 0 .35rem}
.hermes-panel{display:grid;grid-template-columns:.55fr .72fr 1.28fr;background:var(--paper);color:var(--ink);margin-bottom:14px}
.hermes-photo{min-height:285px;overflow:hidden}
.hermes-photo img{width:100%;height:100%;object-fit:cover;object-position:center 34%}
.hermes-heading,.hermes-copy{padding:34px 38px}
.hermes-heading{border-right:1px solid var(--line)}
.hermes-heading h3{font:600 clamp(2rem,2.7vw,3rem)/1.05 Manrope;margin:0;letter-spacing:-.04em}
.hermes-copy p{color:var(--muted);margin:.35rem 0 1rem}
.structural-services{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:44px}
.structural-heading{margin-bottom:30px}
.structural-heading h2{font-size:clamp(2.6rem,3.8vw,4.2rem)}
.structural-services article{padding:26px 28px;border-right:1px solid rgba(255,255,255,.16);border-bottom:1px solid rgba(255,255,255,.16)}
.structural-services article:nth-child(3n+1){border-left:1px solid rgba(255,255,255,.16)}
.structural-services article:nth-child(-n+3){border-top:1px solid rgba(255,255,255,.16)}
.structural-services span{color:#d4c49f;font-size:.72rem;letter-spacing:.13em}
.structural-services h3{font:600 1.16rem/1.25 Manrope;margin:.75rem 0 .45rem}
.structural-services p{color:rgba(255,255,255,.66);font-size:.88rem;line-height:1.48;margin:0}
.bridge-case{display:grid;grid-template-columns:1.08fr .92fr;max-width:1600px;min-height:0;margin:0 auto;background:#0d1714}
.bridge-image{min-height:500px}
.bridge-image img{width:100%;height:100%;object-fit:cover}
.bridge-copy{padding:32px clamp(46px,4vw,64px) 46px;display:flex;flex-direction:column;justify-content:flex-start;min-width:0}
.bridge-copy h2{font-size:clamp(2.8rem,4vw,4.6rem)}
.bridge-copy p{color:rgba(255,255,255,.7);margin:.65rem 0}
.bridge-copy strong{font:500 1.2rem/1.45 Manrope;color:#d4c49f;margin-top:1.2rem}
.bridge-copy small{color:rgba(255,255,255,.45);font-size:.68rem;margin-top:1.5rem}

/* Capítulos de tela no desktop, sempre alinhados ao topo e sem centralização artificial. */
@media(min-width:901px){
  main>.section:not(.engineering-section):not(.principles){min-height:100svh;display:block}
  main>.section:not(.engineering-section):not(.principles)>.shell{width:var(--shell)}
  .contact{min-height:100svh}
  .engineering-profile-chapter,.engineering-services-chapter{min-height:100svh}
  .bridge-case{min-height:0}
  .intro,.residences,.spe-showcase,.management-section{padding-block:44px}
  .residences .section-heading{margin-bottom:24px}
  .story{padding-block:40px}
  .focus-card{min-height:360px}
  .story-image img{height:520px}

  .spe-explainer{padding-block:38px}
  .spe-intro{grid-template-columns:.78fr 1.22fr;gap:8%;margin-bottom:20px}
  .spe-intro h2{font-size:clamp(2.6rem,3.2vw,3.5rem)}
  .spe-definition{padding-top:.35rem}
  .spe-definition .lead{font-size:clamp(1.2rem,1.45vw,1.45rem);line-height:1.35;margin:0 0 .55rem}
  .spe-definition p{font-size:.95rem;line-height:1.48;margin:.4rem 0}
  .spe-steps article,.spe-steps article:first-child{padding:14px 18px 16px}
  .spe-steps h3{font-size:1.05rem;margin:.6rem 0 .35rem}
  .spe-steps p{font-size:.82rem;line-height:1.42}
  .roles-panel{margin-top:20px}
  .roles-panel>div{padding:17px 19px}
  .roles-title h3{font-size:1.35rem;margin:.25rem 0}
  .role span{margin-bottom:.45rem}
  .role p{font-size:.8rem;line-height:1.42}
  .spe-disclaimer{font-size:.72rem;line-height:1.45;margin-top:12px}

  .spe-showcase{padding-block:34px}
  .spe-showcase .section-heading{margin-bottom:18px}
  .spe-heading{grid-template-columns:.42fr 1fr .72fr;align-items:center}
  .spe-heading h2{font-size:clamp(2.45rem,3vw,3.25rem)}
  .spe-heading>p:last-child{font-size:.95rem;line-height:1.48;padding-top:0}
  .spe-grid{gap:14px}
  .spe-card{display:block;position:relative;min-height:430px;overflow:hidden;background:#10251f;color:#fff}
  .spe-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  .spe-card>div{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:24px 26px;background:linear-gradient(180deg,rgba(7,20,16,.04) 18%,rgba(7,20,16,.3) 54%,rgba(7,20,16,.94) 100%)}
  .spe-card>div>span{color:#e2c98e}
  .spe-card h3{color:#fff;font-size:clamp(1.85rem,2.3vw,2.35rem);line-height:1;margin:.4rem 0 .55rem}
  .spe-card p{max-width:500px;color:rgba(255,255,255,.84);font-size:.88rem;line-height:1.42;margin:.25rem 0}
  .spe-card a{color:#fff;font-size:.86rem;margin-top:.55rem}

  .management-section{padding-top:48px}
  .sticky-copy>p:not(.eyebrow){font-size:.98rem;line-height:1.5}
  .services article{padding:1rem 0}
  .services h3{font-size:1.25rem}
  .services p{font-size:.92rem;line-height:1.48}
}

@media(max-width:900px){
  html{scroll-padding-top:40px}
  main>section[id],header[id]{scroll-margin-top:40px}
  .section{padding:56px 0}
  .section-heading{margin-bottom:26px}
  .section-heading.split>p{padding-top:0}
  .section h2,.intro .section-heading h2,.residences .section-heading h2{font-size:clamp(2.35rem,6.8vw,3.35rem)}
  .focus-card{min-height:310px}
  .story{padding:46px 0}
  .story-grid{gap:32px}
  .story-image img{height:400px}
  .project-grid{grid-template-rows:repeat(3,275px)}
  .project-grid .text-card{grid-column:span 2}
  .spe-intro{margin-bottom:30px}
  .spe-card{grid-template-rows:270px auto}
  .management-section{padding-top:56px}
  .management-grid{gap:28px}
  .roles-panel{margin-top:30px}
  .contact-image img{min-height:330px;max-height:430px}
  .footer-grid{padding-bottom:28px}
  .dual-cards{grid-template-columns:1fr}
  .engineering-intro,.hermes-panel,.bridge-case{grid-template-columns:1fr}
  .engineering-profile-chapter,.engineering-services-chapter{display:block;min-height:0;padding:56px 0}
  .engineering-services-chapter{padding-top:10px}
  .engineering-intro{gap:1.25rem;margin-bottom:28px}
  .hermes-photo{height:430px;min-height:0}
  .hermes-heading{border-right:0;border-bottom:1px solid var(--line)}
  .structural-services{grid-template-columns:repeat(2,minmax(0,1fr))}
  .structural-services article,.structural-services article:nth-child(3n+1){border-left:0;border-top:0}
  .structural-services article:nth-child(odd){border-left:1px solid rgba(255,255,255,.16)}
  .structural-services article:nth-child(-n+2){border-top:1px solid rgba(255,255,255,.16)}
  .bridge-case{min-height:0}
  .bridge-image{min-height:380px}
}

@media(max-width:600px){
  html{scroll-padding-top:32px}
  main>section[id],header[id]{scroll-margin-top:32px}
  .section{padding:44px 0}
  .section-heading{margin-bottom:22px}
  .section h2,.intro .section-heading h2,.residences .section-heading h2{font-size:clamp(2.15rem,10.5vw,2.75rem)}
  .focus-card{min-height:290px;padding:24px}
  .story{padding:38px 0}
  .story-grid{gap:26px}
  .story-image-main img{height:330px}
  .story-copy h2{font-size:2.35rem}
  .project-card{height:290px}
  .project-grid .text-card{grid-column:auto}
  .project-card.text-card{min-height:245px}
  .spe-intro{margin-bottom:24px}
  .spe-definition{padding-top:.6rem}
  .spe-card{grid-template-rows:240px auto}
  .spe-card>div{padding:23px}
  .roles-panel{margin-top:26px}
  .management-section{padding-top:46px}
  .services article{padding:1.15rem 0}
  .principles{padding:36px 0}
  .contact-panel{padding:44px 22px}
  footer{padding-top:40px}
  .hermes-heading,.hermes-copy{padding:26px 24px}
  .hermes-photo{height:360px}
  .structural-services{grid-template-columns:1fr;margin-bottom:34px}
  .structural-services article,.structural-services article:nth-child(odd),.structural-services article:nth-child(-n+2){border-left:1px solid rgba(255,255,255,.16);border-right:1px solid rgba(255,255,255,.16);border-top:0}
  .structural-services article:first-child{border-top:1px solid rgba(255,255,255,.16)}
  .bridge-image{min-height:300px}
  .bridge-copy{padding:38px 24px}
}

@media(min-width:901px) and (max-width:1150px){
  .project-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,220px);grid-auto-rows:220px}
  .project-card.featured{grid-column:span 2}
  .project-grid .text-card{grid-column:auto}
}

@media(max-height:820px) and (min-width:901px){
  .section{padding:38px 0}
  .section-heading{margin-bottom:20px}
  .section h2{font-size:clamp(2.25rem,3vw,3.35rem)}
  .intro .section-heading h2,.residences .section-heading h2{font-size:clamp(2.25rem,2.85vw,3.15rem)}
  .section-heading.split>p{padding-top:1.65rem}
  .focus-card{min-height:300px;padding:26px}
  .focus-card h3{font-size:clamp(1.8rem,2.2vw,2.45rem)}
  .story{padding:40px 0}
  .story-image img{height:440px}
  .project-grid{grid-template-rows:repeat(2,210px);grid-auto-rows:210px}
  .spe-card{min-height:360px}
  .management-section{padding-top:58px}
  .contact-image img{min-height:460px}
}
