/* Advocatus Silva: preservar identidade; elevar contraste e precisão.
   Raio: cartões 6px, campos 4px, botões pill. Camadas: nav 30, quick 50, skip 60.
   Movimento: apenas transform/opacity. Loops comunicam canais de ação. */
:root{--ease-out:cubic-bezier(.23,1,.32,1);--ease-in-out:cubic-bezier(.77,0,.175,1);--gold-action:#80631b;--focus:#80631b}
body{font-size:16px;line-height:1.75}.section{padding:clamp(52px,6vw,80px) 0}h1,h2,h3{text-wrap:balance}h1,h2{font-family:Georgia,'Times New Roman',serif;line-height:1.15}.prose{max-width:74ch}.prose h2{font-family:Georgia,'Times New Roman',serif;margin:1.8em 0 .65em;line-height:1.25}.prose p,.prose li{font-size:16px}.prose p{line-height:1.8}.pagehero h1{font-family:Georgia,'Times New Roman',serif;line-height:1.18}.pagehero__sub{max-width:65ch;margin:16px auto 0;line-height:1.65}.glow{border:1px solid #d8cfb2;box-shadow:0 12px 36px #203a4b0d;border-radius:6px}.nav{height:78px;box-shadow:0 3px 20px #203a4b08}.nav__logo img{height:58px}.nav__links{gap:22px}.nav__links a{font-size:16px}.nav__links a[aria-current="page"],.nav__links a:hover{color:var(--gold-action)}
.hero{min-height:clamp(440px,59vh,570px)}.hero .wrap{padding:70px 24px 100px}.hero h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(36px,5.2vw,72px);letter-spacing:-.025em;line-height:1.14}.hero__sub{font-size:clamp(19px,2vw,25px);line-height:1.4}.hero__sub2{line-height:1.65;max-width:65ch;margin:10px auto 26px}.hero::before{background:linear-gradient(180deg,#10202bd4,#10202bad)}
.btn{gap:10px;background:var(--gold-action);border:1px solid #a28a4e;color:#fff;box-shadow:0 7px 18px #203a4b1a;filter:none;transition:transform 160ms var(--ease-out),background-color 160ms ease,box-shadow 160ms ease;min-height:46px;line-height:1.3;touch-action:manipulation}.btn:hover{filter:none}.btn:active{transform:scale(.98)}.btn--navy{background:#203a4b;border-color:#203a4b}.btn:disabled{cursor:wait;opacity:.65}.btn .ui-icon{width:20px;height:20px;flex:0 0 20px;display:inline-flex;align-items:center;justify-content:center;transform-origin:center}
.ui-icon{display:inline-flex;width:24px;height:24px;flex:0 0 24px;vertical-align:middle}.ui-icon svg{width:100%;height:100%;fill:currentColor;display:block;flex:none}.svc__icon{width:56px;height:56px;border-radius:50%;background:#f4f0e6;display:grid;place-items:center;color:var(--gold-action);margin-bottom:24px}.svc__icon .ui-icon{width:32px;height:32px}.svc__icon svg{fill:currentColor}.svc--dark .svc__icon{background:#ffffff12;color:#e9cf77}.svc{padding:38px 30px}.svc h3{line-height:1.3;font-family:Georgia,'Times New Roman',serif;font-style:normal;font-size:23px}.svc p{font-size:14px;line-height:1.85}.svc__tag{line-height:1.6;margin-bottom:16px}.quote__gold h2{font-family:Georgia,'Times New Roman',serif;margin-bottom:20px;font-size:30px}.quote__gold p{font-size:19px;line-height:1.65}.quote__dark h2{font-family:Georgia,'Times New Roman',serif;font-size:28px}.quote__dark li a{transition:color 160ms ease;padding-left:0}.quote__dark li a:hover{padding-left:0}.quote__photo{background-position:center 35%}
.lcard{padding:28px;gap:12px;border-color:#dce1e5;border-radius:6px;transition:transform 180ms var(--ease-out),border-color 180ms ease,box-shadow 180ms ease}.lcard h3{font-family:Georgia,'Times New Roman',serif;font-style:normal;font-size:22px;line-height:1.3}.lcard p{font-size:14px;line-height:1.75}.lcard__icon{color:var(--gold-action);width:32px;height:32px;margin-bottom:4px}.lcard__go{display:flex;align-items:center;gap:8px;font-size:14px}.link-arrow{width:18px;height:18px;flex-basis:18px;transition:transform 180ms var(--ease-out)}.lcard:hover{box-shadow:0 10px 25px #203a4b10;border-color:#b49a55;transform:none}.lcard:focus-within{border-color:var(--gold-action)}
.faq{border-radius:6px}.faq summary{min-height:64px;line-height:1.5;font-size:20px;gap:20px}.faq__chevron{color:var(--gold-action);width:22px;height:22px;flex-basis:22px;transform-origin:center;transition:transform 180ms var(--ease-out)}.faq[open] .faq__chevron{transform:rotate(180deg)}.faq__body p{font-size:16px;line-height:1.8}.contacto__form{padding:36px}.contacto__info h2{font-size:25px;margin:28px 0 12px;line-height:1.3}.contacto__info h2:first-child{margin-top:0}.contacto__form input,.contacto__form select,.contacto__form textarea{border-color:#aab3bb;line-height:1.6;border-radius:4px}.contacto__form input:focus,.contacto__form select:focus,.contacto__form textarea:focus{outline:2px solid var(--focus);outline-offset:3px}.booking{border-radius:6px}.about-lead img,.office-photos img{border-radius:6px}.about-lead p{max-width:65ch;line-height:1.85}.about-lead h2{font-family:Georgia,'Times New Roman',serif;font-size:27px;margin:0 0 16px}.about-lead h2+h2{font-family:'Ropa Sans',sans-serif;font-size:21px;color:var(--gold-action)}
.quick{border:1px solid #b29a60;border-radius:6px 0 0 6px;background:#203a4b;color:#fff;box-shadow:0 6px 22px #203a4b26;max-width:260px}.quick summary{padding:13px 15px;font-size:13px;min-height:44px;touch-action:manipulation}.quick nav{gap:0;padding:0 12px 12px}.quick nav a{display:flex;gap:10px;align-items:center;min-height:44px;padding:8px 4px;text-decoration:none;line-height:1.5}.quick .ui-icon{width:18px;height:18px;flex-basis:18px;color:#e9cf77}.quick nav a:hover{color:#e9cf77}.burger__panel{transform-origin:top right}.burger__panel a{min-height:44px;display:flex;align-items:center}.skip-link{position:fixed;top:8px;left:16px;z-index:60;background:#203a4b;color:#fff;padding:10px 18px;border-radius:4px;transform:translateY(-160%)}.skip-link:focus{transform:none}.motion-control{display:inline-flex;gap:7px;align-items:center;border:1px solid #ffffff70;border-radius:4px;padding:8px 10px;background:transparent;color:#fff;font:13px/1.4 'Open Sans',sans-serif;cursor:pointer;min-height:44px;touch-action:manipulation}.motion-control .ui-icon{width:16px;height:16px;flex-basis:16px}.motion-control:disabled{opacity:.75;cursor:default}.foot__bar .wrap{gap:18px;flex-wrap:wrap}.foot__brand img{width:200px;height:auto}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--focus);outline-offset:5px}.hero a:focus-visible,.quick a:focus-visible,.foot__bar button:focus-visible{outline-color:#e9cf77}#conteudo:focus{outline:none}html{scroll-padding-top:95px}.preview-notice{background:#f4f0e6}.form-note{line-height:1.7}
/* Only automatic icon loops, and only while actually in the viewport. */
@media(prefers-reduced-motion:no-preference){
.loop-icon{animation:icon-breathe 8s var(--ease-in-out) infinite;animation-play-state:paused}.loop-icon.motion-visible{animation-play-state:running}.svc:nth-child(2) .loop-icon{animation-delay:1.8s}.svc:nth-child(3) .loop-icon{animation-delay:3.6s}.hero-entry{animation:hero-settle 420ms var(--ease-out) both}
@keyframes icon-breathe{0%,12%,28%,100%{transform:translateY(0) scale(1)}20%{transform:translateY(-3px) scale(1.035)}}
@keyframes hero-settle{from{opacity:.75;transform:translateY(6px)}to{opacity:1;transform:none}}
@starting-style{.faq[open] .faq__body{opacity:.5;transform:translateY(-4px)}.burger[open] .burger__panel,.quick[open] nav{opacity:.5;transform:scale(.98)}}
.faq__body,.burger__panel,.quick nav{transition:opacity 180ms var(--ease-out),transform 180ms var(--ease-out)}
}
@media(hover:hover) and (pointer:fine){.btn:hover{background:#6e5315;transform:translateY(-1px);box-shadow:0 10px 22px #203a4b20}.btn--navy:hover{background:#142a39}.lcard:hover .link-arrow{transform:translate(2px,-2px)}.lcard:hover .lcard__icon{transform:translateY(-2px)}.lcard__icon{transition:transform 180ms var(--ease-out)}}
html.motion-paused .loop-icon,html.keyboard-input .loop-icon{animation-play-state:paused!important}html.motion-paused .hero-entry{animation:none!important}html.keyboard-input *{transition:none!important}.loop-icon:hover{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-entry,.loop-icon{animation:none!important;transform:none!important}*,*::before,*::after{transition-duration:0s!important;animation-duration:0s!important;animation-iteration-count:1!important}.btn:hover,.lcard:hover{transform:none!important}}
@media(max-width:1100px){.quick{border-radius:6px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom))}.quick[open]{max-height:60vh;overflow:auto;overscroll-behavior:contain}}
@media(max-width:700px){.nav{height:72px}.nav__logo img{height:54px}.hero{min-height:460px}.hero .wrap{padding:62px 20px 90px}.hero h1{font-size:clamp(34px,9vw,46px)}.hero__sub{font-size:20px}.hero__sub2{font-size:16px}.hero__rule{width:85%}.svc{padding:34px 28px}.section__head{margin-bottom:32px}.lcard{padding:26px}.pagehero h1{font-size:32px}.pagehero{padding:44px 0 40px}.contacto__form{padding:24px}.contacto__info .btn{padding:12px 18px}.about-lead{grid-template-columns:1fr}.about-lead img{max-width:430px;margin:0 auto}.faq summary{padding:18px;font-size:18px}.faq__body{padding:18px}.foot__bar .wrap{align-items:flex-start}.motion-control{margin-right:130px}.quick summary{font-size:12px;padding:10px 12px}.btn{max-width:100%;padding:13px 24px}.quick{max-width:min(260px,calc(100vw - 24px))}body:has(#contact-form:focus-within) .quick{visibility:hidden}}

.motion-control .play-icon{display:none}.motion-control[data-paused="true"] .pause-icon{display:none}.motion-control[data-paused="true"] .play-icon{display:inline-flex}html.motion-paused *,html.motion-paused *::before,html.motion-paused *::after{transition-duration:0s!important}

/* Enquadramento responsivo do retrato: rosto e mãos visíveis. */
@media(max-width:1000px){.quote__photo{min-height:0;height:clamp(400px,65vw,560px);background-position:50% 33%}}
@media(max-width:700px){.quote__photo{height:clamp(380px,110vw,480px);background-position:50% 43%}}

.booking-modal-open{overflow:hidden}.booking-dialog{width:min(440px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto;margin:auto;border:1px solid #d8cfb2;border-radius:12px;padding:34px 28px 24px;color:#203a4b;background:#fff;box-shadow:0 24px 80px #10233140}.booking-dialog::backdrop{background:#10233199}.booking-dialog h2{font:30px/1.2 Georgia,serif;margin:0 28px 12px 0}.booking-dialog p{font-size:15px;line-height:1.6;margin:0 0 22px}.booking-dialog__close{position:absolute;top:8px;right:8px;width:44px;height:44px;border:0;background:transparent;color:#203a4b;font:30px/1 sans-serif;cursor:pointer;border-radius:6px}.booking-dialog__close:hover{background:#f4f0e6}.booking-dialog__options{display:grid;gap:12px}.booking-channel{display:flex;align-items:center;gap:16px;padding:16px;text-decoration:none;border:1px solid #d8cfb2;border-radius:8px;color:#203a4b;transition:background-color 160ms ease,border-color 160ms ease,transform 160ms ease}.booking-channel__icon{width:32px;height:32px;flex-basis:32px;color:#80631b}.booking-channel>span:nth-child(2){flex:1;min-width:0}.booking-channel strong{display:block;font-size:18px;line-height:1.4}.booking-channel small{display:block;font-size:13px;line-height:1.6;color:#52616b}.booking-channel__arrow{width:18px;height:18px;flex-basis:18px}.booking-dialog .booking-dialog__note{font-size:12px;color:#52616b;margin:20px 0 0}.booking-channel:active{transform:scale(.99)}@media(hover:hover) and (pointer:fine){.booking-channel:hover{background:#f7f4ec;border-color:#80631b}}@media(max-width:480px){.booking-dialog{padding:30px 20px 22px}.booking-dialog h2{font-size:27px}.booking-channel{padding:15px 12px;gap:12px}}@media(prefers-reduced-motion:reduce){.booking-channel{transition:none}.booking-channel:active{transform:none}}

/* Acabamento 7/out: logo da marca no rodapé, uma só voz tipográfica, ritmo de secções.
   Nenhum texto alterado; só apresentação. */
.foot__brand img{width:220px;max-width:70%;height:auto;margin-bottom:20px}
.nav__logo img{height:64px;width:auto}
/* Hero: o itálico fica no lema dourado; a frase de apoio volta a texto corrido. */
.hero h1{text-shadow:0 2px 24px #0000004d}
.hero__sub{font-weight:400}
.hero__sub2{font-family:'Open Sans',Arial,sans-serif;font-style:normal;font-weight:400;color:#ffffffeb;font-size:clamp(16px,1.5vw,18px)}
.diff__body h2{font-style:normal}
/* Mapa da homepage ocupa a coluna inteira em vez de deixar um vazio por baixo. */
.diff__map{display:flex}
.diff__map .map-load{flex:1;min-height:320px;background-color:#ece9e2;background-image:linear-gradient(#203a4b0a 1px,transparent 1px),linear-gradient(90deg,#203a4b0a 1px,transparent 1px);background-size:32px 32px}
.diff__map .map-load iframe{position:absolute;inset:0;width:100%;height:100%;min-height:0}
/* Títulos de grupo não colados aos cartões. */
.wrap>h2+.lcards{margin-top:26px}
.lcard__go .link-arrow{display:none}
/* Minutas: botão sempre alinhado ao fundo do cartão e legível. */
.lcard>h2{margin-bottom:8px}
.lcard>.btn{margin-top:auto;align-self:stretch;justify-content:center;font-size:14px;letter-spacing:.02em;text-align:center}
/* Contactos: canais secundários em contorno, com respiro; ação principal mantém o dourado. */
.contacto__info p:has(>.btn){display:flex;flex-wrap:wrap;gap:10px}
.contacto__info .btn{margin-bottom:0}
.contacto__info p>.btn,.contacto__info>.btn[href*="google.com/maps"]{background:transparent;color:var(--gold-action);border-color:var(--gold-action);box-shadow:none}
.contacto__info>.btn[data-booking-open]{margin-top:4px}
.contacto__map{margin:28px 0 12px}
@media(hover:hover) and (pointer:fine){.contacto__info p>.btn:hover,.contacto__info>.btn[href*="google.com/maps"]:hover{background:#f7f4ec}}
@media(min-width:781px){.foot__bar .wrap{align-items:center}}
.quick summary{list-style:none}.quick summary::-webkit-details-marker{display:none}
@media(max-width:900px){.diff__map .map-load{min-height:260px}.nav__logo img{height:56px}}
/* Opiniões Google: inicial no lugar da foto (08/out) */
.test .avatar{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;margin:0 auto 16px;background:#F6F7FA;color:#80631B;font:600 22px Georgia,serif}
.test[hidden]{display:none}
.burger__panel a.btn{color:#fff}
img.avatar{display:block;object-fit:cover;padding:0}
h1,h2,h3,.hero__sub,.hero__sub2{text-wrap:balance}p,li{text-wrap:pretty}
.cookie-bar{position:fixed;left:16px;right:16px;bottom:16px;z-index:80;max-width:560px;margin:0 auto;padding:22px 24px 20px;background:#203a4b;color:#e9edf0;border-top:3px solid #b29a60;border-radius:8px;box-shadow:0 14px 40px #0f1d2659;font:15px/1.6 'Ropa Sans',Arial,sans-serif;animation:cookie-in .35s cubic-bezier(.2,.8,.2,1)}.cookie-bar h2{margin:0 0 6px;font:600 20px/1.3 'Times New Roman',Georgia,serif;color:#fff}.cookie-bar p{margin:0 0 16px}.cookie-bar a{color:#e7c782;text-decoration:underline;text-underline-offset:3px}.cookie-bar div{display:flex;gap:10px}.cookie-bar button{flex:1;min-height:44px;padding:10px 18px;border-radius:999px;font:15px/1 'Ropa Sans',Arial,sans-serif;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:background-color .16s,color .16s}.cookie-bar [data-c=sim]{background:#b29a60;border:1px solid #b29a60;color:#fff}.cookie-bar [data-c=sim]:hover{background:#80631b;border-color:#80631b}.cookie-bar [data-c=nao]{background:transparent;border:1px solid #ffffff80;color:#fff}.cookie-bar [data-c=nao]:hover{background:#ffffff14}.cookie-bar button:focus-visible{outline:3px solid #e7c782;outline-offset:3px}body:has(.cookie-bar) .quick{visibility:hidden}@keyframes cookie-in{from{opacity:0;transform:translateY(16px)}}@media(prefers-reduced-motion:reduce){.cookie-bar{animation:none}}
@media(min-width:900px){.cookie-bar{left:24px;right:auto;bottom:24px;max-width:400px}}
