/* ==========================================================
   Páginas internas
   ========================================================== */
.menu a[aria-current="page"] span{color:var(--wine)}
.menu a[aria-current="page"]::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--wine)}
.menu-cta{display:none!important}
@media (max-width:960px){.menu-cta{display:inline-block!important;color:var(--wine)}.menu a[aria-current="page"]::after{display:none}}
.pill-sm{padding:12px 22px;font-size:.72rem}
.pill-block{width:100%;justify-content:center}

/* Abertura de página */
.phero{position:relative;padding:170px 0 90px;background:radial-gradient(50% 60% at 85% 20%,rgba(169,130,74,.13),transparent 70%),var(--stone)}
.phero-grid{display:grid;grid-template-columns:1fr;gap:60px;align-items:end}
.phero--img .phero-grid{grid-template-columns:1.1fr .9fr}
.phero-text{max-width:900px}
.display--page{font-size:clamp(2.4rem,4.6vw,4.4rem);margin-bottom:26px}
.phero-lead{max-width:60ch;font-size:1.12rem;color:var(--ink-soft)}
.back{display:flex;width:fit-content;margin-bottom:22px;font-size:.85rem;font-weight:500;color:var(--muted);transition:color .3s,transform .4s var(--ease)}
.back:hover{color:var(--wine);transform:translateX(-4px)}
.phero-media{position:relative;aspect-ratio:4/3.4;border-radius:220px 220px 22px 22px;overflow:hidden;background:var(--stone-2)}
.phero-img{position:absolute;inset:-8% 0;background-size:cover;background-position:center}
@media (max-width:900px){.phero{padding:130px 0 60px}.phero--img .phero-grid{grid-template-columns:1fr;gap:40px}.phero-media{max-width:560px}}

.block-tint{background:var(--paper)}
.block-flush{padding-top:10px}
.sec-head--row{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap;max-width:none}
.sec-head--row>div{max-width:820px}

/* História */
.story-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,7vw,120px)}
.sticky-col{position:sticky;top:130px}
.story-intro p:not(.kicker){margin-top:26px;color:var(--ink-soft);max-width:54ch}
.timeline{position:relative;list-style:none;margin:0;padding:0 0 0 46px}
.timeline-line{position:absolute;left:7px;top:10px;bottom:10px;width:1px;background:var(--line)}
.timeline-line i{position:absolute;left:0;top:0;width:100%;height:0;background:var(--wine)}
.no-anim .timeline-line i{height:100%}
.tl-item{position:relative;padding:0 0 56px}
.tl-item:last-child{padding-bottom:0}
.tl-dot{position:absolute;left:-46px;top:14px;width:15px;height:15px;border-radius:50%;background:var(--stone);border:1px solid var(--wine)}
.tl-dot::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--wine)}
.tl-year{display:block;font-family:var(--display);font-size:clamp(2.4rem,4vw,3.4rem);line-height:1;color:var(--wine);margin-bottom:12px}
.tl-item p{color:var(--ink-soft);max-width:46ch}
@media (max-width:860px){.story-grid{grid-template-columns:1fr}.sticky-col{position:static}}

