@charset "UTF-8";

/* A composição original permanece no desktop; o celular ganha sua própria hierarquia. */
.mobile-copy,.hero h1 .mobile-copy,.mobile-contact-bar,.service-toggle,.service-detail,
.about-mobile-lead,.about-more,.benefit-toggle,.mobile-topics,.mobile-topic-sheet,
.mobile-timeline-track { display:none; }

@media screen and (max-width:767px) {
  :root { --header-height:calc(72px + env(safe-area-inset-top,0px)); }
  html { scroll-padding-bottom:calc(88px + env(safe-area-inset-bottom,0px)); }
  body { font-size:15px; }
  .container { width:calc(100% - 40px); }
  .site-header { padding-top:env(safe-area-inset-top,0px); }
  .site-header .header-inner { min-height:72px; height:72px; }
  .brand-name { font-size:14px; }
  .brand { min-height:44px; }
  .menu-toggle { width:44px; height:44px; }
  .nav-link,.footer-nav a { min-height:44px; min-width:44px; display:inline-flex; align-items:center; font-size:14px; }
  .eyebrow,.audience .eyebrow,.contact-card-label { font-size:14px; letter-spacing:1.2px; line-height:1.6; }
  .eyebrow-line { width:26px; }
  .section { padding-block:36px; }
  .section-heading h2,.about-content h2,.audience h2,.contact h2 { font-size:28px; line-height:1.25; letter-spacing:-.6px; }
  .text-link,.service-link { min-height:44px; font-size:14px; }
  .button,.hero-actions .button,.contact-card .contact-actions .button { min-height:52px; font-size:15px; padding:13px 16px; }
  button,a,summary { -webkit-tap-highlight-color:transparent; }
  .button:active { filter:brightness(.92); }

  .hero { display:grid; grid-template-columns:minmax(0,520px); grid-template-areas:"eyebrow" "title" "portrait" "description" "actions"; justify-content:center; gap:14px; padding:22px 20px 28px; overflow:hidden; background:radial-gradient(ellipse at 80% 40%,#deece8 0,transparent 60%),#f4f8fa; }
  .hero .hero-inner,.hero .hero-content { display:contents; }
  .hero .desktop-copy,.hero h1 .desktop-copy { display:none; }
  .hero .mobile-copy,.hero h1 .mobile-copy { display:block; }
  .hero .hero-eyebrow { grid-area:eyebrow; display:block; margin:0; font-size:14px; letter-spacing:.9px; }
  .hero-eyebrow .eyebrow-line,.hero-atmosphere,.hero-values,.hero-promise { display:none; }
  .hero h1 { grid-area:title; margin:0; font-size:clamp(28px,8vw,34px); line-height:1.12; letter-spacing:-.7px; }
  .hero-backdrop { grid-area:portrait; position:relative; inset:auto; width:clamp(195px,56vw,225px); height:auto; aspect-ratio:3/4; justify-self:center; border-radius:18px; z-index:0; box-shadow:0 14px 30px #133b3812; }
  .hero-backdrop img { height:100%; object-position:82% 0%; transform:none; }
  .hero-backdrop::after { content:""; position:absolute; inset:55% 0 0; background:linear-gradient(transparent,#041f2c87); pointer-events:none; }
  .hero-signature { grid-area:portrait; position:relative; inset:auto; align-self:end; justify-self:center; width:110px; height:auto; margin:0 0 14px 82px; filter:brightness(0) invert(1); z-index:1; pointer-events:none; }
  .hero-description { grid-area:description; font-size:15px; line-height:1.6; margin:0; max-width:42ch; }
  .hero-actions { grid-area:actions; display:block; margin:0; }
  .hero-actions .button { width:100%; }
  .hero-actions .button-outline,.hero-actions .button-arrow { display:none; }
  .motion-ready .hero-content>* { animation-duration:420ms; animation-delay:0ms; }

  /* As seis descrições continuam disponíveis sem JavaScript. */
  .mobile-services-ready .services-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .mobile-services-ready .services .service-card { padding:18px 14px 15px; min-height:166px; border-radius:14px; display:flex; flex-direction:column; gap:0; box-shadow:none; }
  .mobile-services-ready .service-card>p,.mobile-services-ready .service-card>.service-link,.mobile-services-ready .service-number { display:none; }
  .mobile-services-ready .services .service-icon-wrap { width:40px; height:40px; margin-bottom:12px; }
  .mobile-services-ready .services .service-icon { width:24px; height:24px; }
  .mobile-services-ready .services .service-card h3 { padding:0; margin:0 0 12px; font-size:16px; line-height:1.35; letter-spacing:-.3px; }
  .service-toggle { display:block; position:absolute; inset:0; width:100%; height:100%; border:0; border-radius:14px; background:transparent; text-align:left; z-index:2; color:var(--teal); }
  .service-toggle span { position:absolute; bottom:13px; left:14px; display:flex; align-items:center; gap:6px; font-size:14px; }
  .service-toggle .icon { width:16px; height:16px; }
  .service-toggle:focus-visible { outline:2px solid var(--teal); outline-offset:3px; }
  .service-card.is-selected { border-color:var(--teal); background:#edf7f4; }
  .service-toggle:active { background:#00656b0a; }
  .service-detail { display:block; grid-column:1/-1; overflow:hidden; border:1px solid #bddbd4; border-radius:14px; background:#f1f8f5; }
  .service-detail-inner { padding:22px; }
  .service-detail h3 { font-size:21px; line-height:1.35; margin-bottom:10px; }
  .service-detail p { font-size:15px; line-height:1.7; margin-bottom:10px; color:var(--muted); }
  .service-detail .service-link { display:inline-flex; font-size:15px; }

  .about .about-grid { gap:18px; }
  .mobile-about-ready .about-content { grid-row:1; }
  .mobile-about-ready .about-portrait { grid-row:2; }
  .mobile-about-ready .about-more { grid-row:3; }
  .mobile-about-ready .about-benefits { grid-row:4; }
  .about-mobile-lead { display:block; margin:14px 0 0; font-size:15px; line-height:1.7; }
  .about-portrait { width:100%; max-width:none; min-height:0; height:clamp(210px,56vw,245px); border-radius:16px; }
  .about-portrait picture { height:100%; }
  .about-portrait img { width:100%; height:100%; aspect-ratio:auto; object-fit:cover; object-position:82% 28%; }
  .mobile-about-ready .about-portrait figcaption { display:none; }
  .about-more { display:block; border-bottom:1px solid var(--line); }
  .about-more summary { min-height:52px; display:flex; align-items:center; justify-content:space-between; gap:14px; cursor:pointer; color:var(--teal); font-weight:600; font-size:15px; list-style:none; }
  .about-more summary::-webkit-details-marker { display:none; }
  .about-more summary .icon { width:20px; height:20px; transition:transform 180ms ease; }
  .about-more[open] summary .icon { transform:rotate(90deg); }
  .about-more summary:focus-visible { outline:2px solid var(--teal); outline-offset:3px; }
  .about-more-body { padding:8px 0 24px; }
  .about-more-body>p { font-size:15px; line-height:1.8; margin-bottom:14px; color:var(--muted); }
  .about-more blockquote { margin:20px 0; border-left:2px solid var(--teal); padding-left:16px; font-family:var(--serif); font-size:19px; line-height:1.5; }
  .about-more .about-signoff { margin-top:14px; }
  .about-more .about-button { width:100%; font-size:14px; }
  .mobile-about-ready .about-benefits { display:grid; grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:min(82%,250px); gap:12px; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; padding:4px 4px 12px; margin-inline:-4px; scrollbar-width:thin; }
  .mobile-about-ready .about-benefits article { position:relative; display:flex; flex-direction:column; align-items:flex-start; gap:12px; padding:18px; height:190px; scroll-snap-align:start; border-radius:14px; }
  .mobile-about-ready .about-benefits h3 { font-size:18px; line-height:1.3; margin-bottom:8px; }
  .mobile-about-ready .about-benefits p { font-size:14px; line-height:1.65; }
  .mobile-about-ready .benefit-icon { width:40px; height:40px; flex-shrink:0; }
  .mobile-about-ready .benefit-icon .icon { width:24px; height:24px; }
  .benefit-toggle { display:block; position:absolute; inset:0; width:100%; height:100%; border:0; border-radius:14px; color:var(--teal); background:transparent; }
  .benefit-toggle span { position:absolute; bottom:14px; left:18px; font-size:14px; }
  .benefit-toggle:focus-visible { outline:2px solid var(--teal); outline-offset:-2px; }
  .benefit-toggle:active { background:#00656b0a; }
  .about-benefits article.is-expanded .benefit-icon { display:none; }

  .audience .audience-inner { gap:22px; }
  .audience-intro>p:last-child { font-size:15px; }
  .audience-tabs { grid-template-columns:1fr; gap:8px; padding:0; border:0; background:none; }
  .audience-tabs button { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:56px; padding:13px 18px; font-size:15px; text-align:left; background:#e9f2f1; border-color:#d4e4e2; border-radius:12px; }
  .audience-tabs button::after { content:""; width:20px; height:20px; flex:0 0 20px; border:1px solid #8ab6af; border-radius:50%; background:transparent; }
  .audience-tabs button[aria-selected="true"] { background:#fff; border-color:var(--teal); }
  .audience-tabs button[aria-selected="true"]::after { background:var(--teal); box-shadow:inset 0 0 0 5px #fff; }
  .audience-explorer { overflow:hidden; padding:4px; margin:-4px; }
  .audience-panel { padding:22px; gap:14px; }
  .tabs-ready .audience-panel { min-height:0; }
  .audience-panel-label { font-size:14px; letter-spacing:.8px; }
  .audience-panel h3 { font-size:23px; }
  .audience-panel div>p:not(.audience-panel-label) { font-size:15px; line-height:1.7; }
  .audience-needs li,.audience-panel .text-link { font-size:14px; }

  .process .process-grid { gap:22px; }
  .process .process-grid li { padding:0 0 0 64px; }
  .process .process-grid li::before { inset:0 0 0 64px; }
  .process .process-grid li>div { padding:18px; }
  .process .process-grid h3 { font-size:19px; }
  .process .process-grid p { font-size:15px; line-height:1.7; }
  .timeline-node { width:48px; height:48px; z-index:1; }
  .process .step-number { font-size:20px; }
  .mobile-timeline-ready .process-grid li::after { display:none; }
  .mobile-timeline-track { display:block; position:absolute; width:2px; background:#d7e8e3; z-index:-1; overflow:hidden; }
  .mobile-timeline-progress { display:block; width:100%; height:100%; background:var(--teal); transform:scaleY(0); transform-origin:top; }
  .mobile-timeline-ready .process .timeline-node { background:#f5faf8; color:var(--teal); border-color:#bad8d2; }
  .mobile-timeline-ready .process li.is-mobile-reached .timeline-node { background:var(--teal); color:#fff; border-color:var(--teal); }
  .mobile-timeline-ready .process li.is-mobile-reached .step-number { animation:step-arrival 260ms ease-out; }
  .mobile-timeline-ready .process li:not(.is-mobile-reached)::before { border-color:var(--line); }
  @keyframes step-arrival { from { opacity:.5; transform:scale(.8); } to { opacity:1; transform:scale(1); } }

  .faq-list summary { font-size:15px; line-height:1.6; min-height:60px; padding:15px 18px; }
  .faq-answer p { font-size:15px; line-height:1.75; }
  .contact .contact-panel { width:calc(100% - 32px); padding:28px 20px; gap:22px; }
  .contact h2 { font-size:28px; }
  .contact h2 br,.contact-intro>p br { display:none; }
  .contact .contact-info { padding-top:0; }
  .contact .contact-info>p:not(.contact-phone) { display:none; }
  .contact .contact-info>.contact-phone { font-size:18px; margin:14px 0 0; }
  .contact .contact-email { font-size:15px; margin-top:12px; }
  .contact-card { padding:22px 18px; margin-inline:-8px; }
  .contact-card h3 { font-size:24px; margin-bottom:18px; }
  .contact-card-note { font-size:14px; }
  .mobile-contact-ready .contact-topic,.mobile-contact-ready .contact-actions [data-contact-choice] { display:none; }
  .mobile-topics { display:block; margin-bottom:18px; }
  .mobile-topics>p { font-size:15px; color:var(--muted); margin-bottom:12px; }
  .mobile-topic-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .mobile-topic-grid button { min-height:80px; padding:12px 10px; display:flex; flex-direction:column; align-items:flex-start; gap:8px; border:1px solid #c6ded8; border-radius:12px; background:#f4f9f7; color:var(--navy); font:inherit; font-size:14px; line-height:1.4; text-align:left; }
  .mobile-topic-grid .icon { width:22px; height:22px; color:var(--teal); }
  .mobile-topic-grid button:last-child { grid-column:1/-1; min-height:48px; flex-direction:row; align-items:center; }
  .mobile-topic-grid button[aria-pressed="true"],.mobile-topic-grid button:active { background:#e6f3ee; border-color:var(--teal); }
  .mobile-topic-grid button:focus-visible,.sheet-topic-options button:focus-visible { outline:2px solid var(--teal); outline-offset:2px; }
  html.mobile-sheet-open { overflow:hidden; }
  .mobile-topic-sheet[open] { display:flex; flex-direction:column; position:fixed; inset:auto 0 0; margin:0; width:100%; max-width:none; max-height:86vh; max-height:86dvh; padding:0; border:0; border-radius:24px 24px 0 0; color:var(--navy); background:#fff; box-shadow:0 -12px 48px #001c2b26; animation:sheet-arrival 240ms cubic-bezier(.22,1,.36,1); }
  .mobile-topic-sheet::backdrop { background:#071e31a6; }
  .sheet-heading { position:relative; flex-shrink:0; padding:25px 64px 18px 24px; border-bottom:1px solid var(--line); }
  .sheet-heading::before { content:""; position:absolute; top:9px; left:calc(50% - 18px); width:36px; height:4px; border-radius:4px; background:#bfd5cf; }
  .sheet-heading h2 { font-size:24px; line-height:1.3; margin:0; }
  .sheet-close { position:absolute; top:17px; right:12px; width:44px; height:44px; border:0; border-radius:50%; background:#edf5f2; color:var(--teal); font-size:28px; }
  .sheet-body { padding:20px 24px; overflow-y:auto; overscroll-behavior:contain; }
  .sheet-description { color:var(--muted); font-size:15px; line-height:1.7; margin:0; }
  .sheet-topic-options { display:grid; gap:8px; margin-bottom:18px; }
  .sheet-topic-options button { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:52px; padding:12px 14px; border:1px solid #d4e5de; border-radius:10px; font:inherit; font-size:15px; line-height:1.5; background:#f7fbf9; color:var(--navy); text-align:left; }
  .sheet-topic-options button[aria-pressed="true"] { border-color:var(--teal); background:#e8f4ef; color:var(--teal); }
  .sheet-topic-options .icon { width:20px; height:20px; opacity:0; flex-shrink:0; }
  .sheet-topic-options [aria-pressed="true"] .icon { opacity:1; }
  .sheet-footer { padding:16px 24px calc(20px + env(safe-area-inset-bottom,0px)); border-top:1px solid var(--line); }
  .sheet-footer .button { width:100%; }
  .sheet-footer p { font-size:14px; line-height:1.5; text-align:center; color:var(--muted); margin-top:10px; }
  @keyframes sheet-arrival { from { transform:translateY(100%); } to { transform:translateY(0); } }
  .mobile-contact-bar { display:block; position:fixed; z-index:90; bottom:calc(12px + env(safe-area-inset-bottom,0px)); left:20px; right:20px; max-width:460px; margin-inline:auto; filter:drop-shadow(0 4px 12px #042e3233); opacity:var(--contact-bar-progress,0); transform:translateY(calc((1 - var(--contact-bar-progress,0))*100%)); pointer-events:none; }
  .mobile-contact-bar.is-visible { pointer-events:auto; }
  .mobile-contact-bar .button { width:100%; min-height:52px; font-size:15px; border-radius:14px; }
  .mobile-contact-bar .icon:last-child { margin-left:auto; width:20px; }
  .footer-top,.footer-bottom { gap:20px; }
  .footer-nav { flex-wrap:wrap; gap:4px 18px; }
  .footer-bottom p,.footer-bottom a { font-size:14px; line-height:1.7; }
  .footer-bottom>a { display:inline-flex; align-items:center; min-height:44px; }
  .mobile-topic-sheet button:focus-visible { outline:2px solid var(--teal); outline-offset:2px; }
}

@media(prefers-reduced-motion:reduce) {
  .mobile-topic-sheet[open],.mobile-timeline-ready .step-number { animation:none!important; }
  .mobile-timeline-progress { transform:none!important; }
  .mobile-contact-bar { transform:none!important; }
  .mobile-topic-sheet,.benefit-icon,.audience-tabs button,.timeline-node,.about-more summary .icon { transition:none!important; }
}
@media print {
  .mobile-contact-bar,.service-toggle,.benefit-toggle,.mobile-topics,.mobile-topic-sheet,.mobile-timeline-track,.about-mobile-lead,.mobile-copy { display:none!important; }
  .hero h1 .desktop-copy { display:block!important; }
  .about-more { display:block; }
  .about-more summary { display:none; }
  .about-more-body { display:block!important; }
  .about-benefits p[hidden] { display:block!important; }
  .service-detail { display:block; border:0; }
  .service-detail[hidden] { display:none!important; }
}
