/* Shared editorial finishing. Section order and all original artwork are unchanged. */
:root { --atelier-ease:cubic-bezier(.16,1,.3,1); --atelier-rule:rgb(75 24 31 / .17); }
:is(#solucao,#sobre,#processo,#faq,#contato) h2 { text-wrap:balance; }
:is(#solucao,#processo,#faq,#contato) h2 em { color:var(--brick); }
:is(#solucao,#sobre,#contato) .chapter-label { letter-spacing:.14em; font-size:.6875rem; }
:is(#solucao,#processo,#faq) { background-color:var(--paper); }
#solucao .services-heading::after { content:''; display:block; width:54px; height:1px; background:var(--brick); margin-top:28px; transform:scaleX(.3); transform-origin:left; transition:transform 850ms var(--atelier-ease); }
#solucao.section-arrived .services-heading::after { transform:scaleX(1); }
#solucao .services-heading > p:last-of-type { max-width:28ch; line-height:1.85; }
#solucao .service-row { border-radius:7px; border-color:var(--atelier-rule); box-shadow:0 9px 24px rgb(75 24 31 / .035); }
#solucao .service-body { position:relative; min-width:0; max-width:100%; padding:25px 20px 20px; border-radius:0 0 7px 7px; }
#solucao .service-body h3 { max-width:100%; overflow-wrap:anywhere; font-weight:400; margin-bottom:20px; }
#solucao .service-description { flex:1; line-height:1.8; font-weight:400; text-wrap:pretty; }
#solucao .service-scope { min-height:3.6em; font-size:.71875rem; line-height:1.8; }
#solucao .service-cta { border-color:var(--atelier-rule); font-size:.78125rem; }
#solucao .service-row:nth-child(2) .service-cta { border-color:rgb(247 243 232 / .25); }
#solucao .service-image { border-radius:6px 6px 0 0; }
#sobre .about-copy > p:not(.chapter-label) { line-height:1.9; max-width:45ch; }
#sobre .about-copy > p:first-of-type { color:var(--rose); }
#sobre .portrait-window { border-width:5px; border-radius:5px; }
#sobre .personal-notes { border-color:rgb(231 174 191 / .36); padding-top:38px; }
#sobre .notes-heading h3 { line-height:1.2; }
#sobre .note-caption { font-size:.71875rem; padding-top:13px; }
#sobre .notes-profile { gap:10px; }
#processo .process-list { gap:20px; }
#processo li.process-step { border-radius:7px; border-color:var(--atelier-rule); padding:28px 23px; }
#processo .step-number { font-family:'Melodrame',Georgia,serif; font-size:3rem; margin-bottom:22px; }
#processo li h3 { font-weight:500; line-height:1.45; }
#processo li p { line-height:1.85; }
#faq .section-heading { margin-bottom:32px; }
#faq .faq-list { border-top-color:var(--atelier-rule); }
#faq .faq-list details { border-bottom-color:var(--atelier-rule); transition:background-color 250ms ease; }
#faq .faq-list details[open] { background:rgb(231 174 191 / .08); }
#faq .faq-list summary { padding-inline:12px; }
#faq .faq-answer { padding-left:12px; }
#contato .contact-panel { border-radius:10px; }
#contato .contact-description { line-height:1.85; max-width:34ch; }
#contato .contact-copy { background:radial-gradient(ellipse at 90% 0%,rgb(231 174 191 / .16),transparent 68%); }
#contato .button { border-radius:5px; }
.site-footer .footer-panel,.site-footer .footer-bottom { border-color:rgb(231 174 191 / .3); }

@media (max-width:700px) {
  .project-case .case-reading-guide { width:calc(100% - 40px); flex-wrap:wrap; gap:0; margin-bottom:18px; }
  .project-case .case-begin { font-size:.71875rem; }
  .project-case .case-image-total { font-size:.625rem; flex-basis:100%; }
  .project-case .case-intro { padding-bottom:22px; }
  .project-case .case-return-top { bottom:14px; right:14px; }
  .case-lightbox .case-lightbox-shell { grid-template-rows:106px minmax(0,1fr); }
  .case-lightbox header { display:grid; grid-template-columns:1fr; gap:0; padding:6px 12px; }
  .case-lightbox .case-zoom-close { justify-self:start; padding-left:0; }
  .case-lightbox .case-zoom-tools { width:100%; justify-content:flex-start; gap:4px; }
  .case-lightbox .case-actual-size { margin-left:auto; }
  #processo li.process-step { padding:24px 20px; }
  #processo .step-number { font-size:2.5rem; margin:0; }
}
@media (hover: hover) and (pointer: fine) {
  .project-case .case-inquiry:hover { background:var(--rose-light); color:var(--wine); border-color:var(--rose-light); }
  .project-case .case-inquiry:hover svg,.project-case .case-end-contact:hover svg { transform:translate(3px,-3px); }
  .project-case .case-begin:hover svg { transform:translateY(3px); }
  .case-lightbox .case-zoom-tools button:not(:disabled):hover { background:var(--rose-light); }
  #solucao .service-row:hover { box-shadow:0 20px 34px rgb(75 24 31 / .085); }
}
@media (prefers-reduced-motion: reduce) {
  #solucao .services-heading::after { transform:none; transition:none; }
  .project-case .case-inquiry:hover svg,.project-case .case-end-contact:hover svg,.project-case .case-begin:hover svg { transform:none; }
}
html[data-motion="reduced"] #solucao .services-heading::after { transform:none; transition:none; }
html[data-motion="reduced"] .project-case :is(.case-inquiry,.case-end-contact,.case-begin):hover svg { transform:none; }

/* Final rhythm: preserve the page grid, align card copy and soften feedback. */
#solucao .service-row { transition:transform 320ms var(--atelier-ease), border-color 260ms ease, box-shadow 360ms ease; }
#solucao .service-cta { margin-top:0; }
#processo .process-intro p, #processo li p, #sobre .about-copy > p, #contato .contact-description { text-wrap:pretty; }
#processo .process-list { align-items:stretch; }
#faq .faq-list summary { align-items:center; }
#faq .faq-answer { padding-right:48px; }
#faq .faq-answer .inline-link { display:inline-flex; align-items:center; gap:8px; min-height:44px; margin-top:8px; }
.contact-email { overflow-wrap:anywhere; }
.site-footer .footer-bottom { align-items:center; }
.site-footer .footer-bottom a, .site-footer .motion-toggle { display:inline-flex; align-items:center; min-height:44px; }
.case-inquiry, .case-end-contact, .case-begin, .case-zoom-tools button { transition:background-color 220ms ease, color 220ms ease, border-color 220ms ease; }
.case-inquiry svg, .case-end-contact svg, .case-begin svg { transition:transform 300ms var(--atelier-ease); }
.story-offscreen :is(.story-card,.cloud-drift,.cloud-wake) { will-change:auto; }
#projetos .project[aria-hidden="true"] { will-change:auto; }
@media (min-width:960px) {
  #solucao .service-body h3 { min-height:2.6em; }
}
@media (max-width:760px) {
  #solucao .service-scope { min-height:0; margin-block:20px; }
  #sobre .notes-heading h3 { max-width:15ch; }
  #processo li.process-step { grid-template-columns:42px minmax(0,1fr); column-gap:16px; }
  #processo .step-number { line-height:1; padding-top:2px; }
  #faq .faq-answer { padding-right:12px; }
  #contato .contact-copy { padding-inline:24px; }
  .site-footer .footer-top { row-gap:16px; }
}
@media (hover:hover) and (pointer:fine) {
  .case-close:hover svg { transform:rotate(90deg); }
  .case-close svg { transition:transform 320ms var(--atelier-ease); }
}
@media (prefers-reduced-motion:reduce) {
  .case-close:hover svg { transform:none; }
}
html[data-motion="reduced"] .case-close:hover svg { transform:none; }

/* Detail pass: clear focus, consistent hit areas, and a genuine fit-to-screen viewer. */
.hero-social a, .footer-social a, .contact-email { min-height:44px; }
.footer-social a { display:inline-flex; align-items:center; }
.contact-email { padding-block:4px; }
.portfolio-archive .ui-icon, .notes-profile .ui-icon { flex-shrink:0; }
#solucao .service-cta, #contato .button, .case-inquiry, .case-end-contact { text-wrap:balance; }
#solucao .service-art:focus-visible { outline-offset:5px; }
.project-case .case-source { min-height:44px; }
.project-case .case-other-projects button { min-width:0; }
.project-case .case-other-projects button > span { min-width:0; }
.project-case .case-image-button:focus-visible { outline:3px solid var(--paper); outline-offset:-5px; box-shadow:inset 0 0 0 8px var(--wine); }
.case-lightbox .case-lightbox-shell { position:relative; grid-template-rows:auto minmax(0,1fr); }
.case-lightbox .case-lightbox-scroll { display:flex; align-items:flex-start; }
.case-lightbox img { flex:none; max-height:100%; margin:auto; }
.case-lightbox img.is-natural { max-height:none; max-width:none; }
.case-lightbox img.is-loading { opacity:0; }
.case-lightbox header :focus-visible { outline-color:var(--wine); outline-offset:2px; }
.case-lightbox .case-zoom-feedback { position:absolute; z-index:2; top:50%; left:20px; right:20px; display:grid; justify-items:center; gap:16px; text-align:center; color:var(--paper); font-size:.875rem; line-height:1.6; }
.case-lightbox .case-zoom-feedback[hidden], .case-lightbox .case-zoom-feedback button[hidden] { display:none; }
.case-lightbox .case-zoom-feedback button { min-height:44px; padding:10px 20px; border:1px solid var(--rose); border-radius:4px; background:var(--paper); color:var(--wine); }
@media (max-width:700px) {
  .project-case .case-other-projects button { grid-template-columns:60px minmax(0,1fr) 20px; gap:12px; }
  .project-case .case-other-projects img { width:60px; }
  .project-case .case-other-projects .ui-icon { width:18px; height:18px; }
  .case-lightbox header { padding-block:8px; }
  .case-lightbox .case-zoom-tools { flex-wrap:wrap; }
}
@media (prefers-reduced-motion:no-preference) {
  :is(.button,.orbit-navigation button,.case-close,.case-zoom-tools button,.case-zoom-close):active { scale:.975; }
}
html[data-motion="reduced"] :is(.button,.orbit-navigation button,.case-close,.case-zoom-tools button,.case-zoom-close):active { scale:1; }
@media (forced-colors:active) {
  .project-case .case-image-button:focus-visible { outline-color:Highlight; }
}