/* Cartões de escritório */
.ocards{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.ocard{background:var(--stone);border-radius:22px;overflow:hidden;border:1px solid var(--line-2);transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
.block-tint .ocard{background:#fff}
.ocard:hover{transform:translateY(-6px);box-shadow:0 40px 60px -40px rgba(78,21,32,.4)}
.ocard-img{aspect-ratio:4/3;background-size:cover;background-position:center;background-color:var(--stone-2)}
.ocard-body{padding:24px 24px 28px}
.ocard-tag{font-size:.7rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--wine)}
.ocard h3{font-size:1.8rem;margin:8px 0 4px}
.ocard p{color:var(--muted)}
@media (max-width:1000px){.ocards{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.ocards{grid-template-columns:1fr}}

/* Chamada final nas páginas */
.closing--page{background:var(--stone);border-top:1px solid var(--line-2)}
.closing--page .closing-in{padding-right:0}
.closing--page .closing-text>p{margin:22px auto 0}
.closing-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:14px;margin-top:38px}

/* Serviços */
.jump{display:flex;gap:12px;flex-wrap:wrap;margin-top:-40px;padding-bottom:40px}
.jump a{padding:12px 22px;border-radius:999px;border:1px solid var(--line);font-size:.85rem;font-weight:500;transition:background .4s,color .4s,border-color .4s}
.jump a:hover{background:var(--wine);color:var(--stone);border-color:var(--wine)}
section[id],article[id]{scroll-margin-top:90px}
.sgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:22px}
.sgrid--3{grid-template-columns:repeat(3,1fr)}
@media (max-width:900px){.sgrid--3{grid-template-columns:1fr}}
.scard{display:flex;flex-direction:column;background:#fff;border-radius:22px;overflow:hidden;border:1px solid var(--line-2);transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
.block-tint .scard{background:var(--stone)}
.scard:hover{transform:translateY(-8px);box-shadow:0 44px 70px -44px rgba(78,21,32,.5)}
.scard-img{aspect-ratio:3/2;background-size:cover;background-position:center;background-color:var(--stone-2);transition:transform 1.2s var(--ease)}
.scard:hover .scard-img{transform:scale(1.05)}
.scard-body{position:relative;z-index:1;padding:26px 26px 28px;background:inherit;flex:1;display:flex;flex-direction:column}
.scard h3{font-size:1.65rem;line-height:1.1;margin-bottom:8px}
.scard p{color:var(--muted);margin-bottom:22px}
.scard-more{margin-top:auto;display:inline-flex;align-items:center;gap:10px;font-size:.75rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--wine)}
.scard-more svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;transition:transform .5s var(--ease)}
.scard:hover .scard-more svg{transform:translateX(6px)}

/* Perguntas frequentes */
.faq-block{background:var(--stone)}
.faq-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(40px,6vw,100px)}
@media (max-width:860px){.faq-grid{grid-template-columns:1fr}}
.faq details{border-top:1px solid var(--line)}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:26px 0;font-family:var(--display);font-size:clamp(1.25rem,2vw,1.6rem);line-height:1.2}
.faq summary::-webkit-details-marker{display:none}
.faq summary i{flex:none;width:40px;height:40px;border-radius:50%;border:1px solid var(--line);position:relative;transition:background .4s,border-color .4s,transform .6s var(--ease)}
.faq summary i::before,.faq summary i::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:1.5px;margin:-.75px 0 0 -6px;background:var(--ink);transition:transform .5s var(--ease),background .4s}
.faq summary i::after{transform:rotate(90deg)}
.faq details[open] summary i{background:var(--wine);border-color:var(--wine);transform:rotate(180deg)}
.faq details[open] summary i::before,.faq details[open] summary i::after{background:var(--stone)}
.faq details[open] summary i::after{transform:rotate(0)}
.faq-a{padding:0 60px 28px 0;color:var(--ink-soft)}
@media (max-width:560px){.faq-a{padding-right:0}}

/* Equipa completa */
.people--full{row-gap:56px}
.person-bio{margin-top:10px;color:var(--ink-soft);font-size:.95rem;line-height:1.55}
.note{margin-top:60px;font-size:.85rem;color:var(--muted);font-style:italic;text-align:center}

/* Escritórios */
.orows{display:flex;flex-direction:column;gap:clamp(70px,9vw,130px)}
.orow{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(36px,6vw,90px);align-items:center}
.orow--rev .orow-media{order:2}
.orow-media{position:relative;aspect-ratio:4/3;border-radius:26px;overflow:hidden;background:var(--stone-2)}
.orow-img{position:absolute;inset:-8% 0;background-size:cover;background-position:center}
.orow-n{display:block;font-family:var(--display);font-size:5rem;line-height:1;color:var(--stone-3);margin-bottom:10px}
.orow-addr{font-size:1.1rem;margin:14px 0 4px}
.orow-phone{color:var(--muted);margin-bottom:30px}
@media (max-width:860px){.orow{grid-template-columns:1fr}.orow--rev .orow-media{order:0}}
.avenca--band{padding:clamp(80px,9vw,120px) 0}
.band-in{position:relative;display:flex;justify-content:space-between;align-items:center;gap:40px;flex-wrap:wrap}
.band-in p{margin-top:18px;color:rgba(243,239,231,.78);max-width:52ch}
.avenca--band .title{max-width:18ch}

