/* Bom Service — responsive layouts */
@media(max-width:1100px){.header-inner{flex-wrap:wrap;padding:.6rem 0}.site-nav{order:4;width:100%;justify-content:center;flex-wrap:wrap;margin:0}.header-cta{margin-left:auto}}
@media(max-width:760px){.header-inner{min-height:72px}.menu-toggle{display:inline-flex;margin-left:auto}.site-nav{display:none;flex-direction:column;align-items:stretch;gap:.2rem;background:#fff;padding:.8rem;border:1px solid var(--bs-border);border-radius:12px}.site-nav.is-open{display:flex}.site-nav a{padding:.65rem}.header-cta{display:none}.hero-grid{grid-template-columns:1fr;gap:2rem}.grid{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr;gap:1rem}.cta-band{flex-direction:column;align-items:flex-start}.section{padding:3rem 0}}
@media(min-width:761px) and (max-width:992px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-grid{gap:1.5rem}}


/* FASE 12 — refinamento da home com fotografia contínua atrás da marca */
.home-showcase { background:#061b3b; }
.showcase-main { position:relative; display:block; min-height:clamp(590px, 46vw, 710px); }
.showcase-photo { width:100%; min-height:clamp(590px, 46vw, 710px); }
.showcase-photo .hero-slide { object-position:center 52%; }
.showcase-photo-shade {
  background:
    linear-gradient(90deg, rgba(4,20,46,.91) 0%, rgba(4,20,46,.78) 34%, rgba(4,20,46,.30) 58%, rgba(4,20,46,.18) 100%),
    linear-gradient(0deg, rgba(4,20,46,.40), transparent 55%);
}
.showcase-copy { width:min(69%, 980px); padding:clamp(3rem,5.8vw,5.7rem) clamp(1.4rem,5.7vw,5.5rem) 4rem; }
.showcase-copy h1 { max-width:780px; font-size:clamp(2.55rem,4.35vw,4.35rem); }
.showcase-copy > p { max-width:640px; }
.showcase-brand-panel {
  position:absolute; z-index:3; top:0; right:0; bottom:0; width:31%;
  min-height:0; padding:clamp(1rem,2.2vw,2.5rem);
  background:linear-gradient(90deg,rgba(5,25,54,.04),rgba(5,25,54,.20));
  backdrop-filter:none; justify-content:center; gap:clamp(.6rem,1.3vw,1.25rem);
}
.showcase-large-logo { width:min(100%, 500px); max-height:clamp(260px,28vw,440px); object-fit:contain; filter:drop-shadow(0 10px 24px rgba(0,0,0,.24)); }
.showcase-signature {
  max-width:100%; color:#fff; font-family:"Segoe Script","Brush Script MT",cursive;
  font-size:clamp(1.45rem,2.15vw,2.45rem); line-height:1.2; text-align:center;
  text-wrap:balance; transform:rotate(-1deg); text-shadow:0 2px 8px rgba(0,0,0,.5);
}
.showcase-photo .showcase-arrow--next { right:calc(31% + 14px); }
.service-ribbon { grid-template-columns:repeat(10,minmax(0,1fr)); gap:clamp(.35rem,.9vw,.9rem); padding-top:1rem; }
.service-ribbon-card img { aspect-ratio:1.18/1; object-position:center; background:#f4f6fa; }
.service-ribbon-card span { display:block; min-height:2.7em; }
.service-ribbon-card:hover { color:#ffcf55; }
.showcase-btn { min-height:56px; padding:.9rem 1.25rem; border-radius:12px; box-shadow:0 7px 18px rgba(0,0,0,.12); }
.showcase-btn--orange { box-shadow:0 8px 22px rgba(255,105,0,.22); }
@media (max-width:1200px) {
  .showcase-copy { width:70%; padding:3.4rem 2rem 3rem; }
  .showcase-brand-panel { width:32%; }
  .showcase-photo .showcase-arrow--next { right:calc(32% + 10px); }
  .showcase-large-logo { max-height:320px; }
  .service-ribbon { grid-template-columns:repeat(5,minmax(0,1fr)); row-gap:1rem; }
}
@media (max-width:850px) {
  .showcase-main { display:flex; flex-direction:column; }
  .showcase-photo { min-height:760px; }
  .showcase-copy { width:100%; padding:3.2rem 1.35rem 4rem; }
  .showcase-copy h1 { font-size:clamp(2.35rem,8vw,3.5rem); }
  .showcase-brand-panel { position:relative; inset:auto; width:100%; min-height:0; padding:1.4rem 1.2rem 1.7rem; background:linear-gradient(90deg,rgba(5,25,54,.94),rgba(5,25,54,.82)); }
  .showcase-large-logo { width:min(76%,330px); max-height:250px; }
  .showcase-signature { font-size:clamp(1.5rem,5vw,2.2rem); }
  .showcase-photo .showcase-arrow--next { right:12px; }
  .service-ribbon { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; padding:1rem; }
  .service-ribbon-card img { aspect-ratio:1.35/1; }
}
@media (max-width:480px) {
  .showcase-photo { min-height:790px; }
  .showcase-copy { padding:2.5rem 1rem 3.5rem; }
  .showcase-copy > p { font-size:1rem; }
  .showcase-benefits { gap:.45rem; }
  .showcase-actions { flex-direction:column; align-items:stretch; }
  .showcase-btn { width:100%; justify-content:center; }
  .showcase-location { font-size:.85rem; }
  .service-ribbon { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (prefers-reduced-motion:reduce) {
  .showcase-photo .hero-slide, .service-ribbon-card img { transition:none; }
}


/* FASE 15 — cartões de serviços com imagens individuais e acabamento consistente */
.service-ribbon { align-items:stretch; }
.service-ribbon-card { display:flex; flex-direction:column; overflow:hidden; padding:0 0 .75rem; background:#fff; color:#0a2a5c; border:1px solid rgba(255,255,255,.72); border-radius:13px; box-shadow:0 5px 16px rgba(0,0,0,.16); font-size:clamp(.72rem,.88vw,.9rem); font-weight:750; }
.service-ribbon-card img { width:100%; aspect-ratio:1/1; margin:0 0 .65rem; border:0; border-radius:0; object-fit:cover; background:#f3f5f8; }
.service-ribbon-card span { display:flex; align-items:center; justify-content:center; min-height:2.8em; padding:0 .3rem; color:#0a2a5c; }
.service-ribbon-card:hover { color:#0a2a5c; transform:translateY(-2px); }
.service-ribbon-card:hover img { transform:none; }
.showcase-brand-panel { background:linear-gradient(90deg,rgba(5,25,54,.02),rgba(5,25,54,.10)); }
.showcase-signature { font-family:"Brush Script MT","Segoe Script",cursive; font-size:clamp(1.7rem,2.25vw,2.65rem); letter-spacing:.01em; }
.header-cta span { display:inline-block; margin-right:.4rem; font-size:1.1em; }
@media(max-width:1200px){.service-ribbon-card{font-size:.9rem}.service-ribbon-card img{aspect-ratio:1.35/1}}
@media(max-width:850px){.showcase-brand-panel{background:linear-gradient(90deg,rgba(5,25,54,.12),rgba(5,25,54,.2))}.service-ribbon{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:600px){.service-ribbon{display:flex;gap:.8rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:1rem;}.service-ribbon-card{flex:0 0 138px;scroll-snap-align:start;font-size:.8rem}.service-ribbon-card img{aspect-ratio:1/1}.showcase-copy{width:100%}.showcase-brand-panel{min-height:280px}}

/* Fase 17 — neutraliza alturas antigas que ampliavam e cortavam as fotografias */
@media (min-width: 851px) {
  .showcase-main, .showcase-photo { min-height: clamp(390px, 35vw, 500px) !important; }
  .showcase-photo .hero-slide { object-fit: cover !important; object-position: center !important; }
  .showcase-copy { width: min(69%, 980px); padding-top: clamp(1.6rem, 3vw, 2.7rem) !important; padding-bottom: 1.8rem !important; }
}
@media (max-width: 850px) {
  .showcase-main { min-height: 0 !important; }
  .showcase-photo { min-height: 0 !important; }
  .showcase-copy { width: 100% !important; padding: 2rem 1.2rem 2.2rem !important; }
  .showcase-brand-panel { display: none !important; }
}


/* Fase 18 — menu que acompanha a direção da rolagem e cards sem caixa branca */
.site-header {
  position: sticky;
  top: 0;
  z-index: 1200;
  transform: translateY(0);
  transition: transform .28s ease, box-shadow .28s ease;
  will-change: transform;
}
.site-header.is-hidden-on-scroll {
  transform: translateY(-110%);
  box-shadow: none;
}
.service-ribbon-card {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  overflow: visible !important;
  padding: 0 !important;
  background: transparent !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  text-decoration: none;
}
.service-ribbon-card img {
  display: block;
  width: 100%;
  aspect-ratio: 1.35 / 1 !important;
  height: auto !important;
  max-height: 84px;
  object-fit: cover;
  object-position: center;
  border: 0 !important;
  border-radius: 0 !important;
  margin: 0 0 .45rem !important;
  background: transparent !important;
  box-shadow: none !important;
}
.service-ribbon-card span {
  display: block !important;
  width: 100%;
  min-height: 2.4em !important;
  padding: .1rem .1rem .2rem !important;
  color: #fff !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  text-align: center;
}
@media (prefers-reduced-motion: reduce) {
  .site-header { transition: none; }
}

/* CHECKPOINT 06 — mobile-first hardening, all pages */
:root { color-scheme: light; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: 76px; }
body { min-width: 320px; overflow-wrap: break-word; }
main, section, article, header, footer, nav, .container, .header-inner { min-width: 0; }
.container { width: min(100% - 32px, var(--bs-container, 1160px)); }
img, video, iframe, canvas, svg { max-width: 100%; }
video, iframe { display: block; }
button, a, input, select, textarea { touch-action: manipulation; }
button, .btn, .filter-button, .menu-toggle { min-height: 44px; }
input, select, textarea { font-size: 16px; }
.site-header { isolation: isolate; }
.header-inner { gap: .75rem; }
.site-nav { min-width: 0; }
.site-nav a { line-height: 1.35; }
.hero-grid > *, .grid > *, .footer-grid > *, .contact-layout > *, .form-grid > *, .portfolio-grid > *, .gallery-grid > * { min-width: 0; }
pre, code { white-space: pre-wrap; overflow-wrap: anywhere; }
.table-wrap, table { max-width: 100%; }
@media (max-width: 760px) {
  html { scroll-padding-top: 68px; }
  .container { width: min(100% - 28px, var(--bs-container, 1160px)); }
  .header-inner { display: flex; flex-wrap: wrap; min-height: 68px; padding-block: .45rem; }
  .brand { max-width: calc(100% - 96px); gap: .5rem; }
  .brand-mark { flex: 0 0 40px; width: 40px; height: 40px; }
  .brand-wordmark { min-width: 0; overflow-wrap: anywhere; }
  .menu-toggle { flex: 0 0 auto; min-width: 44px; padding: .55rem .7rem; }
  .site-nav { order: 10; display: none; flex: 1 0 100%; width: 100%; max-height: min(70vh, 520px); overflow-y: auto; overscroll-behavior: contain; padding: .5rem; border-radius: 12px; background: #fff; box-shadow: 0 12px 30px rgba(10,42,92,.12); }
  .site-nav.is-open { display: flex; }
  .site-nav a { display: flex; align-items: center; min-height: 44px; padding: .7rem .8rem; border-radius: 8px; }
  .site-nav a:active { background: #f4f6f9; }
  .header-cta { display: none !important; }
  .hero, .section { padding-block: clamp(2rem, 8vw, 3.2rem); }
  .hero-grid { grid-template-columns: minmax(0,1fr); gap: 1.5rem; }
  h1 { font-size: clamp(2rem, 8.5vw, 3.2rem); line-height: 1.08; overflow-wrap: anywhere; }
  h2 { font-size: clamp(1.55rem, 6.2vw, 2.2rem); }
  h3 { font-size: 1.12rem; }
  .lead { font-size: 1.05rem; }
  .hero-art { min-height: 220px; padding: 1.25rem; border-radius: 18px; }
  .grid, .footer-grid, .form-grid, .contact-layout { grid-template-columns: minmax(0,1fr) !important; }
  .card { padding: 1.15rem; }
  .btn-row { flex-direction: column; align-items: stretch; }
  .btn-row .btn, .cta-band .btn { width: 100%; }
  .cta-band { flex-direction: column; align-items: stretch; gap: 1rem; padding: 1.25rem; border-radius: 14px; }
  .breadcrumbs { font-size: .84rem; }
  .breadcrumbs ol { row-gap: .25rem; }
  .floating-whatsapp { right: 12px; bottom: 12px; padding: .72rem .9rem; font-size: .9rem; }
  .back-to-top { right: 14px; bottom: 76px; }
  .site-footer { padding-top: 2.2rem; }
  .footer-grid { gap: 1.3rem; }
  .contact-panel, .contact-form { padding: 1rem; }
  .showcase-copy { width: 100% !important; max-width: 100%; padding: 1.6rem 1rem 2rem !important; }
  .showcase-main, .showcase-photo { min-height: 0 !important; }
  .showcase-photo .hero-slide { min-height: 240px; max-height: 48vh; object-fit: cover; }
  .service-ribbon { display: flex; overflow-x: auto; gap: .75rem; padding: .8rem 0 1rem; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; }
  .service-ribbon-card { flex: 0 0 min(36vw, 150px); scroll-snap-align: start; }
  .service-ribbon-card img { max-height: none; aspect-ratio: 1.2 / 1 !important; }
  .portfolio-hero, .portfolio-intro, .portfolio-featured, .portfolio-gallery { min-width: 0; }
  .portfolio-featured video, .portfolio-featured iframe, .video-featured video, .video-featured iframe { width: 100%; aspect-ratio: 16 / 9; height: auto; max-height: 70vh; object-fit: contain; background: #061a35; }
  .portfolio-grid, .gallery-grid, .home-gallery-grid { grid-template-columns: repeat(2, minmax(0,1fr)) !important; gap: .7rem; }
  .portfolio-card, .gallery-card { min-width: 0; }
  .portfolio-card img, .gallery-card img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
  .filter-bar, .portfolio-filters { display: flex; max-width: 100%; overflow-x: auto; gap: .5rem; padding: .25rem 0 .75rem; white-space: nowrap; -webkit-overflow-scrolling: touch; }
  .filter-button { flex: 0 0 auto; }
  .section-heading { text-align: left; }
}
@media (max-width: 390px) {
  .container { width: calc(100% - 24px); }
  .brand small, .brand-wordmark small { letter-spacing: .04em; }
  .portfolio-grid, .gallery-grid, .home-gallery-grid { grid-template-columns: minmax(0,1fr) !important; }
  .service-ribbon-card { flex-basis: 128px; }
  .breadcrumbs { overflow-wrap: anywhere; }
}
@media (max-width: 760px) and (orientation: landscape) {
  .showcase-photo .hero-slide { max-height: 58vh; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* CHECKPOINT 09 — refinamento mobile: overrides finais */
@media (max-width: 760px) {
  .header-inner { display:flex; align-items:center; flex-wrap:wrap; gap:.65rem; }
  .brand { margin-right:auto; }
  .menu-toggle { margin-left:0; flex:0 0 auto; }
  .site-nav { order:10; flex:1 0 100%; width:100%; margin:0; padding:.45rem; }
  .site-nav a { width:100%; justify-content:flex-start; text-align:left; }
  .site-nav a[href="contato.html"] { margin-top:.15rem; }
  .header-cta { order:11; display:none !important; width:100%; justify-content:center; margin:0; }
  .site-nav.is-open + .header-cta { display:flex !important; }

  /* Mobile: fotografia primeiro, texto em painel opaco abaixo, sem texto cobrindo o trabalho. */
  .showcase-main { display:flex !important; flex-direction:column !important; position:relative; }
  .showcase-photo { position:relative !important; display:flex; flex-direction:column; min-height:0 !important; overflow:hidden; background:#0a2a5c; }
  .showcase-photo .hero-slide { position:relative !important; inset:auto !important; display:none; width:100%; height:clamp(230px, 68vw, 340px) !important; min-height:0 !important; max-height:none !important; object-fit:cover !important; object-position:center 38% !important; }
  .showcase-photo .hero-slide.is-active { display:block !important; }
  .showcase-photo-shade { display:none !important; }
  .showcase-copy { position:relative !important; inset:auto !important; width:100% !important; max-width:none !important; padding:1.25rem 1rem 1.5rem !important; background:linear-gradient(145deg,#071a36,#0a2a5c) !important; color:#fff; }
  .showcase-copy h1 { font-size:clamp(2rem,8.2vw,2.7rem) !important; line-height:1.04 !important; margin:.55rem 0 .75rem !important; }
  .showcase-copy p { font-size:1rem !important; line-height:1.5 !important; }
  .showcase-benefits { display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:1rem .5rem !important; margin:1.15rem 0 !important; }
  .showcase-benefits > div { min-width:0; }
  .showcase-actions { display:grid !important; grid-template-columns:1fr !important; gap:.65rem !important; }
  .showcase-btn { width:100% !important; min-height:52px; justify-content:center; box-sizing:border-box; }
  .showcase-location { font-size:.85rem !important; line-height:1.45 !important; margin-top:1rem !important; overflow-wrap:anywhere; }
  .hero-carousel-dots { position:absolute !important; top:calc(clamp(230px, 68vw, 340px) - 36px) !important; bottom:auto !important; left:50% !important; transform:translateX(-50%); display:flex !important; align-items:center; justify-content:center; gap:.45rem !important; padding:.35rem .55rem; background:rgba(5,20,42,.58); border:1px solid rgba(255,255,255,.28); border-radius:999px; z-index:8; }
  .hero-carousel-dot { width:8px !important; height:8px !important; min-width:8px; padding:0 !important; border:0 !important; border-radius:50% !important; background:rgba(255,255,255,.68) !important; box-shadow:none !important; transform:none !important; }
  .hero-carousel-dot.is-active { width:20px !important; border-radius:999px !important; background:#ffcf55 !important; }
  .showcase-photo .showcase-arrow { top:clamp(115px, 34vw, 165px) !important; bottom:auto !important; z-index:9; }
  .showcase-photo .showcase-arrow--prev { left:10px !important; }
  .showcase-photo .showcase-arrow--next { right:10px !important; }
  .showcase-brand-panel { min-height:0 !important; padding:1.5rem 1rem !important; }
  .showcase-large-logo { max-width:min(76%, 270px) !important; }
  .showcase-signature { font-size:clamp(1.7rem,7vw,2.3rem) !important; text-align:center; }
  .service-ribbon { padding:.85rem 1rem 1rem !important; }
  .service-ribbon-card { flex:0 0 142px !important; }
  .floating-whatsapp { z-index:50; right:12px !important; bottom:12px !important; }
}
@media (max-width: 390px) {
  .showcase-copy { padding:1.1rem .85rem 1.25rem !important; }
  .showcase-benefits { gap:.85rem .35rem !important; }
  .showcase-benefits strong { font-size:.88rem; }
  .showcase-benefits small { font-size:.8rem; }
  .showcase-location { padding-right:0; }
}

/* CHECKPOINT 10 — ajuste fino solicitado: hierarquia mobile, navegação e controles proporcionais */
/* Indicadores discretos e setas equilibradas em desktop e mobile */
.hero-carousel-dots { gap: .35rem !important; padding: .42rem .58rem !important; }
.hero-carousel-dot { width: 9px !important; height: 9px !important; min-width: 9px !important; min-height: 9px !important; padding: 0 !important; border: 0 !important; box-shadow: none !important; }
.hero-carousel-dot.is-active { width: 15px !important; height: 9px !important; min-width: 15px !important; border-radius: 99px !important; transform:none !important; }
.showcase-arrow { width: 44px !important; height: 44px !important; min-width:44px !important; min-height:44px !important; padding:10px !important; border-width:1.5px !important; box-shadow:0 4px 12px rgba(0,0,0,.18) !important; }
.showcase-arrow svg { width:19px !important; height:19px !important; }
.header-cta span { display:inline-flex; align-items:center; justify-content:center; font-size:0 !important; width:18px; height:18px; margin-right:.35rem; }
.header-cta span::before { content:""; display:block; width:16px; height:16px; border:1.8px solid currentColor; border-radius:3px; background:linear-gradient(currentColor,currentColor) 4px 4px/2px 2px no-repeat,linear-gradient(currentColor,currentColor) 9px 4px/2px 2px no-repeat,linear-gradient(currentColor,currentColor) 4px 9px/2px 2px no-repeat,linear-gradient(currentColor,currentColor) 9px 9px/2px 2px no-repeat; }
@media (max-width:760px) {
  /* A ordem da versão mobile é: texto e chamadas primeiro; fotografia/carrossel depois. */
  .showcase-main { display:block !important; }
  .showcase-photo { display:flex !important; flex-direction:column !important; overflow:hidden !important; }
  .showcase-copy { order:1 !important; }
  .showcase-photo .hero-slide { order:2 !important; height:clamp(210px,64vw,300px) !important; max-height:none !important; object-fit:cover !important; object-position:center 40% !important; }
  .showcase-photo .showcase-copy { position:relative !important; }
  .hero-carousel-dots { top:auto !important; bottom:clamp(210px,64vw,300px) !important; margin-bottom:10px !important; left:50% !important; transform:translateX(-50%) !important; padding:.32rem .48rem !important; gap:.32rem !important; }
  .hero-carousel-dot { width:7px !important; height:7px !important; min-width:7px !important; min-height:7px !important; }
  .hero-carousel-dot.is-active { width:13px !important; height:7px !important; min-width:13px !important; }
  .showcase-photo .showcase-arrow { top:auto !important; bottom:calc(clamp(210px,64vw,300px) + (clamp(210px,64vw,300px) / 2) - 22px) !important; width:40px !important; height:40px !important; min-width:40px !important; min-height:40px !important; padding:9px !important; }
  .showcase-photo .showcase-arrow--prev { left:10px !important; }
  .showcase-photo .showcase-arrow--next { right:10px !important; }
  .site-nav { max-height:calc(100dvh - 150px) !important; overflow-y:auto !important; }
  .site-nav a[href="contato.html"] { order:99 !important; margin-top:.25rem !important; border-top:1px solid #e1e5ea !important; padding-top:.9rem !important; }
  .site-nav.is-open + .header-cta { display:flex !important; width:100% !important; order:11 !important; margin:.25rem 0 0 !important; justify-content:center !important; border-radius:12px !important; }
  .header-cta { min-height:48px !important; }
  .floating-whatsapp { max-width:calc(100vw - 24px) !important; z-index:45 !important; }
  .showcase-location { max-width:100%; }
}
@media (min-width:761px) {
  .hero-carousel-dots { bottom:20px !important; top:auto !important; }
  .showcase-arrow { z-index:10; }
}


/* CHECKPOINT 12 — controles do carrossel mobile sem sobrepor o texto */
@media (max-width: 760px) {
  .showcase-photo .showcase-arrow {
    top: auto !important;
    bottom: calc(clamp(210px, 64vw, 300px) / 2 - 22px) !important;
    width: 38px !important; height: 38px !important; min-width: 38px !important; min-height: 38px !important;
    padding: 8px !important; z-index: 12 !important;
    background: rgba(5, 24, 52, .88) !important;
  }
  .showcase-photo .showcase-arrow--prev { left: 9px !important; }
  .showcase-photo .showcase-arrow--next { right: 9px !important; }
  .hero-carousel-dots {
    bottom: 10px !important; top: auto !important; margin: 0 !important;
    z-index: 13 !important;
  }
}

/* CHECKPOINT 12 — cartões de vídeo com títulos editoriais e leitura confortável */
.portfolio-card-title { overflow-wrap: anywhere; }
@media (max-width: 520px) {
  .portfolio-card-title, .portfolio-card h3 { line-height: 1.25; }
  .portfolio-feature-media { aspect-ratio: 16 / 9; }
  .portfolio-feature-media img { width: 100%; height: 100%; object-fit: cover; }
}


/* Checkpoint 13 — navegação mobile persistente e WhatsApp sem sobreposição */
@media (max-width: 850px) {
  .site-header, header.site-header {
    position: sticky !important;
    top: 0 !important;
    transform: translateY(0) !important;
    visibility: visible !important;
    pointer-events: auto !important;
    z-index: 1200 !important;
  }
  .site-header.is-hidden-on-scroll {
    transform: translateY(0) !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }
}
.floating-whatsapp {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transform: translateY(12px) scale(.98);
  transition: opacity .22s ease, transform .22s ease, visibility .22s ease !important;
}
.floating-whatsapp.is-visible {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: translateY(0) scale(1);
}
@media (prefers-reduced-motion: reduce) {
  .floating-whatsapp { transition: none !important; }
}

/* CHECKPOINT 16 — refinamento cirúrgico exclusivo da primeira dobra mobile */
@media (max-width: 760px) {
  /* Mantém a ordem aprovada: texto e chamadas primeiro, fotografia depois. */
  .home-showcase { overflow: clip; }
  .showcase-main {
    display: block !important;
    position: relative !important;
    min-width: 0 !important;
    overflow: hidden !important;
  }
  .showcase-photo {
    display: flex !important;
    flex-direction: column !important;
    position: relative !important;
    width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: hidden !important;
    border-radius: 0 !important;
    background: #071a36 !important;
  }
  .showcase-photo .hero-slide {
    position: relative !important;
    inset: auto !important;
    order: 2 !important;
    display: none !important;
    width: 100% !important;
    height: clamp(210px, 64vw, 300px) !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    flex: 0 0 auto !important;
    object-fit: cover !important;
    object-position: center 38% !important;
  }
  .showcase-photo .hero-slide.is-active { display: block !important; }
  .showcase-photo .showcase-copy {
    position: relative !important;
    inset: auto !important;
    order: 1 !important;
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: clamp(1.1rem, 4vw, 1.45rem) clamp(.85rem, 4.5vw, 1.15rem) 1.25rem !important;
    background: linear-gradient(145deg, #071a36, #0a2a5c) !important;
    color: #fff !important;
    box-sizing: border-box !important;
  }
  .showcase-photo-shade, .showcase-brand-panel { display: none !important; }
  .showcase-copy .showcase-eyebrow {
    display: block !important;
    font-size: clamp(.68rem, 2.8vw, .78rem) !important;
    line-height: 1.35 !important;
    letter-spacing: .075em !important;
    overflow-wrap: normal !important;
  }
  .showcase-copy h1 {
    max-width: 100% !important;
    font-size: clamp(1.9rem, 8vw, 2.45rem) !important;
    line-height: 1.04 !important;
    margin: .55rem 0 .7rem !important;
    overflow-wrap: normal !important;
  }
  .showcase-copy > p {
    max-width: 100% !important;
    margin: 0 !important;
    font-size: clamp(.94rem, 4vw, 1rem) !important;
    line-height: 1.48 !important;
  }
  .showcase-benefits {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 1rem .6rem !important;
    width: 100% !important;
    margin: 1.15rem 0 1.25rem !important;
    padding: 0 !important;
  }
  .showcase-benefits > div {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: .18rem !important;
    min-width: 0 !important;
    text-align: center !important;
  }
  .showcase-benefits .benefit-icon {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 30px !important;
    height: 30px !important;
    margin: 0 0 .15rem !important;
    color: #ffcf55 !important;
  }
  .showcase-benefits .benefit-icon svg {
    display: block !important;
    width: 25px !important;
    height: 25px !important;
    max-width: 25px !important;
    max-height: 25px !important;
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 1.7 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
  }
  .showcase-benefits strong { font-size: .9rem !important; line-height: 1.25 !important; }
  .showcase-benefits small { font-size: .8rem !important; line-height: 1.3 !important; }
  .showcase-actions {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: .65rem !important;
    width: 100% !important;
    margin: 0 !important;
  }
  .showcase-actions .showcase-btn {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    position: relative !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 51px !important;
    margin: 0 !important;
    padding: .8rem 2.6rem .8rem 1rem !important;
    box-sizing: border-box !important;
    border-radius: 12px !important;
    font-size: .95rem !important;
    line-height: 1.2 !important;
    text-align: center !important;
    white-space: normal !important;
  }
  .showcase-actions .showcase-btn--orange {
    background: #ff7900 !important;
    border: 1px solid #ffb24d !important;
    color: #fff !important;
  }
  .showcase-actions .showcase-btn--outline {
    background: #071a36 !important;
    border: 1px solid #ffcf55 !important;
    color: #fff !important;
  }
  .showcase-actions .showcase-btn .btn-icon,
  .showcase-actions .showcase-btn .btn-icon svg {
    flex: 0 0 auto !important;
    width: 20px !important;
    height: 20px !important;
    color: #fff !important;
    stroke: currentColor !important;
  }
  .showcase-actions .showcase-btn b {
    position: absolute !important;
    right: 1rem !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    font-size: 1.35rem !important;
    line-height: 1 !important;
  }
  .showcase-location {
    margin: 1rem 0 0 !important;
    padding: 0 !important;
    max-width: 100% !important;
    font-size: .8rem !important;
    line-height: 1.45 !important;
    overflow-wrap: anywhere !important;
  }
  /* Os controles ficam ancorados à fotografia, nunca à área dos benefícios. */
  .showcase-photo .showcase-arrow--prev {
    position: absolute !important;
    top: auto !important;
    bottom: calc(clamp(210px, 64vw, 300px) / 2 - 19px) !important;
    left: 9px !important;
    right: auto !important;
    z-index: 15 !important;
    width: 38px !important; height: 38px !important;
    min-width: 38px !important; min-height: 38px !important;
    padding: 8px !important;
    border: 1.5px solid #ffcf55 !important;
    border-radius: 50% !important;
    background: rgba(5, 24, 52, .88) !important;
    color: #ffcf55 !important;
  }
  .showcase-main > .showcase-arrow--next {
    position: absolute !important;
    top: auto !important;
    bottom: calc(clamp(210px, 64vw, 300px) / 2 - 19px) !important;
    right: 9px !important;
    left: auto !important;
    z-index: 15 !important;
    width: 38px !important; height: 38px !important;
    min-width: 38px !important; min-height: 38px !important;
    padding: 8px !important;
    border: 1.5px solid #ffcf55 !important;
    border-radius: 50% !important;
    background: rgba(5, 24, 52, .88) !important;
    color: #ffcf55 !important;
  }
  .showcase-arrow svg { width: 19px !important; height: 19px !important; }
  .hero-carousel-dots {
    position: absolute !important;
    top: auto !important;
    bottom: 9px !important;
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: .35rem !important;
    margin: 0 !important;
    padding: .32rem .48rem !important;
    border: 1px solid rgba(255,255,255,.25) !important;
    border-radius: 999px !important;
    background: rgba(5,20,42,.65) !important;
    z-index: 14 !important;
  }
  .hero-carousel-dot { width: 7px !important; height: 7px !important; min-width: 7px !important; min-height: 7px !important; padding: 0 !important; border: 0 !important; border-radius: 50% !important; background: rgba(255,255,255,.72) !important; }
  .hero-carousel-dot.is-active { width: 14px !important; min-width: 14px !important; border-radius: 99px !important; background: #ffcf55 !important; }
  .floating-whatsapp {
    right: 12px !important;
    bottom: 12px !important;
    z-index: 45 !important;
    max-width: calc(100vw - 24px) !important;
  }
}
@media (max-width: 390px) {
  .showcase-copy { padding-left: .85rem !important; padding-right: .85rem !important; }
  .showcase-benefits { gap: .85rem .35rem !important; }
  .showcase-benefits strong { font-size: .86rem !important; }
  .showcase-benefits small { font-size: .76rem !important; }
  .showcase-actions .showcase-btn { font-size: .9rem !important; }
}

/* CHECKPOINT 18 — refinamento visual V3: hero mobile, setas e CTA */
.header-cta { gap:.58rem !important; min-height:48px !important; padding:.78rem 1.15rem !important; border-radius:12px !important; font-weight:800 !important; box-shadow:0 7px 18px rgba(255,105,0,.18) !important; }
.header-cta > span { display:inline-flex !important; align-items:center; justify-content:center; width:19px; height:19px; flex:0 0 19px; }
.header-cta > span svg { width:100%; height:100%; display:block; stroke:currentColor; fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.showcase-arrow { width:44px !important; height:44px !important; border:1.5px solid #f6c64b !important; background:rgba(5,23,49,.9) !important; color:#ffd15d !important; box-shadow:0 5px 16px rgba(0,0,0,.28) !important; display:grid !important; place-items:center !important; padding:0 !important; }
.showcase-arrow svg { width:20px !important; height:20px !important; fill:none !important; stroke:currentColor !important; stroke-width:2.2 !important; stroke-linecap:round !important; stroke-linejoin:round !important; }
.showcase-arrow:hover,.showcase-arrow:focus-visible { background:#ffd15d !important; color:#061b3b !important; }
.hero-carousel-dots { gap:.42rem !important; padding:.38rem .58rem !important; background:rgba(4,18,39,.72) !important; border:1px solid rgba(255,209,93,.45) !important; border-radius:999px !important; }
.hero-carousel-dot { width:8px !important; height:8px !important; min-width:8px !important; min-height:8px !important; border:0 !important; border-radius:50% !important; background:rgba(255,255,255,.72) !important; transform:none !important; }
.hero-carousel-dot.is-active { width:17px !important; min-width:17px !important; height:8px !important; border-radius:999px !important; background:#ffd15d !important; }
@media(max-width:760px) {
  .showcase-main { display:block !important; min-height:0 !important; }
  .showcase-photo { position:relative !important; display:block !important; width:100% !important; min-height:0 !important; height:auto !important; overflow:hidden !important; isolation:isolate !important; background:#061b3b !important; }
  .showcase-photo .hero-slide { position:absolute !important; inset:0 !important; display:block !important; width:100% !important; height:100% !important; min-height:100% !important; max-height:none !important; object-fit:cover !important; object-position:70% center !important; opacity:0 !important; visibility:hidden !important; z-index:-2 !important; }
  .showcase-photo .hero-slide.is-active { opacity:1 !important; visibility:visible !important; }
  .showcase-photo-shade { display:block !important; position:absolute !important; inset:0 !important; z-index:-1 !important; pointer-events:none !important; background:linear-gradient(90deg,rgba(4,19,42,.98) 0%,rgba(4,19,42,.93) 36%,rgba(4,19,42,.70) 61%,rgba(4,19,42,.36) 100%),linear-gradient(0deg,rgba(4,19,42,.92) 0%,rgba(4,19,42,.10) 58%,rgba(4,19,42,.20) 100%) !important; }
  .showcase-copy { position:relative !important; z-index:2 !important; width:100% !important; max-width:none !important; padding:1.65rem 1rem 1.55rem !important; }
  .showcase-eyebrow { max-width:76%; margin:0 0 .8rem !important; font-size:.68rem !important; line-height:1.45 !important; letter-spacing:.055em !important; }
  .showcase-copy h1 { max-width:78% !important; margin:0 0 .7rem !important; font-size:clamp(2rem,8.3vw,2.65rem) !important; line-height:1.04 !important; letter-spacing:-.045em !important; }
  .showcase-copy > p { max-width:82% !important; font-size:.96rem !important; line-height:1.45 !important; }
  .showcase-benefits { display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:.95rem .7rem !important; max-width:340px !important; margin:1.15rem 0 0 !important; }
  .showcase-benefits > div { align-items:center !important; text-align:center !important; padding:.1rem .15rem !important; }
  .benefit-icon { display:grid !important; place-items:center !important; min-height:32px !important; height:32px !important; font-size:1.8rem !important; }
  .benefit-icon svg { width:25px !important; height:25px !important; stroke:currentColor !important; fill:none !important; stroke-width:1.8 !important; stroke-linecap:round !important; stroke-linejoin:round !important; }
  .showcase-benefits strong { margin-top:.22rem !important; font-size:.82rem !important; }
  .showcase-benefits small { margin-top:.12rem !important; font-size:.74rem !important; line-height:1.32 !important; }
  .showcase-actions { display:flex !important; flex-direction:column !important; gap:.65rem !important; margin-top:1.15rem !important; width:min(100%,420px) !important; }
  .showcase-actions .showcase-btn { position:relative !important; display:flex !important; width:100% !important; min-width:0 !important; min-height:52px !important; padding:.82rem 2.9rem .82rem 1rem !important; gap:.65rem !important; justify-content:flex-start !important; border-radius:12px !important; font-size:.91rem !important; line-height:1.2 !important; }
  .showcase-actions .showcase-btn .btn-icon,.showcase-actions .showcase-btn .btn-icon svg { width:21px !important; height:21px !important; flex:0 0 21px !important; }
  .showcase-actions .showcase-btn b { right:1rem !important; top:50% !important; transform:translateY(-50%) !important; }
  .showcase-location { max-width:420px !important; margin-top:.9rem !important; font-size:.75rem !important; line-height:1.45 !important; }
  .showcase-photo .showcase-arrow--prev { top:1rem !important; right:3.75rem !important; left:auto !important; bottom:auto !important; width:36px !important; height:36px !important; transform:none !important; }
  .showcase-photo .showcase-arrow--next { top:1rem !important; right:1rem !important; left:auto !important; bottom:auto !important; width:36px !important; height:36px !important; transform:none !important; }
  .showcase-photo .showcase-arrow svg { width:17px !important; height:17px !important; }
  .showcase-photo .hero-carousel-dots { position:absolute !important; top:auto !important; bottom:1rem !important; left:auto !important; right:1rem !important; transform:none !important; z-index:8 !important; }
  .showcase-brand-panel { display:none !important; }
  .floating-whatsapp { z-index:40 !important; right:12px !important; bottom:12px !important; }
}
@media(max-width:390px) {
  .showcase-copy { padding-inline:.85rem !important; }
  .showcase-eyebrow { max-width:74%; font-size:.64rem !important; }
  .showcase-copy h1 { max-width:80% !important; font-size:clamp(1.85rem,8vw,2.2rem) !important; }
  .showcase-copy > p { max-width:86% !important; font-size:.9rem !important; }
  .showcase-benefits { gap:.8rem .45rem !important; }
  .showcase-actions .showcase-btn { min-height:49px !important; font-size:.86rem !important; }
}
@media(prefers-reduced-motion:reduce) { .showcase-arrow,.hero-carousel-dot,.showcase-btn { transition:none !important; } }

/* CHECKPOINT 21 — Master V5.0: sistema visual refinado para controles e hero */
:root {
  --bs-gold: #F6C64B;
  --bs-gold-deep: #D9A52E;
  --bs-navy-deep: #061A38;
  --bs-focus-ring: 0 0 0 3px rgba(246,198,75,.38);
}
/* Todos os controles usam a mesma lógica de alinhamento e foco. */
.showcase-btn,
.header-cta,
.menu-toggle,
.showcase-arrow,
.hero-carousel-dot,
.portfolio-feature-media,
.portfolio-media,
.portfolio-play span,
.portfolio-feature-play span,
.portfolio-lightbox-close,
.portfolio-lightbox-nav,
.back-to-top {
  -webkit-tap-highlight-color: transparent;
}
.showcase-btn:focus-visible,
.header-cta:focus-visible,
.menu-toggle:focus-visible,
.showcase-arrow:focus-visible,
.hero-carousel-dot:focus-visible,
.portfolio-feature-media:focus-visible,
.portfolio-media:focus-visible,
.portfolio-lightbox-close:focus-visible,
.portfolio-lightbox-nav:focus-visible,
.back-to-top:focus-visible {
  outline: 3px solid var(--bs-gold) !important;
  outline-offset: 3px !important;
  box-shadow: var(--bs-focus-ring) !important;
}
.showcase-btn {
  gap: .68rem !important;
  min-height: 52px !important;
  border-radius: 12px !important;
  padding: .82rem 1rem !important;
  font-size: .94rem !important;
  letter-spacing: -.01em;
  box-shadow: 0 5px 16px rgba(0,0,0,.12);
}
.showcase-btn--orange {
  background: linear-gradient(135deg,#ff790b,#ff6500) !important;
  border: 1px solid #ffbd55 !important;
  color: #fff !important;
}
.showcase-btn--orange:hover { background: linear-gradient(135deg,#ff861f,#f45c00) !important; }
.showcase-btn--outline {
  border: 1px solid rgba(246,198,75,.95) !important;
  background: rgba(5,24,53,.86) !important;
  color: #fff !important;
}
.showcase-btn .btn-icon { flex: 0 0 22px !important; width:22px !important; height:22px !important; display:inline-grid !important; place-items:center !important; }
.showcase-btn .btn-icon svg { display:block; width:21px !important; height:21px !important; }
.showcase-btn--orange b { flex:0 0 20px; margin-left:auto !important; font-size:1.25rem !important; line-height:1 !important; font-weight:600 !important; }
.header-cta {
  min-height:48px !important;
  gap:.55rem !important;
  padding:.72rem 1.05rem !important;
  border-radius:12px !important;
  box-shadow:0 7px 18px rgba(244,119,33,.2) !important;
}
.header-cta span { display:inline-flex !important; width:18px !important; height:18px !important; margin:0 !important; font-size:initial !important; }
.header-cta span::before { content:none !important; }
.header-cta span svg { display:block; width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.menu-toggle { display:none; align-items:center; justify-content:center; gap:.5rem; min-height:44px; padding:.55rem .8rem !important; border:1px solid #d9e1ec !important; border-radius:11px !important; background:#fff !important; color:var(--bs-navy) !important; font-weight:750 !important; }
.menu-toggle svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.showcase-arrow {
  display:grid !important; place-items:center !important;
  width:42px !important; height:42px !important; min-width:42px !important; min-height:42px !important;
  padding:0 !important; border:1px solid rgba(246,198,75,.95) !important;
  border-radius:50% !important; background:rgba(5,24,52,.9) !important;
  color:var(--bs-gold) !important; box-shadow:0 5px 14px rgba(0,0,0,.18) !important;
}
.showcase-arrow svg { width:19px !important; height:19px !important; fill:none !important; stroke:currentColor !important; stroke-width:2 !important; stroke-linecap:round; stroke-linejoin:round; }
.showcase-arrow:hover { background:var(--bs-gold) !important; color:var(--bs-navy-deep) !important; }
.hero-carousel-dots { gap:.38rem !important; padding:.36rem .5rem !important; border-radius:999px !important; }
.hero-carousel-dot { width:8px !important; height:8px !important; min-width:8px !important; min-height:8px !important; border:0 !important; border-radius:99px !important; padding:0 !important; background:rgba(255,255,255,.72) !important; }
.hero-carousel-dot.is-active { width:18px !important; min-width:18px !important; background:var(--bs-gold) !important; }
/* Capa de vídeo: Play vetorial e opticamente centralizado. */
.portfolio-play span,
.portfolio-feature-play span {
  display:grid !important; place-items:center !important;
  width:clamp(54px,5vw,66px) !important; height:clamp(54px,5vw,66px) !important;
  border:1px solid rgba(255,255,255,.88) !important; border-radius:50% !important;
  color:var(--bs-navy-deep) !important;
  background:linear-gradient(145deg,#ffe08a,#ffc84a) !important;
  box-shadow:0 7px 22px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.65) !important;
  transition:transform .18s ease, box-shadow .18s ease !important;
}
.portfolio-item:hover .portfolio-play span,
.portfolio-feature-media:hover .portfolio-feature-play span { transform:scale(1.045); box-shadow:0 10px 28px rgba(0,0,0,.32), inset 0 1px 0 rgba(255,255,255,.7) !important; }
.portfolio-play svg,
.portfolio-feature-play svg { display:block; width:22px !important; height:22px !important; margin-left:3px !important; fill:currentColor; }
.portfolio-feature-play svg { width:25px !important; height:25px !important; }
.portfolio-lightbox-close,
.portfolio-lightbox-nav { display:grid !important; place-items:center !important; padding:0 !important; }
.portfolio-lightbox-close { border-radius:50% !important; color:var(--bs-gold) !important; background:rgba(6,26,56,.97) !important; border:1px solid rgba(246,198,75,.82) !important; font-size:1.35rem !important; }
.portfolio-lightbox-nav { border-radius:50% !important; color:var(--bs-gold) !important; background:rgba(6,26,56,.94) !important; border:1px solid rgba(246,198,75,.82) !important; }
.portfolio-lightbox-nav svg { display:block; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.portfolio-lightbox-media-wrap { background:transparent !important; }
.portfolio-lightbox-caption { text-align:left !important; }
.back-to-top { border:1px solid rgba(246,198,75,.65) !important; box-shadow:0 7px 20px rgba(0,0,0,.18) !important; }
@media (max-width:760px) {
  .menu-toggle { display:inline-flex !important; }
  .showcase-copy { padding:1.2rem 1rem 1.35rem !important; }
  .showcase-copy h1 { max-width:100%; font-size:clamp(1.95rem,8vw,2.55rem) !important; line-height:1.06 !important; letter-spacing:-.045em !important; text-wrap:balance; }
  .showcase-eyebrow { display:block; max-width:100%; padding-right:2.7rem; font-size:.68rem !important; line-height:1.4; letter-spacing:.09em !important; }
  .showcase-photo .showcase-arrow { top:auto !important; bottom:calc(clamp(210px,64vw,300px) / 2 - 21px) !important; width:38px !important; height:38px !important; min-width:38px !important; min-height:38px !important; }
  .showcase-photo .showcase-arrow--prev { left:9px !important; right:auto !important; }
  .showcase-photo .showcase-arrow--next { right:9px !important; left:auto !important; }
  .showcase-benefits { gap:.9rem .55rem !important; margin:1.1rem 0 !important; }
  .benefit-icon { width:31px !important; height:31px !important; display:grid !important; place-items:center !important; color:var(--bs-gold) !important; }
  .benefit-icon svg { display:block; width:24px !important; height:24px !important; fill:none !important; stroke:currentColor !important; stroke-width:1.8 !important; stroke-linecap:round; stroke-linejoin:round; }
  .showcase-benefits strong { font-size:.88rem !important; line-height:1.3 !important; }
  .showcase-benefits small { font-size:.78rem !important; line-height:1.4 !important; }
  .showcase-actions { gap:.65rem !important; }
  .showcase-btn { min-height:50px !important; padding:.75rem .85rem !important; font-size:.9rem !important; }
  .floating-whatsapp { right:12px !important; bottom:max(12px,env(safe-area-inset-bottom)) !important; }
  .portfolio-lightbox-dialog { padding-top:2.8rem !important; }
  .portfolio-lightbox-media-wrap { max-height:54dvh !important; }
  .portfolio-lightbox-media,.portfolio-lightbox video.portfolio-lightbox-media,.portfolio-lightbox img.portfolio-lightbox-media { max-height:54dvh !important; }
}
@media (max-width:390px) {
  .showcase-copy { padding-inline:.85rem !important; }
  .showcase-copy h1 { font-size:clamp(1.85rem,7.7vw,2.2rem) !important; }
  .showcase-benefits { gap:.8rem .35rem !important; }
  .showcase-actions { gap:.55rem !important; }
  .showcase-btn { font-size:.86rem !important; }
}
@media (prefers-reduced-motion: reduce) {
  .portfolio-play span,.portfolio-feature-play span,.showcase-btn,.showcase-arrow { transition:none !important; }
}


/* CHECKPOINT 22 — hero mobile com fotografia fixa (sem carrossel no hero mobile) */
.showcase-mobile-portrait { display:none; }
@media (max-width:760px) {
  /* No mobile, a imagem é fixa e independente dos slides desktop. */
  .home-showcase .showcase-main { display:block !important; overflow:hidden !important; background:#071a36 !important; }
  .home-showcase .showcase-photo { display:none !important; }
  .home-showcase .showcase-copy { position:relative !important; display:block !important; width:100% !important; min-height:0 !important; overflow:hidden !important; padding:1.25rem 1rem 1.35rem !important; background:linear-gradient(145deg,#06172f 0%,#0a2a5c 76%,#071a36 100%) !important; }
  .showcase-intro { position:relative !important; display:block !important; min-height:clamp(360px,105vw,420px) !important; isolation:isolate !important; }
  .showcase-intro::after { content:""; position:absolute; z-index:-1; top:0; right:-1rem; bottom:0; width:65%; pointer-events:none; background:linear-gradient(90deg,#071a36 0%,rgba(7,26,54,.94) 8%,rgba(7,26,54,.22) 50%,rgba(7,26,54,0) 100%); }
  .showcase-intro-text { position:relative !important; z-index:2 !important; width:66% !important; max-width:66% !important; padding-top:.15rem !important; }
  .showcase-mobile-portrait { display:block !important; position:absolute !important; z-index:0 !important; top:0 !important; right:-1rem !important; width:56% !important; height:100% !important; object-fit:cover !important; object-position:center top !important; border:0 !important; border-radius:0 !important; opacity:.98 !important; -webkit-mask-image:linear-gradient(to right,transparent 0%,rgba(0,0,0,.35) 13%,#000 34%); mask-image:linear-gradient(to right,transparent 0%,rgba(0,0,0,.35) 13%,#000 34%); }
  .showcase-intro .showcase-eyebrow { max-width:100% !important; padding:0 !important; font-size:clamp(.58rem,2.65vw,.7rem) !important; line-height:1.35 !important; letter-spacing:.045em !important; color:#ffcf55 !important; }
  .showcase-intro h1 { max-width:100% !important; margin:.65rem 0 .75rem !important; font-size:clamp(1.65rem,7.1vw,2.15rem) !important; line-height:1.04 !important; letter-spacing:-.045em !important; overflow-wrap:normal !important; text-wrap:pretty !important; }
  .showcase-intro h1 em { color:#ffcf55 !important; font-style:normal !important; }
  .showcase-intro-text > p { max-width:100% !important; margin:0 !important; font-size:clamp(.82rem,3.5vw,.96rem) !important; line-height:1.48 !important; text-wrap:pretty !important; }
  .showcase-benefits { position:relative !important; z-index:3 !important; display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:1rem .65rem !important; width:100% !important; max-width:none !important; margin:1.05rem 0 1.25rem !important; padding:.9rem 0 0 !important; border-top:1px solid rgba(255,255,255,.12) !important; }
  .showcase-benefits > div { min-width:0 !important; }
  .showcase-benefits .benefit-icon { color:#ffcf55 !important; width:32px !important; height:32px !important; }
  .showcase-benefits .benefit-icon svg { width:25px !important; height:25px !important; stroke-width:1.8 !important; }
  .showcase-benefits strong { color:#fff !important; font-size:.88rem !important; line-height:1.25 !important; }
  .showcase-benefits small { color:rgba(255,255,255,.9) !important; font-size:.78rem !important; line-height:1.35 !important; }
  .showcase-actions { position:relative !important; z-index:4 !important; display:grid !important; grid-template-columns:minmax(0,1fr) !important; gap:.65rem !important; margin:0 !important; }
  .showcase-btn { display:flex !important; width:100% !important; min-width:0 !important; min-height:52px !important; box-sizing:border-box !important; justify-content:flex-start !important; gap:.65rem !important; padding:.8rem .9rem !important; border-radius:13px !important; font-size:.9rem !important; line-height:1.2 !important; }
  .showcase-btn .btn-icon { display:grid !important; place-items:center !important; flex:0 0 25px !important; width:25px !important; height:25px !important; }
  .showcase-btn .btn-icon svg { display:block !important; width:23px !important; height:23px !important; }
  .showcase-btn b { margin-left:auto !important; font-size:1.45rem !important; line-height:1 !important; }
  .showcase-location { position:relative !important; z-index:3 !important; display:flex !important; align-items:flex-start !important; gap:.55rem !important; margin:1rem 0 0 !important; font-size:.8rem !important; line-height:1.45 !important; color:rgba(255,255,255,.9) !important; }
  .showcase-location > span { color:#ffcf55 !important; flex:0 0 auto !important; }
  .home-showcase .showcase-arrow, .home-showcase .hero-carousel-dots { display:none !important; }
  .home-showcase .showcase-brand-panel { display:none !important; }
  .home-showcase .service-ribbon { margin-top:0 !important; }
}
@media (max-width:390px) {
  .home-showcase .showcase-copy { padding:1.05rem .85rem 1.15rem !important; }
  .showcase-intro { min-height:clamp(345px,108vw,390px) !important; }
  .showcase-intro-text { width:68% !important; max-width:68% !important; }
  .showcase-mobile-portrait { width:55% !important; right:-.85rem !important; }
  .showcase-intro h1 { font-size:clamp(1.55rem,7vw,1.85rem) !important; }
  .showcase-intro-text > p { font-size:.82rem !important; }
  .showcase-benefits { gap:.85rem .35rem !important; }
}
@media (min-width:761px) { .showcase-intro { display:contents; } .showcase-mobile-portrait { display:none !important; } }
@media (min-width:761px) { .showcase-intro-text { display:contents !important; } }


/* CHECKPOINT 29 — reconstrução limpa do hero mobile
   Remove as regras conflitantes dos checkpoints 23–28. O hero mobile usa duas colunas
   reais (texto + fotografia), sem máscaras, sem degradê sobre a foto e sem esconder o pai. */
@media (max-width: 760px) {
  .home-showcase {
    display:block !important;
    overflow:hidden !important;
    background:#071a36 !important;
    color:#fff !important;
  }
  .home-showcase .showcase-main {
    display:block !important;
    position:relative !important;
    min-height:0 !important;
    overflow:hidden !important;
    background:#071a36 !important;
  }
  /* O container precisa continuar visível: ele contém TODO o conteúdo do hero no HTML. */
  .home-showcase .showcase-photo {
    display:block !important;
    position:relative !important;
    width:100% !important;
    min-width:0 !important;
    min-height:0 !important;
    height:auto !important;
    max-height:none !important;
    overflow:hidden !important;
    isolation:isolate !important;
    background:#071a36 !important;
  }
  /* No mobile, os slides desktop não são o fundo do hero; a foto dedicada fica na coluna direita. */
  .home-showcase .showcase-photo > .hero-slide,
  .home-showcase .showcase-photo > .showcase-photo-shade,
  .home-showcase .showcase-photo > .showcase-arrow,
  .home-showcase .showcase-photo > .hero-carousel-dots {
    display:none !important;
  }
  .home-showcase .showcase-copy {
    display:block !important;
    position:relative !important;
    inset:auto !important;
    z-index:1 !important;
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    min-height:0 !important;
    height:auto !important;
    margin:0 !important;
    padding:0 16px 22px !important;
    overflow:visible !important;
    background:linear-gradient(180deg,#071a36 0%,#09234a 100%) !important;
    color:#fff !important;
    opacity:1 !important;
    visibility:visible !important;
  }
  .home-showcase .showcase-intro {
    display:grid !important;
    grid-template-columns:minmax(0, 1.12fr) minmax(0, .88fr) !important;
    align-items:stretch !important;
    gap:0 !important;
    position:relative !important;
    isolation:auto !important;
    min-height:0 !important;
    height:clamp(330px, 91vw, 390px) !important;
    margin:0 -16px !important;
    padding:22px 0 0 16px !important;
    overflow:hidden !important;
    background:#071a36 !important;
  }
  .home-showcase .showcase-intro::before,
  .home-showcase .showcase-intro::after {
    content:none !important;
    display:none !important;
    background:none !important;
    -webkit-mask-image:none !important;
    mask-image:none !important;
  }
  .home-showcase .showcase-intro-text {
    display:block !important;
    position:relative !important;
    z-index:1 !important;
    align-self:start !important;
    grid-column:1 !important;
    grid-row:1 !important;
    width:auto !important;
    max-width:none !important;
    min-width:0 !important;
    margin:0 !important;
    padding:0 8px 0 0 !important;
    opacity:1 !important;
    visibility:visible !important;
    text-shadow:none !important;
  }
  .home-showcase .showcase-intro .showcase-eyebrow {
    display:block !important;
    width:auto !important;
    max-width:100% !important;
    margin:0 0 12px !important;
    color:#ffcf55 !important;
    font-size:clamp(8px,2.3vw,10px) !important;
    font-weight:800 !important;
    line-height:1.4 !important;
    letter-spacing:.015em !important;
    overflow-wrap:normal !important;
  }
  .home-showcase .showcase-intro h1 {
    display:block !important;
    width:auto !important;
    max-width:100% !important;
    margin:0 0 12px !important;
    color:#fff !important;
    font-size:clamp(22px,6.25vw,28px) !important;
    line-height:1.07 !important;
    letter-spacing:-.04em !important;
    overflow-wrap:normal !important;
    text-wrap:balance !important;
  }
  .home-showcase .showcase-intro h1 em { color:#ffca50 !important; }
  .home-showcase .showcase-intro-text > p {
    display:block !important;
    width:auto !important;
    max-width:100% !important;
    margin:0 !important;
    color:#f4f6fb !important;
    font-size:clamp(11px,3.05vw,13px) !important;
    line-height:1.48 !important;
    overflow-wrap:normal !important;
  }
  /* Foto sem qualquer transparência: sem opacity reduzida, máscara, blend ou filtro. */
  .home-showcase .showcase-mobile-portrait {
    display:block !important;
    position:relative !important;
    z-index:0 !important;
    grid-column:2 !important;
    grid-row:1 !important;
    align-self:stretch !important;
    justify-self:stretch !important;
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    height:100% !important;
    min-height:0 !important;
    max-height:none !important;
    margin:0 !important;
    padding:0 !important;
    object-fit:cover !important;
    object-position:54% center !important;
    opacity:1 !important;
    filter:none !important;
    mix-blend-mode:normal !important;
    -webkit-mask:none !important;
    mask:none !important;
    -webkit-mask-image:none !important;
    mask-image:none !important;
    background:#e8e9e7 !important;
  }
  .home-showcase .showcase-benefits {
    display:grid !important;
    position:relative !important;
    z-index:1 !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:0 !important;
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:10px 0 0 !important;
    border-top:1px solid rgba(255,255,255,.16) !important;
    background:#09234a !important;
    opacity:1 !important;
    visibility:visible !important;
  }
  .home-showcase .showcase-benefits > div {
    display:grid !important;
    grid-template-columns:38px minmax(0,1fr) !important;
    grid-template-rows:auto auto !important;
    align-items:center !important;
    align-content:center !important;
    column-gap:8px !important;
    min-width:0 !important;
    min-height:72px !important;
    margin:0 !important;
    padding:9px 7px !important;
    border:0 !important;
    border-bottom:1px solid rgba(255,255,255,.12) !important;
    border-radius:0 !important;
    background:transparent !important;
    text-align:left !important;
  }
  .home-showcase .showcase-benefits > div:nth-child(odd) { border-right:1px solid rgba(255,255,255,.12) !important; }
  .home-showcase .showcase-benefits > div:nth-last-child(-n+2) { border-bottom:0 !important; }
  .home-showcase .showcase-benefits .benefit-icon {
    display:grid !important;
    place-items:center !important;
    grid-column:1 !important;
    grid-row:1 / span 2 !important;
    width:34px !important;
    height:34px !important;
    min-height:34px !important;
    margin:0 !important;
    border:1px solid #dcae36 !important;
    border-radius:50% !important;
    background:#071a36 !important;
    color:#ffcf55 !important;
    box-shadow:none !important;
  }
  .home-showcase .showcase-benefits .benefit-icon svg { display:block !important; width:20px !important; height:20px !important; fill:none !important; stroke:currentColor !important; stroke-width:1.8 !important; }
  .home-showcase .showcase-benefits strong { grid-column:2 !important; grid-row:1 !important; margin:0 !important; color:#fff !important; font-size:12px !important; line-height:1.2 !important; text-align:left !important; }
  .home-showcase .showcase-benefits small { grid-column:2 !important; grid-row:2 !important; margin:2px 0 0 !important; color:#e6edf8 !important; font-size:10px !important; line-height:1.25 !important; text-align:left !important; }
  .home-showcase .showcase-actions {
    display:grid !important;
    grid-template-columns:minmax(0,1fr) !important;
    gap:10px !important;
    width:100% !important;
    margin:16px 0 0 !important;
    padding:0 !important;
    opacity:1 !important;
    visibility:visible !important;
  }
  .home-showcase .showcase-btn {
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
    gap:10px !important;
    width:100% !important;
    min-width:0 !important;
    min-height:52px !important;
    margin:0 !important;
    padding:10px 13px !important;
    border-radius:12px !important;
    font-size:14px !important;
    line-height:1.2 !important;
    font-weight:800 !important;
    text-decoration:none !important;
    box-shadow:none !important;
    transform:none !important;
  }
  .home-showcase .showcase-btn--orange { background:#ff7900 !important; border:1px solid #ffb54c !important; color:#fff !important; }
  .home-showcase .showcase-btn--outline { background:#071a36 !important; border:1.5px solid #ffca45 !important; color:#fff !important; }
  .home-showcase .showcase-btn .btn-icon { display:grid !important; place-items:center !important; flex:0 0 24px !important; width:24px !important; height:24px !important; margin:0 !important; color:currentColor !important; }
  .home-showcase .showcase-btn .btn-icon svg { display:block !important; width:22px !important; height:22px !important; fill:none !important; stroke:currentColor !important; stroke-width:1.8 !important; }
  .home-showcase .showcase-btn--outline .btn-icon { color:#ffcf55 !important; }
  .home-showcase .showcase-btn b { display:grid !important; place-items:center !important; flex:0 0 24px !important; min-width:24px !important; height:26px !important; margin-left:auto !important; padding:0 !important; border-left:1px solid rgba(255,255,255,.34) !important; font-size:22px !important; font-weight:500 !important; line-height:1 !important; }
  .home-showcase .showcase-location {
    display:flex !important;
    align-items:flex-start !important;
    gap:8px !important;
    margin:13px 0 0 !important;
    padding:0 !important;
    color:#f4f6fb !important;
    font-size:11px !important;
    line-height:1.45 !important;
    opacity:1 !important;
    visibility:visible !important;
  }
  .home-showcase .showcase-location > span { flex:0 0 auto !important; margin:0 !important; color:#ffcf55 !important; font-size:18px !important; line-height:1.1 !important; }
  .home-showcase .showcase-brand-panel { display:none !important; }
  .home-showcase .service-ribbon { display:flex !important; gap:10px !important; overflow-x:auto !important; padding:12px 12px 14px !important; scroll-snap-type:x mandatory !important; background:#071a36 !important; }
  .home-showcase .service-ribbon-card { flex:0 0 122px !important; scroll-snap-align:start !important; }
}
@media (max-width:390px) {
  .home-showcase .showcase-copy { padding-right:13px !important; padding-left:13px !important; }
  .home-showcase .showcase-intro { grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr) !important; height:clamp(320px,95vw,365px) !important; margin-right:-13px !important; margin-left:-13px !important; padding-left:13px !important; padding-top:20px !important; }
  .home-showcase .showcase-intro-text { padding-right:6px !important; }
  .home-showcase .showcase-intro .showcase-eyebrow { font-size:8px !important; margin-bottom:10px !important; }
  .home-showcase .showcase-intro h1 { font-size:22px !important; margin-bottom:10px !important; }
  .home-showcase .showcase-intro-text > p { font-size:11px !important; line-height:1.42 !important; }
  .home-showcase .showcase-benefits > div { grid-template-columns:32px minmax(0,1fr) !important; column-gap:6px !important; padding:8px 5px !important; }
  .home-showcase .showcase-benefits .benefit-icon { width:30px !important; height:30px !important; min-height:30px !important; }
  .home-showcase .showcase-benefits .benefit-icon svg { width:18px !important; height:18px !important; }
  .home-showcase .showcase-benefits strong { font-size:11px !important; }
  .home-showcase .showcase-benefits small { font-size:9px !important; }
}
@media (min-width:761px) {
  .home-showcase .showcase-mobile-portrait { display:none !important; }
}


/* CHECKPOINT 30 — composição mobile refinada + retrato com fade alfa inferior */
@media (max-width: 760px) {
  .home-showcase .showcase-copy {
    padding: 1rem .85rem 1.05rem !important;
    overflow: visible !important;
    background: linear-gradient(155deg,#06172f 0%,#0a2a5c 100%) !important;
  }
  .home-showcase .showcase-intro {
    display:block !important;
    position:relative !important;
    min-height:clamp(285px,83vw,315px) !important;
    height:clamp(285px,83vw,315px) !important;
    overflow:hidden !important;
    isolation:isolate !important;
    background:#071a36 !important;
  }
  .home-showcase .showcase-mobile-portrait {
    display:block !important;
    position:absolute !important;
    z-index:0 !important;
    top:0 !important;
    right:-.85rem !important;
    width:58% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:52% top !important;
    opacity:1 !important;
    filter:none !important;
    mix-blend-mode:normal !important;
    -webkit-mask-image:none !important;
    mask-image:none !important;
    border:0 !important;
    border-radius:0 !important;
  }
  .home-showcase .showcase-intro::after {
    content:"" !important;
    position:absolute !important;
    z-index:1 !important;
    inset:0 !important;
    pointer-events:none !important;
    background:linear-gradient(90deg,#071a36 0%,#071a36 43%,rgba(7,26,54,.96) 51%,rgba(7,26,54,.72) 59%,rgba(7,26,54,.12) 76%,rgba(7,26,54,0) 100%) !important;
  }
  .home-showcase .showcase-intro-text {
    position:relative !important;
    z-index:2 !important;
    width:74% !important;
    max-width:74% !important;
    padding-top:.1rem !important;
  }
  .home-showcase .showcase-intro .showcase-eyebrow {
    font-size:clamp(.55rem,2.45vw,.66rem) !important;
    line-height:1.3 !important;
    letter-spacing:.015em !important;
    max-width:100% !important;
  }
  .home-showcase .showcase-intro h1 {
    font-size:clamp(1.48rem,6.2vw,1.78rem) !important;
    line-height:1.06 !important;
    letter-spacing:-.035em !important;
    margin:.55rem 0 .65rem !important;
    max-width:100% !important;
    text-wrap:balance !important;
  }
  .home-showcase .showcase-intro-text > p {
    font-size:clamp(.76rem,3.05vw,.88rem) !important;
    line-height:1.4 !important;
    max-width:100% !important;
  }
  .home-showcase .showcase-benefits {
    margin:-.08rem 0 .95rem !important;
    padding:.72rem 0 0 !important;
    position:relative !important;
    z-index:3 !important;
    background:transparent !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:.55rem .45rem !important;
  }
  .home-showcase .showcase-benefits > div {
    display:grid !important;
    grid-template-columns:32px minmax(0,1fr) !important;
    grid-template-rows:auto auto !important;
    align-items:center !important;
    column-gap:.48rem !important;
    min-width:0 !important;
    padding:.45rem .2rem !important;
  }
  .home-showcase .showcase-benefits .benefit-icon {
    grid-column:1 !important;
    grid-row:1 / span 2 !important;
    width:30px !important;
    height:30px !important;
    margin:0 !important;
    border:1px solid rgba(255,207,85,.8) !important;
    border-radius:50% !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
  }
  .home-showcase .showcase-benefits .benefit-icon svg {
    width:18px !important;height:18px !important;stroke-width:1.8 !important;
  }
  .home-showcase .showcase-benefits strong {
    grid-column:2 !important;grid-row:1 !important;
    font-size:.79rem !important;line-height:1.2 !important;
  }
  .home-showcase .showcase-benefits small {
    grid-column:2 !important;grid-row:2 !important;
    font-size:.68rem !important;line-height:1.25 !important;
  }
}
@media (max-width: 370px) {
  .home-showcase .showcase-intro { min-height:278px !important;height:278px !important; }
  .home-showcase .showcase-intro-text { width:75% !important;max-width:75% !important; }
  .home-showcase .showcase-intro h1 { font-size:1.46rem !important; }
  .home-showcase .showcase-intro-text > p { font-size:.74rem !important; }
  .home-showcase .showcase-mobile-portrait { width:56% !important; }
}

/* ============================================================
   CHECKPOINT 31 — HERO MOBILE: CONVERSÃO, CARDS E LEGIBILIDADE
   Escopo exclusivo da primeira dobra; não altera outras seções.
   ============================================================ */
@media (max-width: 760px) {
  .home-showcase .showcase-main { min-height: 0 !important; }
  .home-showcase .showcase-copy {
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    max-width: none !important;
    padding: 0 !important;
  }
  .home-showcase .showcase-intro {
    position: relative !important;
    display: flex !important;
    align-items: flex-start !important;
    min-height: 0 !important;
    height: auto !important;
    overflow: hidden !important;
    padding: 27px 18px 17px !important;
    background: #071a36 !important;
  }
  /* Fotografia integrada ao fundo, com transição escura para o texto. */
  .home-showcase .showcase-mobile-portrait {
    display: block !important;
    position: absolute !important;
    z-index: 0 !important;
    top: 0 !important;
    right: 0 !important;
    width: 61% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: 53% top !important;
    opacity: 1 !important;
    border: 0 !important;
    border-radius: 0 !important;
    pointer-events: none !important;
  }
  .home-showcase .showcase-intro::after {
    content: "" !important;
    position: absolute !important;
    z-index: 1 !important;
    inset: 0 !important;
    pointer-events: none !important;
    background: linear-gradient(90deg,
      #071a36 0%,
      rgba(7,26,54,.98) 40%,
      rgba(7,26,54,.84) 57%,
      rgba(7,26,54,.38) 77%,
      rgba(7,26,54,.12) 100%) !important;
  }
  .home-showcase .showcase-intro-text {
    position: relative !important;
    z-index: 2 !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
  }
  .home-showcase .showcase-intro .showcase-eyebrow {
    display: inline-block !important;
    max-width: 100% !important;
    margin: 0 0 13px !important;
    color: #ffd19f !important;
    font-family: Inter, Poppins, sans-serif !important;
    font-size: .65rem !important;
    font-weight: 800 !important;
    line-height: 1.45 !important;
    letter-spacing: .055em !important;
  }
  .home-showcase .showcase-intro h1 {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    max-width: 94% !important;
    margin: 0 0 14px !important;
    color: #fff !important;
    font-family: Inter, Poppins, sans-serif !important;
    font-size: clamp(1.9rem, 7.7vw, 2.45rem) !important;
    font-weight: 850 !important;
    line-height: 1.06 !important;
    letter-spacing: -.04em !important;
    text-wrap: balance !important;
  }
  .home-showcase .showcase-intro h1 em {
    color: #ffb15c !important;
    font-style: normal !important;
  }
  .home-showcase .showcase-intro-text > p {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    max-width: 92% !important;
    margin: 0 !important;
    color: #e0e8f3 !important;
    font-family: Inter, Poppins, sans-serif !important;
    font-size: .91rem !important;
    line-height: 1.6 !important;
  }
  /* Cards independentes substituem a aparência de tabela/divisórias. */
  .home-showcase .showcase-benefits {
    position: relative !important;
    z-index: 3 !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 11px !important;
    margin: 0 !important;
    padding: 8px 18px 23px !important;
    background: #071a36 !important;
    border: 0 !important;
  }
  .home-showcase .showcase-benefits > div {
    display: grid !important;
    grid-template-columns: 35px minmax(0, 1fr) !important;
    grid-template-rows: auto auto !important;
    align-items: center !important;
    column-gap: 10px !important;
    min-width: 0 !important;
    min-height: 76px !important;
    padding: 12px 10px !important;
    border: 1px solid rgba(255,255,255,.075) !important;
    border-radius: 12px !important;
    background: linear-gradient(145deg, rgba(27,66,119,.94), rgba(18,51,96,.96)) !important;
    box-shadow: 0 7px 18px rgba(0,0,0,.14) !important;
    text-align: left !important;
  }
  .home-showcase .showcase-benefits .benefit-icon {
    grid-column: 1 !important;
    grid-row: 1 / span 2 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 35px !important;
    height: 35px !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 10px !important;
    color: #ffc17f !important;
    background: rgba(255,255,255,.09) !important;
  }
  .home-showcase .showcase-benefits .benefit-icon svg {
    width: 21px !important;
    height: 21px !important;
    stroke: currentColor !important;
    stroke-width: 1.8 !important;
  }
  .home-showcase .showcase-benefits strong {
    grid-column: 2 !important;
    grid-row: 1 !important;
    margin: 0 !important;
    color: #fff !important;
    font-family: Inter, Poppins, sans-serif !important;
    font-size: .83rem !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
  }
  .home-showcase .showcase-benefits small {
    grid-column: 2 !important;
    grid-row: 2 !important;
    margin: 3px 0 0 !important;
    color: #d4e0f0 !important;
    font-size: .7rem !important;
    line-height: 1.35 !important;
  }
  /* CTAs com hierarquia: WhatsApp laranja primeiro, orçamento azul delineado. */
  .home-showcase .showcase-actions {
    display: flex !important;
    flex-direction: column !important;
    gap: 11px !important;
    margin: 0 !important;
    padding: 0 18px 20px !important;
    background: #071a36 !important;
  }
  .home-showcase .showcase-actions .showcase-btn {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    width: 100% !important;
    min-height: 55px !important;
    box-sizing: border-box !important;
    margin: 0 !important;
    padding: 14px 17px !important;
    border-radius: 12px !important;
    font-family: Inter, Poppins, sans-serif !important;
    font-size: .94rem !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
    text-decoration: none !important;
    transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease !important;
  }
  .home-showcase .showcase-actions .showcase-btn--orange {
    color: #fff !important;
    background: #ff7a00 !important;
    border: 1px solid #ff7a00 !important;
    box-shadow: 0 8px 22px rgba(255,122,0,.28) !important;
  }
  .home-showcase .showcase-actions .showcase-btn--outline {
    color: #fff !important;
    background: #12396f !important;
    border: 1px solid rgba(255,255,255,.2) !important;
    box-shadow: 0 6px 16px rgba(0,0,0,.12) !important;
  }
  .home-showcase .showcase-actions .showcase-btn .btn-icon,
  .home-showcase .showcase-actions .showcase-btn .btn-icon svg {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 22px !important;
    height: 22px !important;
    flex: 0 0 22px !important;
  }
  .home-showcase .showcase-actions .showcase-btn b {
    margin-left: auto !important;
    font-size: 1.25rem !important;
  }
  .home-showcase .showcase-location {
    padding: 0 20px 8px !important;
    background: #071a36 !important;
    color: #e1e9f4 !important;
    font-size: .76rem !important;
    line-height: 1.55 !important;
  }
  .home-showcase .showcase-location span { color: #ffb15c !important; }
}
@media (max-width: 370px) {
  .home-showcase .showcase-intro { padding: 24px 15px 15px !important; }
  .home-showcase .showcase-intro h1 { font-size: 1.82rem !important; }
  .home-showcase .showcase-intro-text > p { font-size: .86rem !important; }
  .home-showcase .showcase-benefits { padding-inline: 15px !important; gap: 9px !important; }
  .home-showcase .showcase-benefits > div { grid-template-columns: 30px minmax(0,1fr) !important; gap: 8px !important; padding: 10px 8px !important; }
  .home-showcase .showcase-benefits .benefit-icon { width: 30px !important; height: 30px !important; }
  .home-showcase .showcase-benefits strong { font-size: .77rem !important; }
  .home-showcase .showcase-benefits small { font-size: .66rem !important; }
  .home-showcase .showcase-actions { padding-inline: 15px !important; }
}
@media (hover: hover) and (pointer: fine) and (max-width: 760px) {
  .home-showcase .showcase-actions .showcase-btn:hover { transform: translateY(-2px) !important; }
  .home-showcase .showcase-actions .showcase-btn--orange:hover { background: #e96e00 !important; box-shadow: 0 12px 26px rgba(255,122,0,.34) !important; }
  .home-showcase .showcase-actions .showcase-btn--outline:hover { background: #194982 !important; }
}

/* ============================================================
   CHECKPOINT 32 — HERO MOBILE PREMIUM
   Somente primeira dobra mobile: fundo sem carrossel visível,
   tipografia com contraste, retrato com fade inferior e cards glass.
   ============================================================ */
@media (max-width: 760px) {
  .home-showcase { background:#071a36 !important; }
  .home-showcase .showcase-main { position:relative !important; overflow:hidden !important; background:#071a36 !important; }

  /* Primeira imagem vira fundo estático no mobile; os slides e controles
     deixam de competir visualmente com o conteúdo. */
  .home-showcase .showcase-photo {
    position:relative !important;
    min-height:0 !important;
    height:auto !important;
    background-image:
      linear-gradient(180deg, rgba(5,20,44,.64) 0%, rgba(7,26,54,.82) 38%, #071a36 76%, #071a36 100%),
      url('../images/carousel/01_colaboradores_martelete_4K.jpg') !important;
    background-size:cover !important;
    background-position:center top !important;
    background-repeat:no-repeat !important;
  }
  .home-showcase .showcase-photo > .hero-slide,
  .home-showcase .showcase-photo > .showcase-arrow,
  .home-showcase .showcase-photo > .hero-carousel-dots { display:none !important; }
  .home-showcase .showcase-photo > .showcase-photo-shade { display:none !important; }

  .home-showcase .showcase-intro {
    padding:34px 20px 24px !important;
    background:transparent !important;
    isolation:isolate !important;
  }
  .home-showcase .showcase-intro::after {
    background:linear-gradient(90deg,
      rgba(7,26,54,.99) 0%, rgba(7,26,54,.96) 39%,
      rgba(7,26,54,.78) 64%, rgba(7,26,54,.42) 100%) !important;
  }
  .home-showcase .showcase-intro-text { max-width:100% !important; }
  .home-showcase .showcase-intro .showcase-eyebrow {
    font-size:.68rem !important; letter-spacing:.075em !important; margin-bottom:17px !important;
  }
  .home-showcase .showcase-intro h1 {
    max-width:96% !important; margin-bottom:18px !important;
    font-family:'Poppins','Inter',sans-serif !important;
    font-size:clamp(2.1rem, 8.2vw, 2.75rem) !important;
    line-height:1.08 !important; letter-spacing:-.045em !important;
    font-weight:800 !important; text-wrap:balance !important;
  }
  .home-showcase .showcase-intro h1 em {
    color:#ffc45f !important; font-style:normal !important;
    text-shadow:0 2px 18px rgba(255,196,95,.12) !important;
  }
  .home-showcase .showcase-intro-text > p {
    max-width:94% !important; margin:0 !important;
    color:#e0e8f3 !important; font-size:.96rem !important;
    line-height:1.72 !important; font-weight:400 !important;
  }

  /* Retrato recortado con degradado vertical para fundirse con el fondo. */
  .home-showcase .showcase-mobile-portrait {
    top:0 !important; right:-3% !important; width:58% !important;
    height:100% !important; object-fit:cover !important;
    object-position:53% top !important; opacity:.94 !important;
    -webkit-mask-image:linear-gradient(to bottom, #000 0%, #000 48%, rgba(0,0,0,.72) 68%, transparent 100%) !important;
    mask-image:linear-gradient(to bottom, #000 0%, #000 48%, rgba(0,0,0,.72) 68%, transparent 100%) !important;
  }

  /* Benefícios em cartões separados, sem divisórias de tabela. */
  .home-showcase .showcase-benefits {
    display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:12px !important; margin:0 !important; padding:8px 20px 28px !important;
    background:#071a36 !important; border:0 !important;
  }
  .home-showcase .showcase-benefits > div {
    display:grid !important; grid-template-columns:36px minmax(0,1fr) !important;
    grid-template-rows:auto auto !important; align-items:center !important;
    column-gap:11px !important; row-gap:4px !important;
    min-width:0 !important; min-height:83px !important; padding:14px 11px !important;
    border:1px solid rgba(255,255,255,.105) !important; border-radius:12px !important;
    background:rgba(25,61,109,.72) !important;
    -webkit-backdrop-filter:blur(10px) !important; backdrop-filter:blur(10px) !important;
    box-shadow:0 8px 20px rgba(0,0,0,.10) !important;
  }
  .home-showcase .showcase-benefits .benefit-icon {
    grid-column:1 !important; grid-row:1 / span 2 !important;
    display:flex !important; align-items:center !important; justify-content:center !important;
    width:36px !important; height:36px !important; margin:0 !important;
    color:#ffc45f !important; border-radius:10px !important;
    background:rgba(255,255,255,.075) !important;
  }
  .home-showcase .showcase-benefits .benefit-icon svg {
    width:21px !important; height:21px !important; stroke:currentColor !important;
  }
  .home-showcase .showcase-benefits strong {
    grid-column:2 !important; grid-row:1 !important; margin:0 !important;
    font-size:.84rem !important; line-height:1.25 !important; font-weight:800 !important;
  }
  .home-showcase .showcase-benefits small {
    grid-column:2 !important; grid-row:2 !important; margin:0 !important;
    color:#d7e2f0 !important; font-size:.70rem !important; line-height:1.4 !important;
  }

  /* CTAs robustos, WhatsApp dominante e orçamento contornado. */
  .home-showcase .showcase-actions {
    display:flex !important; flex-direction:column !important; gap:13px !important;
    margin:0 !important; padding:0 20px 22px !important; background:#071a36 !important;
  }
  .home-showcase .showcase-actions .showcase-btn {
    min-height:58px !important; padding:16px !important; border-radius:8px !important;
    font-family:'Inter','Poppins',sans-serif !important; font-size:.95rem !important;
    font-weight:800 !important; letter-spacing:.005em !important;
  }
  .home-showcase .showcase-actions .showcase-btn--orange {
    background:linear-gradient(135deg,#ff941f 0%,#ff7100 100%) !important;
    border:1px solid rgba(255,190,112,.45) !important;
    box-shadow:0 10px 25px rgba(255,122,0,.27) !important;
  }
  .home-showcase .showcase-actions .showcase-btn--outline {
    background:rgba(255,255,255,.025) !important;
    border:1px solid rgba(255,255,255,.34) !important;
    box-shadow:none !important;
  }
  .home-showcase .showcase-location {
    padding:0 20px 8px !important; background:#071a36 !important;
    color:#e2eaf5 !important; font-size:.78rem !important; line-height:1.65 !important;
  }
  .home-showcase .showcase-disclaimer { margin-inline:20px !important; }
}

@media (max-width: 370px) {
  .home-showcase .showcase-intro { padding:29px 16px 21px !important; }
  .home-showcase .showcase-intro h1 { font-size:1.95rem !important; }
  .home-showcase .showcase-benefits { padding-inline:16px !important; gap:9px !important; }
  .home-showcase .showcase-benefits > div { grid-template-columns:31px minmax(0,1fr) !important; gap:8px !important; padding:11px 8px !important; }
  .home-showcase .showcase-benefits .benefit-icon { width:31px !important; height:31px !important; }
  .home-showcase .showcase-benefits strong { font-size:.78rem !important; }
  .home-showcase .showcase-benefits small { font-size:.66rem !important; }
  .home-showcase .showcase-actions { padding-inline:16px !important; }
}
@media (hover:hover) and (pointer:fine) and (max-width:760px) {
  .home-showcase .showcase-actions .showcase-btn { transition:transform .18s ease,box-shadow .18s ease,background .18s ease !important; }
  .home-showcase .showcase-actions .showcase-btn:hover { transform:translateY(-2px) !important; }
  .home-showcase .showcase-actions .showcase-btn--orange:hover { box-shadow:0 14px 30px rgba(255,122,0,.36) !important; }
}


/* AJUSTE MOBILE — foto da equipe enviada pelo cliente; desktop intacto */
@media (max-width: 768px) {
  .home-showcase {
    position: relative !important;
    isolation: isolate !important;
    padding-top: 82px !important;
    background-color: #07172f !important;
    background-image:
      linear-gradient(180deg,
        rgba(4, 15, 34, 0.48) 0%,
        rgba(4, 15, 34, 0.66) 32%,
        rgba(4, 15, 34, 0.91) 58%,
        #07172f 78%),
      url('../images/carousel/mobile-hero-equipe-bom-service.jpg?v=40') !important;
    background-size: cover !important;
    background-position: center top !important;
    background-repeat: no-repeat !important;
  }

  .home-showcase .showcase-photo {
    display: none !important;
  }

  .home-showcase .showcase-copy {
    position: relative !important;
    z-index: 2 !important;
    padding: 0 20px !important;
  }

  .home-showcase .showcase-intro {
    padding-top: 12px !important;
    margin-top: 0 !important;
  }

  .home-showcase .showcase-intro-text {
    position: relative !important;
    z-index: 3 !important;
  }

  .home-showcase .showcase-mobile-portrait {
    display: none !important;
  }

  .home-showcase .showcase-intro .showcase-eyebrow {
    background: rgba(3, 12, 27, 0.72) !important;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.2) !important;
  }

  .home-showcase .showcase-intro h1,
  .home-showcase .showcase-intro-text > p {
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.78) !important;
  }
}


/* CHECKPOINT 39 — correção estrutural do hero mobile; desktop intocado */
@media (max-width: 768px) {
  .home-showcase {
    padding-top: 0 !important;
    background: #07172f !important;
  }
  .home-showcase .showcase-main {
    display: block !important;
    min-height: 0 !important;
    overflow: hidden !important;
    background: #07172f !important;
  }
  /* A foto precisa continuar sendo o contêiner do texto: no HTML,
     .showcase-copy está dentro de .showcase-photo. Não ocultar esse elemento. */
  .home-showcase .showcase-photo {
    display: block !important;
    position: relative !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: hidden !important;
    background-color: #07172f !important;
    background-image:
      linear-gradient(180deg,
        rgba(4, 15, 34, .58) 0%,
        rgba(4, 15, 34, .70) 24%,
        rgba(4, 15, 34, .86) 43%,
        rgba(7, 23, 47, .97) 64%,
        #07172f 82%),
      url('../images/carousel/mobile-hero-equipe-bom-service.jpg?v=40') !important;
    background-size: 100% auto, cover !important;
    background-position: center top, center 35% !important;
    background-repeat: no-repeat !important;
  }
  .home-showcase .showcase-photo > .hero-slide,
  .home-showcase .showcase-photo > .showcase-arrow,
  .home-showcase .showcase-photo > .hero-carousel-dots,
  .home-showcase .showcase-photo > .showcase-photo-shade {
    display: none !important;
  }
  .home-showcase .showcase-copy {
    position: relative !important;
    z-index: 2 !important;
    display: block !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  .home-showcase .showcase-intro {
    position: relative !important;
    min-height: 0 !important;
    padding: 28px 20px 20px !important;
    margin: 0 !important;
    background: transparent !important;
    isolation: isolate !important;
  }
  .home-showcase .showcase-intro::after {
    content: '' !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: -1 !important;
    pointer-events: none !important;
    background: linear-gradient(90deg, rgba(7,23,47,.84) 0%, rgba(7,23,47,.66) 72%, rgba(7,23,47,.42) 100%) !important;
  }
  .home-showcase .showcase-intro-text {
    position: relative !important;
    z-index: 2 !important;
    max-width: 100% !important;
  }
  .home-showcase .showcase-intro .showcase-eyebrow {
    display: inline-block !important;
    margin-bottom: 14px !important;
    padding: 7px 9px !important;
    border-radius: 5px !important;
    background: rgba(3,12,27,.68) !important;
    color: #ffb52e !important;
    font-size: .66rem !important;
    letter-spacing: .07em !important;
  }
  .home-showcase .showcase-intro h1 {
    max-width: 100% !important;
    margin: 0 0 14px !important;
    font-size: clamp(2rem, 8vw, 2.55rem) !important;
    line-height: 1.08 !important;
    letter-spacing: -.04em !important;
    text-shadow: 0 2px 10px rgba(0,0,0,.55) !important;
  }
  .home-showcase .showcase-intro h1 em { color: #ffc45f !important; }
  .home-showcase .showcase-intro-text > p {
    max-width: 100% !important;
    margin: 0 !important;
    color: #edf3fb !important;
    font-size: .94rem !important;
    line-height: 1.6 !important;
    text-shadow: 0 2px 8px rgba(0,0,0,.7) !important;
  }
  .home-showcase .showcase-mobile-portrait { display: none !important; }
  .home-showcase .showcase-benefits {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    margin: 0 !important;
    padding: 18px 20px 24px !important;
    background: #07172f !important;
  }
  .home-showcase .showcase-benefits > div { min-width: 0 !important; }
  .home-showcase .showcase-actions {
    display: flex !important;
    flex-direction: column !important;
    gap: 11px !important;
    padding: 0 20px 22px !important;
    background: #07172f !important;
  }
  .home-showcase .showcase-location {
    padding: 0 20px 20px !important;
    background: #07172f !important;
  }
  .home-showcase .showcase-brand-panel { display: none !important; }
}
@media (max-width: 370px) {
  .home-showcase .showcase-intro { padding: 24px 16px 18px !important; }
  .home-showcase .showcase-benefits { padding-inline: 16px !important; }
  .home-showcase .showcase-actions { padding-inline: 16px !important; }
}


/* CHECKPOINT 41 — marquee automático dos 10 serviços, somente em mobile */
@media (max-width: 768px) {
  .home-showcase .service-ribbon {
    display: block !important;
    width: 100% !important;
    overflow: hidden !important;
    padding: 12px 0 14px !important;
    scroll-snap-type: none !important;
    overscroll-behavior-x: contain !important;
    scrollbar-width: none !important;
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 3%, #000 97%, transparent 100%);
    mask-image: linear-gradient(90deg, transparent 0, #000 3%, #000 97%, transparent 100%);
  }
  .home-showcase .service-ribbon::-webkit-scrollbar { display: none !important; }
  .home-showcase .service-ribbon-track {
    display: flex !important;
    align-items: stretch !important;
    width: max-content !important;
    gap: 10px !important;
    padding: 0 12px !important;
    animation: bs-service-marquee 48s linear infinite !important;
    will-change: transform;
  }
  .home-showcase .service-ribbon-card {
    flex: 0 0 132px !important;
    width: 132px !important;
    min-width: 132px !important;
    scroll-snap-align: none !important;
    transform: none !important;
  }
  .home-showcase .service-ribbon-card img { aspect-ratio: 1.12 / 1 !important; }
  .home-showcase .service-ribbon:hover .service-ribbon-track,
  .home-showcase .service-ribbon:focus-within .service-ribbon-track { animation-play-state: paused !important; }
  .home-showcase .service-ribbon-track.is-paused { animation-play-state: paused !important; }
}
@keyframes bs-service-marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
  .home-showcase .service-ribbon-track { animation: none !important; }
}


/* CHECKPOINT 42 — restaura a foto enviada e reposiciona o texto no topo; somente mobile */
@media (max-width: 768px) {
  .home-showcase .showcase-photo {
    position: relative !important;
    display: block !important;
    overflow: hidden !important;
    background: #07172f !important;
    background-image: none !important;
    isolation: isolate !important;
  }
  /* Camada fotográfica independente para garantir que a imagem apareça mesmo com regras antigas. */
  .home-showcase .showcase-photo::before {
    content: "" !important;
    position: absolute !important;
    z-index: 0 !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    height: 470px !important;
    pointer-events: none !important;
    background-image:
      linear-gradient(180deg,
        rgba(4, 15, 34, .30) 0%,
        rgba(4, 15, 34, .43) 35%,
        rgba(4, 15, 34, .76) 67%,
        #07172f 100%),
      url('../images/carousel/mobile-hero-equipe-bom-service.jpg?checkpoint=42') !important;
    background-position: center top, center 34% !important;
    background-size: cover, cover !important;
    background-repeat: no-repeat !important;
  }
  .home-showcase .showcase-photo > .showcase-copy {
    position: relative !important;
    z-index: 2 !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  .home-showcase .showcase-intro {
    position: relative !important;
    z-index: 1 !important;
    padding: 12px 20px 20px !important;
    margin: 0 !important;
    min-height: 0 !important;
    background: transparent !important;
  }
  .home-showcase .showcase-intro::after { display: none !important; }
  .home-showcase .showcase-intro-text {
    position: relative !important;
    z-index: 2 !important;
    max-width: 100% !important;
  }
  .home-showcase .showcase-intro .showcase-eyebrow {
    margin-top: 0 !important;
    margin-bottom: 12px !important;
  }
  .home-showcase .showcase-intro h1 {
    margin-top: 0 !important;
    margin-bottom: 12px !important;
  }
  .home-showcase .showcase-benefits,
  .home-showcase .showcase-actions,
  .home-showcase .showcase-location {
    position: relative !important;
    z-index: 2 !important;
  }
  .home-showcase .showcase-photo > .hero-slide,
  .home-showcase .showcase-photo > .showcase-arrow,
  .home-showcase .showcase-photo > .hero-carousel-dots,
  .home-showcase .showcase-photo > .showcase-photo-shade,
  .home-showcase .showcase-mobile-portrait {
    display: none !important;
  }
}
@media (max-width: 370px) {
  .home-showcase .showcase-intro { padding: 10px 16px 18px !important; }
}

/* CHECKPOINT 43 — FASE 1 Design System Mobile + correção definitiva do hero. Desktop intocado. */
@media (max-width: 768px) {
  :root {
    --bs-mobile-orange-gradient: linear-gradient(135deg, #FF7A00 0%, #E65C00 100%);
    --bs-mobile-card-shadow: 0 10px 25px -5px rgba(0,0,0,.05), 0 8px 10px -6px rgba(0,0,0,.01);
    --bs-mobile-glass: rgba(255,255,255,.07);
    --bs-mobile-border: rgba(255,255,255,.12);
  }

  /* Hero: use a própria imagem HTML existente para não depender de pseudo-elemento/fundo. */
  .home-showcase .showcase-main { min-width: 0 !important; }
  .home-showcase .showcase-photo {
    position: relative !important;
    display: block !important;
    min-height: 0 !important;
    height: auto !important;
    overflow: hidden !important;
    isolation: isolate !important;
    background: #07172f !important;
  }
  .home-showcase .showcase-photo::before {
    content: "" !important;
    position: absolute !important;
    z-index: 1 !important;
    inset: 0 0 auto 0 !important;
    height: 470px !important;
    pointer-events: none !important;
    background: linear-gradient(180deg, rgba(4,15,34,.28) 0%, rgba(4,15,34,.48) 42%, rgba(4,15,34,.82) 78%, #07172f 100%) !important;
  }
  .home-showcase .showcase-photo > .hero-slide:first-of-type {
    display: block !important;
    position: absolute !important;
    z-index: 0 !important;
    inset: 0 0 auto 0 !important;
    width: 100% !important;
    height: 470px !important;
    min-height: 470px !important;
    object-fit: cover !important;
    object-position: center 42% !important;
    opacity: .78 !important;
    visibility: visible !important;
    filter: brightness(.78) saturate(.9) !important;
  }
  .home-showcase .showcase-photo > .hero-slide:not(:first-of-type),
  .home-showcase .showcase-photo > .showcase-arrow,
  .home-showcase .showcase-photo > .hero-carousel-dots,
  .home-showcase .showcase-photo > .showcase-photo-shade,
  .home-showcase .showcase-mobile-portrait { display: none !important; }
  .home-showcase .showcase-photo > .showcase-copy {
    position: relative !important;
    z-index: 2 !important;
    display: flex !important;
    flex-direction: column !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
  }
  .home-showcase .showcase-intro {
    position: relative !important;
    z-index: 2 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 18px 20px 24px !important;
    background: transparent !important;
  }
  .home-showcase .showcase-intro::before,
  .home-showcase .showcase-intro::after { display: none !important; }
  .home-showcase .showcase-intro-text { position: relative !important; z-index: 2 !important; max-width: 100% !important; }
  .home-showcase .showcase-eyebrow { margin-top: 0 !important; margin-bottom: 12px !important; }
  .home-showcase .showcase-intro h1,
  .home-showcase h1 { letter-spacing: -.02em !important; text-wrap: balance; }
  .home-showcase .showcase-intro p,
  .home-showcase .showcase-copy p,
  .home-showcase .showcase-location { line-height: 1.6 !important; }

  /* Benefícios: grid estável, contraste e cartões premium. */
  .home-showcase .showcase-benefits {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
    padding: 12px 16px 16px !important;
    margin: 0 !important;
  }
  .home-showcase .showcase-benefits > div {
    min-width: 0 !important;
    border: 1px solid var(--bs-mobile-border) !important;
    border-radius: 16px !important;
    background: linear-gradient(180deg, #1E293B 0%, #0F172A 100%) !important;
    box-shadow: var(--bs-mobile-card-shadow) !important;
    padding: 14px 12px !important;
    gap: 10px !important;
  }
  .home-showcase .showcase-benefits .benefit-icon {
    color: #FF9A24 !important;
    flex: 0 0 auto !important;
  }
  .home-showcase .showcase-benefits .benefit-icon svg { stroke: currentColor !important; }
  .home-showcase .showcase-benefits strong { line-height: 1.3 !important; }
  .home-showcase .showcase-benefits small { line-height: 1.45 !important; }

  /* Botões e ações. */
  .home-showcase .showcase-actions { display: grid !important; gap: 12px !important; padding: 0 16px 18px !important; }
  .home-showcase .showcase-actions .showcase-btn {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    min-height: 54px !important;
    border-radius: 12px !important;
    transition: transform .18s ease, box-shadow .18s ease, background .18s ease !important;
  }
  .home-showcase .showcase-actions .showcase-btn--orange {
    background: var(--bs-mobile-orange-gradient) !important;
    box-shadow: 0 4px 14px rgba(255,122,0,.4) !important;
  }
  .home-showcase .showcase-actions .showcase-btn--outline {
    background: var(--bs-mobile-glass) !important;
    border: 1px solid rgba(147,197,253,.5) !important;
    backdrop-filter: blur(10px) !important;
  }
  .home-showcase .showcase-actions .showcase-btn:active { transform: scale(.97) !important; }
  .home-showcase .showcase-location { padding: 0 16px 18px !important; }

  /* Cards e botões das demais seções: refinamento mobile sem alterar conteúdo. */
  .home-showcase .service-ribbon-card,
  .service-card,
  .why-card,
  .help-card,
  .portfolio-card { border-radius: 16px !important; }
  .service-ribbon-card img { border-radius: 12px 12px 0 0 !important; }
  .service-ribbon-card span { line-height: 1.35 !important; }
  .service-ribbon-card:active,
  .portfolio-card:active { transform: scale(.985); }
  .floating-whatsapp {
    box-shadow: 0 5px 18px rgba(37,211,102,.32) !important;
    animation: bs-mobile-whatsapp-pulse 2.8s ease-in-out infinite !important;
  }
}
@keyframes bs-mobile-whatsapp-pulse {
  0%, 100% { box-shadow: 0 5px 18px rgba(37,211,102,.28); }
  50% { box-shadow: 0 5px 24px rgba(37,211,102,.48); }
}
@media (max-width: 390px) {
  .home-showcase .showcase-intro { padding: 14px 16px 20px !important; }
  .home-showcase .showcase-benefits { gap: 9px !important; padding-inline: 12px !important; }
  .home-showcase .showcase-benefits > div { padding: 11px 9px !important; }
  .home-showcase .showcase-actions { padding-inline: 12px !important; }
}
@media (prefers-reduced-motion: reduce) {
  .floating-whatsapp { animation: none !important; }
}


/* CHECKPOINT 44 — FASE 2: Botões e ações premium, exclusivamente mobile. */
@media (max-width: 768px) {
  :root {
    --bs-mobile-cta-gradient: linear-gradient(135deg, #FF7A00 0%, #E65C00 100%);
    --bs-mobile-cta-shadow: 0 4px 14px rgba(255, 122, 0, .4);
    --bs-mobile-glass-border: rgba(147, 197, 253, .52);
  }

  /* CTA principal do hero: alinhamento consistente do ícone, texto e seta. */
  .home-showcase .showcase-actions .showcase-btn--orange {
    position: relative !important;
    isolation: isolate !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 56px !important;
    padding: 14px 48px 14px 18px !important;
    border: 1px solid rgba(255,255,255,.18) !important;
    border-radius: 12px !important;
    background: var(--bs-mobile-cta-gradient) !important;
    color: #fff !important;
    box-shadow: var(--bs-mobile-cta-shadow) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 9px !important;
    text-align: center !important;
    font-weight: 750 !important;
    line-height: 1.25 !important;
    text-decoration: none !important;
    -webkit-tap-highlight-color: transparent;
    transition: transform .18s ease, box-shadow .18s ease, filter .18s ease !important;
  }
  .home-showcase .showcase-actions .showcase-btn--orange .btn-icon {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 22px !important;
    width: 22px !important;
    height: 22px !important;
    margin: 0 !important;
  }
  .home-showcase .showcase-actions .showcase-btn--orange .btn-icon svg {
    display: block !important;
    width: 21px !important;
    height: 21px !important;
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 1.8 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
  }
  .home-showcase .showcase-actions .showcase-btn--orange b {
    position: absolute !important;
    top: 50% !important;
    right: 0 !important;
    width: 40px !important;
    height: 28px !important;
    transform: translateY(-50%) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-left: 1px solid rgba(255,255,255,.38) !important;
    font-size: 24px !important;
    font-weight: 500 !important;
    line-height: 1 !important;
  }
  .home-showcase .showcase-actions .showcase-btn--orange:active,
  .cta-band .btn--primary:active,
  .btn.btn--primary:active {
    transform: scale(.97) !important;
    filter: saturate(1.08) !important;
    box-shadow: 0 2px 8px rgba(255,122,0,.32) !important;
  }

  /* CTA secundário com vidro discreto, sem comprometer a legibilidade. */
  .home-showcase .showcase-actions .showcase-btn--outline {
    width: 100% !important;
    min-height: 54px !important;
    padding: 13px 16px !important;
    border: 1px solid var(--bs-mobile-glass-border) !important;
    border-radius: 12px !important;
    background: rgba(255,255,255,.075) !important;
    color: #fff !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.07) !important;
    backdrop-filter: blur(12px) saturate(120%) !important;
    -webkit-backdrop-filter: blur(12px) saturate(120%) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 9px !important;
    text-align: center !important;
    font-weight: 650 !important;
    line-height: 1.3 !important;
    text-decoration: none !important;
    transition: transform .18s ease, background .18s ease, border-color .18s ease !important;
    -webkit-tap-highlight-color: transparent;
  }
  .home-showcase .showcase-actions .showcase-btn--outline .btn-icon {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 20px !important;
    width: 20px !important;
    height: 20px !important;
  }
  .home-showcase .showcase-actions .showcase-btn--outline .btn-icon svg {
    width: 20px !important;
    height: 20px !important;
    display: block !important;
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 1.7 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
  }
  .home-showcase .showcase-actions .showcase-btn--outline:active {
    transform: scale(.985) !important;
    background: rgba(255,255,255,.16) !important;
    border-color: rgba(191,219,254,.82) !important;
  }

  /* Botões primários em outras seções: mesmo gradiente e toque consistente. */
  .cta-band .btn--primary,
  a.btn.btn--primary {
    min-height: 50px !important;
    border-radius: 12px !important;
    background: var(--bs-mobile-cta-gradient) !important;
    color: #fff !important;
    box-shadow: var(--bs-mobile-cta-shadow) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    text-decoration: none !important;
    transition: transform .18s ease, box-shadow .18s ease, filter .18s ease !important;
    -webkit-tap-highlight-color: transparent;
  }

  /* Atalho flutuante: sombra verde e pulsação contida. */
  a.floating-whatsapp {
    box-shadow: 0 5px 18px rgba(37,211,102,.32) !important;
    animation: bs-mobile-whatsapp-pulse 2.8s ease-in-out infinite !important;
    transition: transform .18s ease, box-shadow .25s ease !important;
    -webkit-tap-highlight-color: transparent;
  }
  a.floating-whatsapp:active { transform: scale(.94) !important; }
}
@media (max-width: 390px) {
  .home-showcase .showcase-actions .showcase-btn--orange { padding-left: 12px !important; padding-right: 43px !important; gap: 7px !important; font-size: 14px !important; }
  .home-showcase .showcase-actions .showcase-btn--orange b { width: 34px !important; }
  .home-showcase .showcase-actions .showcase-btn--outline { padding-inline: 10px !important; font-size: 14px !important; }
}
@media (prefers-reduced-motion: reduce) {
  .home-showcase .showcase-actions .showcase-btn,
  .cta-band .btn--primary,
  a.btn.btn--primary,
  a.floating-whatsapp { transition: none !important; }
  a.floating-whatsapp { animation: none !important; }
}


/* CHECKPOINT 45 — FASE 3: acabamento mobile dos ícones, cards e galeria */
@media (max-width: 768px) {
  :root {
    --bs-mobile-card-gradient: linear-gradient(180deg, #1E293B 0%, #0F172A 100%);
    --bs-mobile-card-border: rgba(255,255,255,.12);
    --bs-mobile-soft-shadow: 0 10px 25px -5px rgba(0,0,0,.05), 0 8px 10px -6px rgba(0,0,0,.01);
  }

  /* Cards de confiança do hero: grid consistente de duas colunas. */
  .home-showcase .showcase-benefits {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
    align-items: stretch !important;
  }
  .home-showcase .showcase-benefits > div {
    display: grid !important;
    grid-template-columns: 36px minmax(0, 1fr) !important;
    grid-template-rows: auto auto !important;
    align-content: center !important;
    align-items: center !important;
    column-gap: 11px !important;
    row-gap: 3px !important;
    min-width: 0 !important;
    min-height: 82px !important;
    padding: 14px 13px !important;
    border: 1px solid var(--bs-mobile-card-border) !important;
    border-radius: 16px !important;
    background: var(--bs-mobile-card-gradient) !important;
    box-shadow: 0 8px 22px rgba(0,0,0,.12), inset 0 1px 0 rgba(255,255,255,.035) !important;
  }
  .home-showcase .showcase-benefits .benefit-icon {
    grid-column: 1 !important; grid-row: 1 / span 2 !important;
    display: grid !important; place-items: center !important;
    width: 36px !important; height: 36px !important;
    margin: 0 !important; border-radius: 11px !important;
    color: #FF9A24 !important;
    background: rgba(255,122,0,.11) !important;
    border: 1px solid rgba(255,154,36,.17) !important;
  }
  .home-showcase .showcase-benefits .benefit-icon svg {
    display: block !important; width: 20px !important; height: 20px !important;
    fill: none !important; stroke: currentColor !important; stroke-width: 1.8 !important;
    stroke-linecap: round !important; stroke-linejoin: round !important;
  }
  .home-showcase .showcase-benefits strong {
    grid-column: 2 !important; grid-row: 1 !important; min-width: 0 !important;
    margin: 0 !important; color: #fff !important; font-size: 13px !important;
    font-weight: 750 !important; line-height: 1.3 !important; letter-spacing: -.015em !important;
  }
  .home-showcase .showcase-benefits small {
    grid-column: 2 !important; grid-row: 2 !important; min-width: 0 !important;
    color: rgba(235,242,252,.82) !important; font-size: 11px !important;
    line-height: 1.4 !important; overflow-wrap: anywhere !important;
  }

  /* Galeria inicial: imagens com recorte limpo, cantos e contraste de legenda. */
  .home-gallery-item {
    position: relative !important; overflow: hidden !important;
    border-radius: 15px !important; isolation: isolate !important;
    box-shadow: var(--bs-mobile-soft-shadow) !important;
  }
  .home-gallery-item::after {
    content: "" !important; position: absolute !important; inset: 35% 0 0 !important;
    z-index: 1 !important; pointer-events: none !important;
    background: linear-gradient(180deg, transparent 0%, rgba(4,17,37,.72) 100%) !important;
  }
  .home-gallery-item img {
    display: block !important; width: 100% !important; height: 100% !important;
    object-fit: cover !important; transition: transform .35s ease !important;
  }
  .home-gallery-item span {
    position: absolute !important; z-index: 2 !important; left: 12px !important; right: 12px !important; bottom: 12px !important;
    color: #fff !important; font-weight: 750 !important; line-height: 1.35 !important;
    text-shadow: 0 1px 8px rgba(0,0,0,.35) !important;
  }

  /* Portfólio: etiquetas de vídeo, play e botões do lightbox com acabamento premium. */
  .portfolio-item {
    min-width: 0 !important; overflow: hidden !important;
    border: 1px solid rgba(10,42,92,.10) !important; border-radius: 15px !important;
    box-shadow: var(--bs-mobile-soft-shadow) !important;
  }
  .portfolio-media { overflow: hidden !important; border-radius: 13px 13px 0 0 !important; }
  .portfolio-media img { display: block !important; width: 100% !important; height: 100% !important; object-fit: cover !important; }
  .portfolio-type {
    border: 1px solid rgba(255,255,255,.25) !important; border-radius: 20px !important;
    padding: 5px 9px !important; color: #fff !important;
    background: rgba(5,17,35,.72) !important; backdrop-filter: blur(4px) !important;
    -webkit-backdrop-filter: blur(4px) !important; font-size: 10px !important;
    letter-spacing: .04em !important; box-shadow: 0 3px 12px rgba(0,0,0,.15) !important;
  }
  .portfolio-play span, .portfolio-feature-play span {
    border: 1px solid rgba(255,255,255,.8) !important;
    box-shadow: 0 8px 24px rgba(0,0,0,.3), 0 0 0 6px rgba(255,255,255,.08) !important;
    transition: transform .18s ease, box-shadow .18s ease !important;
  }
  .portfolio-media:active .portfolio-play span,
  .portfolio-feature-media:active .portfolio-feature-play span { transform: scale(.94) !important; }
  .portfolio-lightbox-close, .portfolio-lightbox-nav {
    display: grid !important; place-items: center !important;
    color: #fff !important; background: rgba(0,0,0,.52) !important;
    border: 1px solid rgba(255,255,255,.42) !important;
    backdrop-filter: blur(8px) !important; -webkit-backdrop-filter: blur(8px) !important;
    box-shadow: 0 6px 20px rgba(0,0,0,.24) !important;
  }

  /* Cards informativos das páginas internas: sombra leve e raio consistente. */
  .service-photo-card, .services-note, .portfolio-search, .portfolio-feature {
    border-radius: 16px !important; box-shadow: var(--bs-mobile-soft-shadow) !important;
  }
  .service-photo { overflow: hidden !important; border-radius: 15px 15px 0 0 !important; }
  .service-photo::after {
    inset: 38% 0 0 !important;
    background: linear-gradient(180deg, transparent 0%, rgba(3,16,35,.68) 100%) !important;
  }
}

@media (max-width: 390px) {
  .home-showcase .showcase-benefits { gap: 9px !important; }
  .home-showcase .showcase-benefits > div { grid-template-columns: 30px minmax(0,1fr) !important; column-gap: 8px !important; padding: 11px 9px !important; min-height: 76px !important; }
  .home-showcase .showcase-benefits .benefit-icon { width: 30px !important; height: 30px !important; border-radius: 9px !important; }
  .home-showcase .showcase-benefits .benefit-icon svg { width: 18px !important; height: 18px !important; }
  .home-showcase .showcase-benefits strong { font-size: 12px !important; }
  .home-showcase .showcase-benefits small { font-size: 10px !important; }
}

@media (prefers-reduced-motion: reduce) {
  .home-gallery-item img, .portfolio-play span, .portfolio-feature-play span { transition: none !important; }
}

/* CHECKPOINT 46 — FASE 4: carrossel de serviços e galeria, somente mobile */
@media (max-width: 768px) {
  /* Carrossel de serviços: cartões legíveis, imagens consistentes e faixa contínua. */
  .home-showcase .service-ribbon {
    display: block !important;
    position: relative !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
    padding: 14px 0 12px !important;
    border-top: 1px solid rgba(255,255,255,.09) !important;
    background: linear-gradient(180deg, #071b3a 0%, #06152d 100%) !important;
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 3%, #000 97%, transparent 100%);
    mask-image: linear-gradient(90deg, transparent 0, #000 3%, #000 97%, transparent 100%);
    overscroll-behavior-x: contain !important;
  }
  .home-showcase .service-ribbon-track {
    display: flex !important;
    align-items: stretch !important;
    gap: 12px !important;
    width: max-content !important;
    padding: 0 12px !important;
    animation: bs-mobile-service-marquee 48s linear infinite !important;
    will-change: transform;
  }
  .home-showcase .service-ribbon-track.is-paused { animation-play-state: paused !important; }
  .home-showcase .service-ribbon:focus-within .service-ribbon-track,
  .home-showcase .service-ribbon:hover .service-ribbon-track { animation-play-state: paused !important; }
  .home-showcase .service-ribbon-card {
    position: relative !important;
    display: flex !important;
    flex: 0 0 126px !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0 !important;
    min-width: 0 !important;
    overflow: hidden !important;
    border: 1px solid rgba(255,255,255,.13) !important;
    border-radius: 13px !important;
    background: rgba(255,255,255,.045) !important;
    box-shadow: 0 7px 18px rgba(0,0,0,.16) !important;
    color: #fff !important;
    text-align: left !important;
    text-decoration: none !important;
    font-size: 12px !important;
    line-height: 1.3 !important;
    -webkit-tap-highlight-color: transparent;
  }
  .home-showcase .service-ribbon-card img {
    display: block !important;
    width: 100% !important;
    height: 94px !important;
    max-height: none !important;
    aspect-ratio: auto !important;
    object-fit: cover !important;
    object-position: center !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    filter: saturate(.94) contrast(1.03) !important;
    transition: transform .3s ease, filter .3s ease !important;
  }
  .home-showcase .service-ribbon-card::after {
    content: "" !important;
    position: absolute !important;
    top: 42px !important;
    left: 0 !important;
    right: 0 !important;
    height: 52px !important;
    pointer-events: none !important;
    background: linear-gradient(180deg, transparent 0%, rgba(3,12,28,.72) 100%) !important;
  }
  .home-showcase .service-ribbon-card span {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-height: 48px !important;
    padding: 9px 7px !important;
    color: #fff !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    font-size: 11.5px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    text-align: center !important;
    overflow-wrap: anywhere !important;
  }
  .home-showcase .service-ribbon-card:active { transform: scale(.975) !important; }
  .home-showcase .service-ribbon-card:active img { filter: brightness(.88) saturate(1.02) !important; }
  @keyframes bs-mobile-service-marquee {
    from { transform: translate3d(0,0,0); }
    to { transform: translate3d(-50%,0,0); }
  }

  /* Aviso abaixo do carrossel: legível e separado da faixa animada. */
  .home-showcase .showcase-disclaimer {
    margin: 0 !important;
    padding: 10px 18px 12px !important;
    color: rgba(239,246,255,.78) !important;
    background: #06152d !important;
    font-size: 11px !important;
    line-height: 1.5 !important;
    text-align: center !important;
  }

  /* Galeria de imagens da página inicial. */
  .home-gallery {
    gap: 12px !important;
  }
  .home-gallery-item {
    position: relative !important;
    display: block !important;
    overflow: hidden !important;
    border-radius: 15px !important;
    background: #0a2a5c !important;
    isolation: isolate !important;
    box-shadow: 0 10px 24px rgba(7,27,58,.12) !important;
  }
  .home-gallery-item img {
    width: 100% !important;
    height: 100% !important;
    min-height: 150px !important;
    object-fit: cover !important;
    object-position: center !important;
  }
  .home-gallery-item::after {
    content: "" !important;
    position: absolute !important;
    inset: 25% 0 0 !important;
    z-index: 1 !important;
    pointer-events: none !important;
    background: linear-gradient(180deg, transparent 0%, rgba(3,12,28,.82) 100%) !important;
  }
  .home-gallery-item span {
    z-index: 2 !important;
    left: 12px !important;
    right: 12px !important;
    bottom: 12px !important;
    font-size: 13px !important;
    line-height: 1.35 !important;
  }

  /* Portfólio: mídia sem deformação e etiquetas de vídeo com leitura premium. */
  .portfolio-item { border-radius: 15px !important; overflow: hidden !important; }
  .portfolio-media, .portfolio-feature-media {
    position: relative !important;
    overflow: hidden !important;
    border-radius: 14px !important;
    background: #071b3a !important;
    isolation: isolate !important;
  }
  .portfolio-media::after, .portfolio-feature-media::after {
    content: "" !important;
    position: absolute !important;
    inset: 45% 0 0 !important;
    z-index: 1 !important;
    pointer-events: none !important;
    background: linear-gradient(180deg, transparent 0%, rgba(2,10,23,.48) 100%) !important;
  }
  .portfolio-media img, .portfolio-feature-media img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }
  .portfolio-type {
    position: absolute !important;
    z-index: 3 !important;
    top: 10px !important;
    left: 10px !important;
    padding: 5px 9px !important;
    border: 1px solid rgba(255,255,255,.25) !important;
    border-radius: 999px !important;
    color: #fff !important;
    background: rgba(4,13,27,.72) !important;
    backdrop-filter: blur(5px) !important;
    -webkit-backdrop-filter: blur(5px) !important;
    font-size: 10px !important;
    font-weight: 750 !important;
    letter-spacing: .06em !important;
    box-shadow: 0 4px 12px rgba(0,0,0,.18) !important;
  }
  .portfolio-play, .portfolio-feature-play {
    z-index: 3 !important;
    filter: drop-shadow(0 5px 14px rgba(0,0,0,.28)) !important;
    -webkit-tap-highlight-color: transparent;
  }
  .portfolio-play:active, .portfolio-feature-play:active { transform: scale(.94) !important; }

  /* Lightbox: controles contrastantes, área de toque adequada e mídia contida. */
  .portfolio-lightbox {
    padding: 12px !important;
    background: rgba(2,9,22,.94) !important;
    backdrop-filter: blur(10px) !important;
    -webkit-backdrop-filter: blur(10px) !important;
  }
  .portfolio-lightbox-dialog { width: 100% !important; min-width: 0 !important; gap: 10px !important; }
  .portfolio-lightbox-media {
    max-width: 100% !important;
    max-height: 72vh !important;
    border-radius: 12px !important;
    object-fit: contain !important;
  }
  .portfolio-lightbox-close, .portfolio-lightbox-nav {
    display: grid !important;
    place-items: center !important;
    width: 42px !important;
    height: 42px !important;
    border-radius: 50% !important;
    color: #fff !important;
    background: rgba(3,12,28,.78) !important;
    border: 1px solid rgba(255,255,255,.5) !important;
    box-shadow: 0 6px 18px rgba(0,0,0,.28) !important;
    backdrop-filter: blur(8px) !important;
    -webkit-backdrop-filter: blur(8px) !important;
  }
}

@media (max-width: 390px) {
  .home-showcase .service-ribbon-card { flex-basis: 116px !important; }
  .home-showcase .service-ribbon-card img { height: 86px !important; }
  .home-showcase .service-ribbon-card span { min-height: 46px !important; font-size: 11px !important; }
  .home-gallery-item img { min-height: 132px !important; }
}

@media (prefers-reduced-motion: reduce) {
  .home-showcase .service-ribbon-track { animation: none !important; overflow-x: auto !important; }
  .home-showcase .service-ribbon-card img, .home-gallery-item img { transition: none !important; }
}

/* CHECKPOINT 47 — FASE 5: cards de texto e links de ação; somente mobile */
@media (max-width: 768px) {
  :root {
    --bs-mobile-card-shadow: 0 10px 25px -5px rgba(0,0,0,.05), 0 8px 10px -6px rgba(0,0,0,.01);
    --bs-mobile-card-radius: 16px;
    --bs-mobile-action-orange: #FF7A00;
  }

  .section-heading {
    max-width: 100%;
    margin-bottom: 1.35rem;
  }
  .section-heading h2 {
    letter-spacing: -.02em;
    line-height: 1.16;
    text-wrap: balance;
  }
  .section-heading p,
  .section-heading .lead {
    line-height: 1.6;
  }

  .section .grid > .card,
  .section--soft .grid > .card {
    position: relative;
    min-width: 0;
    padding: 1.15rem 1rem 1.2rem;
    border-radius: var(--bs-mobile-card-radius);
    box-shadow: var(--bs-mobile-card-shadow);
    border: 1px solid rgba(10,42,92,.09);
    background: linear-gradient(180deg, #fff 0%, #fbfcff 100%);
    overflow: hidden;
  }
  .section .grid > .card:first-child,
  .section--soft .grid > .card:first-child {
    border-left: 4px solid var(--bs-mobile-action-orange);
    padding-left: calc(1rem - 3px);
  }
  .section .grid > .card .card-icon,
  .section--soft .grid > .card .card-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin-bottom: .75rem;
    border-radius: 13px;
    background: rgba(255,122,0,.11);
    color: var(--bs-mobile-action-orange);
  }
  .section .grid > .card .card-icon svg,
  .section--soft .grid > .card .card-icon svg {
    width: 23px;
    height: 23px;
    stroke: currentColor;
  }
  .section .grid > .card h3,
  .section--soft .grid > .card h3 {
    margin-top: 0;
    margin-bottom: .45rem;
    line-height: 1.28;
    letter-spacing: -.015em;
    overflow-wrap: anywhere;
  }
  .section .grid > .card p,
  .section--soft .grid > .card p {
    margin-bottom: .85rem;
    line-height: 1.6;
    color: #52627a;
  }
  .section .grid > .card a,
  .section--soft .grid > .card a {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    min-height: 40px;
    color: #0A2A5C;
    font-weight: 700;
    text-decoration: none;
    line-height: 1.35;
    transition: color .2s ease, gap .2s ease, transform .2s ease;
  }
  .section .grid > .card a:active,
  .section--soft .grid > .card a:active {
    color: #E65C00;
    gap: .7rem;
  }
  .section .grid > .card a:focus-visible,
  .section--soft .grid > .card a:focus-visible {
    outline: 2px solid var(--bs-mobile-action-orange);
    outline-offset: 3px;
    border-radius: 4px;
  }
}

@media (max-width: 390px) {
  .section .grid > .card,
  .section--soft .grid > .card {
    padding: 1rem .9rem 1.05rem;
  }
  .section .grid > .card:first-child,
  .section--soft .grid > .card:first-child {
    padding-left: calc(.9rem - 3px);
  }
  .section-heading h2 { font-size: clamp(1.65rem, 7vw, 2rem); }
}

@media (prefers-reduced-motion: reduce) {
  .section .grid > .card a,
  .section--soft .grid > .card a { transition: none; }
}


/* CHECKPOINT 48 — QA final: normalização do hero exclusivamente mobile.
   Mantém a foto original do HTML visível e garante contraste do texto. */
@media (max-width: 768px) {
  .home-showcase .showcase-photo {
    display: block !important;
    position: relative !important;
    isolation: isolate !important;
    overflow: hidden !important;
    min-height: 0 !important;
    height: auto !important;
    background-color: #07172f !important;
    background-image: none !important;
  }
  .home-showcase .showcase-photo > .hero-slide:first-of-type {
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
    object-fit: cover !important;
    object-position: center 35% !important;
    opacity: 1 !important;
    visibility: visible !important;
    filter: brightness(.58) saturate(.88) !important;
    z-index: 0 !important;
  }
  .home-showcase .showcase-photo > .hero-slide:not(:first-of-type) {
    display: none !important;
  }
  .home-showcase .showcase-photo::before {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 1 !important;
    pointer-events: none !important;
    background: linear-gradient(180deg, rgba(4,15,34,.38) 0%, rgba(4,15,34,.68) 52%, #07172f 100%) !important;
  }
  .home-showcase .showcase-copy {
    position: relative !important;
    z-index: 2 !important;
    display: block !important;
  }
  .home-showcase .showcase-intro {
    position: relative !important;
    z-index: 2 !important;
    padding-top: clamp(12px, 4vw, 22px) !important;
  }
}

/* CORREÇÃO EMERGENCIAL CHECKPOINT 49 — restaura SOMENTE a faixa de serviços no desktop.
   Escopo exclusivo acima de 768px; nenhuma regra mobile é modificada. */
@media screen and (min-width: 769px) {
  .service-ribbon {
    display: grid !important;
    grid-template-columns: repeat(10, minmax(0, 1fr)) !important;
    flex-direction: initial !important;
    align-items: start !important;
    width: 100% !important;
    max-width: none !important;
    overflow: visible !important;
    gap: clamp(.35rem, .8vw, .75rem) !important;
    padding: .65rem clamp(.75rem, 2vw, 1.8rem) .45rem !important;
    box-sizing: border-box !important;
  }
  .service-ribbon-card {
    display: flex !important;
    flex: initial !important;
    flex-direction: column !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    align-items: center !important;
    justify-content: flex-start !important;
    box-sizing: border-box !important;
  }
  .service-ribbon-card img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    max-width: none !important;
    max-height: 86px !important;
    object-fit: cover !important;
  }
}


/* FASE 1 — Design System Mobile: tokens, tipografia e sombra suave.
   Escopo estrito até 768px; não altera estilos de desktop. */
@media screen and (max-width: 768px) {
  :root {
    --brand-orange: #FF7A00;
    --brand-orange-dark: #E65C00;
    --brand-blue-dark: #0F172A;
    --brand-blue-light: #1E293B;
    --mobile-soft-shadow: 0 8px 24px -4px rgba(15, 23, 42, 0.08);
    --mobile-card-radius: 16px;
  }

  p {
    line-height: 1.6;
  }

  h1, h2 {
    letter-spacing: -0.03em;
    font-weight: 800;
  }

  .mobile-soft-shadow {
    box-shadow: var(--mobile-soft-shadow);
    border-radius: var(--mobile-card-radius);
  }
}


/* FASE 2 — Header premium mobile. Escopo exclusivo até 768px. */
@media screen and (max-width: 768px) {
  .site-header {
    background: rgba(255, 255, 255, 0.98) !important;
    border-bottom: 1px solid #E2E8F0 !important;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
  }

  .site-header .header-inner {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
  }

  .site-header .brand-symbol {
    display: block;
    width: 46px;
    height: 46px;
    object-fit: contain;
  }

  .site-header .menu-toggle {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
    min-height: 44px;
    padding: 9px 14px !important;
    border: 1px solid #D7E0EC !important;
    border-radius: 12px !important;
    background: #FFFFFF !important;
    color: #0F172A !important;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.05);
  }

  .site-header .header-cta {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    align-self: center !important;
    gap: 7px !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: max-content !important;
    min-height: 40px !important;
    margin: 0 !important;
    padding: 9px 16px !important;
    border: 1px solid rgba(230, 92, 0, 0.12) !important;
    border-radius: 50px !important;
    background: linear-gradient(135deg, #FF7A00 0%, #E65C00 100%) !important;
    color: #FFFFFF !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    line-height: 1.1 !important;
    white-space: nowrap !important;
    box-shadow: 0 4px 12px rgba(255, 122, 0, 0.2);
  }

  .site-header .header-cta > span {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 auto !important;
    width: 15px !important;
    height: 15px !important;
  }

  .site-header .header-cta svg {
    display: block !important;
    width: 15px !important;
    height: 15px !important;
    stroke: currentColor;
    fill: none;
    stroke-width: 1.8;
  }

  .site-header .header-cta:active {
    transform: scale(0.97);
  }
}


/* FASE 3 — Hero e cards de destaque premium; somente mobile.
   Não altera HTML, conteúdo, JavaScript ou regras desktop. */
@media screen and (max-width: 768px) {
  .home-showcase {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background: var(--brand-blue-dark, #0F172A);
    color: #fff;
  }

  .home-showcase .showcase-main {
    position: relative;
    min-width: 0;
    background: var(--brand-blue-dark, #0F172A);
  }

  .home-showcase .showcase-photo {
    display: block !important;
    position: absolute !important;
    inset: 0 0 auto 0 !important;
    width: 100% !important;
    height: clamp(390px, 112vw, 520px) !important;
    min-height: 0 !important;
    overflow: hidden !important;
    background: var(--brand-blue-dark, #0F172A) !important;
    z-index: 0 !important;
    pointer-events: none;
  }

  .home-showcase .showcase-photo > .hero-slide:first-of-type {
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
    object-fit: cover !important;
    object-position: center 43% !important;
    opacity: 1 !important;
    visibility: visible !important;
    filter: brightness(.55) saturate(.86) contrast(1.04) !important;
    z-index: 0 !important;
  }

  .home-showcase .showcase-photo > .hero-slide:not(:first-of-type) {
    display: none !important;
  }

  .home-showcase .showcase-photo::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background: linear-gradient(
      180deg,
      rgba(15, 23, 42, .52) 0%,
      rgba(15, 23, 42, .72) 42%,
      rgba(15, 23, 42, .96) 82%,
      #0F172A 100%
    );
  }

  .home-showcase .showcase-photo-shade {
    display: none !important;
  }

  .home-showcase .showcase-copy {
    position: relative !important;
    z-index: 2 !important;
    display: flex !important;
    flex-direction: column !important;
    min-width: 0;
    padding: 24px 20px 22px !important;
    background: transparent !important;
  }

  .home-showcase .showcase-intro {
    position: relative !important;
    z-index: 2 !important;
    min-width: 0;
    padding: 0 !important;
    margin: 0 0 22px !important;
  }

  .home-showcase .showcase-intro-text {
    position: relative;
    z-index: 3;
    max-width: 100%;
  }

  .home-showcase .showcase-eyebrow {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    padding: 8px 11px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 9px;
    background: rgba(7, 18, 38, .76);
    color: #FFB347;
    font-size: 10px;
    font-weight: 800;
    line-height: 1.35;
    letter-spacing: .055em;
    box-shadow: 0 5px 16px rgba(0,0,0,.12);
  }

  .home-showcase .showcase-intro h1 {
    margin: 16px 0 12px !important;
    color: #fff !important;
    font-size: clamp(2.1rem, 8.5vw, 2.75rem) !important;
    font-weight: 800 !important;
    line-height: 1.02 !important;
    letter-spacing: -.035em !important;
    text-wrap: balance;
    text-shadow: 0 2px 14px rgba(0,0,0,.22);
  }

  .home-showcase .showcase-intro h1 em {
    color: #FFD36A !important;
    font-style: normal;
  }

  .home-showcase .showcase-intro p {
    max-width: 35rem;
    margin: 0 !important;
    color: rgba(255,255,255,.94) !important;
    font-size: 15px !important;
    line-height: 1.6 !important;
    text-shadow: 0 1px 8px rgba(0,0,0,.2);
  }

  .home-showcase .showcase-mobile-portrait {
    display: none !important;
  }

  .home-showcase .showcase-benefits {
    position: relative !important;
    z-index: 3 !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
    width: 100% !important;
    min-width: 0;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
  }

  .home-showcase .showcase-benefits > div {
    display: grid !important;
    grid-template-columns: 38px minmax(0, 1fr) !important;
    grid-template-rows: auto auto;
    align-content: center;
    align-items: center;
    column-gap: 10px;
    row-gap: 3px;
    min-width: 0;
    min-height: 82px;
    padding: 13px 12px !important;
    border: 1px solid rgba(255,255,255,.13) !important;
    border-radius: 16px !important;
    background: linear-gradient(180deg, rgba(255,255,255,.075), rgba(255,255,255,.035)) !important;
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    box-shadow: 0 8px 22px rgba(0,0,0,.12), inset 0 1px 0 rgba(255,255,255,.035);
  }

  .home-showcase .showcase-benefits .benefit-icon {
    grid-column: 1;
    grid-row: 1 / span 2;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 38px !important;
    height: 38px !important;
    margin: 0 !important;
    border: 1px solid rgba(255,122,0,.14);
    border-radius: 12px !important;
    background: rgba(255,122,0,.17) !important;
    color: #FF9A2F !important;
  }

  .home-showcase .showcase-benefits .benefit-icon svg {
    display: block;
    width: 21px !important;
    height: 21px !important;
    stroke: currentColor !important;
    stroke-width: 2.1 !important;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  .home-showcase .showcase-benefits strong {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
    color: #fff !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
    overflow-wrap: anywhere;
  }

  .home-showcase .showcase-benefits small {
    grid-column: 2;
    grid-row: 2;
    min-width: 0;
    color: rgba(232,240,252,.82) !important;
    font-size: 11px !important;
    line-height: 1.35 !important;
    overflow-wrap: anywhere;
  }

  .home-showcase .showcase-actions {
    position: relative;
    z-index: 3;
    margin-top: 18px;
  }
}

@media screen and (max-width: 390px) {
  .home-showcase .showcase-copy { padding: 20px 15px 18px !important; }
  .home-showcase .showcase-intro h1 { font-size: clamp(1.95rem, 8.4vw, 2.25rem) !important; }
  .home-showcase .showcase-benefits { gap: 9px !important; }
  .home-showcase .showcase-benefits > div { grid-template-columns: 32px minmax(0,1fr) !important; column-gap: 8px; padding: 11px 9px !important; min-height: 76px; }
  .home-showcase .showcase-benefits .benefit-icon { width: 32px !important; height: 32px !important; border-radius: 10px !important; }
  .home-showcase .showcase-benefits .benefit-icon svg { width: 18px !important; height: 18px !important; }
}

@media (prefers-reduced-motion: reduce) {
  .home-showcase .showcase-benefits > div { -webkit-backdrop-filter: none; backdrop-filter: none; }
}


/* FASE 4 — CTA premium exclusivamente mobile */
@media screen and (max-width: 768px) {
  .home-showcase .showcase-actions {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 12px !important;
    width: 100% !important;
  }

  .home-showcase .showcase-actions .showcase-btn {
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 9px !important;
    width: 100% !important;
    min-height: 52px !important;
    padding: 14px 18px !important;
    border-radius: 14px !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
    text-align: center !important;
    text-decoration: none !important;
    transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease !important;
    -webkit-tap-highlight-color: transparent;
  }

  .home-showcase .showcase-actions .showcase-btn--orange {
    color: #FFFFFF !important;
    background: linear-gradient(135deg, var(--brand-orange, #FF7A00) 0%, var(--brand-orange-dark, #E65C00) 100%) !important;
    border: 1px solid rgba(255,255,255,.12) !important;
    box-shadow: 0 6px 20px rgba(255,122,0,.4) !important;
  }

  .home-showcase .showcase-actions .showcase-btn--orange .btn-icon,
  .home-showcase .showcase-actions .showcase-btn--outline .btn-icon {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 20px !important;
    width: 20px !important;
    height: 20px !important;
    margin: 0 !important;
  }

  .home-showcase .showcase-actions .showcase-btn .btn-icon svg {
    display: block !important;
    width: 20px !important;
    height: 20px !important;
    stroke: currentColor !important;
    fill: none !important;
    stroke-width: 1.8 !important;
  }

  .home-showcase .showcase-actions .showcase-btn--orange b {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin-left: 2px !important;
    font-size: 23px !important;
    line-height: 1 !important;
  }

  .home-showcase .showcase-actions .showcase-btn--outline {
    color: #FFFFFF !important;
    background: transparent !important;
    border: 2px solid rgba(255,255,255,.3) !important;
    box-shadow: none !important;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
  }

  .home-showcase .showcase-actions .showcase-btn--orange:active {
    transform: scale(.97) !important;
    box-shadow: 0 3px 12px rgba(255,122,0,.32) !important;
  }

  .home-showcase .showcase-actions .showcase-btn--outline:active {
    transform: scale(.98) !important;
    background: rgba(255,255,255,.1) !important;
  }

  .floating-whatsapp {
    box-shadow: 0 8px 24px rgba(37,211,102,.4) !important;
    animation: mobile-whatsapp-pulse 2.4s ease-in-out infinite;
  }

  @keyframes mobile-whatsapp-pulse {
    0%, 100% { box-shadow: 0 8px 24px rgba(37,211,102,.35); }
    50% { box-shadow: 0 8px 28px rgba(37,211,102,.55); }
  }
}

@media (prefers-reduced-motion: reduce) and (max-width: 768px) {
  .home-showcase .showcase-actions .showcase-btn,
  .floating-whatsapp { animation: none !important; transition: none !important; }
}


/* CHECKPOINT 54 — FASE 5: cards e etapas | MOBILE ONLY */
@media screen and (max-width: 768px) {
  /* Cards de confiança: visual leve, sem barra lateral colorida. */
  .section--soft .grid > .card {
    padding: 24px !important;
    border-radius: 16px !important;
    border-left: 0 !important;
    box-shadow: var(--mobile-soft-shadow, 0 8px 24px rgba(15, 23, 42, 0.08)) !important;
    overflow: hidden;
  }

  /* Etapas de atendimento: manter conteúdo e ordem existentes. */
  .section--soft + .section .grid > .card {
    padding: 24px !important;
    border-radius: 16px !important;
    border-left: 0 !important;
    box-shadow: var(--mobile-soft-shadow, 0 8px 24px rgba(15, 23, 42, 0.08)) !important;
  }

  .section--soft .grid > .card h3,
  .section--soft + .section .grid > .card h3 {
    margin-top: 0;
    line-height: 1.3;
  }

  .section--soft .grid > .card p,
  .section--soft + .section .grid > .card p {
    margin-bottom: 0;
    line-height: 1.65;
  }
}


/* CHECKPOINT 55 — FASE 6: GALERIA E CTA FINAL MOBILE
   Escopo exclusivo: viewport até 768px. Desktop preservado. */
@media screen and (max-width: 768px) {
  .home-gallery-section {
    padding-top: clamp(36px, 9vw, 56px);
    padding-bottom: clamp(36px, 9vw, 56px);
    overflow: hidden;
  }

  .home-gallery-heading {
    margin-bottom: 22px;
    text-align: left;
  }

  .home-gallery-heading h2 {
    max-width: 18ch;
    margin-inline: 0;
    text-wrap: balance;
  }

  .home-gallery-heading p {
    max-width: 38ch;
    margin-inline: 0;
  }

  .home-gallery-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    align-items: stretch;
  }

  .home-gallery-item {
    position: relative;
    display: block;
    min-width: 0;
    overflow: hidden;
    aspect-ratio: 4 / 5;
    border-radius: 16px;
    background: #0F172A;
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.12);
    isolation: isolate;
    -webkit-tap-highlight-color: transparent;
  }

  .home-gallery-item img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform 220ms ease;
  }

  .home-gallery-item::after {
    content: "";
    position: absolute;
    inset: 30% 0 0;
    z-index: 0;
    background: linear-gradient(180deg, transparent 0%, rgba(15, 23, 42, 0.18) 30%, rgba(15, 23, 42, 0.88) 100%);
    pointer-events: none;
  }

  .home-gallery-item span {
    position: absolute;
    z-index: 1;
    right: 11px;
    bottom: 12px;
    left: 11px;
    color: #fff;
    font-size: 13px;
    font-weight: 750;
    line-height: 1.3;
    text-wrap: balance;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
  }

  .home-gallery-item:active img {
    transform: scale(1.025);
  }

  .home-gallery-action {
    display: flex;
    width: 100%;
    margin-top: 20px;
  }

  .home-gallery-action .btn {
    display: flex;
    width: 100%;
    min-height: 50px;
    align-items: center;
    justify-content: center;
    gap: 9px;
    border-radius: 14px;
    text-align: center;
  }

  .cta-band {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 18px;
    padding: 24px 20px;
    border-radius: 20px;
  }

  .cta-band h2 {
    max-width: 19ch;
    margin-bottom: 8px;
    text-wrap: balance;
  }

  .cta-band p {
    margin-bottom: 0;
    line-height: 1.6;
  }

  .cta-band > .btn {
    display: flex;
    width: 100%;
    min-height: 52px;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    text-align: center;
  }
}

@media screen and (max-width: 380px) {
  .home-gallery-grid { gap: 9px; }
  .home-gallery-item span { right: 9px; bottom: 10px; left: 9px; font-size: 12px; }
  .cta-band { padding: 21px 16px; }
}

@media (prefers-reduced-motion: reduce) {
  @media screen and (max-width: 768px) {
    .home-gallery-item img { transition: none; }
  }
}


/* CHECKPOINT 56 — FASE 7: RODAPÉ E ELEMENTOS FLUTUANTES (SOMENTE MOBILE) */
@media screen and (max-width: 768px) {
  .site-footer {
    padding: 38px 0 18px;
  }

  .site-footer .container {
    padding-left: max(18px, env(safe-area-inset-left));
    padding-right: max(18px, env(safe-area-inset-right));
  }

  .footer-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 26px;
  }

  .footer-brand-block {
    min-width: 0;
  }

  .footer-logo {
    display: block;
    width: min(210px, 72%);
    max-width: 100%;
    height: auto;
    object-fit: contain;
    margin-bottom: 14px;
  }

  .site-footer .footer-grid h3 {
    margin: 0 0 12px;
    font-size: 1.05rem;
    line-height: 1.3;
  }

  .site-footer .footer-grid p {
    margin: 0 0 10px;
    line-height: 1.65;
    overflow-wrap: anywhere;
  }

  .site-footer .footer-grid a {
    display: inline-block;
    max-width: 100%;
    min-height: 24px;
    overflow-wrap: anywhere;
    text-underline-offset: 3px;
  }

  .footer-bottom {
    margin-top: 24px;
    padding-top: 16px;
    line-height: 1.55;
    font-size: .82rem;
    text-align: center;
  }

  .floating-whatsapp {
    right: max(12px, env(safe-area-inset-right));
    bottom: max(12px, env(safe-area-inset-bottom));
    z-index: 1000;
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 16px;
    border-radius: 999px;
    line-height: 1.2;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .22);
  }

  .back-to-top {
    right: max(14px, env(safe-area-inset-right));
    bottom: calc(max(76px, env(safe-area-inset-bottom) + 64px));
    z-index: 999;
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
  }

  .floating-whatsapp:focus-visible,
  .back-to-top:focus-visible,
  .site-footer a:focus-visible {
    outline: 3px solid #FFB347;
    outline-offset: 3px;
  }
}

@media screen and (max-width: 380px) {
  .site-footer { padding-top: 30px; }
  .footer-grid { gap: 22px; }
  .floating-whatsapp { padding: 11px 13px; font-size: .88rem; }
}


/* CHECKPOINT 57 — FASE 8: ACABAMENTO RESPONSIVO E PREVENÇÃO DE OVERFLOW (SOMENTE MOBILE) */
@media screen and (max-width: 768px) {
  /* Impede que filhos de layouts flex/grid forcem a largura da viewport. */
  .container,
  .header-inner,
  .showcase-main,
  .showcase-copy,
  .showcase-benefits,
  .showcase-actions,
  .grid,
  .card,
  .footer-grid,
  .footer-brand-block {
    min-width: 0;
  }

  /* Mídias responsivas sem modificar a proporção definida por cada componente. */
  img,
  video,
  iframe,
  svg {
    max-width: 100%;
  }

  /* Evita que palavras, URLs e conteúdo longo ampliem os cards. */
  .container,
  .card,
  .showcase-copy,
  .cta-band,
  .site-footer {
    overflow-wrap: anywhere;
  }

  /* Alvos de toque consistentes para controles comuns, sem mudar sua função. */
  .site-nav a,
  .header-cta,
  .btn,
  .showcase-btn,
  .home-gallery-action a,
  .footer-grid a {
    touch-action: manipulation;
  }

  /* Respeita as áreas seguras laterais em aparelhos com recortes de tela. */
  .site-header .container,
  main > .container,
  .site-footer .container {
    padding-left: max(16px, env(safe-area-inset-left));
    padding-right: max(16px, env(safe-area-inset-right));
  }
}

@media screen and (max-width: 380px) {
  .site-header .container,
  main > .container,
  .site-footer .container {
    padding-left: max(14px, env(safe-area-inset-left));
    padding-right: max(14px, env(safe-area-inset-right));
  }
}


/* CHECKPOINT 58 — FASE 9: CTA PRINCIPAL DO WHATSAPP (SOMENTE MOBILE) */
@media screen and (max-width: 768px) {
  .showcase-actions {
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }
  .showcase-actions .showcase-btn--orange {
    min-height: 56px !important;
    width: 100% !important;
    max-width: 100%;
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    padding: 14px 18px !important;
    border-radius: 14px !important;
    background: linear-gradient(135deg, #FF850A 0%, #FF6A00 100%) !important;
    border: 1px solid rgba(255, 205, 117, .95) !important;
    color: #FFFFFF !important;
    font-size: 16px !important;
    font-weight: 750 !important;
    line-height: 1.25 !important;
    text-align: center !important;
    text-decoration: none !important;
    box-shadow: 0 7px 18px rgba(255, 106, 0, .24) !important;
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
  }
  .showcase-actions .showcase-btn--orange .btn-icon {
    flex: 0 0 22px !important;
    width: 22px !important;
    height: 22px !important;
    display: inline-grid !important;
    place-items: center !important;
    color: #FFFFFF !important;
  }
  .showcase-actions .showcase-btn--orange .btn-icon svg {
    display: block !important;
    width: 22px !important;
    height: 22px !important;
    stroke: currentColor !important;
    fill: none !important;
  }
  .showcase-actions .showcase-btn--orange:focus-visible {
    outline: 3px solid #FFFFFF !important;
    outline-offset: 3px !important;
    box-shadow: 0 0 0 6px rgba(255, 122, 0, .75) !important;
  }
  .showcase-actions .showcase-btn--orange:active {
    transform: scale(.99);
  }
  .showcase-actions .showcase-btn--orange b {
    margin-left: 2px;
    font-size: 1.35em;
    line-height: 1;
  }
}
@media screen and (max-width: 380px) {
  .showcase-actions .showcase-btn--orange {
    min-height: 54px !important;
    gap: 8px !important;
    padding-right: 14px !important;
    padding-left: 14px !important;
    font-size: 15px !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  .showcase-actions .showcase-btn--orange {
    transition: none !important;
    animation: none !important;
  }
}


/* CHECKPOINT 59 — FASE 10: refinamento visual do menu mobile (CSS-only) */
@media screen and (max-width: 768px) {
  .site-header {
    position: sticky;
    top: 0;
    z-index: 1000;
  }
  .header-inner {
    min-width: 0;
    gap: 10px;
  }
  .menu-toggle {
    min-height: 44px;
    min-width: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 12px;
    border-radius: 12px;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
  }
  .menu-toggle svg {
    width: 22px;
    height: 22px;
    flex: 0 0 auto;
  }
  .site-nav {
    max-width: 100%;
    box-sizing: border-box;
    padding: 12px;
    gap: 4px;
    border-radius: 0 0 16px 16px;
  }
  .site-nav a {
    display: flex;
    align-items: center;
    min-height: 44px;
    padding: 11px 14px;
    border-radius: 10px;
    line-height: 1.35;
    overflow-wrap: anywhere;
    -webkit-tap-highlight-color: transparent;
  }
  .site-nav a[aria-current="page"] {
    font-weight: 800;
  }
  .site-nav a:focus-visible,
  .menu-toggle:focus-visible {
    outline: 3px solid #FF7A00;
    outline-offset: 2px;
  }
  .header-cta {
    min-height: 44px;
    white-space: nowrap;
    touch-action: manipulation;
  }
}
@media screen and (max-width: 380px) {
  .header-inner { gap: 7px; }
  .menu-toggle { padding: 9px 10px; gap: 6px; }
  .header-cta { padding-left: 11px; padding-right: 11px; font-size: 13px; }
}
@media (prefers-reduced-motion: reduce) {
  .menu-toggle, .site-nav a, .header-cta { transition: none !important; animation: none !important; }
}


/* CHECKPOINT 60 — FASE 11: cabeçalho compacto e persistente no mobile (CSS-only) */
@media screen and (max-width: 768px) {
  .site-header,
  header.site-header,
  .site-header.is-hidden-on-scroll {
    position: sticky !important;
    top: 0 !important;
    transform: translateY(0) !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    z-index: 1200 !important;
  }
  .site-header .header-inner {
    width: 100%;
    min-width: 0 !important;
    min-height: 64px !important;
    padding-top: 7px !important;
    padding-bottom: 7px !important;
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: space-between !important;
    column-gap: 8px !important;
    row-gap: 8px !important;
    box-sizing: border-box !important;
  }
  .site-header .brand {
    display: inline-flex !important;
    align-items: center !important;
    flex: 0 1 auto !important;
    min-width: 0 !important;
    margin: 0 !important;
  }
  .site-header .brand-symbol {
    width: 44px !important;
    height: 44px !important;
    max-width: 100% !important;
    object-fit: contain !important;
  }
  .site-header .menu-toggle {
    display: inline-flex !important;
    flex: 0 0 auto !important;
    min-width: 44px !important;
    min-height: 44px !important;
    margin: 0 !important;
    white-space: nowrap !important;
  }
  .site-header .header-cta {
    display: inline-flex !important;
    flex: 0 0 auto !important;
    max-width: calc(100% - 110px) !important;
    min-height: 44px !important;
    margin: 0 !important;
    padding: 9px 12px !important;
    white-space: nowrap !important;
    box-sizing: border-box !important;
  }
  .site-header .header-cta > span,
  .site-header .header-cta svg {
    flex: 0 0 auto !important;
  }
  .site-header .site-nav {
    order: 10 !important;
    flex: 1 0 100% !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
  .site-header .site-nav:not(.is-open) {
    display: none !important;
  }
  .site-header .site-nav.is-open {
    display: flex !important;
    max-height: min(70vh, 520px) !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
  }
}
@media screen and (max-width: 380px) {
  .site-header .header-inner { column-gap: 6px !important; }
  .site-header .brand-symbol { width: 40px !important; height: 40px !important; }
  .site-header .menu-toggle { gap: 5px !important; padding-inline: 9px !important; }
  .site-header .header-cta { padding-inline: 9px !important; font-size: 12px !important; }
}
@media (prefers-reduced-motion: reduce) {
  .site-header, .site-header * { scroll-behavior: auto !important; transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}


/* CHECKPOINT 61 — FASE 12: espaçamento e legibilidade mobile; desktop intocado */
@media screen and (max-width: 768px) {
  .section {
    padding-block: clamp(36px, 8vw, 56px) !important;
  }
  .section .container,
  .home-gallery-section .container {
    width: min(100% - 32px, 100%) !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }
  .section-heading {
    margin-bottom: 22px !important;
    max-width: 100% !important;
  }
  .section-heading h2 {
    max-width: 100% !important;
    text-wrap: balance;
    line-height: 1.14 !important;
    overflow-wrap: anywhere;
  }
  .section-heading p,
  .section-heading .lead {
    max-width: 100% !important;
    line-height: 1.6 !important;
    overflow-wrap: anywhere;
  }
  .section .grid {
    min-width: 0 !important;
    gap: 14px !important;
  }
  .section .grid > *,
  .section .card {
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
  .section .card h3 {
    line-height: 1.3 !important;
    overflow-wrap: anywhere;
  }
  .section .card p {
    line-height: 1.6 !important;
    overflow-wrap: anywhere;
  }
  .home-gallery-section .home-gallery-heading {
    margin-bottom: 20px !important;
  }
  .cta-band {
    gap: 18px !important;
    padding: 24px 20px !important;
    border-radius: 18px !important;
    box-sizing: border-box !important;
  }
  .cta-band h2 {
    line-height: 1.15 !important;
    text-wrap: balance;
    overflow-wrap: anywhere;
  }
  .cta-band p { line-height: 1.6 !important; }
}
@media screen and (max-width: 380px) {
  .section .container,
  .home-gallery-section .container {
    width: calc(100% - 24px) !important;
  }
  .section .grid { gap: 12px !important; }
  .section .card { padding: 18px !important; }
  .cta-band { padding: 20px 16px !important; }
}

/* CHECKPOINT 63 — FASE 14: acessibilidade mobile (CSS-only; desktop preservado) */
@media screen and (max-width: 768px) {
  /* Foco claramente visível ao navegar por teclado ou tecnologias assistivas */
  a:focus-visible,
  button:focus-visible,
  input:focus-visible,
  select:focus-visible,
  textarea:focus-visible,
  [role="button"]:focus-visible,
  [tabindex]:focus-visible {
    outline: 3px solid #FF7A00 !important;
    outline-offset: 3px !important;
    scroll-margin-block: 88px;
  }

  /* Alvos de toque confortáveis sem forçar altura em links de texto corrido */
  .menu-toggle,
  .header-cta,
  .showcase-btn,
  .floating-whatsapp,
  .back-to-top,
  .site-nav a,
  .home-gallery-section a,
  .cta-band a,
  .cta-band button {
    touch-action: manipulation;
  }

  .site-nav a,
  .showcase-btn,
  .cta-band a,
  .cta-band button {
    min-height: 44px;
  }

  /* Evita animações e movimentos desnecessários para quem prefere movimento reduzido */
  * {
    scroll-margin-top: 88px;
  }
}

@media screen and (max-width: 768px) and (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

@media screen and (max-width: 768px) and (forced-colors: active) {
  a:focus-visible,
  button:focus-visible,
  input:focus-visible,
  select:focus-visible,
  textarea:focus-visible,
  [role="button"]:focus-visible,
  [tabindex]:focus-visible {
    outline: 2px solid Highlight !important;
  }
}


/* CORREÇÃO CRÍTICA — CHECKPOINT 63: restaurar a altura do hero no mobile.
   O carrossel estava absoluto e, como o conteúdo fica dentro dele, o showcase
   colapsava e a página começava visualmente na faixa de serviços. */
@media screen and (max-width: 768px) {
  .home-showcase .showcase-main {
    display: block !important;
    position: relative !important;
    min-height: 0 !important;
    height: auto !important;
    overflow: visible !important;
  }

  .home-showcase .showcase-photo {
    display: block !important;
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: hidden !important;
    background: #0F172A !important;
    z-index: 0 !important;
  }

  .home-showcase .showcase-photo > .hero-slide:first-of-type {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
    object-fit: cover !important;
    object-position: center 43% !important;
    opacity: 1 !important;
    visibility: visible !important;
  }

  .home-showcase .showcase-copy {
    position: relative !important;
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    min-height: 0 !important;
    box-sizing: border-box !important;
    padding: 24px 20px 22px !important;
    background: transparent !important;
    z-index: 2 !important;
  }

  .home-showcase .showcase-photo::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background: linear-gradient(180deg, rgba(15,23,42,.48) 0%, rgba(15,23,42,.72) 42%, rgba(15,23,42,.96) 82%, #0F172A 100%);
  }

  .home-showcase .showcase-benefits,
  .home-showcase .showcase-actions,
  .home-showcase .showcase-location {
    position: relative !important;
    z-index: 3 !important;
  }
}


/* CHECKPOINT 65 — refinamento visual mobile do hero (CSS-only) */
@media screen and (max-width: 768px) {
  .showcase-photo {
    min-height: 0;
    padding-bottom: 1.25rem;
  }
  .showcase-copy {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    padding: clamp(1.75rem, 6vw, 2.5rem) clamp(1rem, 4vw, 1.5rem) 1.5rem;
  }
  .showcase-copy h1 {
    max-width: 100%;
    font-size: clamp(2.15rem, 7.5vw, 3.15rem);
    line-height: 1.04;
    letter-spacing: -0.035em;
    overflow-wrap: normal;
    text-wrap: balance;
  }
  .showcase-copy > p {
    max-width: 38rem;
    line-height: 1.55;
    text-wrap: pretty;
  }
  .showcase-benefits {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
    gap: clamp(.5rem, 2vw, .75rem);
  }
  .showcase-benefits > * {
    min-width: 0;
    box-sizing: border-box;
  }
  .showcase-actions {
    gap: .7rem;
    margin-top: 1rem;
  }
  .showcase-btn {
    box-sizing: border-box;
    min-height: 3.25rem;
    padding: .85rem 1rem;
    border-radius: 1rem;
    line-height: 1.25;
    white-space: normal;
    text-align: center;
  }
}
@media screen and (max-width: 380px) {
  .showcase-copy h1 { font-size: clamp(1.95rem, 8vw, 2.35rem); }
  .showcase-benefits { grid-template-columns: minmax(0, 1fr); }
  .showcase-benefits > * { min-height: 4.25rem; }
}


/* CHECKPOINT 66 — pequeno afastamento do texto em relação às bordas no mobile. */
@media screen and (max-width: 768px) {
  .home-showcase .showcase-intro-text {
    box-sizing: border-box !important;
    width: 100% !important;
    padding-inline: 8px !important;
  }
}
@media screen and (max-width: 380px) {
  .home-showcase .showcase-intro-text {
    padding-inline: 5px !important;
  }
}
