/* ==========================================================================
   Public Mobile V3 — Pedro Carraro
   Camada exclusivamente mobile. Mantém desktop e conteúdo do CMS intactos.
   ========================================================================== */
@media screen and (max-width:700px){
  :root{
    --header-h:64px;
    --mobile-gutter:18px;
    --mobile-rule:rgba(91,30,30,.13);
    --mobile-soft:rgba(247,243,239,.78);
  }

  html{scroll-padding-top:var(--header-h)}
  body{background:var(--cream);font-size:15px;line-height:1.62}
  .container{width:calc(100% - (var(--mobile-gutter) * 2))}
  .section{padding:64px 0}

  /* ---------- cabeçalho ---------- */
  .site-header{
    background:rgba(247,243,239,.91);
    border-bottom:1px solid rgba(91,30,30,.08);
    box-shadow:0 8px 28px rgba(17,17,17,.028);
    backdrop-filter:blur(22px) saturate(1.18);
    -webkit-backdrop-filter:blur(22px) saturate(1.18)
  }
  .header-inner{height:var(--header-h);gap:10px}
  .brand{display:flex;align-items:center;gap:9px;min-width:0}
  .brand-monogram{display:block;width:32px;height:32px;flex:0 0 auto}
  .brand-divider{display:none}
  .brand-wordmark{display:block;width:106px;height:35px;object-fit:contain;object-position:left center}
  .brand-oab{display:none}
  .header-actions{margin-left:auto;gap:7px}
  .urgent-icon,.menu-toggle{
    width:40px;height:40px;min-width:40px;border-radius:50%;padding:0;
    border-color:rgba(91,30,30,.22);background:rgba(255,255,255,.32)
  }
  .urgent-icon{justify-content:center}
  .urgent-mark{font-size:1rem}
  .menu-toggle{padding-inline:10px}

  /* ---------- menu mobile ---------- */
  .mobile-menu.open{
    top:var(--header-h);padding:24px 20px calc(24px + env(safe-area-inset-bottom,0px));
    background:rgba(247,243,239,.985);
    border-top:0;
    backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)
  }
  .mobile-menu a{
    min-height:56px;padding:11px 2px;
    border-bottom:1px solid var(--mobile-rule);
    font-size:1.55rem;line-height:1.05;letter-spacing:-.018em
  }
  .mobile-menu a:after{font-size:1.32rem;opacity:.34}
  .mobile-menu a.active:after{opacity:.8}
  .mobile-menu [data-private-access="cliente"]{
    margin-top:18px;padding:13px 14px;min-height:48px;
    border:1px solid rgba(91,30,30,.17);border-radius:14px;
    font-family:var(--sans);font-size:.68rem;font-weight:600;
    letter-spacing:.08em;text-transform:uppercase;color:var(--burgundy);
    background:rgba(91,30,30,.025)
  }
  .mobile-menu [data-private-access="cliente"]:before{content:"Área reservada";font-weight:500;color:var(--muted);margin-right:auto}
  .mobile-menu [data-private-access="cliente"]:after{content:"→";opacity:.8}
  .mobile-menu-urgent{
    margin-top:10px!important;min-height:48px!important;border-radius:14px!important;
    border-color:rgba(91,30,30,.26)!important;background:transparent!important
  }

  /* ---------- hero ---------- */
  .hero,.hero-copy{min-height:clamp(560px,76svh,660px)}
  .hero{background:#0f0e0d}
  .hero-copy{
    width:calc(100% - (var(--mobile-gutter) * 2));
    padding:0 0 calc(34px + env(safe-area-inset-bottom,0px));
    justify-content:flex-end
  }
  .hero-name{
    margin:0 0 10px;font-size:.56rem;letter-spacing:.155em;
    color:rgba(231,214,205,.84)
  }
  .hero .display{
    max-width:350px;margin:0 0 13px;
    font-size:clamp(2.82rem,12vw,3.55rem);line-height:.91;
    letter-spacing:-.032em;text-wrap:balance
  }
  .hero .display span{white-space:normal;color:#d6b9ab}
  .hero .lead{max-width:350px;font-size:.83rem;line-height:1.52;color:rgba(247,243,239,.78)}
  .hero .lead:after{width:34px;height:1px;margin-top:15px;background:#b47661}
  .hero-actions{margin-top:16px;gap:13px;align-items:center;flex-direction:row;flex-wrap:wrap}
  .hero-actions .btn,.hero .btn-outline{
    width:auto;min-width:0;min-height:43px;padding:0 15px;border-radius:999px;
    font-size:.59rem;letter-spacing:.075em
  }
  .hero-whatsapp{padding:8px 0 6px;font-size:.6rem;letter-spacing:.07em}
  .hero-credentials{margin-top:12px;font-size:.52rem;letter-spacing:.075em}
  .hero-visual img{object-position:center 26%;filter:saturate(.82) contrast(1.035)}
  .hero-visual:before{
    background:
      linear-gradient(180deg,rgba(10,9,8,.03) 18%,rgba(10,9,8,.17) 46%,rgba(10,9,8,.93) 100%),
      linear-gradient(90deg,rgba(10,9,8,.24),transparent 58%)
  }

  /* A V2 inseria acessos internos logo após o hero. Na V3 eles não pertencem
     à composição institucional. A regra mantém qualquer resíduo oculto. */
  [data-home-access]{display:none!important}

  /* ---------- diferenciais: faixa editorial, não cards ---------- */
  .fact-strip{padding:0;background:var(--cream);border-bottom:1px solid var(--mobile-rule)}
  .fact-row{
    display:flex;gap:0;width:100%;max-width:none;padding:0 var(--mobile-gutter);
    overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-left:var(--mobile-gutter);
    scrollbar-width:none
  }
  .fact-row::-webkit-scrollbar{display:none}
  .fact{
    flex:0 0 74vw;min-height:142px;padding:24px 24px 22px 0;
    background:transparent;border:0;border-radius:0;box-shadow:none;
    align-items:flex-start;text-align:left;scroll-snap-align:start
  }
  .fact+.fact,.fact:nth-child(3){border:0;border-left:1px solid var(--mobile-rule);padding-left:24px}
  .fact-icon{padding:0 0 11px;font-size:.54rem;letter-spacing:.15em}
  .fact-icon:after{left:0;bottom:5px;width:14px;transform:none}
  .fact strong{margin:0;font-size:1.28rem;line-height:1.02;font-weight:500}
  .fact small{margin-top:8px;font-size:.7rem;line-height:1.48;color:var(--muted)}

  /* ---------- sobre / áreas da home ---------- */
  .reference-overview{display:block;min-height:0;background:#151312}
  .overview-photo{min-height:0;aspect-ratio:4/4.7}
  .overview-photo img{object-position:center 18%}
  .overview-about{padding:34px var(--mobile-gutter) 0}
  .overview-about .h2{max-width:350px;margin:9px 0 14px;font-size:2.48rem;line-height:.95}
  .overview-about>p{max-width:350px;font-size:.78rem;line-height:1.6;color:rgba(247,243,239,.68)}
  .overview-about>.text-link{margin-top:5px}
  .overview-contact{
    grid-template-columns:36px 1fr auto;gap:10px;
    margin-top:28px;padding:17px 0 20px;min-height:0;border-radius:0;
    border-top:1px solid rgba(247,243,239,.14);box-shadow:none;background:transparent
  }
  .overview-contact-icon{width:34px;height:34px;font-size:.62rem}
  .overview-contact strong{font-size:1rem;line-height:1.05}
  .overview-contact small{margin-top:3px;font-size:.64rem;color:rgba(247,243,239,.58)}
  .overview-contact .btn{display:none}
  .overview-whatsapp{width:38px;height:38px;border-radius:50%}
  .overview-practice{
    margin:0;padding:30px var(--mobile-gutter) 38px;border-radius:0;
    border-top:1px solid rgba(247,243,239,.11);box-shadow:none
  }
  .overview-practice-list{margin-top:8px}
  .overview-practice-list a{padding:13px 0;font-size:1.13rem;line-height:1.08}
  .overview-practice-list a span{font-size:.52rem;letter-spacing:.12em}

  /* ---------- experiência ---------- */
  .section-dark{background:#121110}
  .experience-grid{gap:38px}
  .experience-photo{margin-inline:calc(var(--mobile-gutter) * -1);max-width:none}
  .experience-photo img{width:100%;border-radius:0;box-shadow:none;aspect-ratio:4/4.65;object-fit:cover;object-position:center 20%}
  .experience-grid .h2{max-width:355px;margin:10px 0 16px;font-size:2.52rem;line-height:.95}
  .experience-grid .lead{font-size:.8rem;line-height:1.58}
  .timeline{position:relative;margin-top:28px;padding-left:18px;border-left:1px solid rgba(215,176,163,.22)}
  .timeline-item{grid-template-columns:56px 1fr;gap:14px;padding:17px 0;border:0}
  .timeline-year{font-size:1.35rem;color:#d5b5a5}
  .timeline-title{font-size:1.32rem}
  .timeline-copy{font-size:.74rem;line-height:1.5;color:rgba(247,243,239,.61)}

  /* ---------- forma de trabalho: lista editorial ---------- */
  .process{display:block;margin-top:28px;background:transparent;border-top:1px solid var(--mobile-rule)}
  .process-item{
    position:relative;display:grid;grid-template-columns:58px 1fr;column-gap:14px;
    min-height:0;padding:22px 0;border:0;border-bottom:1px solid var(--mobile-rule);
    border-radius:0;background:transparent;box-shadow:none
  }
  .process-num{grid-row:1/3;font-size:2.7rem;line-height:.9;color:rgba(91,30,30,.38)}
  .process-title{margin:0 0 5px;font-size:1.48rem;line-height:1}
  .process-copy{font-size:.76rem;line-height:1.52;color:var(--muted)}

  /* ---------- serviços / contato ---------- */
  .service-grid,.contact-grid,.contact-layout,.about-grid{gap:38px}
  .service-grid .h2,.contact-grid .h2,.editorial-heading .h2{font-size:2.55rem;line-height:.96}
  .service-row{padding:16px 0;border-bottom-color:var(--mobile-rule)}
  .service-actions{margin-top:22px;gap:8px;flex-direction:row;flex-wrap:wrap}
  .service-actions .btn{width:auto;min-height:44px;border-radius:999px;padding-inline:16px;font-size:.59rem}
  .location-card{
    margin-top:24px;padding:20px 0;border-radius:0;background:transparent;
    border-top:1px solid var(--mobile-rule);border-bottom:1px solid var(--mobile-rule);box-shadow:none
  }
  .contact-row .value{font-size:1.18rem;line-height:1.25}

  /* ---------- urgência ---------- */
  .emergency-grid{gap:10px}
  .emergency-symbol{font-size:3.5rem;line-height:1}
  .emergency-copy h2{font-size:2.3rem;line-height:.95}
  .emergency-grid .btn{width:auto;justify-self:start;min-height:44px;border-radius:999px;padding-inline:17px}

  /* ---------- artigos: revista, não cartões ---------- */
  .editorial-heading{margin-bottom:20px}
  .article-grid{display:block;border-top:1px solid var(--mobile-rule);background:transparent}
  .article-card,.article-card:last-child{
    min-height:0;padding:24px 0;border:0;border-bottom:1px solid var(--mobile-rule);
    border-radius:0;background:transparent;box-shadow:none
  }
  .article-card h2,.article-card h3{max-width:345px;margin:14px 0 9px;font-size:1.72rem;line-height:1.02}
  .article-card p{font-size:.76rem;line-height:1.52}
  .article-link{padding-top:14px}

  /* ---------- áreas / páginas internas ---------- */
  .page-hero{padding:34px 0 36px;background:var(--cream);border-bottom:1px solid var(--mobile-rule)}
  .page-hero .display{max-width:355px;margin:8px 0 13px;font-size:clamp(2.55rem,10.9vw,3.4rem);line-height:.92;text-wrap:balance}
  .page-hero .lead{max-width:350px;font-size:.84rem;line-height:1.52}
  .breadcrumbs{background:rgba(239,231,224,.42);border-bottom-color:rgba(91,30,30,.07)}
  .breadcrumbs ol{padding:9px 0;font-size:.55rem;letter-spacing:.07em}

  .area-feature-grid,.area-page-list,.detail-grid{display:block;border-top:1px solid var(--mobile-rule);background:transparent}
  .area-feature-card,.area-page-item,.detail-card{
    min-height:0;padding:24px 0;border:0;border-bottom:1px solid var(--mobile-rule);
    border-radius:0;background:transparent;box-shadow:none
  }
  .area-feature-card h2{margin:12px 0 10px;font-size:1.9rem;line-height:1}
  .area-page-item h2,.detail-card h3{font-size:1.62rem;line-height:1.04}
  .area-aside{
    padding:20px;border:1px solid rgba(91,30,30,.11);border-radius:16px;
    background:rgba(255,255,255,.42);box-shadow:none
  }
  .content-disclaimer{margin-top:28px;border-radius:0;padding:16px 0 16px 16px;background:transparent}
  .prose h2{margin-top:38px;font-size:1.92rem;line-height:1.03}
  .prose h3{font-size:1.5rem;line-height:1.08}
  .prose p,.prose li{font-size:.86rem;line-height:1.66}
  .photo-frame img{border-radius:0}
  .photo-frame:after{display:none}

  /* ---------- formulário ---------- */
  .form-field{gap:6px}
  .form-field input,.form-field select,.form-field textarea{
    min-height:52px;border-radius:12px;border-color:rgba(91,30,30,.16);background:rgba(255,255,255,.64)
  }
  .form-field textarea{min-height:132px}
  .form-actions{gap:10px}
  .form-actions .btn{min-height:48px;border-radius:999px}

  /* ---------- modal ---------- */
  .modal-backdrop{padding:12px;align-items:end}
  .modal{
    max-height:calc(100dvh - 24px);padding:24px 20px calc(20px + env(safe-area-inset-bottom,0px));
    border-radius:24px 24px 16px 16px;border-color:rgba(91,30,30,.12)
  }
  .modal h2{font-size:2rem;line-height:.98}
  .modal-actions{gap:8px}
  .modal-actions .btn{min-height:46px;border-radius:999px}

  /* ---------- CTA fixo discreto ---------- */
  .sticky-cta{
    left:auto;right:14px;bottom:calc(14px + env(safe-area-inset-bottom,0px));
    width:auto;min-width:0;max-width:190px;min-height:46px;padding:0 16px;
    border-radius:999px;font-size:.58rem;letter-spacing:.07em;
    box-shadow:0 12px 30px rgba(17,17,17,.18)
  }

  /* ---------- rodapé ---------- */
  .footer{padding:52px 0 calc(84px + env(safe-area-inset-bottom,0px))}
  .footer-grid{gap:30px}
  .footer-logo{width:160px;margin-bottom:16px}
  .footer-copy{max-width:330px;font-size:.76rem;line-height:1.58}
  .footer h4{margin-bottom:10px;font-size:.58rem;letter-spacing:.14em}
  .footer-links a,.footer-links span{font-size:.77rem}
  .footer-links a{padding:8px 0}
  .footer-bottom{margin-top:30px;padding-top:18px;gap:9px;font-size:.64rem;line-height:1.45}

  /* ---------- pequenos aparelhos ---------- */
  @media (max-width:370px){
    :root{--mobile-gutter:15px}
    .brand-wordmark{width:98px}
    .hero .display{font-size:2.7rem}
    .hero-actions{gap:9px}
    .fact{flex-basis:80vw}
  }
}