/* Contacto */
.contact-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(40px,6vw,90px);align-items:start}
@media (max-width:900px){.contact-grid{grid-template-columns:1fr}}
.form{background:#fff;border:1px solid var(--line-2);border-radius:26px;padding:clamp(26px,4vw,50px);box-shadow:0 40px 80px -60px rgba(78,21,32,.4)}
.form-title{font-size:2rem;margin-bottom:26px}
.field{position:relative;margin-bottom:18px}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media (max-width:560px){.field-row{grid-template-columns:1fr;gap:0}}
.field input,.field textarea{width:100%;font:inherit;font-size:1rem;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:26px 18px 10px;outline:none;transition:border-color .3s,background .3s,box-shadow .3s;resize:vertical}
.field input:focus,.field textarea:focus{border-color:var(--wine);background:#fff;box-shadow:0 0 0 4px rgba(107,29,40,.08)}
.field label{position:absolute;left:19px;top:18px;color:var(--muted);pointer-events:none;transition:transform .3s var(--ease),font-size .3s,color .3s;transform-origin:left top}
.field input:focus+label,.field input:not(:placeholder-shown)+label,.field textarea:focus+label,.field textarea:not(:placeholder-shown)+label{transform:translateY(-11px);font-size:.75rem;color:var(--wine)}
.field.invalid input,.field.invalid textarea{border-color:#B3261E}
.field-err{display:block;margin-top:6px;font-size:.8rem;color:#B3261E}
.consent{display:flex;gap:12px;align-items:flex-start;font-size:.88rem;color:var(--ink-soft);margin:8px 0 26px;cursor:pointer}
.consent input{flex:none;width:20px;height:20px;margin-top:2px;accent-color:var(--wine)}
.consent a{color:var(--wine);text-decoration:underline;text-underline-offset:3px}
.consent.invalid span{color:#B3261E}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.form-status{margin-top:16px;font-size:.95rem;min-height:1.4em}
.form-status.ok{color:#2E6B3F}
.form-status.err{color:#B3261E}
.form.sending button[type=submit]{opacity:.6;pointer-events:none}
.contact-img{aspect-ratio:4/3;border-radius:200px 200px 22px 22px;background-size:cover;background-position:center;background-color:var(--stone-2);margin-bottom:40px}
.clist{list-style:none;margin:0;padding:0}
.clist li{display:flex;flex-direction:column;gap:2px;padding:18px 0;border-top:1px solid var(--line)}
.clist-tag{font-size:.7rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--wine)}
.clist strong{font-family:var(--display);font-weight:400;font-size:1.5rem}
.clist span{color:var(--muted)}
.clist-phone{font-size:.88rem}

/* Detalhe da área */
.svc-detail{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(40px,7vw,110px);align-items:start}
.svc-detail .title{margin-bottom:34px}
@media (max-width:860px){.svc-detail{grid-template-columns:1fr}}
.svc-items{list-style:none;margin:0;padding:0}
.svc-items li{display:grid;grid-template-columns:70px 1fr;gap:10px;align-items:baseline;padding:28px 0;border-top:1px solid var(--line);transition:padding .5s var(--ease)}
.svc-items li:last-child{border-bottom:1px solid var(--line)}
.svc-items li:hover{padding-left:12px}
.svc-items span{font-family:var(--display);font-size:2rem;color:var(--wine);line-height:1}
.svc-items p{font-size:1.15rem;color:var(--ink)}

/* Texto corrido */
.prose{max-width:760px}
.prose p{font-size:1.1rem;color:var(--ink-soft);margin-bottom:22px}

/* Rodapé: escritórios como links */
a.office{display:block}

/* Menu móvel: o cabeçalho não pode prender o menu fixo */
.hdr.menu-open{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;transform:none!important;background:transparent!important;box-shadow:none!important}
.ftr-credit strong{font-weight:600;color:var(--brass-hi)}

/* Rodapé: links legais */
.ftr-legal{display:flex;flex-wrap:wrap;gap:6px 18px}
.ftr-legal a,.linklike{color:inherit;transition:color .3s}
.ftr-legal a:hover,.linklike:hover{color:var(--stone)}
.linklike{background:none;border:0;padding:0;font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.prose h2{font-size:1.7rem;margin:40px 0 12px}
.prose button{margin-top:10px;border:0;cursor:pointer;font-family:inherit}

/* Botão WhatsApp */
.wa{
  position:fixed;right:22px;bottom:22px;z-index:90;display:flex;align-items:center;gap:0;height:58px;padding:0 17px;
  border-radius:999px;background:var(--wine);color:var(--stone);box-shadow:0 18px 40px -14px rgba(78,21,32,.65);
  transition:gap .5s var(--ease),padding .5s var(--ease),background .4s,transform .5s var(--ease)
}
.wa svg{width:24px;height:24px;flex:none}
.wa-label{max-width:0;overflow:hidden;white-space:nowrap;font-size:.85rem;font-weight:600;letter-spacing:.04em;transition:max-width .6s var(--ease)}
.wa:hover{gap:10px;padding:0 22px;background:var(--wine-deep);transform:translateY(-3px)}
.wa:hover .wa-label{max-width:140px}
.wa::before{content:"";position:absolute;inset:0;border-radius:inherit;border:1px solid var(--wine);animation:waPulse 2.8s var(--ease) infinite;pointer-events:none}
@keyframes waPulse{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.35);opacity:0}}
body.cookies-open .wa{opacity:0;pointer-events:none;transform:translateY(20px)}
@media (max-width:640px){.wa{right:16px;bottom:16px;height:54px;padding:0 15px}}

/* Aviso de cookies */
.cookies{
  position:fixed;left:22px;right:22px;bottom:22px;z-index:95;margin:0 auto;max-width:1040px;
  display:flex;align-items:center;gap:28px;padding:22px 26px;border-radius:22px;
  background:rgba(250,248,243,.96);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border:1px solid var(--line);box-shadow:0 30px 70px -30px rgba(35,29,26,.45);
  transform:translateY(0);opacity:1;transition:transform .7s var(--ease),opacity .5s
}
.cookies[hidden]{display:flex;transform:translateY(140%);opacity:0;pointer-events:none;visibility:hidden}
.cookies-text{flex:1;font-size:.9rem;color:var(--ink-soft)}
.cookies-text strong{display:block;font-family:var(--display);font-weight:400;font-size:1.25rem;color:var(--ink);margin-bottom:4px}
.cookies-text a{color:var(--wine);text-decoration:underline;text-underline-offset:3px}
.cookies-opts{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:14px}
.cookies-opts[hidden]{display:none}
.cookies-opts label{display:flex;align-items:center;gap:8px;font-weight:500;color:var(--ink);cursor:pointer}
.cookies-opts input{width:18px;height:18px;accent-color:var(--wine)}
.cookies-opts small{color:var(--muted);font-weight:400}
.cookies-actions{display:flex;flex-wrap:wrap;gap:10px;flex:none}
.ck-btn{font:inherit;font-size:.78rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:13px 20px;border-radius:999px;cursor:pointer;transition:background .3s,color .3s,border-color .3s}
.ck-ghost{background:none;border:0;color:var(--ink-soft);text-decoration:underline;text-underline-offset:3px;padding-inline:8px}
.ck-line{background:none;border:1px solid var(--ink);color:var(--ink)}
.ck-line:hover{background:var(--ink);color:var(--stone)}
.ck-wine{background:var(--wine);border:1px solid var(--wine);color:var(--stone)}
.ck-wine:hover{background:var(--wine-deep)}
@media (max-width:760px){
  .cookies{flex-direction:column;align-items:stretch;gap:16px;left:12px;right:12px;bottom:12px;padding:20px}
  .cookies-actions{display:grid;grid-template-columns:1fr 1fr}
  .ck-ghost{grid-column:1/-1;order:3}
}
