/* ============================================================================
   PET HOTEL GONDOMAR - QUINTA DIAMANTE
   Folha de estilos unica, partilhada pelas cinco paginas do site.
   Nao ha dependencias: as fontes estao em fonts/ e nao se vai buscar nada a
   servidores de terceiros. Cores e medidas todas em variaveis, aqui em cima.
   ========================================================================== */

/* ---------- tipografia alojada no proprio site ----------
   TROCA DE 26/09/2026. Ate aqui era Baloo 2 + Nunito + Pacifico, escolhidas
   em Agosto para o site ser "kawaii". O pedido agora foi o contrario:
   profissional e alta-gama, com a jovialidade a ficar toda do lado da cor e
   dos autocolantes. E a letra que carrega essa diferenca.

   Fraunces  - serifa variavel com eixo optico (opsz 9..144). E uma serifa de
               contraste alto: em titulo grande le-se cara, em corpo pequeno
               le-se de revista. O eixo optico e o que faz as duas coisas com
               um ficheiro so, e nao se toca nele a mao: o
               font-optical-sizing:auto do browser trata disso a partir do
               tamanho de letra.
   Figtree   - sans moderna e quente para o texto, com x grande. Nao e neutra
               ao ponto de ser fria nem simpatica ao ponto de ser infantil.
   Caveat    - a manuscrita das frases-manifesto e das palavrinhas de seccao.
               Substitui a Pacifico, que era gorda e de pastelaria. Escolhida
               entre tres provas feitas com texto verdadeiro do site: a
               Shadows Into Light ficava fina demais e lia-se a marcador, e a
               Petit Formal Script, por mais bonita, puxava a pagina para o
               registo de casamento - que e exactamente o que este cliente
               recusou em Agosto.

   Continuam alojadas aqui: o site nao vai buscar nada a servidores de
   terceiros. Pesam 138 KB no total (67+20+51), contra 105 KB das anteriores. */
@font-face{font-family:"Fraunces";src:url(../fonts/Fraunces.woff2) format("woff2");
  font-weight:300 800;font-style:normal;font-display:swap}
@font-face{font-family:"Figtree";src:url(../fonts/Figtree.woff2) format("woff2");
  font-weight:300 900;font-style:normal;font-display:swap}
@font-face{font-family:"Caveat";src:url(../fonts/Caveat.woff2) format("woff2");
  font-weight:400;font-style:normal;font-display:swap}

:root{
  /* IDENTIDADE - o logotipo e um circulo preto com anel vermelho, pata branca
     e um diamante azul-gelo. O vermelho foi puxado para um tom mais vivo e
     mais quente do que o do ficheiro (#C64446 para #F0403A): num site para
     animais a cor tem de soar alegre, e o vermelho escuro soava a clinica.
     O verde vem da relva das fotografias da propria quinta e o amarelo e a
     cor das croquetes desenhadas - nenhuma cor e decorativa por acaso. */
  /* CORAL, e nao vermelho de sinal (26/09/2026, segunda volta). O #F0403A
     era o tom dos avisos de trânsito: gritava, e ao lado de uma tinta escura
     gritava duas vezes. O coral é a mesma família com metade do alarme, e é
     o registo em que as marcas modernas de ração e de serviços para animais
     falam. PEDE CREME POR BAIXO: sobre branco puro fica lavado.
     Contrastes medidos sobre o --paper: o vivo dá 2,9:1 e por isso só serve
     para manchas e para letra grande; tudo o que é texto e todos os botões
     cheios usam o escuro. O escuro era #C94033 e desceu a #C03A2D por uma
     razão medida: sobre o verde-claro da secção da creche dava 4,48:1 — dois
     centésimos abaixo do mínimo. Agora dá 4,9 sobre o verde e 5,2 sobre o
     creme. O --red-mid é o hover dos botões
     cheios: têm de escurecer, nunca aclarar (6,4:1). */
  /* REGRA DOS TONS VIVOS (auditoria de 27/09/2026): --red, --grass e --aqua
     sao SUPERFICIES, nunca superficies com texto por cima. Branco sobre eles
     da 3,04:1, 2,50:1 e 2,02:1 — todos abaixo dos 4,5 exigidos. Onde houver
     texto, usa-se o tom escuro: --red-dk (5,4:1 com branco), --grass-dk
     (5,5:1), --aqua-dk (5,0:1). A alternativa valida e manter o vivo e
     escurecer o TEXTO, como faz o .tab.c4 com o seu #0E4A53.
     Doze regras faziam o contrario e foram corrigidas de uma vez. */
  /* ======================================================================
     PALETA DE TERRA  (28/09/2026)
     ----------------------------------------------------------------------
     O coral e o marinho eram uma paleta de MARCA: podiam ser de uma app, de
     uma clinica ou de uma marca de racao. Nao diziam "quinta". Esta diz: e a
     cor de uma quinta ao fim da tarde — musgo, barro, osso e areia.

     ATENCAO AOS NOMES, que nao mudaram por seguranca:
       --red   = BARRO   (a cor de accao, os botoes, os numeros)
       --aqua  = MUSGO   (o verde escuro da casa, os fundos serios)
       --grass = o sinal de "sim"
     Renomear setenta usos era setenta hipoteses de um erro de escrita. Fica
     dito aqui em vez disso.

     A REGRA DOS TONS VIVOS CONTINUA A VALER, e foi medida outra vez:
       branco sobre --red (barro vivo)  4,2:1  -> so superficie e letra grande
       branco sobre --red-dk            6,9:1  -> texto e botoes cheios
       --red-dk sobre --sand            5,0:1  -> o minimo que obrigou a
                                                 escurecer o barro ate #963F20
       branco sobre --aqua-dk (musgo)  10,3:1
       --ink sobre --paper             14,5:1
     ====================================================================== */
  --red:#C0603A; --red-dk:#963F20; --red-lt:#F7E7DD; --red-mid:#7A3118;
  /* ATENCAO AO NOME. Estas tres continuam a chamar-se --aqua porque sao
     usadas em trinta sitios e renomea-las era arriscar um erro de escrita
     por cada um — mas JA NAO SAO TURQUESA. Passaram a ser a familia do
     marinho: o secundario frio da casa.

     Porque: a pagina tinha seis cores a disputar atencao (coral, marinho,
     turquesa, verde, amarelo, creme) e isso nao e paleta, e caixa de lapis —
     a mesma licao de 11/09 que se voltou a perder. Menos cores, usadas com
     disciplina, e o que faz um site parecer caro.

     A regra que fica: CORAL + MARINHO + CREME e a paleta. O verde e um
     SINAL ("sim", lugares livres, confirmado) e nao uma cor de decoracao. O
     amarelo so vive sobre os fundos escuros e no marcador. */
  --aqua:#8CA791; --aqua-dk:#2C4636; --aqua-lt:#E8EFE8;
  --grass:#6E9B6B; --grass-dk:#3D5F49; --grass-lt:#E8EFE8;
  --sun:#E6A340; --kibble:#C98A3E;
  /* cor de pelo: so os autocolantes desenhados a usam, e e por isso que nao
     entra na conta das cores da pagina. Um cao desenhado tem de ter cor de
     cao; pinta-lo de coral seria um brinquedo e nao um cao. */
  --tan:#E0B078; --tan-dk:#A87038;
  /* O amarelo da casa sobre branco da 1,6:1 e as estrelas desapareciam. O
     ambar do Google (#E08A00) so subia a 2,69:1 — e uma estrela desenhada
     continua a ser texto. Este bronze da 4,75:1 e continua a ler-se como
     ouro por causa da forma. */
  --star:#A85F00;

  --paper:#FAF6EF; --cream:#F3EBDE; --sand:#E5D9C7; --stone:#D6C7B0;
  /* A TINTA. Começou castanha (#2B2320) e, ao lado do vermelho, a página
     lia-se como um frasco de Nutella. Passou a ardósia e agora a MARINHO:
     marinho e coral é um par que se sustenta sozinho, quente contra frio,
     e nunca se lê como preto-e-vermelho. É também a família do azul-gelo do
     diamante do logótipo. 14,1:1 sobre o creme. */
  /* o verde de noite da banda escura. Existe como variavel porque as ondas
     que a emolduram vivem no html e tem de pedir a mesma cor. */
  --night:#131C17;
  /* o unico tom de texto secundario que se le sobre o verde de noite:
     6,7:1. O --soft e o --graph sao escuros e ali desapareciam. */
  --sage-f:#A9BCAD;
  /* UMA COR POR SERVICO. Ver a nota grande junto de .mcat, mais abaixo.
     01 hotel = musgo · 02 creche = barro · 03 banhos = ocre · 04 taxi = ardosia
     Contrastes sobre o osso: 9,6 / 6,4 / 5,5 / 7,5. Com branco por cima:
     10,3 / 6,9 / 5,9 / 8,1. Todos acima do minimo, e todos no mesmo degrau —
     e isso que os faz ler como um conjunto e nao como quatro decisoes. */
  --s1:#2C4636; --s1-lt:#E4EAE3;
  --s2:#963F20; --s2-lt:#F7E7DD;
  --s3:#805410; --s3-lt:#F6EBD6;
  --s4:#2F5560; --s4-lt:#E2EBEC;
  --ink:#1B2620; --graph:#46524B; --soft:#5C6660;
  --line:rgba(30,42,68,.13); --line-2:rgba(30,42,68,.26);

  --f-display:"Fraunces",Georgia,"Times New Roman",serif;
  --f-body:"Figtree","Segoe UI",Helvetica,Arial,sans-serif;
  --f-hand:"Caveat","Segoe Script",cursive;

  /* curvas - e daqui que vem quase toda a docura do desenho */
  --r-sm:14px; --r:24px; --r-lg:34px; --r-xl:48px; --r-pill:999px;
  /* O ARCO: topo redondo, base com o raio normal. O par de valores antes e
     depois da barra faz um oval em vez de um quarto de circulo — e o que o
     torna uma janela de quinta e nao um arco de igreja. */
  --arco:min(46vw,200px) min(46vw,200px) var(--r) var(--r) /
         min(34vw,160px) min(34vw,160px) var(--r) var(--r);
  --pad:clamp(1.15rem,5vw,6rem);
  --shadow:0 22px 45px -28px rgba(30,42,68,.5);
  --shadow-lg:0 34px 70px -34px rgba(30,42,68,.55);
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font-family:var(--f-body);font-weight:400;
  line-height:1.68;-webkit-font-smoothing:antialiased;overflow-x:hidden;
  font-optical-sizing:auto}
/* height:auto E OBRIGATORIO desde 28/09, quando se puseram width e height em
   todas as imagens (para as ancoras e para a pagina nao saltar). Sem ele, uma
   imagem que o max-width encolhe fica com a altura do atributo: o logotipo de
   A Quinta passou dois dias a 900 px de altura, esticado num oval. As regras
   que querem outra altura (height:100% com object-fit) tem classe e ganham. */
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
.wrap{max-width:1240px;margin:0 auto;padding-inline:var(--pad);position:relative;z-index:1}
section{padding-block:clamp(3.6rem,8vw,7rem);position:relative}
main [id]{scroll-margin-top:96px}

/* A Baloo era redonda e larga e pedia entrelinha folgada. A Fraunces e uma
   serifa de contraste alto: fecha-se o espacejamento e aperta-se a entrelinha,
   senao os titulos grandes ficam a boiar. O font-optical-sizing e o que faz a
   mesma letra servir um titulo de 100 px e um h3 de 23. */
h1,h2,h3{font-family:var(--f-display);font-weight:700;line-height:1.06;
  letter-spacing:-.016em;color:var(--ink);font-optical-sizing:auto}
h3{letter-spacing:-.008em;line-height:1.18}
/* Com a entrelinha da serifa apertada a 1,06, o paragrafo a seguir ao titulo
   ficava colado. Um titulo denso precisa de mais ar POR BAIXO, nao por
   dentro. */
h2+p,h2+.lead,h3+p{margin-top:.85rem}

/* O <em> DENTRO DE UM TITULO. Quer dizer sempre a mesma coisa neste site:
   a segunda metade da frase, em coral e sem italico. Estava escrito tres
   vezes, uma por cada seccao que por acaso o usava — e a quarta a usa-lo
   saia italica a tinta, sem ninguem perceber porque. Uma regra chega. */
h1 em, h2 em, h3 em{font-style:normal;color:var(--red-dk)}
h2{font-size:clamp(2rem,4.6vw,3.5rem)}
h3{font-size:1.45rem;font-weight:600}
.eyebrow{font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--red-dk);
  font-weight:700;font-family:var(--f-body)}
.lead{color:var(--graph);max-width:58ch;font-size:1.02rem}
.hand{font-family:var(--f-hand);font-weight:400;line-height:1.5}

/* ---------- botoes: capsulas gordas, com um empurraozinho no hover ---------- */
.btn{display:inline-block;padding:.9rem 1.9rem;border:2px solid var(--red-dk);color:var(--red-dk);
  border-radius:var(--r-pill);font-family:var(--f-display);font-weight:600;font-size:.95rem;
  letter-spacing:.02em;background:transparent;cursor:pointer;transition:.3s cubic-bezier(.2,.8,.3,1)}
.btn:hover{background:var(--red-dk);color:#FFF;transform:translateY(-3px);box-shadow:0 12px 22px -12px var(--red-dk)}
.btn.fill{background:var(--red);border-color:var(--red);color:#FFF;box-shadow:0 10px 20px -12px var(--red-dk)}
.btn.fill:hover{background:var(--red-dk);border-color:var(--red-dk);transform:translateY(-3px) scale(1.02)}
.btn.ghost{border-color:var(--line-2);color:var(--graph)}
.btn.ghost:hover{background:var(--ink);border-color:var(--ink);color:#FFF}

/* ---------- cabecalho ---------- */
body>header{position:fixed;inset:0 0 auto;z-index:50;padding-block:.9rem;
  transition:background .4s,box-shadow .4s,padding .4s,opacity .5s,visibility .5s}
body>header.hidden{opacity:0;visibility:hidden;pointer-events:none}
body>header.solid{background:rgba(255,253,250,.94);backdrop-filter:blur(14px);
  box-shadow:0 6px 24px -14px rgba(30,42,68,.45)}
body>header .wrap{display:flex;align-items:center;justify-content:space-between;gap:1.2rem}
/* O botao do cabecalho nao parte. Em contacto.html ele diz "Ligar agora" e em
   reservas.html "Reservar estadia": nessas duas paginas a etiqueta partia-se
   em duas linhas e o cabecalho crescia de 87 para 113 px — a barra mudava de
   altura ao mudar de pagina, que e a distorcao que se via. */
body>header .btn{white-space:nowrap;flex:0 0 auto}
/* flex:0 0 auto E O QUE IMPEDE A DISTORCAO. Sem ele, o bloco do logotipo era
   um item flexivel como os outros e, quando o espaco apertava, encolhia: media
   248 px a 1280 e chegava a 97 px a 920, com o "QUINTA DIAMANTE · GONDOMAR" a
   partir-se em varias linhas. Era isso que fazia a altura do cabecalho andar
   aos saltos entre paginas e larguras (87, 96, 91 px). O nome da casa nao
   encolhe: o que encolhe e o menu, e abaixo dos 1040 px ele desaparece. */
.logo{display:flex;align-items:center;gap:.7rem;flex:0 0 auto}
/* O aro e do marinho da casa e nao do azul-gelo: o logótipo já traz um anel
   proprio la dentro e dois azuis seguidos liam-se como um halo. */
.logo img{width:46px;height:46px;border-radius:50%;box-shadow:0 0 0 3px var(--ink)}
.logo span{display:flex;flex-direction:column;line-height:1}
.logo b{font-family:var(--f-display);font-size:1.12rem;font-weight:800;letter-spacing:.01em;
  color:var(--red-dk);white-space:nowrap}
.logo b i{font-style:normal;color:var(--ink)}
.logo small{font-size:.6rem;letter-spacing:.16em;color:var(--soft);text-transform:uppercase;
  margin-top:.25rem;white-space:nowrap}
nav{display:flex;gap:.3rem;font-family:var(--f-display);font-weight:600;font-size:.98rem}
/* white-space:nowrap pela MESMA razao do logotipo: sem ele, quando o espaco
   apertava os links encolhiam e "A Quinta" ou "Perguntas" partiam-se em duas
   linhas. O menu passava de 41 para 67 px de altura e o cabecalho inteiro
   mudava de tamanho entre paginas e larguras. Um item de menu ou cabe numa
   linha ou o menu inteiro recolhe — nao ha meio termo. */
nav a{position:relative;padding:.45rem .85rem;border-radius:var(--r-pill);transition:.3s;
  color:var(--graph);white-space:nowrap}
nav a:hover{background:var(--red-lt);color:var(--red-dk)}
nav a.on{background:var(--red-dk);color:#FFF}
.burger{display:none;background:var(--red-dk);border:0;width:44px;height:44px;border-radius:50%;
  color:#FFF;font-size:1.3rem;cursor:pointer;line-height:1}

/* ---------- selector de idioma ---------- */
.lang{display:flex;align-items:center;gap:.45rem;padding:.35rem .8rem .35rem .4rem;
  border:2px solid var(--line-2);border-radius:var(--r-pill);cursor:pointer;background:rgba(255,255,255,.75);
  backdrop-filter:blur(10px);transition:.3s;font-family:var(--f-display);font-weight:600}
.lang:hover{border-color:var(--red);background:#FFF}
.lang b{font-size:.72rem;font-weight:700;letter-spacing:.06em;color:var(--ink)}
.lang .flag{width:22px;height:15px;border-radius:3px;overflow:hidden;display:block;box-shadow:0 0 0 1px var(--line)}
.lang svg{display:block;width:100%;height:100%}

/* ============================ CAPA (só na entrada) ======================== */
/* A CAPA VOLTA A SER DE BORDO A BORDO (27/09/2026, segunda decisao).
   Experimentou-se a moldura do waggel.co.uk — margem a toda a volta e cantos
   redondos — e o Eduardo preferiu a capa cheia: numa entrada que vive de uma
   fotografia grande de caes a correr, a margem tira-lhe forca. A moldura
   FICOU nas paginas interiores, onde o topo e so letra e ganha com ela.

   As variaveis ficam, a zero. Tudo o que vive na capa se posiciona com
   calc(var(--cm) + ...), por isso voltar a emoldurar e mudar estas duas
   linhas e mais nada. */
.cover{--cm:0px; --cr:0px;
  position:sticky;top:0;height:100svh;display:grid;place-items:center;overflow:hidden;z-index:0;
  background:var(--cream)}
/* A fotografia da capa volta a ser nitida. Teve desfoque durante meio dia,
   para deixar respirar quatro retratos recortados que estavam por cima dela;
   os retratos sairam - fotografia sobre fotografia nao e metodo - e com eles
   saiu a razao para desfocar o que o cliente quer que se veja. */
/* O scale passou da moldura para a IMAGEM: se ficasse na moldura, ela
   crescia 4% e saia por cima da margem que acabamos de lhe dar. */
/* place-self:stretch NAO e decorativo. A .cover e display:grid com
   place-items:center, e um filho absoluto de uma grelha tambem e item de
   grelha: o center dela ganhava ao inset e a moldura aparecia com 7 px em
   cima e ZERO dos lados. Com stretch, o inset volta a mandar. */
.cover-bg{position:absolute;inset:var(--cm);place-self:stretch;
  border-radius:var(--cr);overflow:hidden}
.cover-bg img{width:100%;height:100%;object-fit:cover;object-position:center 58%;
  filter:saturate(1.1);transform:scale(1.04)}
.cover-bg::after{content:"";position:absolute;inset:0;
  background:radial-gradient(ellipse 60% 50% at 50% 45%,rgba(255,253,250,.93),rgba(255,246,234,.7) 48%,
  rgba(255,237,216,.45) 72%,rgba(30,42,68,.2))}
.cover-in{position:relative;text-align:center;padding-inline:1.2rem;will-change:transform,opacity}
.cover-in .mark{font-family:var(--f-display);display:grid;gap:.1em;margin-bottom:1rem;line-height:1}
/* "Pet" em coral e "Hotel" em marinho, e nao ao contrario: a palavra quente
   vem a frente e puxa o olho para aquilo de que o negocio trata; a fria fica
   a servir de base. O coral e o ESCURO - o vivo da 2,9:1 e uma marca nao se
   escreve na margem do minimo. */
.cover-in .mark .a{font-size:clamp(2.6rem,9vw,6.4rem);font-weight:700;color:var(--red-dk);
  letter-spacing:-.022em}
.cover-in .mark .a i{font-style:normal;color:var(--ink)}
.cover-in .mark .b{font-size:clamp(.9rem,2.4vw,1.5rem);font-weight:600;color:var(--graph);letter-spacing:.28em}
.cover-in .sub{font-size:clamp(.72rem,1.5vw,.92rem);font-weight:600;color:var(--graph);
  background:rgba(255,255,255,.72);display:inline-block;padding:.5rem 1.3rem;border-radius:var(--r-pill);
  box-shadow:0 0 0 2px rgba(255,255,255,.5)}
/* SEM USO desde 27/09/2026: a frase "Ele nao fica a sua espera / Fica tambem
   de ferias" saiu da capa a pedido do Eduardo. A regra fica porque a frase
   volta com uma linha de html, e o .pagetop .phrase das paginas interiores
   continua vivo e a usar a mesma manuscrita. */
.cover-in .phrase{font-family:var(--f-hand);font-size:clamp(1.55rem,3.8vw,2.75rem);line-height:1.3;
  max-width:22ch;margin:1.6rem auto 0;color:var(--red-dk)}
/* Estava a cinzento (--graph) sobre a relva do fundo: ilegivel. Passou a
   creme com sombra propria, que e o unico par que funciona por cima de uma
   fotografia que muda de claro para escuro de cima para baixo. */
.cover-cue{position:absolute;left:0;right:0;bottom:calc(var(--cm) + 1.5rem);color:var(--cream);cursor:pointer;
  font-family:var(--f-display);font-weight:700;font-size:.85rem;display:grid;justify-items:center;gap:.4rem;
  text-shadow:0 2px 10px rgba(30,42,68,.85),0 0 2px rgba(30,42,68,.7);transition:color .3s;z-index:3}
.cover-cue:hover{color:#FFF}
.cover-cue i{display:block;width:34px;height:34px;border-radius:50%;background:var(--red);position:relative;
  animation:bob 1.8s ease-in-out infinite}
.cover-cue i::after{content:"";position:absolute;left:50%;top:44%;width:9px;height:9px;
  border-right:2.5px solid #FFF;border-bottom:2.5px solid #FFF;transform:translate(-50%,-50%) rotate(45deg)}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(7px)}}
.fade-up{opacity:0;transform:translateY(20px);animation:fu 1s cubic-bezier(.16,1,.3,1) forwards}
.fade-up.d1{animation-delay:.12s}.fade-up.d2{animation-delay:.34s}.fade-up.d3{animation-delay:1s}
@keyframes fu{to{opacity:1;transform:none}}
.content{position:relative;z-index:2;background:var(--paper);border-radius:var(--r-xl) var(--r-xl) 0 0;
  box-shadow:0 -24px 60px rgba(30,42,68,.22)}

/* ========== TOPO DAS PÁGINAS INTERIORES (a versão leve da capa) ===========
   Mesma ideia da capa — nome grande, frase à mão, onda em baixo — mas com
   pouco mais de um terço do ecrã, para saltar de página em página ser rápido
   e não obrigar a ver a mesma animação cinco vezes. */
.pagetop{padding:clamp(7.5rem,14vw,10rem) 0 clamp(3rem,6vw,5rem);text-align:center;position:relative;
  background:radial-gradient(ellipse 85% 105% at 50% -15%,var(--red-lt),transparent 60%),
             radial-gradient(ellipse 130% 60% at 50% 105%,var(--sand),transparent 72%),var(--cream)}
.pagetop h1{font-size:clamp(2.3rem,6vw,4.2rem);font-weight:800;margin-top:.5rem}
.pagetop .lead{margin-inline:auto}
.pagetop .phrase{font-family:var(--f-hand);font-size:clamp(1.1rem,2.4vw,1.6rem);color:var(--red-dk);
  max-width:28ch;margin:1.1rem auto 0}
/* A migalha "Inicio" media 32x15 px: abaixo do minimo de 24x24 da WCAG
   2.5.8. O inline-block com padding vertical da-lhe altura sem mexer no
   aspecto — a linha continua a parecer a mesma. */
.crumbs{font-size:.8rem;color:var(--soft);font-weight:600}
.crumbs a{display:inline-block;padding-block:.3rem}
.crumbs a:hover{color:var(--red-dk)}

/* ---------- ondas entre secções ---------- */
.wave{display:block;width:100%;height:clamp(38px,5vw,72px);position:relative;z-index:1;margin-bottom:-2px}
.wave.up{transform:scaleY(-1);margin:-2px 0 0}

/* ---------- fundo decorado: patas, croquetes e ossos ----------
   A camada é construída pelo js e não existe no html: são formas soltas,
   posicionadas por um gerador com semente fixa (não saltam de sítio a cada
   visita), que aparecem à medida que a secção entra no ecrã. */
.pawfield{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.pawfield .bit{position:absolute;opacity:0;transform:translateY(18px) rotate(var(--rot,0deg)) scale(.6);
  transition:opacity .9s cubic-bezier(.2,.8,.3,1),transform .9s cubic-bezier(.2,.8,.3,1)}
.pawfield.in .bit{opacity:var(--op,.15);transform:translateY(0) rotate(var(--rot,0deg)) scale(1)}
.pawfield .bit svg{width:100%;height:100%;display:block}
.pawfield .float{animation:float 7s ease-in-out infinite}
@keyframes float{0%,100%{translate:0 0}50%{translate:0 -12px}}

/* ============================== HERO ===================================== */
.hero{padding-top:clamp(2.5rem,6vw,4rem)}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.hero h2{font-size:clamp(2rem,4.4vw,3.4rem);margin:1rem 0 1.3rem;font-weight:800}
/* Estava no coral vivo e dava 2,95:1 a 54 px — o mínimo para letra grande
   é 3:1, por dois centésimos. É a frase mais importante da página: não fica
   na margem. */
.hero-cta{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:2rem}
/* a fotografia entra dentro de uma mancha orgânica que se vai deformando
   devagar, em vez de um rectângulo: é o truque que mais suaviza a página */
.blob{position:relative;aspect-ratio:1;overflow:hidden;background:var(--sand);
  border-radius:58% 42% 47% 53%/48% 55% 45% 52%;box-shadow:var(--shadow-lg);
  animation:morph 16s ease-in-out infinite}
@keyframes morph{
  0%,100%{border-radius:58% 42% 47% 53%/48% 55% 45% 52%}
  50%{border-radius:44% 56% 58% 42%/56% 44% 56% 44%}}
.blob img{width:100%;height:100%;object-fit:cover}
.blob-wrap{position:relative}
.blob-wrap::before{content:"";position:absolute;inset:-6% -4% -2% -6%;border-radius:50%;
  background:radial-gradient(circle at 30% 30%,rgba(87,199,212,.35),transparent 62%),
             radial-gradient(circle at 75% 70%,rgba(240,64,58,.28),transparent 60%);filter:blur(6px)}

/* ---------- faixa dos números ---------- */
.strip{background:var(--red);color:#FFF;padding-block:1.5rem}
/* A Figtree e mais larga do que a Nunito ao mesmo corpo, e com a troca de
   letra os quatro argumentos deixaram de caber numa linha a 1440 px. Desce o
   corpo e aperta-se o intervalo; o nowrap garante que, quando tiver mesmo de
   partir, parte ENTRE argumentos e nunca a meio de um. */
.strip .wrap{display:flex;gap:clamp(.9rem,2.6vw,2.1rem);justify-content:space-between;flex-wrap:wrap;
  font-family:var(--f-display);font-weight:600;font-size:.92rem}
.strip span{display:flex;align-items:center;gap:.5rem;white-space:nowrap}
.strip span::before{content:"";width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.55);flex:0 0 9px}

/* ---------- cartões numerados ---------- */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:3rem}
.card{background:var(--cream);padding:clamp(1.6rem,2.6vw,2.2rem);border-radius:var(--r-lg);
  transition:.4s cubic-bezier(.2,.8,.3,1);position:relative;overflow:hidden;border:2px solid transparent}
.card{--acc:var(--red);--accdk:var(--red-dk)}
/* os quatro cartoes de servico da entrada, cada um com o seu tom */
.cards-foto .card:nth-child(1){--acc:var(--s1);--accdk:var(--s1);background:var(--s1-lt)}
.cards-foto .card:nth-child(2){--acc:var(--s2);--accdk:var(--s2);background:var(--s2-lt)}
.cards-foto .card:nth-child(3){--acc:var(--s3);--accdk:var(--s3);background:var(--s3-lt)}
.cards-foto .card:nth-child(4){--acc:var(--s4);--accdk:var(--s4);background:var(--s4-lt)}
.card:hover{transform:translateY(-8px) rotate(-.8deg);border-color:var(--acc);box-shadow:var(--shadow)}
.card .num{font-family:var(--f-display);font-weight:800;font-size:3rem;line-height:1;color:var(--acc);opacity:.34}
.card h3{margin:.5rem 0 .6rem;color:var(--accdk);font-weight:700}
.card p{font-size:.97rem;color:var(--graph)}
.card .cpaw{position:absolute;right:-14px;bottom:-16px;width:88px;height:88px;opacity:.14;
  fill:var(--accdk);transition:.5s}
.card:hover .cpaw{transform:rotate(-14deg) scale(1.12);opacity:.22}

/* ---------- a quinta ---------- */
.about-solo{max-width:47rem;margin-inline:auto;text-align:center}
.about-solo .lead{margin:1.6rem auto 0}
.emblem{width:clamp(8rem,16vw,11rem);margin:0 auto 2rem;background:#FFF;border-radius:50%;padding:.45rem;
  box-shadow:var(--shadow-lg),0 0 0 6px var(--aqua);animation:tilt 9s ease-in-out infinite}
@keyframes tilt{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}
.emblem img{border-radius:50%}
.claim{font-family:var(--f-hand);font-size:clamp(1.4rem,3vw,2.1rem);line-height:1.45;color:var(--red-dk);
  margin-top:2.4rem;padding-top:2.2rem;position:relative}
.claim::before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);width:70px;height:4px;
  border-radius:9px;background:var(--sun)}

/* ---------- serviços ---------- */
.menu{display:grid;grid-template-columns:repeat(2,1fr);gap:1.4rem;margin-top:3rem;align-items:start}
.mcat{background:#FFF;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow);
  transition:.4s cubic-bezier(.2,.8,.3,1);border:2px solid transparent}
.mcat:hover{transform:translateY(-8px);border-color:var(--acc);box-shadow:var(--shadow-lg)}
/* .mhead e não header: o header da página é fixo e apanharia estes também */
.mcat .mhead{background:var(--acc);color:#FFF;padding:1.5rem 1.8rem 1.3rem;position:relative;overflow:hidden}
.mcat .mhead h3{color:#FFF;font-size:1.65rem;font-weight:800}
.mcat .mhead > span{display:block;margin-top:.3rem;font-family:var(--f-body);font-weight:600;
  font-size:.82rem;opacity:.9}
.mcat .mhead svg{position:absolute;right:-10px;top:-12px;width:92px;height:92px;fill:#FFF;opacity:.16}
.mcat ul{list-style:none;margin:1.4rem 1.8rem 1.8rem;display:grid;gap:.6rem}
.mcat li{font-size:.97rem;color:var(--graph);display:flex;gap:.7rem;align-items:flex-start;line-height:1.6}
.mcat li::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--acc);flex:0 0 8px;margin-top:.62rem}
/* UMA COR POR SERVICO — a terceira versao, e a que fica.
   ---------------------------------------------------------------------------
   1a (Agosto): coral, verde, turquesa e tinta. Quatro FAMILIAS diferentes numa
      ordem sem significado. Arco-iris.
   2a (28/09, manha): todos iguais. Resolveu o arco-iris e matou a distincao —
      quatro blocos identicos numa pagina que existe para os separar.
   3a (28/09, tarde): quatro tons DA MESMA TERRA a luzes diferentes — musgo,
      barro, ocre e ardosia. Todos no mesmo degrau de contraste (5,5 a 10:1
      sobre o osso), cada um com o seu tom claro.

   A licao que ficou: o problema nunca foi TER cor, foi a cor vir de sitios
   diferentes. E usa-se com disciplina — o numero, o titulo e um filete, nunca
   um bloco chapado a competir com a fotografia. */
.mcat.c1{--acc:var(--s1)} .mcat.c2{--acc:var(--s2)}
.mcat.c3{--acc:var(--s3)} .mcat.c4{--acc:var(--s4)}
.mnote{margin-top:2.4rem;font-size:1rem;color:var(--graph);background:var(--sand);border-radius:var(--r);
  padding:1.3rem 1.6rem}
.mnote b{color:var(--ink);font-weight:700}

/* ---------- números ---------- */
/* Era vinho sobre castanho: a dupla da Nutella, na unica seccao escura da
   pagina. Agora e o marinho da tinta levado mais fundo. Aqui dentro nao entra
   coral nenhum: os numeros sao a amarelo, que e a cor de dar nas vistas. */
/* A banda escura. Era marinho; com a paleta de terra passa a verde de noite
   — a cor de uma quinta depois do sol se pOr. Os dois halos radiais ficam:
   e o que a impede de ser um rectangulo chapado. */
.rec{background:radial-gradient(ellipse 85% 95% at 50% 2%,#26382D,transparent 64%),
  radial-gradient(ellipse 120% 70% at 50% 108%,#0B120E,transparent 72%),#131C17;color:var(--cream)}
.rec .wrap{text-align:center}
.rec h2{color:#FFF}
.rec .eyebrow{color:var(--sun)}
.numbers{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(1.2rem,3vw,2.4rem);margin-top:2.8rem;
  max-width:58rem;margin-inline:auto}
.numbers div{background:rgba(255,255,255,.07);border-radius:var(--r);padding:1.4rem .8rem;
  transition:.4s cubic-bezier(.2,.8,.3,1)}
.numbers div:hover{background:rgba(255,255,255,.13);transform:translateY(-6px)}
.numbers div b{display:block;font-family:var(--f-display);font-size:clamp(2.3rem,5vw,3.6rem);font-weight:800;
  color:#FFF;line-height:1;white-space:nowrap}
.numbers div span{display:block;margin-top:.5rem;font-size:.78rem;color:rgba(255,246,234,.7);font-weight:600}
.guests{margin-top:3rem;padding-top:2.4rem;border-top:2px dashed rgba(255,246,234,.28)}
.guests p{font-family:var(--f-hand);font-size:clamp(1.1rem,2.2vw,1.55rem);color:var(--cream);
  max-width:46ch;margin-inline:auto;line-height:1.55}

/* ---------- galeria ---------- */
.gal{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:2.8rem}
.gal figure{position:relative;overflow:hidden;background:var(--sand);aspect-ratio:3/2;
  border-radius:var(--r-lg);border:3px solid transparent;transition:.4s cubic-bezier(.2,.8,.3,1)}
.gal figure:nth-child(3n+1){border-color:var(--red)}
.gal figure:nth-child(3n+2){border-color:var(--stone)}
.gal figure:nth-child(3n+3){border-color:var(--stone)}
.gal figure.tall{grid-row:span 2;aspect-ratio:auto}
/* a ultima foto ocupa duas colunas para nao deixar a linha a meio */
.gal figure.wide{grid-column:span 2;aspect-ratio:2.4/1}
.gal figure:hover{transform:translateY(-6px) rotate(1deg)}
.gal img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}
.gal figure:hover img{transform:scale(1.07)}

/* ---------- testemunhos ---------- */
.quotes{background:var(--cream);overflow:hidden;position:relative;isolation:isolate}
.quotes .head{max-width:44rem;margin:0 auto;text-align:center}
.gbadge{display:inline-flex;align-items:center;gap:.6rem;border-radius:var(--r-pill);
  padding:.55rem 1.3rem;margin-bottom:1.2rem;font-size:.88rem;font-weight:700;color:var(--ink);
  background:#FFF;box-shadow:var(--shadow)}
.gbadge .stars{color:var(--star);letter-spacing:.08em}
.gbadge .half{opacity:.45}
.tcols{display:flex;gap:1.2rem;justify-content:center;margin-top:3rem;max-height:600px;overflow:hidden;
  -webkit-mask-image:linear-gradient(to bottom,transparent,#000 12%,#000 88%,transparent);
  mask-image:linear-gradient(to bottom,transparent,#000 12%,#000 88%,transparent)}
.tcol{display:flex;flex-direction:column;gap:1.2rem;animation:scrollY var(--d,40s) linear infinite;
  will-change:transform}
@keyframes scrollY{to{transform:translateY(-50%)}}
.tcols:hover .tcol{animation-play-state:paused}
.tcard{background:#FFF;border-radius:var(--r-lg);padding:1.7rem;width:20rem;box-shadow:var(--shadow);
  transition:transform .35s cubic-bezier(.2,.8,.3,1)}
.tcard:hover{transform:translateY(-7px) rotate(-1deg)}
.tcard .stars{color:var(--star);font-size:.95rem;letter-spacing:.1em;margin-bottom:.7rem}
.tcard p{font-size:.96rem;color:var(--graph);line-height:1.68}
.tcard footer{display:flex;align-items:center;gap:.8rem;margin-top:1.3rem}
.av{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;flex:0 0 44px;
  font-family:var(--f-display);font-weight:700;font-size:1.15rem;color:#FFF;
  background:linear-gradient(140deg,var(--red),var(--aqua-dk))}
.tcard cite{font-style:normal;font-size:.95rem;color:var(--ink);font-weight:700}
.tcard span.role{display:block;font-size:.76rem;color:var(--soft)}

/* ---------- perguntas frequentes ---------- */
.faq-wrap{max-width:54rem;margin-inline:auto;text-align:center}
.faq{margin-top:2.8rem;text-align:left;display:grid;gap:.9rem}
.faq details{background:#FFF;border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden;
  border:2px solid transparent;transition:border-color .3s}
.faq details[open]{border-color:var(--red)}
.faq summary{list-style:none;cursor:pointer;padding:1.25rem 3.6rem 1.25rem 1.5rem;position:relative;
  font-family:var(--f-display);font-weight:600;font-size:1.15rem;color:var(--ink);transition:color .3s}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover,.faq details[open] summary{color:var(--red-dk)}
.faq summary::after{content:"";position:absolute;right:1.2rem;top:50%;width:30px;height:30px;
  transform:translateY(-50%);border-radius:50%;background:var(--red-lt);transition:background .35s}
.faq details[open] summary::after{background:var(--sun)}
.faq summary::before{content:"";position:absolute;right:1.2rem;top:50%;width:30px;height:30px;
  transform:translateY(-50%);z-index:1;transition:transform .35s;
  background:linear-gradient(var(--red-dk),var(--red-dk)) center/12px 3px no-repeat,
             linear-gradient(var(--red-dk),var(--red-dk)) center/3px 12px no-repeat}
.faq details[open] summary::before{transform:translateY(-50%) rotate(135deg)}
.ans{padding:0 1.6rem 1.5rem;animation:fu .45s cubic-bezier(.16,1,.3,1)}
.ans p{color:var(--graph);font-size:.98rem;max-width:62ch}
.ask{display:inline-flex;align-items:center;gap:.5rem;margin-top:1rem;padding:.55rem 1.2rem;
  background:var(--red-lt);color:var(--red-dk);border-radius:var(--r-pill);font-weight:700;
  font-size:.85rem;transition:.3s}
.ask::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--red)}
.ask:hover{background:var(--red-dk);color:#FFF}
.ask:hover::before{background:#FFF}

/* ---------- contacto ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:start}
.warn{margin-top:1.6rem;padding:1.2rem 1.5rem;border-radius:var(--r);background:var(--sand);
  color:var(--graph);font-size:1rem;max-width:56ch}
.warn b{color:var(--ink);font-weight:700}
.req{display:inline-block;padding:.4rem 1.1rem;background:var(--red-dk);border-radius:var(--r-pill);
  color:#FFF;font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.info{list-style:none;margin-top:2.2rem}
.info li{border-bottom:2px dotted var(--line);padding-block:1.05rem;display:flex;justify-content:space-between;
  gap:1.4rem;font-size:.98rem;color:var(--graph)}
.info li span:first-child{font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;color:var(--soft);
  padding-top:.3rem;font-weight:700}
.info li a:hover{color:var(--red)}
.info li .val{text-align:right;font-weight:600}
.steps{display:grid;gap:1.4rem;margin-top:2.4rem;counter-reset:s}
.step{padding-left:3.6rem;position:relative}
.step::before{counter-increment:s;content:counter(s);position:absolute;left:0;top:-.15rem;
  width:2.5rem;height:2.5rem;background:var(--aqua-lt);border-radius:50%;display:grid;place-items:center;
  font-family:var(--f-display);font-weight:800;font-size:1.05rem;color:var(--aqua-dk)}

/* OS QUATRO PASSOS DA ENTRADA, lado a lado. Na pagina de contacto eram uma
   lista vertical num so lado do ecra; aqui tem a largura toda, e quatro
   colunas dizem "sao quatro e acabou" muito melhor do que quatro linhas —
   uma lista comprida parece que ainda vem mais. */
.steps-4{grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(1.2rem,2.4vw,2.2rem);
  margin-top:clamp(2rem,3.5vw,3rem)}
.steps-4 .step{padding-left:0;padding-top:3.4rem}
.steps-4 .step::before{top:0;background:var(--red-lt);color:var(--red-dk)}
.steps-4 .step::after{content:"";position:absolute;left:3.1rem;top:1.25rem;right:.6rem;height:2px;
  background:repeating-linear-gradient(90deg,var(--stone),var(--stone) 5px,transparent 5px,transparent 10px)}
.steps-4 .step:last-child::after{display:none}
@media(max-width:860px){
  .steps-4{grid-template-columns:1fr 1fr}
  .steps-4 .step:nth-child(2)::after{display:none}
}
@media(max-width:520px){
  .steps-4{grid-template-columns:1fr;gap:1.5rem}
  .steps-4 .step{padding-left:3.6rem;padding-top:0}
  .steps-4 .step::before{top:-.15rem}
  .steps-4 .step::after{display:none}
}
#passos .warn{margin-top:clamp(2rem,3.5vw,2.8rem);background:var(--paper);
  border:2px solid var(--stone);max-width:64ch}
.step h3{font-size:1.12rem;margin-bottom:.1rem}
.step p{font-size:.94rem;color:var(--soft)}
.book{background:linear-gradient(165deg,#FFF,var(--red-lt) 55%,var(--sand));border-radius:var(--r-xl);
  padding:clamp(1.7rem,3.2vw,2.6rem);position:relative;overflow:hidden;text-align:center;
  box-shadow:var(--shadow-lg);border:3px solid var(--red)}
.book::before{content:"";position:absolute;width:24rem;height:24rem;border-radius:50%;top:-14rem;right:-10rem;
  background:radial-gradient(circle,rgba(87,199,212,.5),transparent 66%)}
.book>*{position:relative}
.book h3{font-size:1.9rem;margin:.8rem 0 .4rem;font-weight:800}
.book .note{font-size:.9rem;color:var(--graph);max-width:34ch;margin:0 auto 1.5rem}
.tel{display:block;font-family:var(--f-display);font-weight:800;font-size:clamp(1.8rem,4.2vw,2.5rem);
  color:var(--ink);transition:.3s;margin-bottom:1.2rem}
.tel:hover{color:var(--red)}
.book .btn{width:100%;text-align:center}
.book .btn+.btn{margin-top:.6rem}
.orsep{display:flex;align-items:center;gap:.9rem;margin:1.8rem 0 1.1rem;color:var(--soft);
  font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700}
.orsep::before,.orsep::after{content:"";flex:1;height:2px;border-radius:2px;background:var(--line)}
.checklist{list-style:none;text-align:left;display:grid;gap:.6rem}
.checklist li{display:flex;gap:.65rem;align-items:flex-start;font-size:.94rem;color:var(--graph)}
.checklist li::before{content:"";width:9px;height:9px;flex:0 0 9px;margin-top:.62rem;border-radius:50%;
  background:var(--grass)}
.socials{display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem;margin-top:1.6rem}
.soc{display:grid;justify-items:center;gap:.5rem;padding:1rem .5rem;background:#FFF;border-radius:var(--r);
  font-size:.78rem;font-weight:700;color:var(--graph);transition:.35s;box-shadow:var(--shadow)}
.soc:hover{color:var(--red);transform:translateY(-4px)}
.soc svg{width:24px;height:24px;stroke:var(--graph);fill:none;stroke-width:1.8;stroke-linecap:round;
  stroke-linejoin:round;transition:stroke .35s}
.soc:hover svg{stroke:var(--red)}
.hours{list-style:none;margin-top:1.4rem;border-radius:var(--r);overflow:hidden;background:var(--cream)}
.hours li{display:flex;justify-content:space-between;gap:1.2rem;padding:.7rem 1.2rem;font-size:.94rem;
  color:var(--graph)}
.hours li+li{border-top:1px solid var(--line)}
.hours li span:first-child{font-weight:700;color:var(--ink)}
.hours li.off{background:var(--red-lt);color:var(--red-dk)}

/* ---------- convite final ---------- */
.cta{background:var(--aqua-lt);text-align:center}
.cta h2{max-width:20ch;margin:.6rem auto 1rem}
.cta .lead{margin:0 auto 2rem;text-align:center}

/* ---------- rodapé ---------- */
/* position/z-index: a .cover é sticky (logo, posicionada) e pinta por cima de
   tudo o que for estático. O .content já se defendia com z-index:2; sem isto
   o rodapé ficava escondido atrás da fotografia da capa na página de entrada. */
/* ===========================================================================
   O RODAPE  (28/09/2026)
   ---------------------------------------------------------------------------
   Deixou de ser uma tira de links e passou a ser a pagina de contacto, no
   fundo de todas as paginas. Foi decisao do Eduardo tirar a pagina propria:
   quem quer o telefone nao vai a um separador busca-lo, olha para baixo.

   Quatro colunas com larguras diferentes de proposito — a casa e o horario
   precisam de linha para respirar, o telefone e as paginas nao.
   ======================================================================== */
body>footer{background:var(--night);color:var(--cream);padding-block:clamp(2.6rem,5vw,4rem) 1.6rem;
  font-size:.9rem;position:relative;z-index:2}
body>footer .wrap{display:grid;gap:clamp(1.8rem,3.5vw,2.8rem)}

.fgrid{display:grid;gap:clamp(1.8rem,3vw,2.8rem);
  grid-template-columns:1.15fr .9fr 1.2fr .75fr}
.fcol{min-width:0}

.fmarca{font-family:var(--f-display);font-weight:700;font-size:1.22rem;line-height:1.2;
  color:#FFF;letter-spacing:-.01em;margin:0 0 .75rem}
.fmarca span{display:block;font-family:var(--f-ui);font-weight:600;font-size:.76rem;
  letter-spacing:.2em;text-transform:uppercase;color:var(--sage-f);margin-top:.28rem}
.fmorada{margin:0 0 .85rem;line-height:1.6}
.fmorada a{color:var(--cream);text-decoration:none;border-bottom:1px solid transparent}
.fmorada a:hover{border-bottom-color:currentColor}
.fredes{display:flex;gap:1.1rem;margin:0;flex-wrap:wrap}

.ftit{font-family:var(--f-ui);font-weight:700;font-size:.74rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--sun);margin:0 0 .8rem}
.ftel{font-family:var(--f-display);font-weight:700;font-size:1.5rem;margin:0;line-height:1.1}
.ftel a{color:#FFF;text-decoration:none}
.fmail{margin:.7rem 0 0;word-break:break-word}
.fmail a{color:var(--cream)}
.facc{margin:1.1rem 0 0}
/* o unico botao cheio do rodape: sobre o verde de noite, o barro le-se e o
   creme dava um rectangulo palido a puxar o olho para o sitio errado */
.facc .btn.fill{background:var(--red-dk);border-color:var(--red-dk);color:#FFF;
  font-size:.92rem;padding:.6rem 1.15rem}
.facc .btn.fill:hover{background:var(--red-mid);border-color:var(--red-mid)}

.fhoras{display:grid;grid-template-columns:auto;gap:.15rem;margin:0 0 .95rem}
.fhoras dt{font-weight:700;color:#FFF}
.fhoras dd{margin:0 0 .5rem;color:var(--sage-f)}
.fnota{margin:0;font-size:.8rem;line-height:1.55;color:var(--sage-f)}
.fnota b{color:var(--cream)}

.fcol-mapa nav{display:grid;gap:.1rem}
body>footer nav a{color:var(--cream);padding:.22rem 0;font-size:.93rem;border-radius:0;
  display:inline-block;text-decoration:none}
body>footer nav a:hover{background:none;color:var(--sun)}
body>footer a:hover{color:var(--sun)}

.frodape{display:flex;justify-content:space-between;gap:1.2rem;flex-wrap:wrap;
  align-items:center;border-top:1px solid rgba(243,235,222,.14);padding-top:1.4rem}
body>footer small{color:rgba(243,235,222,.55);font-size:.82rem}
body>footer small a{color:rgba(243,235,222,.7)}

@media(max-width:980px){
  .fgrid{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
  .fgrid{grid-template-columns:1fr;gap:2rem}
  .frodape{justify-content:flex-start;gap:.4rem}
}

/* ---------- revelações ---------- */
.rv{opacity:0;transform:translateY(24px);
  transition:opacity .8s cubic-bezier(.2,.8,.3,1),transform .8s cubic-bezier(.2,.8,.3,1)}
.rv.in{opacity:1;transform:none}

/* ---------- adaptação a ecrãs pequenos ---------- */
/* SETE ITENS NO MENU (30/09/2026): entre 1180 e 1380 px so cabem sem o
   subtitulo do logotipo e com os links mais juntos. Medido, nao a olho: ver
   a nota junto do bloco de 1180. */
@media(max-width:1380px){
  .logo small{display:none}
  nav{gap:.1rem}
  nav a{padding:.42rem .62rem;font-size:.94rem}
}
@media(max-width:1100px){
  [data-hide="lg"]{display:none}
  .grid{grid-template-columns:repeat(2,1fr)}
  .numbers{grid-template-columns:repeat(2,1fr)}
  nav a{padding:.4rem .6rem;font-size:.92rem}
}
/* ---- O CABECALHO RECOLHE AOS 1040 E NAO AOS 900 ----
   A conta que o obriga: a 1000 px de ecra o interior do cabecalho tem 985 px
   e o conteudo precisa de 986 (logotipo 248 + menu 476 + botao 134 + idioma
   71 + tres intervalos). Enquanto o logotipo podia encolher, ninguem dava por
   isso — ele e que pagava a diferenca, esmagado. Agora que nao encolhe, o
   menu tem de sair mais cedo.

   Bloco proprio, e a seguir ao de 1100 px de proposito: e ele que tem de
   vencer o `nav a{padding:.4rem .6rem}` de la, senao os links da gaveta
   ficavam com padding de menu de barra. */
@media(max-width:1180px){
  #nav{position:fixed;inset:0;background:var(--cream);flex-direction:column;justify-content:center;
      align-items:center;gap:1.1rem;font-size:1.3rem;transform:translateX(100%);transition:transform .4s;
      padding:2rem}
  #nav.open{transform:none}
  nav a{padding:.7rem 1.6rem}
  .burger{display:block;z-index:60}
  body>header .btn{display:none}
}
@media(max-width:900px){
  .hero .wrap,.split,.grid,.menu,.gal{grid-template-columns:1fr}
  .gal figure.tall{grid-row:auto;aspect-ratio:3/2}
  .gal figure.wide{grid-column:auto;aspect-ratio:3/2}
  /* #nav e nao nav: escrita pelo nome da etiqueta, esta regra apanhava TODOS
     os <nav> da pagina e parqueava-os fora do ecra. O menu de telemovel e
     sempre o <nav id="nav"> do cabecalho — e o unico que o js abre e fecha
     (js/site.js: getElementById("nav")). Com o seletor generico, as abas do
     painel (<nav class="p-abas">) desapareciam abaixo dos 900 px e a equipa
     nao conseguia trocar de separador no telemovel. 20/09/2026. */
  /* o rodape ja nao precisava de se defender da regra de cima, mas a
     font-size continua a ser dele — fica como esta */
  body>footer nav{position:static;flex-direction:row;background:none;transform:none;padding:0;font-size:.95rem}
  .blob-wrap{max-width:26rem;margin-inline:auto}
}
@media(max-width:760px){[data-hide="md"]{display:none}}
@media(prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important}
  .rv{opacity:1;transform:none}
  .pawfield .bit{opacity:var(--op,.15);transform:rotate(var(--rot,0deg))}
}

/* ================= AFINAÇÕES DEPOIS DE VER NO TELEMÓVEL =================== */

/* 1. O botão de idioma da capa tem de ficar no canto. Sem esta regra ficava a
      pairar a meio da fotografia. */
.cover .lang{position:absolute;top:calc(var(--cm) + 1.1rem);
  right:calc(var(--cm) + clamp(.9rem,3.5vw,2.2rem));z-index:5}

/* 2. Capa no telemóvel: um ecrã estreito corta muito a fotografia deitada e o
      nome ficava a competir com o focinho de um cão. Aqui o véu fecha mais e a
      fotografia recua para o papel de fundo que é. */
@media(max-width:760px){
  .cover-bg img{object-position:center 45%}
  .cover-bg::after{background:radial-gradient(ellipse 92% 46% at 50% 42%,
    rgba(255,253,250,.97),rgba(255,246,234,.9) 52%,rgba(255,237,216,.66) 76%,rgba(30,42,68,.24))}
}

/* 3. Cabeçalho no telemóvel: a segunda linha do logótipo dava a volta e batia
      no selector de idioma. Fica só o nome. */
@media(max-width:520px){
  .logo small{display:none}
  .logo img{width:40px;height:40px}
  .logo b{font-size:1.02rem}
}

/* 4. Horário no telemóvel: "Segunda-feira" partia-se ao meio. Passa a duas
      linhas, o dia por cima e as horas por baixo. */
@media(max-width:560px){
  .hours li{flex-direction:column;gap:.15rem;padding:.65rem 1rem}
  .hours li span:first-child{font-size:.86rem}
  .hours li span+span{font-size:.88rem;color:var(--soft)}
  .hours li.off span+span{color:var(--red-dk)}
}

/* botão de reserva online — só aparece quando BOOKING_URL estiver preenchido */
.book-online{border-color:var(--aqua-dk);color:var(--aqua-dk)}
.book-online:hover{background:var(--aqua-dk);border-color:var(--aqua-dk);color:#FFF;
  box-shadow:0 12px 22px -12px var(--aqua-dk)}
[hidden]{display:none!important}

/* ==========================================================================
   RESERVAS ONLINE — assistente de cinco passos
   Reaproveita tudo o que já existe: mesmas cores, mesma letra, mesmas curvas,
   mesmos botões. Não há aqui um único componente novo de raiz que pudesse
   parecer software de outra pessoa.
   ========================================================================== */
.resv-wrap{max-width:60rem;margin-inline:auto}
.resv-card{background:#FFF;border-radius:var(--r-xl);box-shadow:var(--shadow-lg);
  border:2px solid var(--stone);padding:clamp(1.2rem,3.5vw,2.6rem);position:relative;overflow:hidden}

/* fita de progresso */
.resv-prog{position:relative;margin-bottom:2rem}
.resv-track{height:6px;border-radius:99px;background:var(--sand);overflow:hidden}
.resv-track i{display:block;height:100%;width:0;border-radius:99px;
  background:linear-gradient(90deg,var(--red),var(--sun));transition:width .5s cubic-bezier(.2,.8,.3,1)}
.resv-dots{display:flex;justify-content:space-between;margin-top:.9rem;gap:.3rem}
.resv-dot{flex:1;text-align:center;font-size:.72rem;font-weight:700;color:var(--soft);
  line-height:1.25;transition:color .35s}
.resv-dot b{display:block;width:30px;height:30px;margin:0 auto .4rem;border-radius:50%;
  background:var(--sand);color:var(--soft);display:grid;place-items:center;
  font-family:var(--f-display);font-size:.92rem;transition:.35s}
.resv-dot.now{color:var(--red-dk)}
.resv-dot.now b{background:var(--red-dk);color:#FFF;transform:scale(1.12);
  box-shadow:0 0 0 5px var(--red-lt)}
.resv-dot.done b{background:var(--grass-dk);color:#FFF}
.resv-dot.done b::after{content:"✓"}
.resv-dot.done span,.resv-dot.done b i{display:none}

/* passos */
.resv-step{display:none}
.resv-step.on{display:block;animation:passo .45s cubic-bezier(.2,.8,.3,1)}
@keyframes passo{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:none}}
.resv-step h2{font-size:clamp(1.5rem,3.4vw,2.1rem);margin-bottom:.3rem}
.resv-step .sub{color:var(--soft);font-size:.96rem;margin-bottom:1.6rem}

/* campos */
.campos{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}
.campos.um{grid-template-columns:1fr}
.campo{display:flex;flex-direction:column;gap:.4rem;min-width:0}
.campo.largo{grid-column:1/-1}
.campo label{font-weight:700;font-size:.92rem;color:var(--ink)}
.campo label .op{font-weight:400;color:var(--soft);font-size:.84rem}
.campo .dica{font-size:.82rem;color:var(--soft)}
.campo input,.campo select,.campo textarea{
  font-family:var(--f-body);font-size:1rem;color:var(--ink);background:var(--paper);
  border:2px solid var(--stone);border-radius:var(--r);padding:.85rem 1rem;
  width:100%;min-height:52px;transition:border-color .25s,box-shadow .25s}
.campo textarea{min-height:96px;resize:vertical;line-height:1.6}
.campo input:hover,.campo select:hover,.campo textarea:hover{border-color:var(--line-2)}
.campo input:focus-visible,.campo select:focus-visible,.campo textarea:focus-visible{
  outline:none;border-color:var(--red);box-shadow:0 0 0 4px var(--red-lt)}
.campo [aria-invalid="true"]{border-color:var(--red-dk);background:#FCF2ED}
.erro{color:var(--red-dk);font-size:.85rem;font-weight:600;min-height:0}
.erro:not(:empty){margin-top:.1rem}
.obrig{color:var(--red);font-weight:700}

/* escolhas em pastilha, para não haver menus onde chegam botões */
.pills{display:flex;flex-wrap:wrap;gap:.5rem}
.pills input{position:absolute;opacity:0;width:1px;height:1px}
.pills label{display:inline-flex;align-items:center;gap:.4rem;cursor:pointer;
  padding:.6rem 1.1rem;border:2px solid var(--stone);border-radius:var(--r-pill);
  font-weight:600;font-size:.92rem;color:var(--graph);background:var(--paper);transition:.25s}
.pills label:hover{border-color:var(--line-2);transform:translateY(-2px)}
.pills input:checked+label{background:var(--red-dk);border-color:var(--red-dk);color:#FFF;
  box-shadow:0 8px 18px -10px var(--red-dk)}
.pills input:focus-visible+label{box-shadow:0 0 0 4px var(--red-lt)}

/* cartão de cada patudo */
.pet-card{border:2px dashed var(--stone);border-radius:var(--r-lg);padding:1.3rem;
  margin-bottom:1.1rem;background:var(--cream);position:relative}
.pet-card-h{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.1rem}
.pet-card-h h3{font-size:1.15rem;display:flex;align-items:center;gap:.6rem}
.pet-card-n{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;
  background:var(--aqua-dk);color:#FFF;font-size:.9rem;font-family:var(--f-display);font-weight:700}
.pet-remove{background:none;border:0;color:var(--soft);font-family:var(--f-body);font-weight:700;
  font-size:.85rem;cursor:pointer;padding:.3rem .6rem;border-radius:var(--r-pill);transition:.25s}
.pet-remove:hover{background:var(--red-lt);color:var(--red-dk)}
#addPet{margin-top:.3rem}
#petsCount{font-weight:700;color:var(--aqua-dk)}

/* ---------- passo 1: quem vai ficar  (redesenhado a 30/09/2026) ----------
   Estava feio, e o Eduardo disse-o: "Cao / Gato" e "Pequeno / Medio /
   Grande" eram as mesmas pastilhas de texto lado a lado — duas perguntas
   diferentes com a mesma cara — e no telemovel o porte partia-se em duas
   linhas dentro da propria moldura.

   Agora sao duas perguntas com cara diferente, uma depois da outra:
     "E um…"          dois cartoes grandes, com o cao e o gato desenhados;
     "De que tamanho?" so depois de "cao": o MESMO cao em tres tamanhos,
                       pousados na mesma linha de chao, e o peso por baixo.
   O cinzento e "ainda nao escolhido"; o barro e "escolhido". */
#grupo{display:flex;flex-direction:column;gap:1rem;margin-top:1.3rem}
.gr-linha{background:var(--paper);border:2px solid var(--stone);border-radius:var(--r-lg);
  padding:1.1rem 1.25rem 1.25rem;transition:border-color .3s}
.gr-linha[data-esp]:not([data-esp=""]){border-color:var(--sand-2,#D6C7B0)}
.gr-topo{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.35rem}
.gr-tit{font-family:var(--f-display);font-weight:800;font-size:1.05rem;color:var(--ink)}
.gr-n{color:var(--red-dk)}
.gr-perg{font-family:var(--f-display);font-weight:700;font-size:.98rem;color:var(--graph);margin:.7rem 0 .55rem}

/* os cartoes: o radio fica escondido (regra geral das .pills), o cartao e a
   etiqueta — carregar em qualquer ponto dele escolhe */
.gr-esp, .gr-porte{display:grid;gap:.65rem}
.gr-esp{grid-template-columns:repeat(2,minmax(0,11rem))}
.gr-porte{grid-template-columns:repeat(4,minmax(0,9.5rem))}
.pills .gr-cartao{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:.15rem;
  position:relative;padding:.9rem .6rem .8rem;border:2px solid var(--stone);border-radius:var(--r-lg);
  background:#FFF;color:var(--graph);font-size:1rem;cursor:pointer;
  transition:border-color .25s, background .25s, box-shadow .3s, transform .25s}
.pills .gr-cartao:hover{border-color:var(--red);transform:translateY(-3px)}
.gr-cartao b{font-family:var(--f-display);font-weight:700;font-size:1.02rem;color:var(--ink)}
.gr-cartao small{font-size:.76rem;color:var(--soft)}

/* os desenhos: cinzento quente enquanto nao se escolhe */
.gr-cartao .ic{display:block;overflow:visible;transition:transform .3s}
.gr-cartao .ic-a{fill:#C4B7A4;transition:fill .3s}
.gr-cartao .ic-b{fill:#A89A85;transition:fill .3s}
.gr-cartao .ic-rabo{fill:none;stroke:#A89A85;stroke-width:4.6;stroke-linecap:round;transition:stroke .3s;
  transform-box:fill-box;transform-origin:0% 100%}
.gr-cartao .ic-olho{fill:#FFF}
.gr-cartao .ic-nariz{fill:var(--ink)}
.gr-cartao .ic-cabeca{transform-box:fill-box;transform-origin:50% 90%}
.gr-bicho .ic{width:4.2rem;height:4.2rem}
.pills .gr-cartao:hover .ic{transform:rotate(-4deg)}

/* ESCOLHIDO: barro, fundo claro, um visto no canto */
.pills input:checked+.gr-cartao{border-color:var(--red);background:var(--red-lt);color:var(--ink);
  box-shadow:0 12px 26px -18px rgba(150,63,32,.75);transform:none}
.pills input:checked+.gr-cartao .ic-a{fill:var(--red)}
.pills input:checked+.gr-cartao .ic-b{fill:var(--red-dk)}
.pills input:checked+.gr-cartao .ic-rabo{stroke:var(--red-dk)}
.gr-cartao::after{content:"";position:absolute;top:.5rem;right:.5rem;width:1.35rem;height:1.35rem;border-radius:50%;
  background:var(--red-dk) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 3 6-7' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/70% no-repeat;
  transform:scale(0);transition:transform .35s cubic-bezier(.3,1.7,.5,1)}
.pills input:checked+.gr-cartao::after{transform:scale(1)}
.pills input:focus-visible+.gr-cartao{outline:3px solid var(--red);outline-offset:3px}

/* O PORTE: o mesmo cao em tres tamanhos, todos em pe na mesma linha de chao.
   A caixa tem altura fixa e alinha em baixo — e isso que faz o tamanho ver-se
   em vez de se ler. */
.gr-chao{display:flex;align-items:flex-end;justify-content:center;height:3.7rem;
  border-bottom:2px solid var(--stone);width:78%;margin-bottom:.35rem}
.gr-tam.t1 .ic{width:1.9rem;height:1.9rem}
.gr-tam.t2 .ic{width:2.8rem;height:2.8rem}
.gr-tam.t3 .ic{width:3.6rem;height:3.6rem}
.gr-tam.t4 .ic{width:4.3rem;height:4.3rem}   /* extra grande, 03/10/2026 */
.pills input:checked+.gr-tam .gr-chao{border-bottom-color:rgba(192,96,58,.45)}

/* so aparece depois de "cao"; com "gato" aparece a nota; sem nada, nada */
.gr-porte-bloco, .gr-gato-nota{display:none}
.gr-linha[data-esp="cao"] .gr-porte-bloco{display:block;animation:grEntra .45s cubic-bezier(.2,.8,.3,1)}
.gr-linha[data-esp="gato"] .gr-gato-nota{display:block;animation:grEntra .45s cubic-bezier(.2,.8,.3,1)}
.gr-dica{font-size:.8rem;color:var(--soft);margin:.55rem 0 0}
.gr-gato-nota{margin:.9rem 0 0;padding:.7rem .95rem;border-radius:var(--r);background:var(--cream);
  font-size:.88rem;color:var(--graph);max-width:34rem}
@keyframes grEntra{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}

/* ---- A ANIMACAO DA ESCOLHA ----
   Ao escolher: o desenho da um pulo e a cauda abana tres vezes. Depois fica
   a abanar devagar de tempos a tempos, enquanto estiver escolhido — sinal de
   que aquela resposta esta dada. O gato nao abana a cauda: vira a cabeca. */
.pills input:checked+.gr-cartao .ic{animation:grPulo .55s cubic-bezier(.3,1.6,.5,1)}
.pills input:checked+.gr-cartao .ic-cao .ic-rabo{animation:grAbana .42s ease-in-out 3, grAbanaCalmo 3.2s ease-in-out 1.4s infinite}
.pills input:checked+.gr-cartao .ic-gato .ic-rabo{animation:grEnrola 1.1s ease-in-out}
.pills input:checked+.gr-cartao .ic-gato .ic-cabeca{animation:grInclina 1.2s ease-in-out .15s, grInclina 1.2s ease-in-out 3.5s infinite}
@keyframes grPulo{0%{transform:translateY(0)}40%{transform:translateY(-9px) rotate(-3deg)}100%{transform:none}}
@keyframes grAbana{0%,100%{transform:rotate(0)}30%{transform:rotate(16deg)}70%{transform:rotate(-12deg)}}
@keyframes grAbanaCalmo{0%,18%,100%{transform:rotate(0)}6%{transform:rotate(12deg)}12%{transform:rotate(-8deg)}}
@keyframes grEnrola{0%,100%{transform:rotate(0)}40%{transform:rotate(-14deg)}}
@keyframes grInclina{0%,100%{transform:rotate(0)}35%{transform:rotate(-9deg)}70%{transform:rotate(4deg)}}

@media(max-width:560px){
  .gr-linha{padding:1rem .9rem 1.1rem}
  .gr-esp{grid-template-columns:1fr 1fr}
  .gr-porte{grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}
  .pills .gr-tam{padding:.75rem .3rem .7rem}
  .gr-tam b{font-size:.92rem}
  .gr-tam small{font-size:.7rem}
}
@media(prefers-reduced-motion:reduce){
  .gr-cartao .ic, .gr-cartao .ic-rabo, .gr-cartao .ic-cabeca,
  .gr-linha .gr-porte-bloco, .gr-linha .gr-gato-nota{animation:none!important}
}

/* ---- os passos ja feitos levam-se de volta a um clique ----
   O botao "Voltar" so anda um passo de cada vez. Quem esta no passo 5 e quer
   corrigir uma data tinha de carregar tres vezes. Agora carrega no "Quando".
   So para TRAS: ir para a frente continua a exigir que o passo actual esteja
   preenchido, senao a validacao deixava de servir para nada. */
.resv-dot{background:none;border:0;font:inherit;padding:.2rem .1rem}
.resv-dot:not(:disabled){cursor:pointer}
.resv-dot:not(:disabled):hover b{transform:scale(1.08)}
.resv-dot:not(:disabled):hover span{color:var(--red-dk)}
.resv-dot:disabled{cursor:default}
.resv-dot b{transition:transform .25s}

.gr-remove{background:none;border:0;color:var(--soft);font-family:var(--f-body);font-weight:700;
  font-size:.82rem;cursor:pointer;padding:.3rem .6rem;border-radius:var(--r-pill);transition:.25s}
.gr-remove:hover{background:var(--red-lt);color:var(--red-dk)}
.gr-linha .erro{margin-top:.7rem}
.gr-linha .erro:empty{display:none}

/* subtítulos dentro da ficha, a separar convivência de cuidados */
.pet-sub{font-family:var(--f-display);font-weight:700;font-size:.92rem;color:var(--aqua-dk);
  text-transform:uppercase;letter-spacing:.08em;margin-top:.6rem;
  padding-top:.9rem;border-top:1px solid var(--line)}
.pet-card-tag{font-family:var(--f-body);font-size:.8rem;font-weight:700;color:var(--graph);
  background:var(--sand);padding:.28rem .7rem;border-radius:var(--r-pill);white-space:nowrap}

/* a linha que diz para que conjunto é que os lugares do calendário são */
.cal-para{font-weight:700;color:var(--aqua-dk);margin-bottom:.9rem}

/* ---------- a estimativa, no passo das datas ----------
   Cinza-quente e não vermelho: é informação, não é uma chamada à acção. E o
   rótulo diz "estimativa" em letras gordas para não haver dúvida nenhuma. */
.est{margin-top:1.4rem;background:var(--cream);border:1px solid var(--stone);
  border-radius:var(--r);padding:1.1rem 1.3rem;display:flex;flex-direction:column;gap:.45rem}
.est-l{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.est-rot{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--soft)}
.est-l b{font-family:var(--f-display);font-size:1.9rem;line-height:1;color:var(--ink)}
.est-n{font-size:.83rem;line-height:1.5;color:var(--soft)}

/* navegação do assistente */
.resv-nav{display:flex;justify-content:space-between;gap:1rem;margin-top:2rem;
  padding-top:1.5rem;border-top:2px dotted var(--line)}
.resv-nav .btn{min-width:9rem}
.resv-nav .esq{margin-right:auto}

/* resumo */
.rsm{background:var(--cream);border-radius:var(--r-lg);padding:1.4rem 1.6rem;margin-bottom:1.6rem}
.rsm-linha{display:flex;justify-content:space-between;gap:1.2rem;padding-block:.55rem}
.rsm-linha+.rsm-linha{border-top:1px dotted var(--line)}
.rsm-linha span{color:var(--soft);font-size:.9rem;font-weight:600}
.rsm-linha b{text-align:right;font-weight:700;color:var(--ink)}

/* caixa do calendário */
#calBox{min-height:520px;border-radius:var(--r-lg);overflow:hidden;background:var(--cream)}
.aviso{border-radius:var(--r-lg);padding:1.5rem 1.6rem;background:var(--aqua-lt);
  border:2px solid var(--aqua)}
.aviso.quente{background:var(--red-lt);border-color:var(--red)}
.aviso h3{margin-bottom:.4rem}
.aviso p{color:var(--graph);font-size:.96rem;max-width:56ch}
.aviso .btn{margin-top:1rem}
.aviso .btn+.btn{margin-left:.5rem}
.feito{text-align:center;padding:2rem 1rem}
.feito .selo{width:74px;height:74px;margin:0 auto 1rem;border-radius:50%;background:var(--grass-dk);
  display:grid;place-items:center;color:#FFF;font-size:2.2rem;
  box-shadow:0 0 0 8px var(--grass-lt)}
.feito h3{font-size:1.7rem;margin-bottom:.5rem}
.feito p{color:var(--graph);max-width:44ch;margin:0 auto}
.feito .dados{margin-top:1.2rem;font-weight:700;color:var(--ink)}

/* ==========================================================================
   EMOJI DOS SERVIÇOS
   Todos do mesmo tamanho, no mesmo círculo, com o mesmo fundo: é o que os faz
   parecer um conjunto e não emojis atirados para cima do texto.
   ========================================================================== */
/* Os emojis saíram — não assentavam com a letra e sujavam os cabeçalhos.
   Ficam as pastilhas de texto, que continuam a servir para as garantias. */
.emo-lista{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.2rem}
.emo-tag{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1.1rem;
  background:#FFF;border:2px solid var(--stone);border-radius:var(--r-pill);
  font-weight:600;font-size:.9rem;color:var(--graph)}

/* ==========================================================================
   MAIS ANIMAÇÕES DE ENTRADA
   .rv já existia (sobe). Estas fazem entrar da esquerda, da direita e a
   crescer — usadas sobretudo nos quadros e nos cartões, que é onde se nota.
   ========================================================================== */
.rv-l,.rv-r,.rv-z{opacity:0;
  transition:opacity .85s cubic-bezier(.2,.8,.3,1),transform .85s cubic-bezier(.2,.8,.3,1)}
.rv-l{transform:translateX(-46px)}
.rv-r{transform:translateX(46px)}
.rv-z{transform:scale(.9)}
.rv-l.in,.rv-r.in,.rv-z.in{opacity:1;transform:none}
/* numa grelha, os filhos entram um a seguir ao outro */
.rv-seq>*{opacity:0;transform:translateY(26px);
  transition:opacity .7s cubic-bezier(.2,.8,.3,1),transform .7s cubic-bezier(.2,.8,.3,1)}
.rv-seq.in>*{opacity:1;transform:none}
.rv-seq.in>*:nth-child(1){transition-delay:0ms}
.rv-seq.in>*:nth-child(2){transition-delay:90ms}
.rv-seq.in>*:nth-child(3){transition-delay:180ms}
.rv-seq.in>*:nth-child(4){transition-delay:270ms}
.rv-seq.in>*:nth-child(5){transition-delay:360ms}
.rv-seq.in>*:nth-child(6){transition-delay:450ms}

/* ==========================================================================
   TRILHO DE PEGADAS
   Um caminho de patas que atravessa o painel branco e que se vai desenhando
   à medida que a página desce — alternando pata esquerda e pata direita,
   como um patudo a passar por ali.
   ========================================================================== */
.trilho{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:0}
/* MAIORES E MAIS PRESENTES (28/09/2026). O trilho existia desde Agosto mas a
   58 px e 20% de opacidade ninguem dava por ele. O Eduardo pediu "so as
   pegadas deles a aparecer", e para isso terem graça têm de se ver: sobem a
   76 px e a 28%. Continuam por baixo do texto (z-index 0) e sem apanhar
   cliques — são rasto, não são interface. */
.trilho .pata{position:absolute;width:clamp(58px,5.4vw,80px);height:clamp(58px,5.4vw,80px);opacity:0;
  transform:translateY(14px) rotate(var(--r,0deg)) scale(.5);
  transition:opacity .5s ease,transform .55s cubic-bezier(.2,1.4,.4,1)}
.trilho .pata.in{opacity:.28;transform:translateY(0) rotate(var(--r,0deg)) scale(1)}
.trilho .pata svg{width:100%;height:100%;display:block;fill:var(--red)}
.trilho .pata.b svg{fill:var(--aqua-dk)}

/* ---------- fotografias decorativas (as de banco de imagens) ---------- */
.foto-deco{border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--shadow-lg);
  border:3px solid #FFF;position:relative}
.foto-deco img{width:100%;height:100%;object-fit:cover;display:block}
.foto-deco.alta{aspect-ratio:3/4}
.foto-deco.larga{aspect-ratio:16/9}
.duo{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.4rem,4vw,3rem);align-items:center}
.duo.inv .duo-txt{order:2}

/* ---------- adaptação a ecrãs pequenos ---------- */
@media(max-width:820px){
  .campos{grid-template-columns:1fr}
  .duo{grid-template-columns:1fr}
  .duo.inv .duo-txt{order:0}
  .resv-nav{flex-direction:column-reverse}
  .resv-nav .btn{width:100%}
  .resv-dot span{display:none}
  .resv-dot b{margin-bottom:0}
  /* 16px evita o salto de zoom do iOS ao tocar num campo */
  .campo input,.campo select,.campo textarea{font-size:16px}
  #calBox{min-height:640px}
}
@media(max-width:560px){
  .resv-card{padding:1.1rem;border-radius:var(--r-lg)}
  .pet-card{padding:1rem}
  .rsm-linha{flex-direction:column;gap:.15rem}
  .rsm-linha b{text-align:left}
  .trilho .pata{width:42px;height:42px}
}
@media(prefers-reduced-motion:reduce){
  .rv-l,.rv-r,.rv-z,.rv-seq>*{opacity:1;transform:none}
  .trilho .pata{opacity:.2;transform:rotate(var(--r,0deg))}
  .resv-step.on{animation:none}
}

/* ==========================================================================
   CALENDÁRIO DE OCUPAÇÃO
   Cada dia mostra os lugares livres — "10/15". A cor diz o resto de relance:
   verde há lugar à vontade, amarelo está a encher, vermelho são os últimos,
   riscado não há. Só aparece quando a lotação estiver definida.
   ========================================================================== */
.cal{background:var(--paper);border:2px solid var(--stone);border-radius:var(--r-lg);
  padding:clamp(.8rem,2vw,1.2rem);margin-top:.6rem}
.cal-topo{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin-bottom:.9rem}
/* capitalize punha "Agosto De 2026" — só a primeira letra é que sobe */
.cal-mes{font-family:var(--f-display);font-weight:700;font-size:1.2rem;text-transform:none}
.cal-mes::first-letter{text-transform:uppercase}
.cal-seta{width:42px;height:42px;border-radius:50%;border:2px solid var(--stone);background:#FFF;
  color:var(--red-dk);font-size:1.4rem;line-height:1;cursor:pointer;transition:.25s;
  display:grid;place-items:center;font-family:var(--f-display)}
.cal-seta:hover{background:var(--red-dk);border-color:var(--red-dk);color:#FFF}
.cal-seta:focus-visible{outline:none;box-shadow:0 0 0 4px var(--red-lt)}

.cal-grelha{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.3rem}
.cal-dh{text-align:center;font-size:.72rem;font-weight:700;color:var(--soft);padding-bottom:.3rem}
.cal-vazio{aspect-ratio:1}
.cal-dia{aspect-ratio:1;min-height:52px;border:2px solid transparent;border-radius:var(--r-sm);
  background:var(--cream);cursor:pointer;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:.1rem;font-family:var(--f-body);padding:.1rem;transition:.2s}
.cal-n{font-weight:700;font-size:1rem;color:var(--ink);line-height:1}
.cal-c{font-size:.64rem;font-weight:700;line-height:1;letter-spacing:-.01em}
.cal-dia.muitos{background:var(--grass-lt)} .cal-dia.muitos .cal-c{color:var(--grass-dk)}
.cal-dia.poucos{background:#FFF6DF} .cal-dia.poucos .cal-c{color:#96650C}
.cal-dia.raros{background:var(--red-lt)} .cal-dia.raros .cal-c{color:var(--red-dk)}
.cal-dia.cheio{background:repeating-linear-gradient(135deg,#F3EDE6,#F3EDE6 5px,#E9E0D6 5px,#E9E0D6 10px)}
.cal-dia.cheio .cal-n,.cal-dia.cheio .cal-c{color:var(--soft)}
.cal-dia.passado{background:transparent;opacity:.32}
.cal-dia:not([disabled]):hover{transform:translateY(-2px);border-color:var(--aqua-dk)}
.cal-dia:focus-visible{outline:none;box-shadow:0 0 0 4px var(--red-lt)}
.cal-dia[disabled]{cursor:not-allowed}
/* intervalo escolhido */
.cal-dia.meio{background:var(--aqua-lt);border-color:transparent}
.cal-dia.inicio,.cal-dia.fim{background:var(--red-dk)!important;border-color:var(--red-dk)}
.cal-dia.inicio .cal-n,.cal-dia.fim .cal-n,
.cal-dia.inicio .cal-c,.cal-dia.fim .cal-c{color:#FFF}

.cal-legenda{display:flex;flex-wrap:wrap;gap:.5rem 1.1rem;margin-top:1rem;padding-top:.9rem;
  border-top:1px dotted var(--line);font-size:.78rem;color:var(--soft);font-weight:600}
.cal-legenda span{display:inline-flex;align-items:center;gap:.4rem}
.lg{width:14px;height:14px;border-radius:4px;display:block}
.lg.muitos{background:var(--grass-lt);box-shadow:inset 0 0 0 2px var(--grass)}
.lg.poucos{background:#FFF6DF;box-shadow:inset 0 0 0 2px var(--sun)}
.lg.raros{background:var(--red-lt);box-shadow:inset 0 0 0 2px var(--red)}
.lg.cheio{background:repeating-linear-gradient(135deg,#F3EDE6,#F3EDE6 4px,#E9E0D6 4px,#E9E0D6 8px)}

/* SEM ENTREGAS — o domingo. Não é "cheio": a quinta está cheia de gente a
   tratar dos animais, o que fecha é o atendimento. Por isso tem marca própria
   e não as riscas do cheio, senão lê-se como falta de lugar. */
.cal-dia.semat{background:var(--sand);opacity:.7}
.cal-dia.semat .cal-n{color:var(--soft)}
.cal-dia.semat .cal-c{color:var(--soft);font-weight:600;font-size:.58rem}
.lg.semat{background:var(--sand);box-shadow:inset 0 0 0 2px var(--stone)}
.cal-nota{margin-top:.8rem;font-size:.82rem;line-height:1.5;color:var(--soft)}

.cal-escolha{display:flex;flex-wrap:wrap;gap:.8rem;align-items:center;justify-content:space-between;
  margin-top:1rem;padding:.9rem 1.1rem;background:var(--cream);border-radius:var(--r)}
.cal-escolha b{font-weight:700}
.cal-aviso{margin-top:.8rem;padding:.9rem 1.1rem;border-radius:var(--r);background:var(--red-lt);
  color:var(--red-dk);font-weight:600;font-size:.92rem}
.cal-demo{margin-bottom:1rem;padding:.9rem 1.1rem;border-radius:var(--r);background:#FFF6DF;
  border:2px solid var(--sun);color:#7A5206;font-weight:700;font-size:.9rem}

@media(max-width:560px){
  /* Num ecrã de 400 px, entre a margem da página, a do cartão e a do próprio
     calendário sobravam 243 px para sete colunas — células de 33x41, pequenas
     demais para o dedo. Encolhem-se as margens e a altura passa a mandar
     sobre a proporção. */
  .resv-card{padding:.85rem}
  .cal{padding:.45rem;margin-inline:-.25rem}
  .cal-grelha{gap:.2rem}
  .cal-dia{aspect-ratio:auto;min-height:54px;border-radius:10px}
  .cal-n{font-size:.95rem}
  .cal-c{font-size:.6rem}
  .cal-legenda{font-size:.72rem;gap:.4rem .8rem}
}

/* ---------- acertos pedidos depois de ver o site a andar ----------
   O medalhão do logótipo tinha dois anéis: o vermelho que faz parte do próprio
   logótipo e um azul que eu tinha acrescentado por fora. Vistos juntos lêem-se
   como duas camadas em cima uma da outra. Fica só o do logótipo. */
.emblem{box-shadow:var(--shadow-lg);padding:0;background:transparent}

/* A Quinta abria com o título e logo a seguir um vazio grande antes do texto,
   o que fazia a página parecer dois blocos separados em vez de um só. */
#quinta{padding-top:clamp(2rem,4vw,3rem)}
#quinta .emblem{margin-bottom:1.4rem}
.pagetop .phrase{max-width:34ch}

/* O painel de contactos por baixo do formulário de reservas. */
.book .info li{border-bottom-color:rgba(30,42,68,.18)}
.book .info li .val{font-size:.92rem}

/* ==========================================================================
   BALÕES DE FALA
   As palavras são dos próprios patudos, tiradas das publicações do Facebook
   do Pet Hotel — não é copy inventada. Assentam sobre as fotografias da
   galeria e entram com um saltinho quando a foto aparece no ecrã.
   ========================================================================== */
.gal figure{position:relative}
/* 14% e não 8%: nas fotos deitadas o bico do balão ficava cortado pela
   margem da própria fotografia */
.balao{position:absolute;left:6%;bottom:14%;right:6%;max-width:24rem;
  background:rgba(255,255,255,.96);color:var(--ink);border-radius:var(--r-lg);
  padding:.85rem 1.15rem;font-family:var(--f-hand);font-size:clamp(.85rem,1.5vw,1.02rem);
  line-height:1.4;box-shadow:0 14px 30px -14px rgba(30,42,68,.55);
  opacity:0;transform:translateY(14px) scale(.85);transform-origin:left bottom;
  transition:opacity .5s ease,transform .6s cubic-bezier(.2,1.5,.4,1);pointer-events:none}
.balao::after{content:"";position:absolute;left:1.9rem;bottom:-11px;width:0;height:0;
  border:11px solid transparent;border-top-color:rgba(255,255,255,.96);border-bottom:0}
.gal figure.in .balao,.gal.in .balao{opacity:1;transform:none;transition-delay:.35s}
/* nas fotos deitadas o balão é mais pequeno, senão tapa a fotografia toda */
.gal figure:not(.tall) .balao{font-size:clamp(.78rem,1.25vw,.9rem);padding:.6rem .95rem;bottom:12%}
@media(max-width:560px){.balao{font-size:.82rem;padding:.7rem .9rem;left:5%;right:5%}}

/* ==========================================================================
   PEQUENAS ANIMAÇÕES
   ========================================================================== */

/* 1. a pata do logótipo inclina-se ao passar o rato */
.logo img{transition:transform .45s cubic-bezier(.2,1.5,.4,1)}
.logo:hover img{transform:rotate(-9deg) scale(1.07)}

/* 2. A CAUDA AMARELA SAIU (28/09/2026). A ideia era boa — uma cauda a abanar
      no canto, como se estivesse ali um patudo mesmo fora do enquadramento —
      mas no ar nao lia: a 0,5 de opacidade, amarela sobre creme e cortada
      pela borda da seccao, via-se um risco amarelo sem principio nem fim. E
      era o ultimo amarelo sobre fundo claro, contra a regra da paleta la em
      cima. Quem faz agora este trabalho e o labrador recortado do fecho. */

/* 3. coraçõezinhos a subir do botão de Reservar */
.btn.coracoes{position:relative;overflow:visible}
.corac{position:absolute;left:50%;bottom:60%;width:16px;height:16px;pointer-events:none;
  opacity:0;fill:var(--red)}
.btn.coracoes:hover .corac{animation:subir 1.15s ease-out forwards}
.btn.coracoes:hover .corac:nth-child(2){animation-delay:.18s}
.btn.coracoes:hover .corac:nth-child(3){animation-delay:.36s}
.btn.fill.coracoes .corac{fill:#FFF}
.btn.fill.coracoes:hover .corac{fill:var(--red-lt)}
@keyframes subir{
  0%{opacity:0;transform:translate(-50%,0) scale(.4)}
  25%{opacity:.95}
  100%{opacity:0;transform:translate(calc(-50% + var(--dx,0px)),-58px) scale(1.05)}}

@media(prefers-reduced-motion:reduce){
  .btn.coracoes:hover .corac{animation:none}
  .balao{opacity:1;transform:none}
}

/* ==========================================================================
   PAINEL DA EQUIPA (painel.html)
   Reaproveita o calendário, os cartões e os campos do site — é a mesma casa,
   vista por dentro. Nada aqui é visível ao público.
   ========================================================================== */
body.painel{background:var(--cream)}
.p-main{padding-block:clamp(6rem,10vw,8rem) 4rem}
.p-login{padding-top:2rem}
.p-cab{display:flex;justify-content:space-between;align-items:flex-end;gap:1.5rem;
  flex-wrap:wrap;margin-bottom:1.4rem}
.p-cab h1{font-size:clamp(1.6rem,3.4vw,2.3rem)}
.p-cab .sub{color:var(--soft);font-size:.94rem}
.p-grelha{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:1.2rem;align-items:start}
.p-painel{background:#FFF;border-radius:var(--r-lg);box-shadow:var(--shadow);
  padding:1.3rem;min-height:20rem}
.p-dia-h{font-size:1.15rem;display:flex;flex-wrap:wrap;align-items:baseline;gap:.6rem}
.p-cont{font-family:var(--f-body);font-size:.85rem;font-weight:700;color:var(--soft)}
.p-mov{display:flex;gap:.5rem;margin:.8rem 0}
.p-tag{padding:.3rem .8rem;border-radius:var(--r-pill);font-size:.78rem;font-weight:700}
.p-tag.entra{background:var(--grass-lt);color:var(--grass-dk)}
.p-tag.sai{background:var(--aqua-lt);color:var(--aqua-dk)}
.p-vazio{color:var(--soft);font-size:.94rem;margin-top:1rem}
.p-lista{list-style:none;margin-top:1rem;display:grid;gap:.5rem}
.p-linha{width:100%;display:grid;grid-template-columns:1fr 1fr auto auto;gap:.6rem;align-items:center;
  text-align:left;background:var(--cream);border:2px solid transparent;border-radius:var(--r);
  padding:.7rem .9rem;cursor:pointer;font-family:var(--f-body);transition:.2s}
.p-linha:hover{border-color:var(--red);transform:translateX(3px)}
.p-nome{font-weight:700;color:var(--ink)}
.p-dono,.p-tel{font-size:.86rem;color:var(--soft)}
.p-est{font-size:.72rem;font-weight:700;padding:.22rem .6rem;border-radius:var(--r-pill);white-space:nowrap}
.p-est.pendente{background:#FFF6DF;color:#8A5D06}
.p-est.confirmada{background:var(--grass-lt);color:var(--grass-dk)}
.p-est.em_curso{background:var(--aqua-lt);color:var(--aqua-dk)}
.p-est.concluida{background:var(--stone);color:var(--graph)}
.p-est.cancelada{background:var(--red-lt);color:var(--red-dk)}

/* ficha completa, numa gaveta lateral */
.p-fundo{position:fixed;inset:0;background:rgba(30,42,68,.45);z-index:80}
.p-ficha{position:fixed;top:0;right:0;bottom:0;width:min(30rem,94vw);z-index:81;
  background:var(--paper);box-shadow:-20px 0 50px -30px rgba(30,42,68,.7);
  overflow-y:auto;padding:1.4rem}
.f-cab{display:flex;justify-content:space-between;align-items:center;gap:1rem;
  padding-bottom:1rem;border-bottom:2px dotted var(--line)}
.f-cab h3{font-size:1.5rem}
.f-fechar{width:40px;height:40px;border-radius:50%;border:2px solid var(--stone);
  background:#FFF;cursor:pointer;font-size:1rem;color:var(--graph)}
.f-fechar:hover{background:var(--red-dk);border-color:var(--red-dk);color:#FFF}
.f-bloco{margin-top:1.3rem}
.f-bloco h4{font-family:var(--f-body);font-size:.74rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--red-dk);font-weight:700;margin-bottom:.5rem}
.f-linha{display:flex;justify-content:space-between;gap:1rem;padding-block:.45rem;
  border-bottom:1px dotted var(--line);font-size:.92rem}
.f-linha span{color:var(--soft)}
.f-linha b{text-align:right;font-weight:600;color:var(--ink)}
.f-linha a:hover{color:var(--red)}
/* verde = está tratado, vermelho = falta. O bloco "antes de entrar" é o que a
   equipa lê de relance antes de receber o animal. */
.f-linha b.f-sim{color:var(--grass-dk)}
.f-linha b.f-nao{color:var(--red-dk)}
.f-prolongar{display:flex;flex-wrap:wrap;align-items:end;gap:.6rem;margin-top:.5rem}
.f-prolongar label{flex:1 1 100%;font-size:.8rem;color:var(--soft);font-weight:600}
.f-prolongar input{flex:1 1 9rem;font-family:var(--f-body);font-size:.95rem;
  border:2px solid var(--stone);border-radius:var(--r-sm);padding:.6rem .7rem;
  background:var(--paper);color:var(--ink);min-height:44px}
.f-prolongar .btn{padding:.6rem 1.1rem;font-size:.9rem;min-height:44px}

@media(max-width:900px){
  .p-grelha{grid-template-columns:1fr}
  .p-linha{grid-template-columns:1fr auto;row-gap:.2rem}
  .p-tel{grid-column:1/-1}
}

/* ---------- painel: abas, filtros, listas e formulário ---------- */
.p-abas{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:1.2rem;
  border-bottom:2px solid var(--stone);padding-bottom:.7rem}
.p-abas button{font-family:var(--f-display);font-weight:600;font-size:1rem;
  padding:.5rem 1.1rem;border:0;border-radius:var(--r-pill);background:transparent;
  color:var(--graph);cursor:pointer;transition:.25s}
.p-abas button:hover{background:var(--sand)}
.p-abas button.on{background:var(--red-dk);color:#FFF}
.p-filtros{display:flex;gap:.9rem;flex-wrap:wrap;margin-bottom:1rem;align-items:flex-end}
.p-filtros .campo{flex:1;min-width:11rem}

.p-tabela{list-style:none;display:grid;gap:.5rem}
.p-tabela li>button{width:100%;display:grid;
  grid-template-columns:1.2fr 1.4fr 1fr auto auto;gap:.7rem;align-items:center;
  text-align:left;background:var(--cream);border:2px solid transparent;
  border-radius:var(--r);padding:.75rem .95rem;cursor:pointer;font-family:var(--f-body);transition:.2s}
.p-tabela li>button:hover{border-color:var(--red);transform:translateX(3px)}
.p-tabela li.arq>button{opacity:.55;background:repeating-linear-gradient(135deg,
  #F5F0E9,#F5F0E9 6px,#EDE6DC 6px,#EDE6DC 12px)}
.p-datas{font-size:.86rem;color:var(--soft)}
.p-vaziolista{color:var(--soft);padding:1.4rem 0}
.p-arqtag{font-size:.68rem;font-weight:700;padding:.2rem .55rem;border-radius:var(--r-pill);
  background:var(--stone);color:var(--graph)}

/* formulário dentro da gaveta */
.f-form .campos{gap:.8rem}
.f-form h4{margin-top:1.4rem}
.f-pet{border:2px dashed var(--stone);border-radius:var(--r);padding:.9rem;margin-top:.7rem;
  background:var(--cream)}
.f-pet-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:.6rem}
.f-pet-h b{font-family:var(--f-display);font-size:1.05rem}
.f-acoes{position:sticky;bottom:0;background:var(--paper);padding:1rem 0 .2rem;
  margin-top:1.5rem;border-top:2px dotted var(--line);display:flex;gap:.6rem;flex-wrap:wrap}
.f-acoes .btn{flex:1;min-width:8rem;text-align:center}
.f-perigo{background:none;border:0;color:var(--soft);font-family:var(--f-body);font-weight:700;
  font-size:.85rem;cursor:pointer;padding:.5rem;border-radius:var(--r-pill);width:100%;margin-top:.4rem}
.f-perigo:hover{background:var(--red-lt);color:var(--red-dk)}
.f-nota{font-size:.85rem;color:var(--soft);margin-top:.5rem}
.f-alerta{background:#FFF6DF;border:2px solid var(--sun);color:#7A5206;border-radius:var(--r);
  padding:.8rem 1rem;font-size:.9rem;font-weight:600;margin-top:.8rem}

/* aba Pagamentos (02/10/2026) — três números do mês e a lista */
.fin-mes{display:flex;align-items:center;gap:.8rem;margin-bottom:1rem}
.fin-mes b{font-family:var(--f-display);font-size:1.25rem;min-width:10rem;text-align:center}
.fin-mes button{width:2.6rem;height:2.6rem;border-radius:50%;border:2px solid var(--line-2);
  background:#FFF;font-size:1.3rem;cursor:pointer;color:var(--ink)}
.fin-mes button:hover{border-color:var(--red)}
.fin-numeros{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin-bottom:1.2rem}
.fin-n{background:#FFF;border-radius:var(--r);box-shadow:var(--shadow);padding:1rem 1.1rem;
  border-top:5px solid var(--stone)}
.fin-n span{display:block;font-size:.85rem;font-weight:700;color:var(--soft)}
.fin-n b{display:block;font-family:var(--f-display);font-size:clamp(1.4rem,3vw,1.9rem);color:var(--ink);margin:.2rem 0}
.fin-n small{font-size:.8rem;color:var(--soft)}
.fin-n.pago{border-top-color:var(--grass-dk)}
.fin-n.por_pagar{border-top-color:#C99A2E}
.fin-n.reembolsado{border-top-color:var(--red-dk)}
.fin-tabela li>button{grid-template-columns:1fr 1.2fr 1.1fr .7fr auto auto}
.fin-valor{font-weight:700;color:var(--ink);white-space:nowrap}
.p-est.fin-pago{background:var(--grass-lt);color:var(--grass-dk)}
.p-est.fin-por_pagar{background:#FFF6DF;color:#8A5D06}
.p-est.fin-reembolsado{background:var(--red-lt);color:var(--red-dk)}

@media(max-width:760px){
  .p-tabela li>button,.fin-tabela li>button{grid-template-columns:1fr auto;row-gap:.25rem}
  .p-datas{grid-column:1/-1}
  .fin-numeros{grid-template-columns:1fr}
}

/* ---- as patas não podem cair em cima do menu (10/09/2026) ---------------
   Nas páginas interiores o `.pagetop` começa por baixo do cabeçalho fixo,
   que é transparente — e uma pata gerada no topo da secção ia aterrar em
   cima de "Contacto" e do botão "Reservas". A camada das patas passa a
   começar abaixo da barra. É só nas interiores: na capa o véu já trata
   disso e as patas nem chegam lá acima.                                   */
.pagetop > .pawfield{top:104px}
@media (max-width:760px){ .pagetop > .pawfield{top:84px} }

/* ==========================================================================
   REFORMA DA CAPA — 11/09/2026

   Peças novas: a lista com vistos, os cartões de serviço com fotografia, os
   cinco momentos do dia e o convite final. Tudo no nosso registo — Baloo,
   vermelho vivo, cantos redondos e uma inclinação ao passar o rato — e nada
   copiado da folha de estilos de ninguém.
   ====================================================================== */

/* ---- lista com vistos ---------------------------------------------------
   O visto é desenhado em CSS (duas linhas e uma rotação) e não é um emoji:
   um emoji não se controla nem em cor nem em peso, e foi por isso que os
   tirámos a 18/08.                                                        */
.lista-check{list-style:none;margin:2rem 0 0;padding:0;display:grid;gap:.9rem}
.lista-check li{
  position:relative;padding-left:2.4rem;line-height:1.65;color:var(--graph);
}
.lista-check li::before{
  content:"";position:absolute;left:0;top:.15rem;width:1.5rem;height:1.5rem;
  border-radius:50%;background:var(--grass);opacity:.18;
}
.lista-check li::after{
  content:"";position:absolute;left:.52rem;top:.45rem;width:.4rem;height:.72rem;
  border:solid var(--grass-dk);border-width:0 .17rem .17rem 0;
  transform:rotate(42deg);
}
.lista-check b{color:var(--ink)}

/* ---- cartões de serviço com fotografia --------------------------------- */
.cards-foto{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.cards-foto .card{padding:0;overflow:hidden;display:flex;flex-direction:column}
.cf-foto{aspect-ratio:4/3;overflow:hidden;background:var(--sand)}
.cf-foto img{width:100%;height:100%;object-fit:cover;display:block;
  transition:transform 1s cubic-bezier(.2,.7,.2,1)}
.cards-foto .card:hover .cf-foto img{transform:scale(1.06)}
.cards-foto .card .num{margin:1.1rem 1.3rem .2rem}
.cards-foto .card h3{margin:0 1.3rem .5rem}
.cards-foto .card > p:not(.num):not(.desde){margin:0 1.3rem;flex:1}
.desde{
  margin:1rem 1.3rem .2rem;font-size:.95rem;color:var(--graph);
}
.desde b{font-family:var(--f-display);font-size:1.35rem;color:var(--red-dk)}
.cards-foto .card .btn{margin:1rem 1.3rem 1.4rem;align-self:flex-start}

/* ---- os cinco momentos do dia ------------------------------------------
   O primeiro ocupa duas colunas: sem isso a última linha ficava com um
   buraco, que é o problema clássico de uma grelha com cinco coisas.       */
.momentos{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:2.8rem;
}
.momentos figure{
  margin:0;position:relative;border-radius:var(--r-lg);overflow:hidden;
  background:var(--sand);box-shadow:var(--shadow);
  transition:transform .5s cubic-bezier(.2,.8,.3,1), box-shadow .5s;
}
.momentos figure:first-child{grid-column:span 2}
.momentos figure:hover{transform:translateY(-6px) rotate(-.6deg);box-shadow:var(--shadow-lg)}
/* PROPORÇÃO FIXA, e não `min-height`. As fotografias vêm do telemóvel deles
   em orientações diferentes; sem `aspect-ratio` a linha da grelha esticava até
   à altura da maior e a primeira ficava do tamanho de um ecrã. */
.momentos figure{aspect-ratio:4/3}
.momentos figure:first-child{aspect-ratio:16/10}
.momentos img{width:100%;height:100%;object-fit:cover;display:block;
  transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.momentos figure:hover img{transform:scale(1.06)}
.momentos figcaption{
  position:absolute;left:0;right:0;bottom:0;padding:2.6rem 1.2rem 1.1rem;
  /* o véu tem de aguentar a fotografia mais clara do conjunto (a do gatil,
     com azulejo branco). A .88 o texto ficava no limite; a .94 com uma sombra
     por baixo lê-se em todas. */
  background:linear-gradient(180deg,transparent,rgba(30,42,68,.55) 45%,rgba(30,42,68,.94));
  text-shadow:0 1px 3px rgba(0,0,0,.5);
  color:#FFF;display:grid;gap:.2rem;
}
.momentos figcaption b{font-family:var(--f-display);font-size:1.15rem;line-height:1.2}
.momentos figcaption span{font-size:.88rem;line-height:1.45;color:#F3E7E2}

/* ---- o convite final ---------------------------------------------------- */
.cta-final{background:var(--sand);position:relative;overflow:hidden}
.cta-final .foto-deco{transform:rotate(1.4deg)}
/* o <em> do convite, como no fecho */

@media(max-width:820px){
  .momentos{grid-template-columns:1fr 1fr;gap:.9rem}
  .momentos figure:first-child{grid-column:span 2}
}
@media(max-width:520px){
  .momentos{grid-template-columns:1fr}
  .momentos figure:first-child{grid-column:span 1}
}

/* ==========================================================================
   PÁGINA DE PREÇOS — 11/09/2026

   Quatro tabelas, cada uma com a cor do serviço — as mesmas quatro cores que
   já separam os serviços no resto do site, para quem vier de lá reconhecer
   onde está. Números em Baloo e grandes: numa tabela de preços o número é o
   conteúdo, não um detalhe.
   ====================================================================== */
/* Duas colunas em ecrã largo, e não três: com três, a quarta tabela ficava
   sozinha numa linha a olhar para dois buracos. 2x2 fecha sempre certo. */
.tabelas{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));
  gap:clamp(1.2rem,2.5vw,2rem);margin-top:2.6rem;max-width:920px;
}
.tab{
  background:#FFF;border-radius:var(--r-lg);overflow:hidden;
  box-shadow:var(--shadow);display:flex;flex-direction:column;
  transition:transform .45s cubic-bezier(.2,.8,.3,1), box-shadow .45s;
}
.tab:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}
.tab-hd{padding:1.3rem 1.5rem;color:#FFF}
.tab.c1 .tab-hd{background:var(--s1)}
.tab.c2 .tab-hd{background:var(--s2)}
.tab.c3 .tab-hd{background:var(--s3)}
.tab.c4 .tab-hd{background:var(--s4)}
.tab.c4 .tab-hd h2, .tab.c4 .tab-hd p, .tab.c4 .tab-hd .pelo{color:#FFF}
.tab-hd h2{font-size:1.4rem;line-height:1.15;color:#FFF;margin:0}
.tab-hd .pelo{display:block;font-size:.95rem;opacity:.9;font-family:var(--f-body);font-weight:600}
.tab-hd p{margin:.25rem 0 0;font-size:.76rem;letter-spacing:.18em;text-transform:uppercase;opacity:.85}

.tab table{width:100%;border-collapse:collapse}
.tab thead th, .tab thead td{
  font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--soft);
  font-weight:600;padding:.9rem 1.5rem .3rem;text-align:right;
}
.tab thead th{text-align:left}
.tab tbody th{
  text-align:left;font-weight:600;color:var(--ink);padding:.85rem 1.5rem;
  border-top:1px solid var(--line);font-size:.97rem;
}
.tab tbody th span{font-weight:400;color:var(--graph)}
.tab tbody td{
  text-align:right;padding:.85rem 1.5rem;border-top:1px solid var(--line);
  font-family:var(--f-display);font-size:1.5rem;color:var(--ink);white-space:nowrap;
}
.tab tr.destaque th, .tab tr.destaque td{background:var(--cream)}
.tab tr.destaque td{color:var(--red-dk);font-size:1.25rem}
.tab-nota{
  margin:auto 1.5rem 1.4rem;padding-top:1rem;font-size:.86rem;line-height:1.6;
  color:var(--graph);border-top:1px dashed var(--line-2);
}

/* ---- o pet táxi, que não tem tabela ------------------------------------- */
.taxi-nota{
  margin-top:2.2rem;background:var(--aqua-lt);border-radius:var(--r-lg);
  padding:clamp(1.4rem,3vw,2rem);display:flex;gap:1.6rem;align-items:center;
  justify-content:space-between;flex-wrap:wrap;
}
.taxi-nota h3{font-size:1.35rem;margin:0 0 .4rem}
.taxi-nota p{margin:0;max-width:62ch;line-height:1.65;color:var(--graph)}

/* ---- o que está e o que não está incluído ------------------------------- */
.incluido{margin-top:2.2rem;background:var(--cream);border-radius:var(--r-lg);
  padding:clamp(1.5rem,3.4vw,2.4rem)}
.incluido h3{font-size:1.45rem;margin-bottom:1.2rem}
.inc-cols{display:grid;grid-template-columns:1fr 1fr;gap:1.6rem}
.inc-cols .lista-check{margin-top:0}
.lista-cruz{list-style:none;margin:0;padding:0;display:grid;gap:.9rem}
.lista-cruz li{position:relative;padding-left:2.4rem;line-height:1.65;color:var(--graph)}
.lista-cruz li::before{
  content:"";position:absolute;left:0;top:.15rem;width:1.5rem;height:1.5rem;
  border-radius:50%;background:var(--red);opacity:.14;
}
/* a cruz é feita de duas riscas do mesmo pseudo-elemento, com um gradiente —
   mais barato do que dois elementos e alinha sempre ao centro do círculo */
.lista-cruz li::after{
  content:"";position:absolute;left:.42rem;top:.42rem;width:.7rem;height:.7rem;
  background:
    linear-gradient(45deg,transparent 44%,var(--red-dk) 44%,var(--red-dk) 56%,transparent 56%),
    linear-gradient(-45deg,transparent 44%,var(--red-dk) 44%,var(--red-dk) 56%,transparent 56%);
}
.lista-cruz b{color:var(--ink)}
.incluido .tab-nota{margin:1.6rem 0 0;border-top:1px dashed var(--line-2)}

@media(max-width:760px){
  .inc-cols{grid-template-columns:1fr}
  .tab tbody th, .tab tbody td{padding:.75rem 1.1rem}
  .taxi-nota{flex-direction:column;align-items:flex-start}
}

/* ==========================================================================
   SIMULADOR DE PREÇOS — 11/09/2026
   Campos à esquerda, conta à direita, e a conta fica colada ao ecrã enquanto
   se mexe nos campos — senão, num portátil, muda-se uma opção e não se vê o
   resultado mudar, que é a única coisa que um simulador tem de fazer.
   ====================================================================== */
.sim{
  display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(1.2rem,3vw,2.4rem);
  margin-top:2.6rem;align-items:start;
}
.sim-campos{
  background:#FFF;border-radius:var(--r-lg);padding:clamp(1.4rem,3vw,2.2rem);
  box-shadow:var(--shadow);
}
.sim-lbl{
  font-family:var(--f-display);font-size:1.1rem;margin:1.6rem 0 .8rem;color:var(--ink);
}
.sim-lbl:first-child{margin-top:0}

.sim-servicos{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem}
.sim-servico{
  position:relative;display:grid;gap:.1rem;cursor:pointer;text-align:center;
  padding:.9rem .5rem;border:2px solid var(--line);border-radius:var(--r-sm);
  transition:border-color .25s, background .25s, transform .25s;
}
.sim-servico:hover{transform:translateY(-2px)}
/* O radio esta escondido (opacity:0) e quem se clica e a etiqueta; sem isto,
   quem navega por teclado focava o radio invisivel e nao via nada. */
.sim-servico:focus-within{border-color:var(--red-dk);box-shadow:0 0 0 4px var(--red-lt)}
.sim-servico input{position:absolute;opacity:0;pointer-events:none}
.sim-servico b{font-family:var(--f-display);font-size:.98rem;line-height:1.1}
.sim-servico span{font-size:.72rem;color:var(--soft)}
.sim-servico.on{border-color:var(--red);background:var(--red-lt)}
.sim-servico.on b{color:var(--red-dk)}

.sim-linha{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
.sim-linha label, .sim-check{display:grid;gap:.4rem;font-size:.85rem;color:var(--graph)}
.sim select, .sim input[type=number]{
  font-family:var(--f-body);font-size:1rem;padding:.75rem .85rem;
  border:2px solid var(--line);border-radius:var(--r-sm);background:#FFF;color:var(--ink);
}
/* Este era o unico sitio da folha que apagava o anel de foco sem pOr nada
   equivalente: so mudava a cor da borda para --aqua, que sobre branco da
   2:1 — abaixo dos 3:1 que a WCAG exige a um indicador. E usava :focus e nao
   :focus-visible, por isso disparava tambem ao clique do rato. */
.sim select:focus-visible, .sim input:focus-visible{
  outline:none;border-color:var(--aqua-dk);box-shadow:0 0 0 4px var(--aqua-lt)}
.sim-check{
  grid-template-columns:auto 1fr;align-items:center;gap:.7rem;margin-top:1.1rem;
  background:var(--cream);padding:.9rem 1rem;border-radius:var(--r-sm);cursor:pointer;
}
.sim-check input{width:20px;height:20px;accent-color:var(--red)}
.sim-dica{font-size:.82rem;color:var(--soft);margin-top:.7rem}

/* ---- a conta ----------------------------------------------------------- */
.sim-saida{position:sticky;top:96px}
#simres{
  background:var(--ink);color:#FFF;border-radius:var(--r-lg);
  padding:clamp(1.4rem,3vw,2rem);box-shadow:var(--shadow-lg);
}
.sim-linhas{list-style:none;margin:0 0 1.2rem;padding:0;display:grid;gap:.7rem}
.sim-linhas li{
  display:flex;justify-content:space-between;gap:1rem;align-items:baseline;
  font-size:.92rem;color:#F3E7E2;
}
.sim-linhas li b{font-family:var(--f-display);font-size:1.05rem;color:#FFF;white-space:nowrap}
.sim-linhas li.info{font-size:.82rem;color:#B6C6B8;font-style:italic}
.sim-linhas li.menos b{color:var(--sun)}
.sim-total{
  border-top:1px dashed rgba(255,255,255,.28);padding-top:1.1rem;
  display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:.3rem 1rem;
}
.sim-total span{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:#BFC6D8}
.sim-total b{font-family:var(--f-display);font-size:2.4rem;line-height:1;color:var(--sun)}
.sim-total small{grid-column:1/-1;font-size:.78rem;color:#BFC6D8}
.sim-nota{margin-top:1.1rem;font-size:.82rem;line-height:1.55;color:#BFC6D8}
.sim-sobconsulta{font-size:1rem;line-height:1.6;color:#FFF}
.sim-sobconsulta b{font-family:var(--f-display);font-size:1.15rem;display:block;margin-bottom:.4rem;color:var(--sun)}
.sim-botoes{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:1.2rem}

@media(max-width:900px){
  .sim{grid-template-columns:1fr}
  .sim-saida{position:static}
  .sim-servicos{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:520px){
  .sim-linha{grid-template-columns:1fr}
}

/* ==========================================================================
   AUTOCOLANTES, MANUSCRITA E PASTILHAS — 11/09/2026

   Três referências, três peças:
     · autocolantes sobre a fotografia ......... Ollie / Waggel
     · palavra manuscrita grande sobre a foto .. Dogtopia
     · manuscrita pequena a abrir a secção ..... District Dogs
     · pastilhas com números, coladas à foto ... Waggel

   Em troca saíram metade das patas de fundo. A conta de decoração tem de
   fechar: cada coisa nova que se cola, uma velha que se tira.
   ====================================================================== */

/* ---- 1. AUTOCOLANTES ----------------------------------------------------
   Pastilhas brancas com sombra e uma ligeira inclinação, como um autocolante
   colado à pressa. Entram com um saltinho quando a secção aparece e depois
   oscilam devagar, cada um com o seu atraso — se oscilassem em conjunto o
   olho via o truque num segundo.                                          */
.blob-wrap{position:relative}
.autoc{
  position:absolute;z-index:3;display:inline-flex;align-items:center;gap:.5rem;
  background:#FFF;color:var(--ink);border-radius:var(--r-pill);
  padding:.6rem 1rem .6rem .75rem;white-space:nowrap;
  font-family:var(--f-body);font-weight:700;font-size:.86rem;
  box-shadow:0 14px 30px -14px rgba(30,42,68,.5), 0 0 0 3px rgba(255,255,255,.9);
  opacity:0;transform:scale(.6) rotate(var(--rot,-3deg));
}
.rv-r.in .autoc, .in .autoc, .autoc.in{
  animation:autocEntra .7s cubic-bezier(.2,1.5,.4,1) forwards var(--atraso,0s),
            autocFlutua 6s ease-in-out infinite var(--atraso,0s);
}
@keyframes autocEntra{ to{opacity:1;transform:scale(1) rotate(var(--rot,-3deg))} }
@keyframes autocFlutua{
  0%,100%{transform:scale(1) rotate(var(--rot,-3deg)) translateY(0)}
  50%    {transform:scale(1) rotate(var(--rot,-3deg)) translateY(-7px)}
}
.autoc i{width:20px;height:20px;flex:0 0 auto;border-radius:50%;display:block}
.autoc .pt-pata{background:var(--red-lt)}
.autoc .pt-osso{background:var(--aqua-lt)}
.autoc .pt-foto{background:#FFF3D2}
/* um ponto no meio de cada rodela, para não ser só uma bola de cor */
.autoc i::after{content:"";display:block;width:6px;height:6px;margin:7px auto;border-radius:50%}
.autoc .pt-pata::after{background:var(--red)}
.autoc .pt-osso::after{background:var(--aqua-dk)}
.autoc .pt-foto::after{background:var(--sun)}

.autoc.a1{top:6%;left:-6%;--rot:-4deg;--atraso:.15s}
.autoc.a2{top:44%;right:-8%;--rot:3deg;--atraso:.35s}
.autoc.a3{bottom:8%;left:2%;--rot:-2deg;--atraso:.55s}

/* ---- 2. PASTILHAS com números ------------------------------------------ */
.comautoc{position:relative;overflow:visible}
.comautoc img{border-radius:var(--r-xl)}
.pastilha{
  position:absolute;z-index:3;display:inline-flex;align-items:baseline;gap:.45rem;
  border-radius:var(--r-pill);padding:.55rem 1.05rem;white-space:nowrap;
  font-size:.82rem;font-weight:700;color:var(--ink);
  box-shadow:0 12px 26px -14px rgba(30,42,68,.45);
  opacity:0;transform:translateX(-14px);
  transition:opacity .6s ease var(--atraso,0s), transform .6s cubic-bezier(.2,1.3,.4,1) var(--atraso,0s);
}
.rv-l.in .pastilha, .in .pastilha{opacity:1;transform:none}
.pastilha b{font-family:var(--f-display);font-size:1.25rem;line-height:1}
.pastilha.p1{background:var(--sun);      top:12%;  right:-9%; --atraso:.2s}
.pastilha.p2{background:var(--aqua-lt);  top:42%;  left:-11%; --atraso:.4s}
.pastilha.p3{background:var(--red-lt);   bottom:9%; right:-6%; --atraso:.6s}

/* ---- 3. MANUSCRITA pequena a abrir a secção ---------------------------- */
.manu{
  font-family:var(--f-hand);font-size:1.3rem;line-height:1;color:var(--red);
  margin-bottom:.35rem;transform:rotate(-2deg);transform-origin:left center;
}
.momentos + .mnote{margin-top:2.4rem}

/* ---- 4. A PALAVRA GRANDE sobre a fotografia ---------------------------- */
.escrita{
  position:absolute;z-index:2;left:4%;right:4%;top:44%;
  font-family:var(--f-hand);font-size:clamp(2.2rem,5.2vw,4.2rem);line-height:.95;
  color:var(--sun);text-align:center;transform:rotate(-6deg);
  text-shadow:0 6px 24px rgba(30,42,68,.45);
  pointer-events:none;
}

@media(max-width:900px){
  .autoc{font-size:.78rem;padding:.5rem .85rem .5rem .6rem}
  .autoc.a1{left:-2%} .autoc.a2{right:-2%} .autoc.a3{left:4%}
  .pastilha.p1{right:-2%} .pastilha.p2{left:-3%} .pastilha.p3{right:0}
}
@media(max-width:560px){
  /* num ecrã estreito os autocolantes tapavam o cão. Ficam só dois, e dentro
     da moldura em vez de a transbordar. */
  .autoc.a2{display:none}
  .autoc.a1{left:2%;top:3%} .autoc.a3{left:2%;bottom:3%}
  .pastilha.p2{display:none}
  .pastilha.p1{right:2%} .pastilha.p3{right:2%}
}
@media(prefers-reduced-motion:reduce){
  .autoc{opacity:1;transform:rotate(var(--rot,-3deg));animation:none!important}
  .pastilha{opacity:1;transform:none;transition:none}
}


/* ==========================================================================
   PALETA APERTADA — 11/09/2026

   Eram cinco cores de acento ao mesmo nível: vermelho, azul, verde, amarelo e
   castanho. Cinco cores sem hierarquia não é uma paleta, é uma caixa de lápis.
   Cada uma passa a ter um PAPEL, e o castanho sai — era a única sem papel
   nenhum e embaciava sobre o creme.

     vermelho  a marca, e só ela: botões principais, faixa, títulos de destaque
     azul      o segundo: calma, água, banhos — e as áreas de informação
     amarelo   só o que é para dar nas vistas: autocolantes e manuscrita
     verde     NÃO é decoração: é o "sim" — vistos, estados feitos, dias livres
     creme     o chão de tudo, e é o que faz isto parecer quinta e não clínica
   ====================================================================== */
:root{
  /* fica declarado para não partir nada que ainda lhe toque, mas deixa de se
     usar em superfícies novas */
  --kibble:#C98A3E;
}

/* ---- fotografia no cabeçalho de cada serviço (11/09/2026) ---------------
   Os quatro cartões da página de serviços eram só cor e lista. Cada um passa
   a abrir com a sua fotografia verdadeira e um selo manuscrito colado ao
   canto — o mesmo gesto dos autocolantes da capa.                        */
.mfoto{position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--sand)}
.mfoto img{width:100%;height:100%;object-fit:cover;display:block;
  transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}
.mcat:hover .mfoto img{transform:scale(1.05)}
.selo-foto{
  position:absolute;left:1rem;bottom:.9rem;z-index:2;
  font-family:var(--f-hand);font-size:1.25rem;color:#FFF;
  text-shadow:0 4px 16px rgba(30,42,68,.6);transform:rotate(-3deg);
}

/* ==========================================================================
   AUDITORIA DE CONTRASTE — 11/09/2026

   Medido no browser, com a fórmula da WCAG, em todo o texto visível da capa.
   Três reprovações, todas pela mesma razão: o vermelho VIVO (#F0403A) é
   bonito em áreas cheias mas com branco por cima dá 3,82:1, e o mínimo para
   texto normal é 4,5:1. Já estava escrito na primeira versão que "a faixa e
   os botões cheios usam o tom escuro" — mas o código nunca chegou a fazê-lo.

   Passa tudo para `--red-dk`. A cor da marca não muda: continua a ser o tom
   vivo nas superfícies grandes, nas ondas e nos ornamentos, onde não há
   texto pequeno por cima.

   ACTUALIZADO A 26/09/2026, com a passagem a coral: o vivo passou a #F2685C
   (2,9:1 com branco) e o escuro a #C94033 (4,9:1). A conclusão é a mesma e
   a margem ficou mais apertada — estas três regras são agora ainda mais
   necessárias, não menos.
   ====================================================================== */
.btn.fill{background:var(--red-dk);border-color:var(--red-dk)}
.btn.fill:hover{background:var(--red-mid);border-color:var(--red-mid)}
.strip{background:var(--red-dk)}
/* a manuscrita a abrir a secção: vermelho vivo sobre creme dava 3,57:1 */
.manu{color:var(--red-dk)}
/* e a onda que liga à faixa tem de acompanhar, senão fica um degrau de cor */
.wave path[fill="var(--red)"]{fill:var(--red-dk)}

/* as exigências antes da primeira estadia: é informação que evita uma viagem
   ao engano, por isso destaca-se do resto da resposta.

   CLASSE PRÓPRIA, e não .req. Chamava-se .req e havia JÁ uma .req na folha —
   a pastilha vermelha de "RESERVAS" e "PREFERE FALAR?". Esta regra só mudava
   fundo, raio, padding e tamanho, por isso a caixa herdava da outra o
   color:#FFF e o text-transform:uppercase: texto branco em maiúsculas sobre
   azul-gelo, 1,3:1, ilegível, desde 11/09/2026. Apanhado a 26/09. */
.exig{display:block;margin-top:.9rem;background:var(--aqua-lt);border-radius:var(--r-sm);
  padding:.85rem 1rem;font-size:.9rem;line-height:1.6;color:var(--graph);
  font-weight:400;letter-spacing:normal;text-transform:none}
.exig b{color:var(--aqua-dk);font-weight:700}

/* ---------- menus pendentes -----------------------------------------------
   Os <select> ficavam com a seta cinzenta do sistema operativo dentro de um
   campo redondo de 2 px: é o único sítio da página onde se via o Windows por
   baixo do desenho. appearance:none apaga-a e a seta passa a ser desenhada
   aqui, na cor da casa. O padding à direita abre-lhe o lugar. */
.campo select,.sim select{
  -webkit-appearance:none;-moz-appearance:none;appearance:none;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%23C94033' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 1.05rem center;background-size:12px 8px;
  padding-right:2.8rem;cursor:pointer}
.campo select{background-color:var(--paper)}
.sim select{background-color:#FFF}
.campo select::-ms-expand,.sim select::-ms-expand{display:none}


/* ---------- capa: os botoes e a nota do Google ----------
   Faltava aqui o mais basico: quem chegava a capa nao tinha um unico sitio
   onde carregar sem ter de descer primeiro.

   NOTA PARA QUEM MEXER: estas regras viveram no meio do bloco dos
   autocolantes de fotografia e foram apagadas com ele a 26/09/2026, sem
   darem sinal - a nota do Google ficou sem a pastilha e os botoes sem
   espaco entre eles. Ao apagar um bloco grande, verificar sempre o que
   vivia LA DENTRO e nao tinha nada que ver com ele. */
.cover-in{z-index:2}
.cover-act{display:flex;gap:.7rem;justify-content:center;flex-wrap:wrap;margin-top:1.9rem}
.cover-nota{margin-top:1.1rem;font-size:.84rem;font-weight:700;color:var(--graph);
  display:inline-flex;align-items:center;gap:.5rem;background:rgba(255,255,255,.82);
  padding:.42rem 1.1rem;border-radius:var(--r-pill);box-shadow:0 0 0 2px rgba(255,255,255,.55)}
/* O amarelo da casa sobre branco da 1,6:1 e as estrelas desapareciam. Este
   ambar e o tom em que o proprio Google as desenha. */
.cover-nota b{color:var(--star);letter-spacing:.08em;font-size:.95rem}
.fade-up.d4{animation-delay:.52s}
.fade-up.d5{animation-delay:.68s}

/* ---------- revelacao com exagero ----------
   A .rv de sempre e uma subida discreta. Esta e para o que deve saltar: os
   cartoes, as pastilhas, os numeros. Mesma curva do autocolante. */
.rv-pop{opacity:0;transform:translateY(18px) scale(.94);
  transition:opacity .5s ease,transform .55s cubic-bezier(.34,1.56,.64,1)}
.rv-pop.in{opacity:1;transform:none}

/* ---------- barra de progresso da pagina ----------
   Um fio de 3 px colado ao topo que enche conforme se desce. Custa um
   transform por scroll e diz sempre onde se esta numa pagina longa. */
.prog{position:fixed;inset:0 0 auto;height:3px;z-index:60;background:transparent;pointer-events:none}
.prog i{display:block;height:100%;width:100%;transform:scaleX(0);transform-origin:0 50%;
  background:linear-gradient(90deg,var(--red),var(--sun));will-change:transform}

/* ---------- inclinacao dos cartoes ao passar o rato ----------
   So em ecras com rato a serio (hover:hover): num telemovel o toque ficava
   com o cartao torto e preso assim. */
@media(hover:hover){
  .tilt{transform-style:preserve-3d;transition:transform .35s cubic-bezier(.2,.8,.3,1)}
  .tilt.tocado{transition:transform .09s linear}
}

/* ---------- contagem dos numeros ---------- */
.numbers div b{font-variant-numeric:tabular-nums}

/* ---------- ecras pequenos ---------- */
@media(max-width:760px){
  /* a 44% cada, "Reservar estadia" partia-se em duas linhas dentro da
     capsula e os dois botoes ficavam com alturas diferentes. Um por linha
     le-se melhor e da um alvo de toque maior. */
  .cover-act{flex-direction:column;align-items:stretch;padding-inline:1.4rem}
  .cover-act .btn{width:100%}
}

/* ---------- quem pediu menos movimento ----------
   Tudo o que anda sozinho para: flutuacao, saltos, barra e inclinacao. O que
   fica e a pagina inteira visivel e parada, que e o que foi pedido. */
@media(prefers-reduced-motion:reduce){
  .rv-pop{opacity:1;transform:none;transition:none}
  .prog{display:none}
  .tilt{transition:none}
}



/* ---------- a mensalidade da creche, em pastilhas ----------
   Cinco degraus, o de cinco dias cheio porque e o que a maior parte das
   pessoas procura. Sao numeros, nao sao botoes: nada aqui e clicavel. */
.dias-creche{list-style:none;display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.9rem}
.dias-creche li{display:grid;justify-items:center;gap:.1rem;min-width:4.4rem;
  padding:.65rem .9rem;border-radius:var(--r-sm);background:var(--paper);
  border:2px solid var(--stone);transition:.3s cubic-bezier(.2,.8,.3,1)}
.dias-creche li:hover{transform:translateY(-4px);box-shadow:0 12px 20px -14px var(--ink)}
.dias-creche li b{font-family:var(--f-display);font-size:1.15rem;color:var(--red-dk);line-height:1}
.dias-creche li span{font-family:var(--f-display);font-weight:700;font-size:1.05rem;color:var(--ink)}
.dias-creche li.cheio{background:var(--ink);border-color:var(--ink)}
.dias-creche li.cheio b{color:var(--sun)}
.dias-creche li.cheio span{color:#FFF}
.dias-nota{margin-top:.9rem;font-size:.92rem;color:var(--graph)}
.dias-nota b{color:var(--ink)}
@media(max-width:560px){
  .dias-creche li{min-width:0;flex:1 1 27%;padding:.55rem .4rem}
}




/* ---------- o dia da creche, em tres momentos ----------
   Tres cartoes e nao uma linha do tempo com horas de meia em meia: do meio
   do dia nao temos fonte, e uma grelha inventada era coisa que o cliente
   teria de desmentir ao telefone. A hora grande e o que ancora cada cartao. */
.creche-dia{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2.5vw,1.6rem);
  margin-top:clamp(2rem,5vw,3rem)}
.cd-passo{background:var(--paper);border-radius:var(--r-lg);padding:1.6rem 1.5rem;
  border:2px solid var(--stone);position:relative;
  transition:.4s cubic-bezier(.2,.8,.3,1)}
.cd-passo:hover{transform:translateY(-6px);box-shadow:0 20px 34px -22px var(--ink);
  border-color:var(--stone)}
.cd-hora{font-family:var(--f-display);font-weight:800;font-size:1.7rem;line-height:1;
  color:var(--red-dk);letter-spacing:-.01em}
.cd-passo h3{margin:.5rem 0 .6rem;font-size:1.22rem}
.cd-passo p{font-size:.95rem;color:var(--graph)}
/* o tracinho que liga um cartao ao seguinte, so onde ha espaco para ele */
@media(min-width:861px){
  .cd-passo+.cd-passo::before{content:"";position:absolute;left:-.9rem;top:2.1rem;
    width:.6rem;height:2px;border-radius:2px;background:var(--stone)}
}
@media(max-width:860px){
  .creche-dia{grid-template-columns:1fr}
}


/* ===========================================================================
   AUTOCOLANTES DESENHADOS  (26/09/2026)
   ---------------------------------------------------------------------------
   Casota, cao, osso, tigela, bola, pata e cama. Substituem as fotografias
   recortadas em redondo da volta anterior: aquilo era fotografia sobre
   fotografia, e a fotografia da casa merece ficar sozinha.

   Sao decoracao a serio - `pointer-events:none`, `aria-hidden` posto pelo
   javascript, e nenhuma informacao vive aqui dentro. Quem nao os vir nao
   perde nada.

   Posicionam-se por variaveis no proprio html, para nao haver uma regra de
   css por cada um:
     <span class="stk" data-stk="casota"
           style="--stk-w:190px;--stk-rot:-8deg;--stk-t:10%;--stk-l:3%"></span>
   ======================================================================== */
.stk{position:absolute;z-index:3;pointer-events:none;
  width:var(--stk-w,170px);
  top:var(--stk-t,auto); left:var(--stk-l,auto);
  right:var(--stk-r,auto); bottom:var(--stk-b,auto);
  opacity:0;transform:rotate(calc(var(--stk-rot,-6deg) - 14deg)) scale(.6)}
.stk.in{animation:stkpop .66s cubic-bezier(.34,1.56,.64,1) var(--stk-delay,0s) forwards}
@keyframes stkpop{
  from{opacity:0;transform:rotate(calc(var(--stk-rot,-6deg) - 14deg)) scale(.6)}
  to  {opacity:1;transform:rotate(var(--stk-rot,-6deg)) scale(1)}}

/* a flutuacao vive numa camada propria: se andasse na mesma que a entrada,
   as duas animacoes disputavam o transform e uma comia a outra */
.stk-f{display:block;animation:stkflutua var(--stk-dur,7s) ease-in-out var(--stk-delay,0s) infinite}
@keyframes stkflutua{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}

.stk svg{width:100%;height:auto;display:block;overflow:visible;
  filter:drop-shadow(0 14px 20px rgba(30,42,68,.26))}
/* A FACA DE CORTE: as pecas da silhueta outra vez, em creme e com um traco
   grosso do mesmo creme. Como se sobrepoem, dao a silhueta unida do
   conjunto. E o que faz isto parecer um autocolante e nao um icone. */
.stk .cut{fill:var(--paper);stroke:var(--paper);stroke-width:17;
  stroke-linejoin:round;stroke-linecap:round}
/* na seccao escura o recorte tem de ser do creme quente, senao o papel
   esbranquicado abre um buraco no meio do marinho */
.rec .stk .cut{fill:var(--cream);stroke:var(--cream)}

/* Abaixo dos 900 px a pagina e uma coluna so e nao ha margem onde pousar um
   autocolante sem ele ir parar por cima do texto. Desaparecem. */
@media(max-width:900px){ .stk{display:none} }

@media(prefers-reduced-motion:reduce){
  .stk{opacity:1;transform:rotate(var(--stk-rot,-6deg))}
  .stk.in{animation:none;opacity:1;transform:rotate(var(--stk-rot,-6deg))}
  .stk-f{animation:none}
}


/* ===========================================================================
   AUDITORIA DE 27/09/2026 — foco e alvos de toque
   ======================================================================== */

/* ---- anel de foco em toda a parte ----
   Os campos de formulario, as pastilhas e o calendario ja tinham o seu; os
   LINKS e os BOTOES ficavam com o anel de origem do browser, que muda de
   aspecto de browser para browser e desaparece sobre fundos escuros. Passa a
   haver um so, da casa, e sempre com um halo claro por baixo para ele se ver
   tanto no creme como no marinho.

   :focus-visible e nao :focus, de proposito: quem clica com o rato nao quer
   ver anel nenhum; quem anda de Tab precisa de o ver sempre. */
a:focus-visible,
button:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible{
  outline:3px solid var(--red-dk);
  outline-offset:3px;
  border-radius:var(--r-sm)}
/* sobre o marinho o coral escuro quase desaparece: ali o anel e creme */
.rec a:focus-visible, body>footer a:focus-visible, .rec button:focus-visible{
  outline-color:var(--cream)}

/* ---- rodape: o link do Livro de Reclamacoes media 140x17 px ---- */
body>footer a{display:inline-block;padding-block:.3rem}

/* ---- as caixas do simulador mediam 13x13 px ----
   Treze pixeis e menos de metade do minimo, e ao telemovel e um alvo que se
   falha sempre. Sobem a 22 px com uma area de toque de 44 atraves da
   etiqueta, que e onde a pessoa carrega de qualquer maneira. */
.sim-check{display:flex;align-items:flex-start;gap:.7rem;cursor:pointer;
  padding-block:.55rem;min-height:44px}
.sim-check input[type="checkbox"]{
  width:22px;height:22px;flex:0 0 22px;margin-top:.1rem;
  accent-color:var(--red-dk);cursor:pointer}

/* ---- a mesma conta para as caixas soltas do formulario de reservas ---- */
.resv-check input[type="checkbox"]{width:22px;height:22px;flex:0 0 22px}

/* ---- ao telemovel, uma pata decorativa ficava cortada na margem direita ----
   Nao causava scroll horizontal (o body corta), mas via-se meia pata colada
   ao rebordo, que parece defeito e nao decoracao. */
@media(max-width:760px){
  .pawfield .bit{max-width:64px;max-height:64px}
  .pawfield{overflow:hidden}
}


/* ---- a moldura tambem no topo das paginas interiores ----
   Para a linguagem ser a mesma em todo o lado e nao so na entrada. */
.pagetop{margin:clamp(.9rem,1.9vw,2.2rem);border-radius:clamp(22px,2.9vw,46px)}

/* ---- MARCADOR (ideia do butternutbox.com) ----
   Um traço de marcador por tras de uma palavra, torto como se tivesse sido
   passado a mao. Serve para UMA coisa por pagina: a que tem de ficar na
   cabeca. Mais do que isso deixa de destacar seja o que for. */
.marca{position:relative;white-space:nowrap}
.marca::before{content:"";position:absolute;left:-.22em;right:-.22em;
  top:.12em;bottom:.02em;background:var(--sun);opacity:.5;z-index:-1;
  border-radius:.35em .8em .4em .7em;transform:rotate(-.9deg)}


/* ===========================================================================
   GRAO DE PAPEL  (27/09/2026)
   ---------------------------------------------------------------------------
   Uma camada de ruido finissimo por cima de tudo, a 3,5% de opacidade. Nao se
   ve — sente-se: tira o aspecto de cor chapada de ecra e da a sensacao de
   papel impresso. E o truque mais barato que ha para uma pagina parecer cara,
   e o unico efeito deste site que ninguem consegue apontar a olho.

   Vem de um <svg> com feTurbulence dentro de um data-uri: nao ha ficheiro
   nenhum a descarregar, e o ladrilho de 180 px repete-se sem costura.
   pointer-events:none e z-index alto: fica por cima de tudo e nao apanha um
   unico clique. */
body::after{
  content:"";position:fixed;inset:0;z-index:70;pointer-events:none;opacity:.035;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:180px 180px}
/* quem pediu menos movimento nao pediu menos textura: o grao fica, porque
   nao se mexe. Mas num ecra pequeno o ganho e nulo e o custo de pintura nao,
   por isso ali sai. */
@media(max-width:760px){ body::after{display:none} }


/* ===========================================================================
   A BANDA DE FECHO, COM O LABRADOR RECORTADO  (28/09/2026)
   ---------------------------------------------------------------------------
   O unico recorte verdadeiro do site. A fotografia e deles; o fundo foi
   tirado para o cao poder estar DE PE em cima do creme, em vez de estar
   dentro de uma moldura. A sombra elitica por baixo e o que o poe no chao —
   sem ela flutua e parece colado.
   ======================================================================== */
/* A FOTOGRAFIA EM ARCO  (28/09/2026)
   ---------------------------------------------------------------------------
   Saiu daqui o labrador recortado. O problema nao era o recorte: e que um cao
   recortado a flutuar pertence a outra familia de design. Esta e editorial e
   serena — fotografia grande e tipografia — e um autocolante ali dentro e uma
   t-shirt com decalque numa loja de roupa boa.

   O que entra e a FORMA: o topo redondo, como uma janela ou um portao de
   quinta. E o unico enfeite de que esta paleta precisa, e nao e colado por
   cima de nada: e o proprio enquadramento da fotografia. */
.arco{position:relative;margin:0;overflow:hidden;
  border-radius:var(--arco);
  box-shadow:0 26px 60px -34px rgba(27,38,32,.45)}
.arco img{width:100%;height:100%;object-fit:cover;display:block}

.fecho{background:var(--sand);overflow:hidden;
  padding-block:clamp(3rem,6vw,5rem)}
.fecho-in{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  gap:clamp(1.5rem,4vw,4rem);align-items:center}
.fecho .arco{aspect-ratio:4/5;max-height:30rem}
.fecho-txt .lead{margin-top:.85rem}

@media(max-width:860px){
  .fecho-in{grid-template-columns:1fr;gap:1.6rem}
  .fecho-txt{order:-1}
  .fecho .arco{max-width:20rem;margin-inline:auto}
}


/* ===========================================================================
   A PAGINA DA CRECHE  (28/09/2026)
   ---------------------------------------------------------------------------
   Existe por causa da pesquisa, nao da estetica: o Google indexa PAGINAS, nao
   ancoras, e a seccao #creche dentro de servicos.html nunca ia ganhar "creche
   canina Gondomar" porque a pagina onde vivia falava de quatro coisas.
   ======================================================================== */

/* as quatro razoes: cartoes sem fotografia, so numero e texto, para nao
   competirem com as fotografias que vem logo a seguir */
.razoes{grid-template-columns:repeat(4,minmax(0,1fr))}
.razoes .card{background:var(--cream);border:2px solid var(--stone)}
.razoes .card .num{font-size:2.2rem;opacity:.3}
.razoes .card h3{font-size:1.06rem;line-height:1.25}
.razoes .card p{font-size:.93rem;color:var(--soft)}
.razoes .card:hover{transform:translateY(-6px) rotate(0);border-color:var(--s2)}
@media(max-width:1040px){.razoes{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.razoes{grid-template-columns:1fr}}

/* AS MENSALIDADES. Cinco degraus, e o quinto e o que interessa: e onde o dia
   fica mais barato, e e por isso que leva o destaque e o valor por dia. Um
   preco so se percebe ao lado dos outros. */
.mensal{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));
  gap:clamp(.7rem,1.4vw,1.1rem);margin-top:clamp(2rem,3.5vw,2.8rem)}
.mens{background:var(--paper);border:2px solid var(--stone);border-radius:var(--r);
  padding:clamp(1rem,2vw,1.4rem) .8rem;text-align:center;
  transition:.3s cubic-bezier(.2,.8,.3,1)}
.mens:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.mens b{display:block;font-family:var(--f-display);font-weight:800;font-size:1.5rem;
  line-height:1;color:var(--s2)}
.mens span{display:block;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--soft);margin-top:.3rem}
.mens em{display:block;font-family:var(--f-display);font-style:normal;font-weight:800;
  font-size:1.85rem;line-height:1.1;margin-top:.8rem;color:var(--ink)}
.mens small{display:block;font-size:.76rem;color:var(--soft);margin-top:.2rem}
/* o degrau que sai mais em conta: o unico com fundo cheio */
.mens.destaque{background:var(--s2);border-color:var(--s2)}
.mens.destaque b, .mens.destaque em{color:#FFF}
.mens.destaque span, .mens.destaque small{color:rgba(255,255,255,.82)}
@media(max-width:900px){.mensal{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:520px){.mensal{grid-template-columns:1fr 1fr}
  .mens.destaque{grid-column:1/-1}}

/* nesta pagina o accento e o barro da creche, nao o barro da casa */
/* (aqui havia #porque h2 em{color:var(--s2)}: um id ganha a qualquer
   classe, e quando o #porque passou a existir nas outras paginas de servico
   ficou tudo barro. A cor da creche vem agora da .svc-s2, como as outras.) */


/* ===========================================================================
   TUDO AO MESMO LIMITE  (28/09/2026)
   ---------------------------------------------------------------------------
   Medido no ar: as quatro tabelas de precos tinham 451, 516, 498 e 542 px, e
   os quatro cartoes da entrada 549, 575, 550 e 513. A grelha ja os esticava
   todos a mesma altura — o que nao estava esticado era o CONTEUDO, e por isso
   o Pet Hotel (o que tem menos linhas) ficava com um vazio branco no fundo
   enquanto os outros iam ate baixo.

   A correccao nao e forcar alturas: e fazer de cada cartao uma coluna flex e
   mandar a ULTIMA peca (a nota, o preco, o botao) colar-se ao fundo com
   margin-top:auto. Assim todos comecam em cima ao mesmo nivel e acabam em
   baixo ao mesmo nivel, seja qual for o texto no meio.

   E os cabecalhos levam altura minima: "Pet Hotel" e uma linha e "Banhos e
   tosquias pelo comprido" sao duas, e eram 92 contra 109 px.
   ======================================================================== */
.tab{display:flex;flex-direction:column}
.tab-hd{min-height:7.2rem;display:flex;flex-direction:column;justify-content:center}
.tab .tab-nota, .tab>p:last-child{margin-top:auto}

.cards-foto .card{display:flex;flex-direction:column}
.cards-foto .card .desde{margin-top:auto}
.cards-foto .card .btn{align-self:flex-start;margin-top:.9rem}

/* os quatro blocos da pagina de servicos, pela mesma razao */
.mcat{display:flex;flex-direction:column}
.mcat .mhead{min-height:6.4rem;display:flex;flex-direction:column;justify-content:center}
.mcat ul{margin-top:auto}


/* ===========================================================================
   AS PAGINAS DE SERVICO  (30/09/2026)
   ---------------------------------------------------------------------------
   Pet Hotel, Creche, Banhos e Tosquias e Pet Taxi tem cada um a sua pagina,
   com a mesma estrutura do site do colega (que entretanto foi apagado: so
   sobreviveu o texto da entrada e o inicio da creche). O Eduardo escolheu
   "faz tu com o que sobrou".

   Cada pagina leva a cor do seu servico — musgo, barro, ocre, ardosia — por
   uma classe no <main>. Todos os componentes abaixo pedem --acc e --acc-lt,
   e nenhum sabe de que servico e. Uma quinta pagina de servico e so mais uma
   linha aqui.
   ======================================================================== */
.svc-s1{--acc:var(--s1);--acc-lt:var(--s1-lt)}
.svc-s2{--acc:var(--s2);--acc-lt:var(--s2-lt)}
.svc-s3{--acc:var(--s3);--acc-lt:var(--s3-lt)}
.svc-s4{--acc:var(--s4);--acc-lt:var(--s4-lt)}
.svc h1 em, .svc h2 em{color:var(--acc)}
.svc .eyebrow{color:var(--acc)}
.svc .btn.fill{background:var(--acc);border-color:var(--acc)}
.svc .btn.fill:hover{filter:brightness(.88)}

/* ---- a entrada: texto a esquerda, fotografia em arco a direita ---------
   O mesmo painel flutuante do .pagetop (margem e cantos iguais) para as
   paginas de servico nao parecerem de outro site. */
.svc-hero{margin:clamp(.9rem,1.9vw,2.2rem);border-radius:clamp(22px,2.9vw,46px);
  background:radial-gradient(ellipse 80% 90% at 85% 10%,rgba(255,255,255,.55),transparent 62%),var(--acc-lt);
  padding:clamp(7rem,12vw,9rem) 0 clamp(2.6rem,5vw,4rem);position:relative;overflow:hidden}
.svc-hero-in{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);
  gap:clamp(1.8rem,4.5vw,4.5rem);align-items:center}
.svc-hero h1{font-size:clamp(2.3rem,5.4vw,4rem);font-weight:800;line-height:1.02;margin-top:.55rem}
.svc-hero .lead{margin-top:1.15rem;max-width:50ch}
.svc-cta{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.7rem}
.svc-factos{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem .6rem;margin-top:1.6rem;padding:0}
.svc-factos li{background:rgba(255,255,255,.7);border:1px solid rgba(27,38,32,.1);border-radius:var(--r-pill);
  padding:.42rem .9rem;font-size:.86rem;color:var(--graph)}
.svc-factos b{color:var(--acc);font-family:var(--f-display);font-weight:800}
.svc-hero-foto{aspect-ratio:4/5;max-height:34rem;width:100%;justify-self:end}
/* a legenda pousada na fotografia, como no site do colega ("O grupo, a meio
   da manha"): diz o que se esta a ver sem ocupar uma linha de texto */
.legenda{position:absolute;left:.9rem;bottom:.9rem;margin:0;background:rgba(250,246,239,.92);
  backdrop-filter:blur(6px);border-radius:var(--r-pill);padding:.4rem .85rem;
  font-size:.8rem;font-weight:600;color:var(--ink)}
@media(max-width:860px){
  .svc-hero-in{grid-template-columns:1fr}
  .svc-hero-foto{justify-self:center;max-width:22rem;order:-1}
}

/* ---- tres fotografias em fila, cada uma com a sua legenda ------------- */
.trio-fotos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(.8rem,1.8vw,1.4rem);
  margin-top:clamp(2rem,3.5vw,3rem)}
.trio-fotos figure{position:relative;margin:0;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:3/4;
  box-shadow:0 18px 40px -26px rgba(27,38,32,.5)}
.trio-fotos figure:nth-child(2){border-radius:var(--arco)}
.trio-fotos img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s cubic-bezier(.2,.8,.3,1)}
.trio-fotos figure:hover img{transform:scale(1.04)}
@media(max-width:700px){.trio-fotos{grid-template-columns:1fr 1fr}.trio-fotos figure:nth-child(3){display:none}}

/* ---- os quatro cartoes do "porque": cor do servico no numero e na borda */
.svc .razoes .card:hover{border-color:var(--acc)}
.svc .razoes .card .num, .svc .razoes .card h3{color:var(--acc)}

/* ---- o preco do servico, em azulejos ---------------------------------- */
.azulejos{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));
  gap:clamp(.7rem,1.4vw,1.1rem);margin-top:clamp(2rem,3.5vw,2.8rem)}
.azulejo{background:var(--paper);border:2px solid var(--stone);border-radius:var(--r);
  padding:clamp(1.1rem,2vw,1.5rem) 1.1rem;display:flex;flex-direction:column;gap:.2rem}
.azulejo span{font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--soft);font-weight:700}
.azulejo em{font-family:var(--f-display);font-style:normal;font-weight:800;font-size:2rem;line-height:1.05;color:var(--ink)}
.azulejo small{font-size:.82rem;color:var(--soft)}
.azulejo.destaque{background:var(--acc);border-color:var(--acc)}
.azulejo.destaque span, .azulejo.destaque small{color:rgba(255,255,255,.82)}
.azulejo.destaque em{color:#FFF}

/* ---- o que tem de trazer: caixa com filete da cor do servico ---------- */
.exige{margin-top:clamp(1.8rem,3vw,2.4rem);background:var(--paper);border-left:5px solid var(--acc);
  border-radius:var(--r);padding:1.2rem 1.4rem;max-width:68ch;font-size:.97rem;color:var(--graph)}
.exige b{color:var(--ink)}
.svc .steps-4 .step::before{background:var(--acc-lt);color:var(--acc)}
.svc .faq summary::after{background:var(--acc-lt)}

/* cinco razoes na creche (a quinta veio do texto do colega): cinco colunas
   quando ha largura, e depois 3+2 — nunca quatro e uma sozinha por baixo */
.razoes-5{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:1200px){.razoes-5{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.razoes-5{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.razoes-5{grid-template-columns:1fr}}


/* ===========================================================================
   A QUINTA, refeita com as fotografias novas (30/09/2026)
   ======================================================================== */
/* a quinta nao e um servico: leva o barro da casa, sobre creme */
.svc-casa{--acc:var(--red-dk);--acc-lt:var(--cream)}

/* OS ESPACOS: seis sitios, cada um com fotografia, nome e uma linha. As
   fotografias sao de SITIOS (quartos, gatil, recepcao) — as do WhatsApp sao
   todas de caes e nao mostram as instalacoes. */
.espacos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,2.2vw,1.8rem);
  margin-top:clamp(2rem,3.5vw,3rem)}
.espaco{background:var(--paper);border:2px solid var(--stone);border-radius:var(--r-lg);overflow:hidden;
  display:flex;flex-direction:column;transition:.35s cubic-bezier(.2,.8,.3,1)}
.espaco:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.espaco figure{margin:0;aspect-ratio:4/3;overflow:hidden}
.espaco img{width:100%;height:100%;object-fit:cover;display:block}
.espaco h3{font-size:1.2rem;margin:1.1rem 1.2rem .3rem;color:var(--ink)}
.espaco p{margin:0 1.2rem 1.3rem;font-size:.93rem;color:var(--soft)}
@media(max-width:900px){.espacos{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.espacos{grid-template-columns:1fr}}

/* OS HOSPEDES: seis retratos, tres por fila, e dois com o topo em arco para
   a grelha nao parecer uma folha de selos */
.hospedes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(.8rem,1.8vw,1.4rem);
  margin-top:clamp(2rem,3.5vw,3rem)}
.hospedes figure{position:relative;margin:0;aspect-ratio:3/4;overflow:hidden;border-radius:var(--r-lg);
  box-shadow:0 18px 40px -26px rgba(27,38,32,.5)}
.hospedes figure.arco-h{border-radius:var(--arco)}
.hospedes img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s cubic-bezier(.2,.8,.3,1)}
.hospedes figure:hover img{transform:scale(1.04)}
/* os baloes de fala herdam o desenho da galeria antiga; aqui aparecem com a
   propria grelha, ja que a figura nao tem classe de revelacao sua */
.hospedes .balao{font-size:clamp(.78rem,1.2vw,.9rem);padding:.6rem .95rem;bottom:9%}
.hospedes.in .balao{opacity:1;transform:none;transition-delay:.35s}
@media(max-width:700px){.hospedes{grid-template-columns:1fr 1fr}}

/* A EQUIPA: quatro fotografias em fila, mais baixas do que os retratos */
.equipa-fotos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(.8rem,1.8vw,1.4rem);
  margin-top:clamp(2rem,3.5vw,3rem)}
.equipa-fotos figure{margin:0;aspect-ratio:4/5;overflow:hidden;border-radius:var(--r-lg)}
.equipa-fotos figure:nth-child(odd){border-radius:var(--arco)}
.equipa-fotos img{width:100%;height:100%;object-fit:cover;display:block}
@media(max-width:800px){.equipa-fotos{grid-template-columns:1fr 1fr}}


/* ---- correccoes da revisao de 30/09 ----------------------------------- */
/* 2. O .card declara o seu proprio --acc (barro), e isso tapa o --acc que a
      pagina lhe passa. Dentro dos cartoes usa-se --svc, que o .card nao
      declara e por isso chega intacto. */
.svc-s1{--svc:var(--s1)} .svc-s2{--svc:var(--s2)} .svc-s3{--svc:var(--s3)} .svc-s4{--svc:var(--s4)}
.svc-casa{--svc:var(--red-dk)}
.svc .razoes .card .num, .svc .razoes .card h3{color:var(--svc)}
.svc .razoes .card:hover{border-color:var(--svc)}

/* 4. no convite final das paginas de servico o texto e todo a esquerda */
.svc .cta .duo-txt .lead{margin-inline:0;text-align:left}

/* 5. o titulo da entrada partia em quatro linhas ("…e / meia.") */
.svc-hero h1{font-size:clamp(2.2rem,4.6vw,3.4rem)}

/* 6. cinco razoes: 3 em cima e 2 centradas em baixo, em vez de cinco
      colunas de 220 px onde cada titulo partia em quatro linhas */
.razoes-5{grid-template-columns:repeat(6,minmax(0,1fr))}
.razoes-5>*{grid-column:span 2}
.razoes-5>:nth-child(4){grid-column:2/span 2}
@media(max-width:1200px){.razoes-5{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(max-width:760px){.razoes-5{grid-template-columns:1fr 1fr}
  .razoes-5>*,.razoes-5>:nth-child(4){grid-column:auto}}
@media(max-width:520px){.razoes-5{grid-template-columns:1fr}}

/* A CAPA NO TELEMOVEL (30/09/2026). A fotografia do pomar cortada ao centro
   num ecra de 390 px deixava uma boca de um lado e uma lingua do outro.
   Experimentaram-se tres, lado a lado a 390 px verdadeiros: uma ao alto (a 57,
   do grupo da creche) ficava lavada pelo veu — ceu branco e silhuetas pretas;
   a do pomar a 40% ainda cortava a lingua do cao preto na borda; a do pomar a
   30% poe as laranjeiras em cima e o cao malhado a rir por baixo dos botoes.
   Ficou esta: a mesma fotografia em todos os ecras, so deslocada. */
@media(max-width:760px){.cover-bg img{object-position:30% 50%}}


/* ===========================================================================
   ANIMACOES GRANDES, FOFAS E SEM ENFEITES COLADOS  (30/09/2026)
   ---------------------------------------------------------------------------
   Pedido: "animacoes fofas e grandes mas esteticas". O criterio que se seguiu
   vem da licao dos autocolantes: nada que apareca do nada. Cada animacao mexe
   numa coisa que ja la esta — uma fotografia, uma legenda, uma faixa — e
   nenhuma acrescenta um boneco. Todas param com menos movimento pedido.
   ======================================================================== */

/* ---- 4. A FAIXA QUE CORRE (entrada) ------------------------------------
   Duas copias iguais lado a lado, a pista anda metade da largura e volta ao
   inicio sem se notar. Para quando se passa o rato, para se poder ler. */
.strip-corre{padding-block:1.35rem;overflow:hidden}
.strip-pista{display:flex;width:max-content;animation:faixaCorre 46s linear infinite}
.strip-corre:hover .strip-pista{animation-play-state:paused}
.strip-grupo{display:flex;flex:0 0 auto;gap:clamp(2rem,4vw,3.6rem);padding-right:clamp(2rem,4vw,3.6rem);
  font-family:var(--f-display);font-weight:600;font-size:clamp(1.05rem,1.9vw,1.45rem);letter-spacing:-.005em}
.strip-grupo span{display:flex;align-items:center;gap:clamp(2rem,4vw,3.6rem);white-space:nowrap}
/* o separador passa de ponto a patinha: e a unica pata do site, e esta
   dentro de uma coisa que ja existia */
.strip-corre .strip-grupo span::before{content:"";flex:0 0 1.1em;width:1.1em;height:1.1em;border-radius:0;
  background:rgba(255,255,255,.6);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cellipse cx='12' cy='16' rx='5.2' ry='4.4'/%3E%3Cellipse cx='5.2' cy='10' rx='2.2' ry='2.9'/%3E%3Cellipse cx='9.3' cy='5.6' rx='2.2' ry='2.9'/%3E%3Cellipse cx='14.7' cy='5.6' rx='2.2' ry='2.9'/%3E%3Cellipse cx='18.8' cy='10' rx='2.2' ry='2.9'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cellipse cx='12' cy='16' rx='5.2' ry='4.4'/%3E%3Cellipse cx='5.2' cy='10' rx='2.2' ry='2.9'/%3E%3Cellipse cx='9.3' cy='5.6' rx='2.2' ry='2.9'/%3E%3Cellipse cx='14.7' cy='5.6' rx='2.2' ry='2.9'/%3E%3Cellipse cx='18.8' cy='10' rx='2.2' ry='2.9'/%3E%3C/svg%3E") center/contain no-repeat}
@keyframes faixaCorre{to{transform:translateX(-50%)}}

/* ---- 1. AS FOTOGRAFIAS EM ARCO ABREM-SE --------------------------------
   Como uma persiana a subir: a fotografia descobre-se de baixo para cima e
   assenta, de um ligeiro zoom para o tamanho certo. Nas entradas das paginas
   corre ao carregar; no resto, quando a fotografia chega ao ecra (a mesma
   classe .in das revelacoes — se o observador falhar, a rede de seguranca do
   wireReveals tambem a poe). */
@keyframes arcoAbre{from{clip-path:inset(100% 0 0 0);transform:scale(1.14)}to{clip-path:inset(0 0 0 0);transform:scale(1)}}
.svc-hero-foto img{animation:arcoAbre 1.5s cubic-bezier(.65,.05,.36,1) .15s both}
.arco.rv-l img, .arco.rv-r img{clip-path:inset(100% 0 0 0);transform:scale(1.14);
  transition:clip-path 1.3s cubic-bezier(.65,.05,.36,1) .12s, transform 1.6s cubic-bezier(.2,.8,.3,1) .12s}
.arco.rv-l.in img, .arco.rv-r.in img{clip-path:inset(0 0 0 0);transform:scale(1)}
/* as filas de fotografias abrem uma a uma */
.trio-fotos>figure img, .hospedes>figure img, .equipa-fotos>figure img{clip-path:inset(100% 0 0 0);
  transition:clip-path 1.1s cubic-bezier(.65,.05,.36,1), transform .8s cubic-bezier(.2,.8,.3,1)}
.trio-fotos.in>figure img, .hospedes.in>figure img, .equipa-fotos.in>figure img{clip-path:inset(0 0 0 0)}
.trio-fotos.in>figure:nth-child(2) img, .hospedes.in>figure:nth-child(2) img, .equipa-fotos.in>figure:nth-child(2) img{transition-delay:.14s}
.trio-fotos.in>figure:nth-child(3) img, .hospedes.in>figure:nth-child(3) img, .equipa-fotos.in>figure:nth-child(3) img{transition-delay:.28s}
.hospedes.in>figure:nth-child(4) img, .equipa-fotos.in>figure:nth-child(4) img{transition-delay:.42s}
.hospedes.in>figure:nth-child(5) img{transition-delay:.56s}
.hospedes.in>figure:nth-child(6) img{transition-delay:.7s}

/* ---- 3. A FOTOGRAFIA DA ENTRADA RESPIRA ---------------------------------
   Depois de se abrir, um zoom de 6% que leva dezoito segundos a ir e outros
   dezoito a voltar. Nao se ve a mexer; ve-se que esta viva. */
@keyframes respira{from{transform:scale(1)}to{transform:scale(1.06)}}
.svc-hero-foto img{animation:arcoAbre 1.5s cubic-bezier(.65,.05,.36,1) .15s both, respira 18s ease-in-out 1.7s infinite alternate}

/* ---- 2. AS LEGENDAS DAO UM PULINHO --------------------------------------
   Entram depois de a fotografia abrir, com uma mola: e a unica coisa que
   salta, e por isso le-se como "olha aqui". */
@keyframes legendaPula{0%{opacity:0;transform:translateY(10px) scale(.8)}60%{opacity:1;transform:translateY(-3px) scale(1.04)}100%{opacity:1;transform:none}}
.svc-hero-foto .legenda{animation:legendaPula .7s cubic-bezier(.3,1.4,.5,1) 1.45s both}
.trio-fotos .legenda{opacity:0;transform:translateY(10px) scale(.8);
  transition:opacity .4s, transform .6s cubic-bezier(.3,1.6,.5,1)}
.trio-fotos.in .legenda{opacity:1;transform:none;transition-delay:.9s}
.trio-fotos.in figure:nth-child(2) .legenda{transition-delay:1.05s}
.trio-fotos.in figure:nth-child(3) .legenda{transition-delay:1.2s}

/* ---- 6. AS PAGINAS MUDAM COM UMA TRANSICAO ------------------------------
   Em vez de piscar a branco entre paginas, desvanece. Os browsers que ainda
   nao conhecem a regra ignoram-na e mudam como sempre. */
@view-transition{navigation:auto}
::view-transition-old(root), ::view-transition-new(root){animation-duration:.32s}

/* ---- 5. A FESTA DA RESERVA (as pecas sao criadas por js/reservas.js) ---- */
.festa{position:absolute;left:50%;top:38%;width:0;height:0;pointer-events:none;z-index:5}
.festa i{position:absolute;left:-1.1rem;top:-1.1rem;width:2.2rem;height:2.2rem;
  animation:festaVoa 1.7s cubic-bezier(.15,.75,.3,1) var(--atraso,0s) forwards;opacity:0}
.festa svg{width:100%;height:100%;display:block}
@keyframes festaVoa{
  0%{opacity:0;transform:translate(0,0) scale(.3) rotate(0)}
  12%{opacity:1}
  70%{opacity:1}
  100%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(var(--esc,1)) rotate(var(--rot,0deg))}}

@media(prefers-reduced-motion:reduce){
  .strip-pista{animation:none;width:auto}
  .strip-grupo{flex-wrap:wrap;justify-content:center;row-gap:.6rem}
  .strip-grupo[aria-hidden]{display:none}
  .svc-hero-foto img, .svc-hero-foto .legenda{animation:none}
  .arco.rv-l img, .arco.rv-r img, .trio-fotos>figure img, .hospedes>figure img, .equipa-fotos>figure img{clip-path:none;transform:none;transition:none}
  .trio-fotos .legenda{opacity:1;transform:none;transition:none}
  .festa{display:none}
  @view-transition{navigation:none}
}

/* a festa pousa no meio do ecra de confirmacao */
#resvFeito{position:relative}

/* painel: quartos presos no dia escolhido (03/10/2026) */
.p-quartos{display:flex;flex-wrap:wrap;gap:.4rem .9rem;margin:.5rem 0 .2rem;font-size:.86rem;color:var(--soft)}
.p-quartos b{color:var(--ink);font-size:1rem}


/* ===========================================================================
   A VOLTA DAS NOTAS DA MAFALDA  (03/10/2026)
   ---------------------------------------------------------------------------
   Vai tudo no fim da folha, por cima do que havia: as regras de cima ficam
   como estavam e estas ganham por virem depois. Cada bloco diz a nota de onde
   saiu.
   ======================================================================== */

/* ---- "vermelho mais tijolo" ---------------------------------------------
   O barro (#C0603A) puxava para o laranja. O tijolo e mais vermelho e mais
   cheio, e aguenta texto branco por cima (5,5:1) — por isso os botoes cheios
   ja nao precisam do tom escuro para passar. */
:root{
  --red:#B5452C; --red-dk:#8E3220; --red-lt:#FAE6DE; --red-mid:#6B2416;
  /* "fundo verde assim relva, musgo, natural": a banda escura deixa de ser
     quase preta e passa a musgo a serio */
  --night:#1F3A25; --musgo:#2F5A34; --relva:#6FA34F; --relva-lt:#E6F1DC;
  /* o azul-gelo do diamante do logotipo, que o site nunca tinha usado */
  --gelo:#5BB8E0; --gelo-lt:#E3F4FC;

  /* UMA COR POR SERVICO, a que a pagina de cada um veste:
       Pet Hotel = tijolo · Creche = amarelo · Banhos = azul · Pet Taxi = verde
     --sN e o tom que aguenta texto (botoes, titulos), --sN-lt o fundo claro,
     --sN-viva a mancha de cor cheia (faixas, autocolantes, ondas). */
  --s1:#9A3A22; --s1-lt:#FBE7DF; --s1-viva:#C24E33;
  --s2:#8A5A00; --s2-lt:#FFF2C2; --s2-viva:#F5B82E;
  --s3:#1A6FA3; --s3-lt:#DDF0FB; --s3-viva:#3FA4DD;
  --s4:#2C7A3A; --s4-lt:#E1F3DF; --s4-viva:#5DAE4B;
}
.svc-s1{--viva:var(--s1-viva)} .svc-s2{--viva:var(--s2-viva)}
.svc-s3{--viva:var(--s3-viva)} .svc-s4{--viva:var(--s4-viva)}
.svc-casa{--acc:var(--musgo);--acc-lt:var(--relva-lt);--svc:var(--musgo);--viva:var(--relva)}

/* ---- "a cor de fundo e central desses servicos, mas faz variar e
   reintroduz branco" --------------------------------------------------------
   Nas paginas de servico o papel passa a branco, e as seccoes alternam entre
   o branco e o tom claro do servico. Nunca um pano so de uma cor. */
body:has(main.svc){background:#FFF}
.svc section{background:#FFF}
.svc section[style*="--cream"], .svc section[style*="--acc-lt"],
.svc section[style*="--s2-lt"]{background:var(--acc-lt)!important}
.svc section[style*="--paper"]{background:#FFF!important}
.svc-hero{background:
  radial-gradient(ellipse 55% 70% at 92% 8%, color-mix(in srgb, var(--viva) 34%, transparent), transparent 70%),
  radial-gradient(ellipse 60% 60% at 0% 100%, rgba(255,255,255,.9), transparent 70%),
  var(--acc-lt)}
.svc .cta{background:var(--acc-lt)}
/* a faixa de cor cheia, para a pagina ter um momento forte */
.faixa-svc{background:var(--viva);color:#FFF;padding-block:clamp(2.2rem,4vw,3.2rem);text-align:center;position:relative;overflow:hidden}
.svc-s2 .faixa-svc{color:var(--ink)}
.faixa-svc p{font-family:var(--f-display);font-weight:700;font-size:clamp(1.3rem,2.6vw,2rem);line-height:1.25;max-width:40ch;margin:0 auto}
.faixa-svc small{display:block;font-family:var(--f-body);font-weight:600;font-size:.9rem;margin-top:.6rem;opacity:.85}

/* a creche e amarela: um botao amarelo com letra branca nao se le. O botao
   cheio leva a tinta por cima (8,8:1) */
.svc-s2 .btn.fill{background:var(--s2-viva);border-color:var(--s2-viva);color:var(--ink)}
.svc-s2 .btn.fill:hover{background:#E9A913;border-color:#E9A913;color:var(--ink);filter:none}
.svc-s2 .btn.fill.coracoes .corac{fill:var(--ink)}

/* os cartoes da entrada vestem a cor do servico, e o botao "Ver..." tambem */
.cards-foto .card:nth-child(1){--viva:var(--s1-viva)}
.cards-foto .card:nth-child(2){--viva:var(--s2-viva)}
.cards-foto .card:nth-child(3){--viva:var(--s3-viva)}
.cards-foto .card:nth-child(4){--viva:var(--s4-viva)}
.cards-foto .card{border-top:6px solid var(--viva)}
.cards-foto .card .btn{border-color:var(--accdk);color:var(--accdk)}
.cards-foto .card .btn:hover{background:var(--accdk);color:#FFF}
.cards-foto .card .desde b{color:var(--accdk)}

/* ---- "tirar qualquer tipo de paginacao" ----------------------------------
   Os 01, 02, 03 dos cartoes e os numeros dos passos saem. No lugar do numero
   dos passos fica um diamante — marca o ritmo sem contar nada. */
.card .num{display:none}
.step::before{content:"";counter-increment:none;
  background:var(--gelo-lt) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.5 3.5h11L22 9.2 12 21 2 9.2z' fill='%235BB8E0'/%3E%3Cpath d='M2 9.2h20M6.5 3.5l3 5.7 2.5-5.7 2.5 5.7 3-5.7' fill='none' stroke='%23fff' stroke-width='1.2'/%3E%3C/svg%3E") center/58% no-repeat}
.steps-4 .step::before, .svc .steps-4 .step::before{background-color:var(--gelo-lt)}

/* ---- "fotos grandes" -------------------------------------------------------
   A coluna da fotografia ganha largura, as fotografias ganham altura. */
.duo{grid-template-columns:.92fr 1.08fr}
.duo.inv{grid-template-columns:1.08fr .92fr}
.foto-deco.alta{aspect-ratio:4/5}
.cf-foto{aspect-ratio:1/1}
.momentos figure{aspect-ratio:3/4}
.momentos figure:first-child{aspect-ratio:auto;grid-row:span 2}
.momentos{grid-template-columns:1.3fr 1fr 1fr}
.momentos figure:first-child{grid-column:span 1}
.trio-fotos figure{aspect-ratio:2/3}
.svc-hero-foto{max-height:40rem}
.espaco figure{aspect-ratio:1/1}
@media(max-width:900px){
  .duo, .duo.inv{grid-template-columns:1fr}
  .momentos{grid-template-columns:1fr 1fr}
  .momentos figure:first-child{grid-column:span 2;grid-row:auto;aspect-ratio:16/10}
}
@media(max-width:520px){
  .momentos{grid-template-columns:1fr}
  .momentos figure:first-child{grid-column:span 1}
}

/* ---- "o espaco: duas fotos, em coluna, a variar" ---------------------------
   Duas fotografias desencontradas: a alta em cima a esquerda, a outra mais
   abaixo a direita, cada uma a trocar devagar entre duas imagens. */
.duas-fotos{display:grid;grid-template-columns:1fr 1fr;gap:clamp(.8rem,1.6vw,1.2rem);align-items:start}
.duas-fotos figure{margin:0;position:relative;overflow:hidden;border-radius:var(--r-xl);
  box-shadow:var(--shadow-lg);aspect-ratio:3/4;background:var(--sand)}
.duas-fotos figure:nth-child(2){margin-top:clamp(2.5rem,7vw,5.5rem);border-radius:var(--arco)}
.duas-fotos img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.duas-fotos img+img{animation:trocaFoto 12s ease-in-out infinite}
.duas-fotos figure:nth-child(2) img+img{animation-delay:-6s}
@keyframes trocaFoto{0%,40%{opacity:0}50%,90%{opacity:1}100%{opacity:0}}
.duas-fotos .pastilha{z-index:2}

/* ---- "sequencias de fotos" -------------------------------------------------
   Uma fila de fotografias que corre sozinha (a copia e feita pelo js) e
   para quando se passa o rato, para se poder olhar. */
.sequencia{overflow:hidden;padding-block:clamp(1.5rem,3vw,2.4rem);position:relative;
  -webkit-mask:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
          mask:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.seq-pista{display:flex;gap:clamp(.8rem,1.5vw,1.2rem);width:max-content;animation:faixaCorre 70s linear infinite}
.sequencia:hover .seq-pista{animation-play-state:paused}
.seq-pista figure{margin:0;flex:0 0 auto;height:clamp(230px,30vw,380px);aspect-ratio:3/4;overflow:hidden;
  border-radius:var(--r-lg);box-shadow:0 18px 40px -26px rgba(27,38,32,.55);position:relative}
.seq-pista figure:nth-child(3n+2){aspect-ratio:4/5;border-radius:var(--arco)}
.seq-pista figure:nth-child(4n){aspect-ratio:1/1;margin-top:clamp(1.2rem,3vw,2.4rem)}
.seq-pista img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.8,.3,1)}
.seq-pista figure:hover img{transform:scale(1.06)}
.seq-cab{text-align:center}
.seq-cab .lead{margin-inline:auto}

/* ---- "duas patinhas na identidade" ---------------------------------------- */
.duas-patas{display:inline-flex;gap:.08em;margin-left:.22em;vertical-align:.55em;font-style:normal}
.duas-patas svg{width:.36em;height:.36em;fill:var(--red)}
.duas-patas svg+svg{fill:var(--gelo);transform:translateY(-.32em) rotate(18deg)}
.logo b .duas-patas svg{width:.62em;height:.62em}
.cover-in .mark .a .duas-patas{vertical-align:.9em}

/* (o cursor de patinha saiu a 03/10/2026: "acho que ja e demasiado") */

/* ---- "mudar a animacao de clique" ----------------------------------------- */
.clique-camada{position:fixed;inset:0;pointer-events:none;z-index:9999;overflow:hidden}
.clique{position:absolute;width:0;height:0}
.clique i{position:absolute;left:-7px;top:-7px;width:14px;height:14px;
  animation:cliqueVoa .85s cubic-bezier(.15,.75,.3,1) forwards}
.clique i:first-child{left:-9px;top:-9px;width:18px;height:18px}
.clique svg{width:100%;height:100%;display:block}
@keyframes cliqueVoa{
  0%{opacity:0;transform:translate(0,0) scale(.3) rotate(0)}
  15%{opacity:1}
  100%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(1) rotate(var(--r,0deg))}}

/* ---- os diamantes dos botoes: azul-gelo em vez do coracao tijolo --------- */
.corac.diam{fill:var(--gelo);width:18px;height:18px}
.btn.fill.coracoes .corac.diam{fill:var(--gelo)}
.btn.fill.coracoes:hover .corac.diam{fill:#8FD3F0}

/* ---- "stickers mexem-se" ---------------------------------------------------
   Os autocolantes desenhados ja existiam (casota, cao, osso, tigela, bola,
   pata, cama) e voltaram, com o diamante. Agora nao ficam so a flutuar:
   balancam de um lado para o outro, cada um ao seu ritmo. */
@keyframes stkbalanca{0%,100%{transform:translateY(0) rotate(0)}25%{transform:translateY(-10px) rotate(4deg)}
  75%{transform:translateY(-4px) rotate(-4deg)}}
.stk-f{animation:stkbalanca var(--stk-dur,6s) ease-in-out var(--stk-delay,0s) infinite}
.stk .cut{fill:#FFF;stroke:#FFF}
.svc .stk{z-index:2}
@media(max-width:900px){.stk{display:block;--stk-w:96px!important;opacity:.95}}
@media(max-width:600px){.stk{display:none}}

/* ---- a banda verde de musgo: relva, nao noite ----------------------------- */
.rec{background:radial-gradient(ellipse 85% 95% at 50% 2%,#2F5A34,transparent 64%),
  radial-gradient(ellipse 60% 50% at 10% 100%,rgba(111,163,79,.35),transparent 70%),var(--night)}
.strip{background:var(--musgo)}
.strip-corre .strip-grupo span::before{background:#9FD27C}

/* ---- o rodape: WhatsApp e Instagram com o seu desenho -------------------- */
.fredes{gap:.6rem}
.fredes a{display:inline-flex;align-items:center;gap:.45rem;padding:.5rem .95rem;border-radius:var(--r-pill);
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);font-weight:600;font-size:.92rem;transition:.25s}
.fredes a:hover{background:rgba(255,255,255,.18);transform:translateY(-2px)}
.fredes svg{width:18px;height:18px;fill:currentColor;flex:0 0 18px}
.fredes a.wa{background:#25D366;border-color:#25D366;color:#0B3B1E}
.fredes a.wa:hover{background:#3BE07A}

/* ---- "fundo de reservas" ---------------------------------------------------
   A pagina de reservas estava num creme liso. Leva agora o verde da relva por
   baixo, com patas e diamantes, e os cartoes do formulario ficam brancos por
   cima — a parte de escrever continua calma. */
body:has(.resv-main){background:
  radial-gradient(ellipse 70% 50% at 100% 0%, rgba(91,184,224,.18), transparent 70%),
  radial-gradient(ellipse 70% 60% at 0% 100%, rgba(111,163,79,.22), transparent 70%),
  var(--relva-lt)}

/* ---- textos centrados em A Quinta ----------------------------------------- */
.svc-casa section:not(.svc-hero) .wrap>.manu, .svc-casa section:not(.svc-hero) .wrap>.eyebrow,
.svc-casa section:not(.svc-hero) .wrap>h2, .svc-casa section:not(.svc-hero) .wrap>.lead{text-align:center;margin-inline:auto}
.svc-casa .svc-hero-txt{text-align:center}
.svc-casa .svc-hero-txt .svc-cta, .svc-casa .svc-hero-txt .svc-factos{justify-content:center}
.svc-casa .svc-hero-txt .lead{margin-inline:auto}

/* os cavalos: tres cartoes com fotografia grande */
.cavalos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,2vw,1.6rem);margin-top:clamp(2rem,3.5vw,3rem)}
.cavalo{background:#FFF;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow);text-align:center;
  transition:.35s cubic-bezier(.2,.8,.3,1)}
.cavalo:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}
.cavalo figure{margin:0;aspect-ratio:4/5;overflow:hidden}
.cavalo img{width:100%;height:100%;object-fit:cover}
.cavalo h3{font-size:1.25rem;margin:1.1rem 1.2rem .3rem;color:var(--musgo)}
.cavalo p{margin:0 1.2rem 1.4rem;font-size:.94rem;color:var(--soft)}
@media(max-width:860px){.cavalos{grid-template-columns:1fr}.cavalo figure{aspect-ratio:16/10}}

/* ---- caixas de texto novas (medicacao, acordo da creche, visitas) -------- */
.caixa-svc{background:#FFF;border:2px solid color-mix(in srgb, var(--acc) 25%, transparent);border-radius:var(--r-lg);
  padding:clamp(1.3rem,2.4vw,1.9rem);box-shadow:0 20px 40px -32px rgba(27,38,32,.5)}
.caixa-svc h3{color:var(--acc);font-size:1.25rem;margin-bottom:.5rem}
.caixa-svc p{color:var(--graph);font-size:.97rem}
.caixa-svc ul{margin:.6rem 0 0 1.1rem;color:var(--graph);font-size:.96rem;display:grid;gap:.35rem}
.caixas-2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1rem,2vw,1.6rem);margin-top:clamp(1.8rem,3vw,2.6rem)}
@media(max-width:760px){.caixas-2{grid-template-columns:1fr}}
.aviso-forte{display:flex;gap:.9rem;align-items:flex-start;background:var(--viva);color:#FFF;border-radius:var(--r-lg);
  padding:1.1rem 1.4rem;margin-top:clamp(1.6rem,3vw,2.2rem);font-weight:600}
.svc-s2 .aviso-forte{color:var(--ink)}
.aviso-forte svg{flex:0 0 28px;width:28px;height:28px;fill:currentColor}

/* ---- "podes vir visitar" -------------------------------------------------- */
.visita{display:flex;align-items:center;justify-content:space-between;gap:1.2rem;flex-wrap:wrap;
  background:var(--gelo-lt);border:2px dashed var(--gelo);border-radius:var(--r-lg);padding:1.2rem 1.5rem;
  margin-top:clamp(1.8rem,3vw,2.6rem)}
.visita p{margin:0;font-family:var(--f-display);font-weight:700;font-size:clamp(1.1rem,2vw,1.35rem);color:var(--ink)}
.visita p small{display:block;font-family:var(--f-body);font-weight:500;font-size:.9rem;color:var(--graph)}

@media(prefers-reduced-motion:reduce){
  .seq-pista{animation:none;width:auto;overflow-x:auto}
  .sequencia{overflow-x:auto;-webkit-mask:none;mask:none}
  .duas-fotos img+img{animation:none;opacity:0}
  .clique-camada{display:none}
  .stk-f{animation:none}
}

/* A Quinta: ceu e relva a alternar ("azul claro ou ceu", "fazer variar as
   tonalidades"). O ceu e o fundo claro da pagina; a relva entra nos cavalos
   e no convite final. */
.svc-casa{--acc-lt:#E4F2FA}
.svc-casa .svc-hero{background:
  radial-gradient(ellipse 70% 60% at 90% 0%, rgba(91,184,224,.35), transparent 70%),
  linear-gradient(180deg,#E4F2FA 0%, #EEF6EA 100%)}
.svc-casa section[style*="--relva-lt"]{background:var(--relva-lt)!important}
.svc-casa .cta{text-align:center}
.svc-casa .cta .lead{margin-inline:auto}
.svc-casa .espaco{text-align:center}

/* as duas tabelas de banhos sao do mesmo servico: as duas azuis (a de pelo
   comprido num azul mais fundo), e nao uma delas verde como o taxi */
.tab.c4 .tab-hd{background:#155C88}
/* a creche e amarela: a mensalidade em destaque e amarela com tinta */
.mens.destaque{background:var(--s2-viva);border-color:var(--s2-viva)}
.mens.destaque b, .mens.destaque em{color:var(--ink)}
.mens.destaque span, .mens.destaque small{color:rgba(27,38,32,.75)}
.tab.c2 .tab-hd{background:var(--s2-viva)}
.tab.c2 .tab-hd h2, .tab.c2 .tab-hd p{color:var(--ink)}

/* ---- correccoes da revisao de 03/10 ------------------------------------- */
/* 1. o diamante dos passos: o .steps-4 .step::before de cima repunha o fundo
      todo (shorthand) e o diamante desaparecia */
.step::before, .steps-4 .step::before, .svc .steps-4 .step::before{
  background:var(--gelo-lt) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.5 3.5h11L22 9.2 12 21 2 9.2z' fill='%235BB8E0'/%3E%3Cpath d='M2 9.2h20M6.5 3.5l3 5.7 2.5-5.7 2.5 5.7 3-5.7' fill='none' stroke='%23fff' stroke-width='1.2'/%3E%3C/svg%3E") center/58% no-repeat}
/* 2. a entrada das paginas de servico ficava branca: o ".svc section" ganhava
      ao ".svc-hero" por especificidade */
.svc section.svc-hero{background:
  radial-gradient(ellipse 55% 70% at 92% 8%, color-mix(in srgb, var(--viva) 34%, transparent), transparent 70%),
  radial-gradient(ellipse 60% 60% at 0% 100%, rgba(255,255,255,.9), transparent 70%),
  var(--acc-lt)}
.svc-casa section.svc-hero{background:
  radial-gradient(ellipse 70% 60% at 90% 0%, rgba(91,184,224,.35), transparent 70%),
  linear-gradient(180deg,#E4F2FA 0%, #EEF6EA 100%)}
/* 3. os cartoes das razoes vestem o tom claro do servico */
.svc .razoes .card{background:var(--acc-lt)}
.svc section[style*="--acc-lt"] .razoes .card, .svc section[style*="--cream"] .razoes .card{background:#FFF}
/* 4. a pagina em que se esta, no menu: letra branca sobre o tijolo */
#nav a.on, header nav a.on{background:var(--red-dk);color:#FFF}
/* 5. as patinhas da capa coladas ao "Hotel", e nao a boiar por cima */
.cover-in .mark .a .duas-patas{vertical-align:.45em}
/* 6. os botoes de contorno das paginas de servico levam a cor do servico */
.svc .btn:not(.fill){border-color:var(--acc);color:var(--acc)}
.svc .btn:not(.fill):hover{background:var(--acc);color:#FFF;box-shadow:0 12px 22px -12px var(--acc)}
/* 7. os campos novos do simulador (raca, codigo postal) com a cara dos outros */
.sim input[type=text]{font-family:var(--f-body);font-size:1rem;padding:.75rem .85rem;
  border:2px solid var(--line);border-radius:var(--r-sm);background:#FFF;color:var(--ink);width:100%}
/* 8. no telemovel, "Extra grande — mais de 40 kg" alargava a tabela 8 px
      para fora do ecra: a grelha deixa encolher e a etiqueta parte */
.tabelas>*{min-width:0}
.tab table{width:100%}
.tab th{overflow-wrap:anywhere}
@media(max-width:520px){.tab th, .tab td{padding-inline:.7rem}}
/* (a causa era a grelha: minmax(360px,...) num ecra com 332 px uteis) */
.tabelas{grid-template-columns:repeat(auto-fit,minmax(min(360px,100%),1fr))}


/* ===========================================================================
   SEGUNDA VOLTA DAS NOTAS  (03/10/2026, tarde)
   ======================================================================== */

/* ---- "diminui o espaco entre as diferentes partes" ------------------------ */
section{padding-block:clamp(2.6rem,5.4vw,4.6rem)}
.svc-hero{padding-bottom:clamp(2rem,4vw,3rem)}

/* ---- "o rodape e o 'Ele nao conta os dias' como estavam antes" ------------
   As duas pecas voltam aos tons de antes da volta das notas: o coral e o
   verde quase preto. Redefinem-se as variaveis so ali dentro, por isso
   fica exactamente como estava, botoes incluidos. */
.fecho, body>footer{--red:#C0603A;--red-dk:#963F20;--red-lt:#F7E7DD;--red-mid:#7A3118;--night:#131C17}
body>footer{background:#131C17}
/* as redes no rodape: os mesmos links simples de antes, agora com icone */
.fredes{gap:1.1rem}
.fredes a, .fredes a.wa{display:inline-flex;align-items:center;gap:.4rem;padding:0;border:0;border-radius:0;
  background:none;color:inherit;font-weight:inherit;font-size:inherit;transform:none}
.fredes a:hover, .fredes a.wa:hover{background:none;transform:none;text-decoration:underline}
.fredes svg{width:16px;height:16px;flex:0 0 16px}

/* ---- AS DECORACOES DO INSTAGRAM (js: buildDecos) ------------------------- */
.com-deco{overflow:hidden;--deco:var(--red)}
.deco{position:absolute;pointer-events:none;z-index:0}
/* meio-tom: pontos redondos que se apagam a caminho do centro */
.deco.pontos{width:clamp(170px,24vw,340px);aspect-ratio:1;
  background:radial-gradient(circle,var(--deco) 0 38%,transparent 41%) 0 0/18px 18px}
.deco.pontos.tl{top:0;left:0;-webkit-mask:radial-gradient(circle at 0 0,#000 0 25%,transparent 72%);mask:radial-gradient(circle at 0 0,#000 0 25%,transparent 72%)}
.deco.pontos.tr{top:0;right:0;-webkit-mask:radial-gradient(circle at 100% 0,#000 0 25%,transparent 72%);mask:radial-gradient(circle at 100% 0,#000 0 25%,transparent 72%)}
.deco.pontos.bl{bottom:0;left:0;-webkit-mask:radial-gradient(circle at 0 100%,#000 0 25%,transparent 72%);mask:radial-gradient(circle at 0 100%,#000 0 25%,transparent 72%)}
.deco.pontos.br{bottom:0;right:0;-webkit-mask:radial-gradient(circle at 100% 100%,#000 0 25%,transparent 72%);mask:radial-gradient(circle at 100% 100%,#000 0 25%,transparent 72%)}
/* a pata enorme, cortada pela esquina */
.deco.pata{width:clamp(150px,19vw,270px);aspect-ratio:1}
.deco.pata svg{width:100%;height:100%;fill:var(--red)}
.deco.pata.escura svg{fill:var(--ink)}
.deco.pata.tl{top:-8%;left:-5%;transform:rotate(150deg)}
.deco.pata.tr{top:-8%;right:-5%;transform:rotate(-150deg)}
.deco.pata.bl{bottom:-9%;left:-5%;transform:rotate(30deg)}
.deco.pata.br{bottom:-9%;right:-5%;transform:rotate(-30deg)}
/* o cao vermelho recortado, a espreitar do canto (do lado direito vira-se
   para dentro da pagina) */
.deco.cao{width:clamp(150px,17vw,250px);z-index:2;filter:drop-shadow(0 14px 18px rgba(27,38,32,.28))}
.deco.cao svg{width:100%;height:auto;display:block;overflow:visible}
.deco.cao .cao-corpo{fill:var(--red)}
.deco.cao .cao-orelha{fill:var(--red-dk)}
.deco.cao.tl{top:-2%;left:-2.5%;transform:rotate(-8deg)}
.deco.cao.bl{bottom:-3%;left:-2.5%;transform:rotate(4deg)}
.deco.cao.tr{top:-2%;right:-2.5%;transform:scaleX(-1) rotate(-8deg)}
.deco.cao.br{bottom:-3%;right:-2.5%;transform:scaleX(-1) rotate(4deg)}
.deco.cao .cao-corpo, .deco.cao .cao-orelha{transform-origin:50% 100%}
@media(hover:hover){.com-deco:hover .deco.cao svg{animation:caoAbana 1.2s ease-in-out}}
@keyframes caoAbana{0%,100%{transform:rotate(0)}30%{transform:rotate(-4deg)}60%{transform:rotate(3deg)}}
/* as faixas curvas, vermelha e preta */
.deco.onda{left:0;right:0;height:clamp(46px,7vw,96px)}
.deco.onda svg{width:100%;height:100%;display:block}
.deco.onda .o-verm{fill:var(--red)}
.deco.onda .o-preta{fill:var(--ink)}
.deco.onda.b{bottom:0}
.deco.onda.t{top:0;transform:scale(-1,-1)}
/* a fila de pontos que atravessa a seccao, e anda */
.deco.linha{left:0;right:0;height:clamp(60px,9vw,120px);top:14%}
.deco.linha.b{top:auto;bottom:10%}
.deco.linha.m{top:46%}
.deco.linha svg{width:100%;height:100%;display:block;overflow:visible}
.deco.linha path{stroke:var(--deco);stroke-width:9;stroke-linecap:round;stroke-dasharray:0 26;
  opacity:.55;animation:pontosAndam 3.5s linear infinite}
@keyframes pontosAndam{to{stroke-dashoffset:-26}}
/* o conteudo fica sempre por cima */
.com-deco>.wrap{position:relative;z-index:1}
@media(max-width:700px){
  .deco.pontos{width:150px}
  .deco.pata{width:120px}
  .deco.cao{width:110px}
  .deco.linha{opacity:.7}
}
@media(prefers-reduced-motion:reduce){.deco.linha path{animation:none}.com-deco:hover .deco.cao svg{animation:none}}

/* cor dos pontos e das linhas em cada pagina */
.svc-s1 .com-deco{--deco:var(--s1-viva)}
.svc-s2 .com-deco{--deco:var(--ink)}
.svc-s3 .com-deco{--deco:#0A4A74}
.svc-s4 .com-deco{--deco:var(--s4-viva)}
.svc-casa .com-deco{--deco:var(--relva)}

/* ---- CRECHE: amarelo a serio, sem branco -------------------------------- */
.svc-s2{--acc:#6E4700;--svc:#6E4700}
body:has(main.svc-s2){background:#FFE68F}
.svc-s2 section.svc-hero{background:
  radial-gradient(ellipse 60% 70% at 92% 6%, rgba(255,255,255,.45), transparent 70%),
  linear-gradient(160deg,#FFD23F 0%,#FFE68F 100%)}
.svc-s2 #porque{background:#FFF1BF}
.svc-s2 #creche-detalhe{background:#FFD23F!important}
.svc-s2 #acordo{background:#FFE68F}
.svc-s2 #mensalidades{background:#F5B82E!important}
.svc-s2 #perguntas-creche{background:#FFF1BF}
.svc-s2 section.cta{background:#FFD23F!important}
.svc-s2 .wave path{fill:#FFD23F}
.svc-s2 .wave{background:#FFF1BF!important}
.svc-s2 .razoes .card, .svc-s2 .caixa-svc, .svc-s2 .mens, .svc-s2 .cd-passo, .svc-s2 .exig{background:#FFF}
.svc-s2 .faq details{background:#FFF}
/* preto e amarelo: o botao cheio passa a tinta, com letra amarela */
.svc-s2 .btn.fill{background:var(--ink);border-color:var(--ink);color:#FFD23F}
.svc-s2 .btn.fill:hover{background:#000;border-color:#000;color:#FFE68F}
.svc-s2 .btn.fill.coracoes .corac{fill:#FFD23F}
.svc-s2 .btn:not(.fill){border-color:var(--ink);color:var(--ink)}
.svc-s2 .btn:not(.fill):hover{background:var(--ink);color:#FFD23F}
.svc-s2 .aviso-forte{background:var(--ink);color:#FFD23F}
.svc-s2 #mensalidades .faixa-svc{background:var(--ink);color:#FFD23F}
.svc-s2 .mens.destaque{background:var(--ink);border-color:var(--ink)}
.svc-s2 .mens.destaque b, .svc-s2 .mens.destaque em{color:#FFD23F}
.svc-s2 .mens.destaque span, .svc-s2 .mens.destaque small{color:rgba(255,230,143,.85)}
.svc-s2 .mnote{background:rgba(255,255,255,.75)}

/* ---- BANHOS: azul a serio, sem branco ----------------------------------- */
.svc-s3{--acc:#0A4A74;--svc:#0A4A74}
.svc-s3 h1 em, .svc-s3 h2 em, .svc-s3 .eyebrow{color:#083B5C}
body:has(main.svc-s3){background:#B7E2FA}
.svc-s3 section.svc-hero{background:
  radial-gradient(ellipse 60% 70% at 92% 6%, rgba(255,255,255,.45), transparent 70%),
  linear-gradient(160deg,#2B76AF 0%,#2A73AA 100%)}
.svc-s3 #porque{background:#D6EFFD}
.svc-s3 .faixa-svc{background:#0A4A74}
.svc-s3 #descubra{background:#1F6CA3!important}
.svc-s3 #precos{background:#B7E2FA}
.svc-s3 #perguntas-banhos{background:#D6EFFD!important}
.svc-s3 section.cta{background:#2B76AF!important}
.svc-s3 .razoes .card, .svc-s3 .faq details{background:#FFF}
.svc-s3 .btn.fill{background:#0A4A74;border-color:#0A4A74;color:#FFF}
.svc-s3 .btn.fill:hover{background:#083B5C;border-color:#083B5C}
.svc-s3 .btn:not(.fill){border-color:#0A4A74;color:#0A4A74}
.svc-s3 .btn:not(.fill):hover{background:#0A4A74;color:#FFF}
.svc-s3 .tab.c3 .tab-hd{background:#0A4A74}
.svc-s3 .tab.c4 .tab-hd{background:#083B5C}

/* ---- "nao adiciones fotos, so muda o formato de algumas" ----------------
   As fotografias em arco ficam como estao. As outras deixam de ser todas o
   mesmo rectangulo de cantos redondos: mancha, folha, diamante lapidado,
   polaroide, ovo. Nunca duas iguais lado a lado. */
.forma-mancha{border-radius:62% 38% 46% 54% / 44% 50% 50% 56%!important}
.forma-folha{border-radius:120px 24px 120px 24px!important}
.forma-folha-inv{border-radius:24px 120px 24px 120px!important}
.forma-diamante{border-radius:0!important;clip-path:polygon(16% 0,84% 0,100% 16%,100% 84%,84% 100%,16% 100%,0 84%,0 16%)}
.forma-ovo{border-radius:50% 50% 46% 46% / 58% 58% 42% 42%!important}
.forma-polaroide{border-radius:6px!important;background:#FFF!important;padding:10px 10px 34px!important;
  transform:rotate(-2.5deg);box-shadow:0 22px 40px -22px rgba(27,38,32,.55)!important}
.forma-polaroide img{border-radius:3px}
/* trio de fotografias: o do meio e arco e fica; os dos lados mudam */
.trio-fotos figure:nth-child(1){border-radius:62% 38% 46% 54% / 44% 50% 50% 56%}
.trio-fotos figure:nth-child(3){border-radius:0;clip-path:polygon(16% 0,84% 0,100% 16%,100% 84%,84% 100%,16% 100%,0 84%,0 16%)}
/* os momentos do dia, cada um com a sua forma */
.momentos figure:nth-child(1){border-radius:150px 30px 150px 30px}
.momentos figure:nth-child(2){border-radius:62% 38% 46% 54% / 44% 50% 50% 56%}
.momentos figure:nth-child(3){border-radius:0;clip-path:polygon(16% 0,84% 0,100% 16%,100% 84%,84% 100%,16% 100%,0 84%,0 16%)}
.momentos figure:nth-child(4){border-radius:50% 50% 46% 46% / 58% 58% 42% 42%}
.momentos figure:nth-child(5){border-radius:30px 150px 30px 150px}
/* as fotografias dos cartoes de servico: base em onda */
.cf-foto{border-radius:0 0 50% 50% / 0 0 16% 16%}
/* a do espaco, a do convite e a da creche na entrada */
.duas-fotos figure:nth-child(1){border-radius:62% 38% 46% 54% / 44% 50% 50% 56%}
#creche-home .foto-deco{border-radius:150px 34px 150px 34px}
.cta-final .foto-deco{border-radius:6px;background:#FFF;padding:12px 12px 40px;transform:rotate(-2deg)}
.cta-final .foto-deco img{border-radius:3px}
/* A Quinta: espacos, hospedes e equipa a variar */
.espaco:nth-child(3n+1) figure{border-radius:0 0 50% 50% / 0 0 14% 14%}
.espaco:nth-child(3n+2) figure{clip-path:polygon(0 0,100% 0,100% 86%,84% 100%,16% 100%,0 86%)}
.espaco:nth-child(3n) figure{border-radius:0 0 40% 0}
.hospedes figure:not(.arco-h):nth-child(1){border-radius:62% 38% 46% 54% / 44% 50% 50% 56%}
.hospedes figure:not(.arco-h):nth-child(3){border-radius:150px 30px 150px 30px}
.hospedes figure:not(.arco-h):nth-child(4){border-radius:0;clip-path:polygon(16% 0,84% 0,100% 16%,100% 84%,84% 100%,16% 100%,0 84%,0 16%)}
.hospedes figure:not(.arco-h):nth-child(6){border-radius:50% 50% 46% 46% / 58% 58% 42% 42%}
.equipa-fotos figure:nth-child(2){border-radius:62% 38% 46% 54% / 44% 50% 50% 56%}
.equipa-fotos figure:nth-child(4){border-radius:30px 150px 30px 150px}
.cavalo figure{border-radius:0 0 50% 50% / 0 0 12% 12%}
/* as sequencias que correm: tambem variam */
.seq-pista figure:nth-child(3n+1){border-radius:62% 38% 46% 54% / 44% 50% 50% 56%}
.seq-pista figure:nth-child(4n){border-radius:0;clip-path:polygon(16% 0,84% 0,100% 16%,100% 84%,84% 100%,16% 100%,0 84%,0 16%);box-shadow:none}

/* ---- PET HOTEL: "as fotos a andar na vertical, como num telemovel" ------
   O texto fica o mesmo; ao lado, um telemovel com o feed do Instagram
   deles a correr para cima. As fotografias sao as mesmas que ja la estavam. */
.tel-duo{align-items:center}
.tel-duo .duo-txt{text-align:left}
.telemovel{justify-self:center;width:min(300px,78vw);aspect-ratio:9/19;border-radius:46px;background:#111;
  padding:12px;box-shadow:0 40px 70px -30px rgba(27,38,32,.6),inset 0 0 0 2px #333;position:relative;
  transform:rotate(3deg)}
.telemovel::before{content:"";position:absolute;top:20px;left:50%;width:84px;height:22px;margin-left:-42px;
  border-radius:20px;background:#111;z-index:3}
.tel-ecra{position:relative;width:100%;height:100%;border-radius:36px;overflow:hidden;background:#FFF}
.tel-topo{position:absolute;top:0;left:0;right:0;z-index:2;display:flex;align-items:center;gap:.5rem;
  padding:2.6rem .9rem .6rem;background:linear-gradient(#FFF 70%,rgba(255,255,255,0));
  font-size:.78rem;font-weight:700;color:var(--ink)}
.tel-topo img{width:28px;height:28px;border-radius:50%;box-shadow:0 0 0 2px var(--red)}
.tel-topo span{font-weight:500;color:var(--soft);margin-left:auto;font-size:.72rem}
.sequencia-v{position:absolute;inset:0;padding:0;overflow:hidden;-webkit-mask:none;mask:none}
.seq-pista.seq-v{flex-direction:column;width:100%;gap:.5rem;padding:4.2rem .5rem 0;
  animation:seqSobe 46s linear infinite}
.sequencia-v:hover .seq-v{animation-play-state:paused}
.seq-v figure, .seq-v figure:nth-child(n){height:auto;width:100%;aspect-ratio:4/5;margin:0;
  border-radius:14px;clip-path:none;box-shadow:none}
.seq-v figure:nth-child(3n){aspect-ratio:1/1}
@keyframes seqSobe{to{transform:translateY(-50%)}}
@media(max-width:900px){.telemovel{transform:none;margin-top:1.5rem}}
@media(prefers-reduced-motion:reduce){.seq-pista.seq-v{animation:none}.sequencia-v{overflow-y:auto}}
/* com as formas novas (mancha, diamante) o canto de baixo deixou de existir:
   a legenda passa ao centro, um pouco acima da borda */
.trio-fotos .legenda{left:0;right:0;margin-inline:auto;width:max-content;max-width:86%;bottom:11%;text-align:center}
/* as duas fotografias do espaco ficavam pequenas: a coluna delas alarga */
@media(min-width:901px){#quinta .duo{grid-template-columns:1.12fr .88fr}}
/* no telemovel o cao dos cantos de cima tapava o titulo: ficam so os de baixo */
@media(max-width:700px){.deco.cao.tl, .deco.cao.tr{display:none}}


/* ===========================================================================
   TERCEIRA VOLTA  (03/10/2026, fim da tarde)
   "Mantém simetria nas fotos, afinal não varies muito, põe grande e com
   simetria" · "o pet táxi não está bem verde" · "os efeitos de cor estão
   super finos, super magrinhos"
   ======================================================================== */

/* ---- 1. AS FOTOGRAFIAS: grandes e simetricas --------------------------
   Desfaz-se a variedade de formas (mancha, folha, diamante, polaroide): ficam
   so duas — o rectangulo de cantos redondos e o arco — sempre em pares
   espelhados, nunca uma forma sozinha de um lado. */
.trio-fotos figure:nth-child(1), .trio-fotos figure:nth-child(3){border-radius:var(--r-xl);clip-path:none}
.trio-fotos figure:nth-child(2){border-radius:var(--arco)}
.trio-fotos{gap:clamp(.9rem,1.6vw,1.4rem)}
.trio-fotos figure{aspect-ratio:3/4}

/* os cinco momentos: a fotografia grande ao centro e duas de cada lado */
.momentos{grid-template-columns:1fr 1.3fr 1fr;grid-template-rows:auto auto;gap:clamp(.9rem,1.6vw,1.3rem)}
.momentos figure, .momentos figure:nth-child(n){border-radius:var(--r-xl);clip-path:none;aspect-ratio:4/5;grid-column:auto;grid-row:auto}
.momentos figure:nth-child(1){grid-column:2;grid-row:1 / span 2;aspect-ratio:auto;border-radius:var(--arco)}
.momentos figure:nth-child(2){grid-column:1;grid-row:1}
.momentos figure:nth-child(3){grid-column:3;grid-row:1}
.momentos figure:nth-child(4){grid-column:1;grid-row:2}
.momentos figure:nth-child(5){grid-column:3;grid-row:2}
@media(max-width:900px){
  .momentos{grid-template-columns:1fr 1fr}
  .momentos figure:nth-child(n){grid-column:auto;grid-row:auto;aspect-ratio:4/5}
  .momentos figure:nth-child(1){grid-column:1 / span 2;aspect-ratio:16/10}
}
@media(max-width:520px){
  .momentos{grid-template-columns:1fr}
  .momentos figure:nth-child(1){grid-column:auto}
}

/* duas fotografias do espaco: um par de arcos iguais, lado a lado */
.duas-fotos figure, .duas-fotos figure:nth-child(n){border-radius:var(--arco);margin-top:0;aspect-ratio:3/4}
@media(min-width:901px){#quinta .duo{grid-template-columns:1fr 1fr}}

/* as outras voltam ao rectangulo de cantos redondos, direitas */
.duo{grid-template-columns:1fr 1fr}
.duo.inv{grid-template-columns:1fr 1fr}
.foto-deco, #creche-home .foto-deco{border-radius:var(--r-xl)}
.foto-deco.alta{aspect-ratio:4/5}
.cta-final .foto-deco{border-radius:var(--r-xl);background:none;padding:0;transform:none}
.cta-final .foto-deco img{border-radius:0}
.cf-foto{border-radius:0}
.espaco figure, .espaco:nth-child(n) figure{border-radius:0;clip-path:none}
.hospedes figure:not(.arco-h):nth-child(n){border-radius:var(--r-xl);clip-path:none}
.equipa-fotos figure:nth-child(even){border-radius:var(--r-xl)}
.cavalo figure{border-radius:0}
/* as filas que correm: todas do mesmo tamanho, arco e rectangulo a alternar */
.sequencia:not(.sequencia-v) .seq-pista figure, .sequencia:not(.sequencia-v) .seq-pista figure:nth-child(n){
  aspect-ratio:3/4;border-radius:var(--r-xl);clip-path:none;margin-top:0;
  box-shadow:0 18px 40px -26px rgba(27,38,32,.55)}
.sequencia:not(.sequencia-v) .seq-pista figure:nth-child(even){border-radius:var(--arco)}

/* ---- 2. PET TAXI: verde a serio, sem branco ----------------------------- */
.svc-s4{--acc:#1F5E2A;--svc:#1F5E2A;--viva:#4FA83D}
.svc-s4 h1 em, .svc-s4 h2 em, .svc-s4 .eyebrow{color:#1F5E2A}
body:has(main.svc-s4){background:#CFEFC8}
.svc-s4 section.svc-hero{background:
  radial-gradient(ellipse 60% 70% at 92% 6%, rgba(255,255,255,.4), transparent 70%),
  linear-gradient(160deg,#357A38 0%,#2E7030 100%)}
.svc-s4 #porque{background:#CFEFC8}
.svc-s4 #como{background:#357A38!important}
.svc-s4 section.cta{background:#4FA83D!important}
.svc-s4 section.cta h2, .svc-s4 section.cta .lead, .svc-s4 section.cta .manu{color:var(--ink)}
.svc-s4 section.cta h2 em{color:#10361A}
.svc-s4 .razoes .card, .svc-s4 .exige{background:#FFF}
.svc-s4 .btn.fill{background:#1F5E2A;border-color:#1F5E2A;color:#FFF}
.svc-s4 .btn.fill:hover{background:#174A20;border-color:#174A20}
.svc-s4 .btn:not(.fill){border-color:#1F5E2A;color:#1F5E2A}
.svc-s4 .btn:not(.fill):hover{background:#1F5E2A;color:#FFF}
.svc-s4 section.cta .btn:not(.fill){border-color:var(--ink);color:var(--ink)}
.svc-s4 .svc-factos li{background:rgba(255,255,255,.85)}
.svc-s4 .com-deco{--deco:#1F5E2A}

/* ---- 3. "OS EFEITOS DE COR ESTAO SUPER FINOS" -------------------------
   Tudo o que era cor em linha fina passa a ter corpo: as faixas curvas,
   a fila de pontos, o meio-tom, a barra de cor dos cartoes, os contornos,
   os filetes. A regra: uma cor ou se ve de longe, ou nao se poe. */
/* as faixas curvas vermelha e preta: duas vezes mais altas */
.deco.onda{height:clamp(80px,11vw,160px)}
/* a fila de pontos: pontos grossos e cheios */
.deco.linha path{stroke-width:16;stroke-dasharray:0 34;opacity:.9;animation-name:pontosAndam34}
@keyframes pontosAndam34{to{stroke-dashoffset:-34}}
/* o meio-tom: pontos maiores */
.deco.pontos{width:clamp(200px,28vw,400px);background-size:26px 26px;
  background-image:radial-gradient(circle,var(--deco) 0 40%,transparent 43%)}
/* a barra de cor por cima dos cartoes de servico: de fio a faixa */
.cards-foto .card{border-top-width:12px}
/* os cartoes e as caixas ganham contorno a serio, da cor do servico */
.svc .razoes .card{border:3px solid color-mix(in srgb, var(--acc) 30%, transparent)}
.caixa-svc{border:3px solid color-mix(in srgb, var(--acc) 40%, transparent)}
.exige{border-left-width:9px}
/* os botoes de contorno: de 2 para 3 px */
.btn{border-width:3px}
/* as pastilhas da entrada de cada servico */
.svc-factos li{border:2px solid color-mix(in srgb, var(--acc) 35%, transparent);font-weight:600}
/* os passos: o tracejado entre eles passa a pontos grossos */
.steps-4 .step::after{height:6px;top:1.05rem;
  background:radial-gradient(circle,var(--gelo) 0 2.6px,transparent 3px) 0 50%/14px 6px repeat-x}
/* a linha da faixa que corre e os vistos das listas */
.lista-check li::before{border-width:0 .24rem .24rem 0}
/* o trilho de pegadas: visivel, e nao um fantasma */
.trilho .pata.in{opacity:.5}
/* as ondas que separam as seccoes: mais fundas */
.wave{height:clamp(46px,6.5vw,92px)}
/* 4. revisao: as faixas curvas mais altas comiam o titulo da seccao — o
      conteudo afasta-se delas; os pontos e o cao ficam POR BAIXO do texto */
.com-deco:has(> .deco.onda.t) > .wrap{margin-top:clamp(40px,6vw,96px)}
.com-deco:has(> .deco.onda.b) > .wrap{margin-bottom:clamp(40px,6vw,96px)}
.deco.pontos{opacity:.6}
.deco.cao{z-index:0}
/* 5. o .card declara o seu proprio --acc (tijolo): o contorno dos cartoes
      das razoes pede o --svc, que chega intacto da pagina */
.svc .razoes .card{border-color:color-mix(in srgb, var(--svc) 32%, transparent)}
/* as notas bege destoavam no azul e no verde */
.svc-s3 .mnote, .svc-s4 .mnote{background:rgba(255,255,255,.8)}

/* ===========================================================================
   QUARTA VOLTA  (03/10/2026, noite)
   ======================================================================== */

/* ---- "o amarelo e o azul: as vezes aparece do nada vermelho e preto" ------
   As decoracoes passam a falar a lingua de cada pagina: tom sobre tom, com
   branco. O vermelho e o preto do Instagram ficam onde a cor da casa e o
   vermelho — a entrada, o Pet Hotel, os precos. */
.com-deco{--deco-a:var(--red);--deco-b:var(--ink);--cao-a:var(--red);--cao-b:var(--red-dk)}
.deco.pata svg{fill:var(--deco-a)}
.deco.pata.escura svg{fill:var(--deco-b)}
.deco.onda .o-verm{fill:var(--deco-a)}
.deco.onda .o-preta{fill:var(--deco-b)}
.deco.cao .cao-corpo{fill:var(--cao-a)}
.deco.cao .cao-orelha{fill:var(--cao-b)}
/* creche: mostarda e branco sobre o amarelo, pontos brancos */
.svc-s2 .com-deco{--deco:#FFFFFF;--deco-a:#E8A200;--deco-b:#FFFFFF;--cao-a:#E8A200;--cao-b:#B87900}
.svc-s2 .deco.pontos{opacity:.85}
/* banhos: azul fundo e branco, pontos brancos */
.svc-s3 .com-deco{--deco:#FFFFFF;--deco-a:#1F7FC0;--deco-b:#FFFFFF;--cao-a:#1F7FC0;--cao-b:#0A4A74}
.svc-s3 .deco.pontos{opacity:.85}
/* pet taxi: verde fundo e branco (a mesma regra, para nao destoar) */
.svc-s4 .com-deco{--deco:#FFFFFF;--deco-a:#2F8A2A;--deco-b:#FFFFFF;--cao-a:#2F8A2A;--cao-b:#1F5E2A}
.svc-s4 .deco.pontos{opacity:.85}
/* a quinta: relva e musgo */
.svc-casa .com-deco{--deco:var(--relva);--deco-a:var(--relva);--deco-b:var(--musgo);--cao-a:var(--musgo);--cao-b:#1E3D22}

/* ---- "aquela foto do senhor tem que ficar maior" -------------------------- */
@media(min-width:901px){#quinta .duo{grid-template-columns:1.2fr .8fr}}
.foto-deco.foto-senhor{aspect-ratio:4/5;border-radius:var(--arco)!important;max-height:none}
.foto-senhor img{width:100%;height:100%;object-fit:cover;object-position:50% 40%}
/* as pastilhas "25 quartos" e "08:00" saiam cortadas pela borda da foto:
   a moldura deixa-as sair e e a imagem que leva o arco */
.foto-deco.foto-senhor{overflow:visible;box-shadow:none}
.foto-senhor img{border-radius:var(--arco);box-shadow:var(--shadow-lg)}
/* REGRESSAO apanhada: o ".duo{1fr 1fr}" da terceira volta nao tinha media
   query e passou a valer tambem no telemovel, onde as seccoes de duas
   colunas tem de empilhar */
@media(max-width:900px){.duo, .duo.inv, #quinta .duo{grid-template-columns:1fr}}

/* ===========================================================================
   A ENTRADA DA CRECHE, DOS BANHOS E DO PET TAXI  (03/10/2026, noite)
   "A parte pior e sempre o primeiro template introdutorio: fica palido."
   Era: um degrade claro, um veu branco por cima e um painel solto com
   margem a volta — o creme da pagina a espreitar. Passa a: a cor cheia do
   servico, de ponta a ponta, com o canto de baixo arredondado. O texto fica
   do lado claro do degrade e a fotografia do lado fundo.
   Contrastes medidos: tinta sobre o claro de cada um 6,3 a 10; o titulo
   destacado 5,3 a 6,7.
   ======================================================================== */
.svc-s2 section.svc-hero, .svc-s3 section.svc-hero, .svc-s4 section.svc-hero{
  margin:0;border-radius:0 0 clamp(30px,4.5vw,64px) clamp(30px,4.5vw,64px);
  padding-bottom:clamp(2.6rem,5vw,4rem)}
.svc-s2 section.svc-hero{background:linear-gradient(155deg,#FFD23F 0%,#FFC21A 55%,#F5AE00 100%)}
.svc-s3 section.svc-hero{background:linear-gradient(155deg,#4BAEE6 0%,#3399DA 55%,#2489CC 100%)}
.svc-s4 section.svc-hero{background:linear-gradient(155deg,#357A38 0%,#2F7233 55%,#296A2D 100%)}
/* o texto da entrada todo a tinta; o destaque do titulo no tom fundo */
.svc-s2 .svc-hero .lead, .svc-s3 .svc-hero .lead, .svc-s4 .svc-hero .lead,
.svc-s2 .svc-hero .crumbs, .svc-s3 .svc-hero .crumbs, .svc-s4 .svc-hero .crumbs,
.svc-s2 .svc-hero .eyebrow, .svc-s3 .svc-hero .eyebrow, .svc-s4 .svc-hero .eyebrow{color:var(--ink)}
.svc-s2 .svc-hero h1 em{color:#5A3A00}
.svc-s3 .svc-hero h1 em{color:#062F4A}
.svc-s4 .svc-hero h1 em{color:#0F3A17}
.svc-s2 .svc-hero .manu, .svc-s3 .svc-hero .manu, .svc-s4 .svc-hero .manu{color:var(--ink)}
/* as pastilhas e o botao de contorno ganham fundo, para se lerem na cor */
.svc-s2 .svc-hero .svc-factos li, .svc-s3 .svc-hero .svc-factos li, .svc-s4 .svc-hero .svc-factos li{
  background:#FFF;border-color:transparent;color:var(--ink)}
.svc-s3 .svc-hero .btn:not(.fill), .svc-s4 .svc-hero .btn:not(.fill){background:rgba(255,255,255,.9);border-color:#FFF;color:var(--ink)}
.svc-s3 .svc-hero .btn:not(.fill):hover, .svc-s4 .svc-hero .btn:not(.fill):hover{background:#FFF;color:var(--ink)}
.svc-s4 .svc-hero .btn.fill{background:var(--ink);border-color:var(--ink)}
.svc-s3 .svc-hero .btn.fill{background:#062F4A;border-color:#062F4A}
/* a fotografia em arco ganha um aro branco, como os autocolantes */
.svc-s2 .svc-hero-foto, .svc-s3 .svc-hero-foto, .svc-s4 .svc-hero-foto{box-shadow:0 0 0 8px #FFF,0 30px 60px -30px rgba(0,0,0,.45)}
/* o fundo da pagina por tras do cabecalho acompanha a cor */
body:has(main.svc-s2){background:#FFF1BF}
body:has(main.svc-s3){background:#D6EFFD}
body:has(main.svc-s4){background:#CFEFC8}

/* ===========================================================================
   PET HOTEL TAMBEM EM COR CHEIA, E AS FOTOS DAS ENTRADAS CENTRADAS
   (03/10/2026, noite) — "no hotel tambem falta vermelho" · "as fotos na
   parte inicial dos servicos nao estao bem centradas e alinhadas"
   ======================================================================== */
/* o Pet Hotel: tijolo cheio de ponta a ponta. Aqui a cor e escura, por isso
   o texto passa a branco (5,5 a 6,6:1) e o destaque do titulo a creme. */
.svc-s1 section.svc-hero{margin:0;border-radius:0 0 clamp(30px,4.5vw,64px) clamp(30px,4.5vw,64px);
  padding-bottom:clamp(2.6rem,5vw,4rem);
  background:linear-gradient(155deg,#B5452C 0%,#A83E27 55%,#963620 100%)}
.svc-s1 .svc-hero h1, .svc-s1 .svc-hero .lead, .svc-s1 .svc-hero .crumbs, .svc-s1 .svc-hero .crumbs a,
.svc-s1 .svc-hero .eyebrow, .svc-s1 .svc-hero .manu{color:#FFF}
.svc-s1 .svc-hero h1 em{color:#FFE3D6}
.svc-s1 .svc-hero .svc-factos li{background:#FFF;border-color:transparent;color:var(--ink)}
.svc-s1 .svc-hero .svc-factos b{color:#9A3A22}
.svc-s1 .svc-hero .btn.fill{background:#FFF;border-color:#FFF;color:#8E3220}
.svc-s1 .svc-hero .btn.fill:hover{background:#FFE3D6;border-color:#FFE3D6;color:#6B2416}
.svc-s1 .svc-hero .btn.fill.coracoes .corac{fill:#FFF}
.svc-s1 .svc-hero .btn:not(.fill){background:transparent;border-color:#FFF;color:#FFF}
.svc-s1 .svc-hero .btn:not(.fill):hover{background:#FFF;color:#8E3220}
.svc-s1 .svc-hero-foto{box-shadow:0 0 0 8px #FFF,0 30px 60px -30px rgba(0,0,0,.5)}
.svc-s1 .com-deco.svc-hero{--deco:#FFFFFF}
.svc-s1 .svc-hero .deco.pontos{opacity:.35}
body:has(main.svc-s1){background:#FBE7DF}
/* no cabecalho por cima do tijolo, os links leem-se a branco ate se descer */
@media(min-width:1181px){body:has(main.svc-s1) #hd:not(.solid) nav a:not(.on){color:#FFF}}
body:has(main.svc-s1) #hd:not(.solid) .logo b, body:has(main.svc-s1) #hd:not(.solid) .logo b i,
body:has(main.svc-s1) #hd:not(.solid) .logo small{color:#FFF}
body:has(main.svc-s1) #hd:not(.solid) .burger{box-shadow:0 0 0 2px #FFF}

/* as fotografias das entradas: o motivo ao centro do arco */
.svc-s1 .svc-hero-foto img{object-position:42% 64%}
.svc-s2 .svc-hero-foto img{object-position:56% 72%}
.svc-s3 .svc-hero-foto img{object-position:46% 30%}
.svc-s4 .svc-hero-foto img{object-position:50% 55%}
/* e o bloco da entrada centrado na altura: o espaco por baixo passa a ser
   igual ao que fica por cima, depois do cabecalho */
.svc section.svc-hero{padding-bottom:clamp(3.2rem,5.5vw,4.4rem)}
.svc-hero-in{align-items:center}
.svc-hero-foto{width:100%;max-width:30rem;justify-self:center}
/* o aviso "servico independente" na entrada dos Banhos e do Taxi: a tinta,
   com letra branca — sobre o azul e o verde cheios o aviso claro sumia */
.svc-s3 .svc-hero .aviso-forte, .svc-s4 .svc-hero .aviso-forte{background:var(--ink);color:#FFF}
.svc-s3 .svc-hero .aviso-forte svg{fill:#7FCBEA}
.svc-s4 .svc-hero .aviso-forte svg{fill:#9FD27C}

/* ===========================================================================
   SEXTA VOLTA  (03/10/2026, noite)
   ======================================================================== */

/* ---- "UM DIA POR AQUI" sem fotografias: cinco cartoes fofos -------------
   Um desenho grande em cada um, dentro de um circulo branco que sai pelo
   topo do cartao (como um autocolante), cor propria por momento, e um fio
   de pegadas a ligar os cinco. O ultimo e a noite: escuro, com estrelas. */
.dia-fofo{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(.9rem,1.6vw,1.3rem);
  margin-top:clamp(3.4rem,6vw,4.6rem);position:relative}
.dia-fofo::before{content:"";position:absolute;left:6%;right:6%;top:0;height:8px;z-index:0;
  background:radial-gradient(circle,#E8C9B8 0 3.2px,transparent 3.6px) 0 50%/18px 8px repeat-x}
.mo{position:relative;z-index:1;border-radius:34px;padding:3.6rem 1.3rem 1.6rem;text-align:center;
  transition:transform .4s cubic-bezier(.2,.8,.3,1),box-shadow .4s}
.mo:hover{transform:translateY(-8px);box-shadow:0 26px 40px -26px rgba(27,38,32,.45)}
.mo-ico{position:absolute;left:50%;top:0;width:86px;height:86px;margin:-43px 0 0 -43px;border-radius:50%;
  background:#FFF;display:grid;place-items:center;box-shadow:0 14px 24px -14px rgba(27,38,32,.45);
  animation:moFlutua 5s ease-in-out infinite}
.mo:nth-child(2) .mo-ico{animation-delay:-1s}.mo:nth-child(3) .mo-ico{animation-delay:-2s}
.mo:nth-child(4) .mo-ico{animation-delay:-3s}.mo:nth-child(5) .mo-ico{animation-delay:-4s}
@keyframes moFlutua{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.mo-ico svg{width:50px;height:50px}
.mo-quando{font-family:var(--f-hand);font-size:1.35rem;line-height:1;margin-bottom:.35rem}
.mo h3{font-size:1.2rem;margin-bottom:.45rem}
.mo p:not(.mo-quando){font-size:.92rem;line-height:1.55}
.mo-escrita{position:absolute;right:.9rem;bottom:-.8rem;font-family:var(--f-hand);font-size:1.25rem;
  background:#FFF;border-radius:var(--r-pill);padding:.1rem .8rem;transform:rotate(-4deg);
  box-shadow:0 8px 16px -10px rgba(27,38,32,.45)}
/* as cinco cores e os cinco desenhos */
.mo-1{background:#FFE9A8}.mo-1 .mo-quando,.mo-1 .mo-escrita{color:#8A5A00}
.mo-1 .i1{fill:#F5B82E}.mo-1 .i2{stroke:#F5B82E}
.mo-2{background:#FBDCD0}.mo-2 .mo-quando{color:#9A3A22}
.mo-2 .i1{fill:#E0533A}.mo-2 .i2{stroke:#FFF}
.mo-3{background:#D6EFFD}.mo-3 .mo-quando{color:#0A4A74}
.mo-3 .i1{fill:#3FA4DD}.mo-3 .i2{fill:#9BD6F5;stroke:#3FA4DD}
.mo-4{background:#DDF1D4}.mo-4 .mo-quando{color:#1F5E2A}
.mo-4 .i1{fill:#F0A050}.mo-4 .i2{fill:#3B2A1E}.mo-4 .i3{stroke:#3B2A1E}
.mo-5{background:#22324F;color:#E8EEF8}.mo-5 h3{color:#FFF}.mo-5 .mo-quando{color:#FFD86B}
.mo-5 .mo-escrita{color:#22324F}
.mo-5 .i1{fill:#FFD86B}.mo-5 .i2{fill:#FFD86B}
.mo h3, .mo p{position:relative}
@media(max-width:1100px){.dia-fofo{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:3.6rem}
  .dia-fofo::before{display:none}}
@media(max-width:700px){.dia-fofo{grid-template-columns:1fr 1fr}.mo-5{grid-column:1 / -1}}
@media(max-width:460px){.dia-fofo{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.mo-ico{animation:none}}

/* ---- A QUINTA: "mais do que um hotel" ------------------------------------ */
.svc .mais-hotel{background:var(--musgo);color:#EAF3E4;text-align:center}
.mais-hotel h2{color:#FFF}
.mais-hotel h2 em{color:#BFE5A6!important}
.mais-hotel .manu{color:#BFE5A6}
.mais-hotel .lead{color:#DCEBD3;margin:1rem auto 0;max-width:56ch}
.mais-lista{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(.9rem,2vw,1.6rem);margin:clamp(2rem,4vw,2.8rem) auto 0;max-width:62rem}
.mais-lista li{background:rgba(255,255,255,.08);border:2px solid rgba(255,255,255,.18);border-radius:30px;
  padding:1.5rem 1rem 1.3rem;display:grid;justify-items:center;gap:.25rem}
.mais-lista b{font-family:var(--f-display);font-size:1.25rem;color:#FFF}
.mais-lista small{font-size:.88rem;color:#CFE3C3}
.mh-ico{width:76px;height:76px;border-radius:50%;background:#FFF;display:grid;place-items:center;margin-bottom:.4rem;
  color:var(--musgo)}
.mh-ico svg{width:44px;height:44px;fill:var(--musgo)}
.mais-hotel .btn.fill{background:#FFF;border-color:#FFF;color:var(--musgo)}
.mais-hotel .btn.fill:hover{background:#BFE5A6;border-color:#BFE5A6;color:var(--musgo)}
.svc-casa .mais-hotel.com-deco{--deco-a:#3E7A44;--deco-b:#BFE5A6;--deco:#BFE5A6}
@media(max-width:700px){.mais-lista{grid-template-columns:1fr}}

/* ---- "melhora a transicao: um castanho que separa o branco de forma muito
   brusca". O que separava era o areia (--sand) das duas seccoes do fim,
   que sairam. Fica a regra: entre duas cores de fundo ha sempre onda. */
.svc-s1 .gatos-foto img{object-position:50% 50%}
/* as notas bege sobre o rosa do Pet Hotel liam-se como castanho: brancas */
.svc-s1 .mnote{background:rgba(255,255,255,.85)}
/* o trilho de pegadas voltou a ser discreto: a .5 tapava o texto */
.trilho .pata.in{opacity:.28}

/* ===========================================================================
   SETIMA VOLTA  (03/10/2026, noite)
   ======================================================================== */

/* ---- o diamante por cima do logotipo, na capa ----------------------------
   Lapidado, no azul-gelo do diamante do logotipo, com um brilho em diagonal,
   a flutuar devagar e duas estrelinhas que piscam. */
.capa-diamante{display:block;width:clamp(58px,6.4vw,92px);margin:0 auto clamp(.5rem,1.2vw,.9rem)}
.capa-diamante svg{width:100%;height:auto;display:block;overflow:visible;
  filter:drop-shadow(0 10px 14px rgba(61,159,204,.35));animation:dgFlutua 6s ease-in-out infinite}
.dg-estrela{fill:#FFFFFF;transform-box:fill-box;transform-origin:center;animation:dgPisca 2.8s ease-in-out infinite}
.dg-estrela.e2{animation-delay:-1.4s}
@keyframes dgFlutua{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-6px) rotate(2deg)}}
@keyframes dgPisca{0%,100%{opacity:0;transform:scale(.4)}50%{opacity:1;transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.capa-diamante svg,.dg-estrela{animation:none}.dg-estrela{opacity:1}}

/* ---- os quatro cartoes dos servicos: mais naturais ----------------------
   Sai a barra grossa de cor por cima (lia-se como um separador de pasta) e a
   inclinacao ao passar o rato. A fotografia passa a estar dentro do cartao,
   com margem e cantos redondos, e o titulo ganha ar por cima. */
.cards-foto .card{border:0;border-top:0;padding:.7rem .7rem 1.5rem;
  box-shadow:0 18px 36px -28px rgba(27,38,32,.45)}
.cards-foto .card:hover{transform:translateY(-6px);border-color:transparent;
  box-shadow:0 28px 46px -28px rgba(27,38,32,.5)}
.cards-foto .cf-foto{aspect-ratio:4/3;border-radius:calc(var(--r-lg) - .6rem);overflow:hidden}
.cards-foto .cf-foto img{object-position:50% 45%}
.cards-foto .card h3{margin:1.35rem .9rem .55rem;font-size:1.4rem;line-height:1.15}
.cards-foto .card > p:not(.num):not(.desde){margin:0 .9rem;font-size:.95rem;line-height:1.6;color:var(--graph)}
/* margin-top:auto mantem os precos e os botoes alinhados nos quatro */
.cards-foto .card .desde{margin:auto .9rem 0;padding-top:1.2rem}
.cards-foto .card .btn{margin:1rem .9rem 0}
.cards-foto .card .cpaw{right:-10px;bottom:-12px;width:78px;height:78px}


/* ===========================================================================
   A RONDA DAS NOTAS DA MAFALDA  (15/10/2026)
   ---------------------------------------------------------------------------
   Notas dela por WhatsApp a 13/10, em prints sobre a entrada, o Pet Hotel e
   a Creche. O critério foi espalhar pelo site o que ela disse que ADORA, em
   vez de inventar coisas novas:
     - "Amo estas cores": o verde com o dourado da secção Reconhecimento.
       Ela própria mandou o verde (#1A4C33) e o dourado (Pantone 14-0951
       Golden Rod, #F4A900). É o par de destaque do site a partir de hoje.
     - o aro branco na fotografia da entrada da Creche: "quero todas as
       fotos com a borda".
     - os cartões desenhados do "Um dia por aqui": "Gostei!!!".
   E três regras de coerência, para não se voltarem a perder:
     - nenhum cão nem pata cortados pela borda: ou inteiros, ou fora;
     - os pontos de meio-tom vão até ao fim da secção — a onda passa POR CIMA
       deles (.wave.sobe) em vez de os cortar a direito;
     - título ao centro quando o lado ficava vazio.
   Contrastes medidos: creme #FFF6E0 sobre o verde dá 9,6:1; o dourado sobre
   o verde 5,1:1; o verde-escuro #143D29 sobre o dourado 5,9:1.
   ======================================================================== */
:root{--verde-m:#1A4C33; --verde-m2:#143D29; --verde-m-lt:#E4EFE7;
      --ouro:#F4A900; --ouro-lt:#FFF1C9; --ouro-dk:#7A5200}

/* ---- AS JUNÇÕES: "tirar essa linha" (três sítios marcados por ela) ---------
   Não eram linhas desenhadas: era o rebordo da onda. O svg tem a cor da
   secção de cima por fundo e a de baixo no desenho; quando a altura cai em
   meio píxel, a última fila fica misturada e lê-se como um fio. O desenho
   passou a ir 12 unidades ALÉM do fundo da caixa (v44 → v56 no html, em
   todas as páginas) e a caixa deixou-o sair; em cima entra 1 px por baixo da
   secção anterior, que tem a mesma cor. */
.wave{overflow:visible;margin-top:-1px}
/* a onda que passa por cima do fim da secção anterior: fundo transparente e
   puxada para cima a altura dela, para os pontos chegarem até à curva */
.wave.sobe{background:transparent!important;position:relative;z-index:3;
  margin-top:calc(-1 * clamp(46px,6.5vw,92px) + 1px)}
.hero, .quotes{padding-bottom:calc(clamp(2.6rem,5.4vw,4.6rem) + clamp(46px,6.5vw,92px))}
/* a terceira linha era outra coisa: a onda escura é --night e a secção do
   Reconhecimento começava num musgo mais claro, logo por baixo dela. O topo
   da secção passa a começar na mesma cor da onda e só depois acende. */
.rec{background:linear-gradient(var(--night),rgba(31,58,37,0) 160px),
  radial-gradient(ellipse 85% 95% at 50% 2%,#2F5A34,transparent 64%),
  radial-gradient(ellipse 60% 50% at 10% 100%,rgba(111,163,79,.35),transparent 70%),var(--night)}

/* ---- CAPA ------------------------------------------------------------------
   Fotografia: a dos dois cães a correr junto ao tanque. Ampliar a anterior
   piorava-a — o cão da direita já estava desfocado, e é a única outra foto
   deitada com 1800 px. As patinhas ao lado do nome saíram (js) e eram elas
   que desviavam "Pet Hotel" para a esquerda. */
.cover-bg img{object-position:50% 64%}
@media(max-width:760px){.cover-bg img{object-position:62% 50%}}
/* "parece que está tudo muito em cima": o bloco desce um pouco e o "Descer"
   vai para junto do fundo */
.cover-in{margin-top:clamp(1.5rem,8vh,5rem)}
.cover-cue{bottom:calc(var(--cm) + .55rem)}
/* "a barra dos serviços precisa de cor ou de outro tipo de letra": as duas.
   Verde dela com letra creme em Fraunces, e os separadores a dourado. */
.cover-in .sub{font-family:var(--f-display);font-weight:600;font-size:clamp(.86rem,1.6vw,1.05rem);
  letter-spacing:.005em;color:#FFF6E0;background:var(--verde-m);padding:.62rem 1.5rem;
  box-shadow:0 14px 28px -14px rgba(20,61,41,.75),0 0 0 3px rgba(255,255,255,.6)}
.cover-in .sub i{font-style:normal;color:var(--ouro);margin:0 .22em;font-weight:800}

/* ---- O DIAMANTE (um só, desenhado pelo js: svgGema) ------------------------ */
.gema{display:block;width:100%;height:auto;overflow:visible}
.capa-diamante svg{filter:drop-shadow(0 6px 14px rgba(45,138,198,.45)) drop-shadow(0 0 18px rgba(143,214,245,.55))}
.gema .dg-estrela{fill:#FFF}
.stk[data-stk="diamante"] svg{filter:drop-shadow(0 10px 18px rgba(20,61,41,.35)) drop-shadow(0 0 14px rgba(143,214,245,.6))}

/* ---- ABERTURA: "Vai uma semana fora" ----------------------------------------
   As etiquetas por cima da fotografia levam o diamante no lugar da bolinha. */
.autoc i.pt-gema{width:24px;height:20px;flex:0 0 24px;border-radius:0;background:none}
.autoc i.pt-gema::after{display:none}
.autoc i.pt-gema svg{width:100%;height:100%;filter:drop-shadow(0 2px 3px rgba(45,138,198,.35))}
.hero .blob img{object-position:58% 22%}
/* patinhas por baixo do texto, a desenhar-se uma a uma */
.passinhos{display:flex;align-items:center;gap:.15rem;height:46px;margin-top:1.7rem}
.passinhos i{display:block;width:26px;height:26px;rotate:90deg;opacity:0;scale:.4}
.passinhos i:nth-child(odd){translate:0 -8px}
.passinhos i:nth-child(even){translate:0 8px}
.passinhos svg{width:100%;height:100%;display:block;fill:var(--red)}
.passinhos i:nth-child(3n) svg{fill:var(--ouro)}
.passinhos.in i{animation:passinho .45s cubic-bezier(.3,1.5,.5,1) forwards;
  animation-delay:calc(var(--i) * .2s + .35s)}
@keyframes passinho{to{opacity:.7;scale:1}}
@media(max-width:900px){.passinhos{justify-content:flex-start}}

/* ---- SERVIÇOS: "mudar a cor do fundo todo para o verde" --------------------- */
#servicos-home.verde-m{background:var(--verde-m);color:#E6F0E9}
.verde-m h2{color:#FFF6E0}
.verde-m h2 em{color:var(--ouro)}
.verde-m .manu{color:var(--ouro)}
.verde-m .eyebrow{color:#BFD8C6}
.verde-m .lead{color:#DCE9E0}
.verde-m .cards-foto .card{box-shadow:0 26px 50px -26px rgba(0,0,0,.55)}
.verde-m .btn.fill{background:var(--ouro);border-color:var(--ouro);color:var(--verde-m2)}
.verde-m .btn.fill:hover{background:#FFC233;border-color:#FFC233;color:var(--verde-m2);filter:none}
.verde-m .btn.fill.coracoes .corac{fill:#FFF}
.verde-m .stk .cut{fill:#FFF;stroke:#FFF}

/* ---- A FAIXA QUE CORRE: "colocar a barra de amarelo" ------------------------ */
.strip.strip-corre{background:var(--ouro);color:var(--verde-m2)}
.strip-corre .strip-grupo span::before{background:var(--verde-m)}

/* ---- ESTRELINHAS ("podes colocar umas estrelinhas") ------------------------ */
section:has(> .estrelas){position:relative}
.estrelas{position:absolute;width:150px;height:130px;z-index:2;pointer-events:none}
.estrelas .estrela{position:absolute;height:auto;fill:var(--ouro);transform-origin:50% 50%;
  animation:estrelaPisca 3.2s ease-in-out infinite;filter:drop-shadow(0 2px 4px rgba(0,0,0,.12))}
.estrelas .estrela.gelo{fill:#8FD6F5}
@keyframes estrelaPisca{0%,100%{opacity:.4;transform:scale(.62) rotate(0)}50%{opacity:1;transform:scale(1) rotate(45deg)}}
@media(max-width:700px){.estrelas{scale:.7}}

/* ---- CARROSSEL DE FOTOGRAFIAS (modo fade) ---------------------------------- */
.carrossel{position:relative}
.car-arco{aspect-ratio:4/5;width:100%;overflow:visible!important;box-shadow:none!important;border-radius:0}
.car-arco .car-pista{position:absolute;inset:0;border-radius:var(--arco);overflow:hidden;background:var(--sand);
  box-shadow:0 0 0 8px #FFF,0 34px 70px -34px rgba(30,42,68,.55)}
.car-arco figure{position:absolute;inset:0;margin:0;opacity:0;transition:opacity 1.1s ease}
.car-arco figure.on{opacity:1;z-index:1}
.car-arco figure img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.08);
  transition:transform 6s ease-out}
.car-arco figure.on img{transform:scale(1)}
.car-arco figcaption{position:absolute;left:50%;bottom:1.2rem;translate:-50% 0;background:#FFF;color:var(--ink);
  border-radius:var(--r-pill);padding:.45rem 1rem;font-weight:700;font-size:.84rem;white-space:nowrap;
  box-shadow:0 10px 22px -12px rgba(27,38,32,.6)}
.car-pontos{position:absolute;left:0;right:0;bottom:-2.6rem;display:flex;justify-content:center;gap:.15rem;z-index:2}
.car-pontos button{width:28px;height:28px;padding:0;border:0;background:none;cursor:pointer;display:grid;place-items:center}
.car-pontos button::before{content:"";width:10px;height:10px;border-radius:999px;background:rgba(27,38,32,.22);
  transition:width .35s,background .35s}
.car-pontos button[aria-current="true"]::before{width:28px;background:var(--red-dk)}
.car-pontos button:focus-visible{outline:3px solid var(--red-dk);outline-offset:1px;border-radius:999px}
#quinta .duo{align-items:center}
#quinta .car-arco{margin-bottom:2.6rem}
@media(prefers-reduced-motion:reduce){.car-arco figure, .car-arco figure img{transition:none}}

/* ---- CRECHE NA ENTRADA: "imagem mais para cima e em bolinhas" --------------- */
#creche-home .duo{align-items:start}
.bolhas{position:relative;width:100%;max-width:34rem;aspect-ratio:1/1.06;justify-self:center;margin-top:clamp(.4rem,2vw,2rem)}
.bolhas figure{position:absolute;margin:0;border-radius:50%;overflow:hidden;aspect-ratio:1;
  box-shadow:0 0 0 8px #FFF,0 30px 60px -30px rgba(27,38,32,.55)}
.bolhas .b1{width:80%;top:0;right:0}
.bolhas .b2{width:46%;left:0;bottom:0;z-index:1}
.bolhas img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1s cubic-bezier(.2,.8,.3,1)}
.bolhas figure:hover img{transform:scale(1.06)}
.bolhas .stk{z-index:3}
@media(max-width:900px){.bolhas{max-width:26rem;margin-top:2rem}}

/* ---- "texto para o meio da página" e "lateral muito vazia" ----------------- */
#dia > .wrap > .manu, #dia > .wrap > .eyebrow, #dia > .wrap > h2, #dia > .wrap > .lead,
#passos > .wrap > .manu, #passos > .wrap > .eyebrow, #passos > .wrap > h2, #passos > .wrap > .lead{
  text-align:center;margin-inline:auto}

/* ---- PATAS E CÃES INTEIROS --------------------------------------------------
   "Aparecer a pata toda" num sítio e "aquela pata cortada tem que sair" no
   outro dizem a mesma coisa: cortado pela borda lê-se como erro. As patas
   ficam inteiras e mais pequenas, dentro da secção; os cães também. */
.deco.pata{width:clamp(104px,12vw,176px)}
.deco.pata.tl{top:3%;left:2.2%} .deco.pata.tr{top:3%;right:2.2%}
.deco.pata.bl{bottom:4%;left:2.2%} .deco.pata.br{bottom:4%;right:2.2%}
.deco.cao.tl{top:1.4rem;left:1.4rem} .deco.cao.tr{top:1.4rem;right:1.4rem}
.deco.cao.bl{bottom:1.4rem;left:1.4rem} .deco.cao.br{bottom:1.4rem;right:1.4rem}
.deco.cao{width:clamp(120px,13vw,190px)}

/* ---- O ARO BRANCO EM TODAS AS FOTOGRAFIAS -----------------------------------
   "Quero todas as fotos com a borda como colocaste no de cima." */
.foto-deco, .arco:not(.car-arco), .blob, .trio-fotos figure, .hospedes figure, .momentos figure,
.duas-fotos figure, .equipa-fotos figure, .espaco figure, .gatos-foto,
.sequencia:not(.sequencia-v) .seq-pista figure{
  box-shadow:0 0 0 8px #FFF,0 28px 56px -30px rgba(27,38,32,.5)!important}

/* ---- CARROSSEL EM FILA (cartões) ------------------------------------------- */
.car-fila .car-janela{overflow:hidden;padding:1rem .6rem 1.6rem;margin:-1rem -.6rem 0}
.car-fila .car-pista{display:flex!important;grid-template-columns:none!important;gap:clamp(1rem,2vw,1.4rem);
  transition:transform .85s cubic-bezier(.65,.05,.36,1);will-change:transform}
.car-fila .car-pista > *{flex:0 0 calc((100% - 2 * clamp(1rem,2vw,1.4rem)) / 3);min-width:0}
.car-fila .car-pontos{position:static;margin-top:.4rem}
@media(max-width:900px){.car-fila .car-pista > *{flex-basis:calc((100% - clamp(1rem,2vw,1.4rem)) / 2)}}
@media(max-width:560px){.car-fila .car-pista > *{flex-basis:86%}}
@media(prefers-reduced-motion:reduce){.car-fila .car-pista{transition:none}}

/* ---- PET HOTEL --------------------------------------------------------------
   "mais elementos na parte de cima, ou subir textos e imagem": sobe, e os
   pontinhos de cor saíram ("tirar essas pontinhas com cor"). */
.svc-s1 #porque .caixa-svc:nth-child(1){background:var(--ouro-lt);border-color:rgba(244,169,0,.55)}
.svc-s1 #porque .caixa-svc:nth-child(2){background:var(--verde-m-lt);border-color:rgba(26,76,51,.3)}
.svc-s1 #porque .caixa-svc h3{color:var(--verde-m)}
/* "texto para cima": o texto do telemóvel deixa de estar ao meio da altura */
.tel-duo{align-items:start}
.tel-duo .duo-txt{padding-top:clamp(.5rem,4vw,3.5rem)}
/* "mudar cor dos quadrados": os preços no verde com o dourado */
.svc-s1 .azulejo{background:var(--verde-m);border-color:var(--verde-m);box-shadow:0 18px 34px -24px rgba(20,61,41,.8)}
.svc-s1 .azulejo span{color:#BFD8C6}
.svc-s1 .azulejo em{color:var(--ouro)}
.svc-s1 .azulejo small{color:#DCE9E0}
.svc-s1 #gatos .arco img{object-position:50% 62%}

/* ---- CRECHE -----------------------------------------------------------------
   "gosto da cor do fundo, mas não gosto da cor das letras": o castanho dos
   títulos sai e entra o verde dela (8,4:1 sobre o amarelo claro). */
.svc-s2{--acc:var(--verde-m);--svc:var(--verde-m)}
.svc-s2 .svc-hero h1 em{color:var(--verde-m)}
/* "os quadrados precisavam de ser de outra cor": verde com o dourado */
.svc-s2 #porque .razoes .card{background:var(--verde-m);border-color:var(--verde-m);
  box-shadow:0 20px 36px -24px rgba(20,61,41,.8)}
.svc-s2 #porque .razoes .card h3{color:var(--ouro)}
.svc-s2 #porque .razoes .card p{color:#DCE9E0}
.svc-s2 #porque .razoes .card .cpaw{fill:#FFF;opacity:.12}
.svc-s2 #porque .car-pontos button[aria-current="true"]::before{background:var(--verde-m)}

/* "cores e mais elementos": cada momento do dia com cor e desenho próprios,
   como os cartões do "Um dia por aqui" que ela adorou */
.creche-dia{row-gap:3.4rem;margin-top:clamp(3.4rem,6vw,4.2rem)}
.cd-passo{text-align:center;padding-top:3.4rem;border:0;box-shadow:0 18px 34px -26px rgba(27,38,32,.6)}
.cd-ico{position:absolute;left:50%;top:0;width:80px;height:80px;margin:-40px 0 0 -40px;border-radius:50%;
  background:#FFF;display:grid;place-items:center;box-shadow:0 12px 22px -14px rgba(27,38,32,.5);
  animation:moFlutua 5s ease-in-out infinite}
.cd-2 .cd-ico{animation-delay:-1.6s} .cd-3 .cd-ico{animation-delay:-3.2s}
.cd-ico svg{width:46px;height:46px}
.svc-s2 .cd-1{background:#FFF6D8} .cd-1 .cd-hora{color:#8A5A00}
.cd-1 .i1{fill:#F5B82E} .cd-1 .i2{stroke:#F5B82E}
.svc-s2 .cd-2{background:var(--verde-m-lt)} .cd-2 .cd-hora{color:var(--verde-m)}
.cd-2 .i1{fill:#3E8E5A} .cd-2 .i2{stroke:#FFF}
.svc-s2 .cd-3{background:var(--verde-m)} .cd-3 .cd-hora{color:var(--ouro)}
.cd-3 h3{color:#FFF} .cd-3 p{color:#DCE9E0!important}
.cd-3 .i1, .cd-3 .i2{fill:var(--ouro)}
@media(prefers-reduced-motion:reduce){.cd-ico{animation:none}}

/* "Sabe como lhe correu o dia": "cores" — em xadrez, verde e branco */
.svc-s2 #acordo .caixa-svc{background:#FFF;border-color:rgba(244,169,0,.6)}
.svc-s2 #acordo .caixas-2:not(.caixas-2 + .caixas-2) .caixa-svc:nth-child(1),
.svc-s2 #acordo .caixas-2 + .caixas-2 .caixa-svc:nth-child(2){background:var(--verde-m);border-color:var(--verde-m)}
.svc-s2 #acordo .caixas-2:not(.caixas-2 + .caixas-2) .caixa-svc:nth-child(1) h3,
.svc-s2 #acordo .caixas-2 + .caixas-2 .caixa-svc:nth-child(2) h3{color:var(--ouro)}
.svc-s2 #acordo .caixas-2:not(.caixas-2 + .caixas-2) .caixa-svc:nth-child(1) :is(p,ul,li,b),
.svc-s2 #acordo .caixas-2 + .caixas-2 .caixa-svc:nth-child(2) :is(p,ul,li,b){color:#E6F0E9}

/* "título mais para cima" */
.svc-s2 #perguntas-creche{padding-top:clamp(1.4rem,2.6vw,2.2rem)}
.svc-s2 #perguntas-creche .deco.cao{width:clamp(110px,10vw,150px)}

/* "Um dia. Depois decide.": a fotografia vai para o lado */
.svc-s2 section.cta .duo{grid-template-columns:1.15fr .85fr}
.svc-s2 section.cta .arco{justify-self:end}

/* um cão inteiro no canto de cima nunca pode tapar o título: abaixo de
   1180 px de largura o espaço ao lado do texto não chega e ele sai */
@media(max-width:1180px){.deco.cao.tl, .deco.cao.tr{display:none}}

/* Pet Hotel, topo: medido a 1328×760 havia 56 px de vermelho vazio entre o
   cabeçalho e a fotografia, o texto começava 49 px abaixo dela e a secção
   media 791 px — a fotografia saía do ecrã. Agora encosta ao cabeçalho, o
   texto alinha pelo topo da fotografia e o conjunto cabe no primeiro ecrã. */
.svc-s1 section.svc-hero{padding-top:calc(88px + clamp(.6rem,1.4vw,1.2rem))}
.svc-s1 .svc-hero-in{align-items:start}
.svc-s1 .svc-hero-txt{padding-top:clamp(.6rem,2.2vw,2rem)}
.svc-s1 .svc-hero-foto{max-height:min(36rem,calc(100svh - 150px))}
@media(max-width:1180px){.svc-s1 section.svc-hero{padding-top:calc(76px + 1rem)}}

/* inteiras, mas mais pequenas e encostadas ao canto: medido a 1328 px, a
   176 px e a 2,2% iam parar por cima de listas e títulos em seis secções */
.deco.pata{width:clamp(92px,9vw,132px)}
.deco.pata.tl{top:1.6%;left:1.2%} .deco.pata.tr{top:1.6%;right:1.2%}
.deco.pata.bl{bottom:2%;left:1.2%} .deco.pata.br{bottom:2%;right:1.2%}
.deco.cao{width:clamp(110px,10vw,150px)}
.deco.cao.tl{top:1rem;left:1rem} .deco.cao.tr{top:1rem;right:1rem}
.deco.cao.bl{bottom:1rem;left:1rem} .deco.cao.br{bottom:1rem;right:1rem}

/* No telemóvel o texto ocupa a largura toda e os cantos são onde os títulos
   começam: medido a 390 px, cinco patas inteiras caíam em cima de um título.
   "Inteiras ou fora" — no telemóvel ficam fora, como já ficavam os
   autocolantes abaixo dos 600 px. Os pontos de meio-tom ficam. */
@media(max-width:700px){.deco.pata, .deco.cao{display:none}}
@media(max-width:600px){.estrelas{display:none}}
/* no telemóvel a pastilha do horário caía em cima da legenda do carrossel */
@media(max-width:700px){.car-arco .pastilha.p3{display:none}}

/* ===========================================================================
   SEGUNDA VOLTA DE 15/10/2026 — depois de ver no ar
   ======================================================================== */

/* ---- AS PERGUNTAS: "espaça mais entre elas e melhora a qualidade" ---------
   Nas páginas de serviço os <details> vivem dentro do .wrap e não dentro da
   grelha .faq, por isso o gap:.9rem nunca lhes chegou — estavam colados uns
   aos outros, com a sombra larga de todos a fazer uma névoa cinzenta. Agora:
   um centímetro entre cada uma, um fio fino em vez da névoa, a coluna com
   uma largura que se lê, e o sinal + a encher-se de cor quando abre. */
.faq details{border-radius:22px;border:1.5px solid rgba(27,38,32,.08);background:#FFF;
  box-shadow:0 12px 26px -22px rgba(27,38,32,.55);
  transition:border-color .3s, box-shadow .3s, transform .3s}
.faq details + details{margin-top:1rem}
section.faq .wrap > details{max-width:58rem}
.faq details:hover{transform:translateY(-2px);box-shadow:0 20px 34px -24px rgba(27,38,32,.55);
  border-color:color-mix(in srgb, var(--acc, var(--red-dk)) 26%, transparent)}
.faq details[open]{border-color:color-mix(in srgb, var(--acc, var(--red-dk)) 42%, transparent);
  box-shadow:0 22px 40px -26px rgba(27,38,32,.55)}
.faq summary{padding:1.4rem 4.6rem 1.4rem 1.75rem;font-size:1.1rem;line-height:1.35}
.faq summary::after, .faq summary::before{right:1.4rem;width:36px;height:36px}
.faq details[open] summary::after{background:var(--acc, var(--red-dk))}
.faq details[open] summary::before{
  background:linear-gradient(#FFF,#FFF) center/12px 3px no-repeat, linear-gradient(#FFF,#FFF) center/3px 12px no-repeat}
.faq details > p, .faq details > ul{margin:0;padding:0 1.75rem 1.5rem;color:var(--graph);
  font-size:.98rem;line-height:1.7;max-width:70ch;animation:fu .45s cubic-bezier(.16,1,.3,1)}
.faq details > p + p{padding-top:0;margin-top:-.6rem}
@media(max-width:560px){.faq summary{padding:1.15rem 4rem 1.15rem 1.2rem;font-size:1.02rem}
  .faq details > p, .faq details > ul{padding:0 1.2rem 1.25rem}}

/* ---- OS CARTÕES NO FUNDO VERDE: "não sei se fica bem" ----------------------
   Não ficava: quatro pastéis diferentes (rosa, amarelo, azul, verde-claro)
   em cima do verde-escuro liam-se como caixa de lápis. Os quatro passam ao
   mesmo creme quente; a cor de cada serviço fica no título, no preço e no
   botão, que é onde se distingue. Verde, creme e dourado — o trio dela. */
.verde-m .cards-foto .card{background:#FBF5EA!important;box-shadow:0 26px 50px -28px rgba(0,0,0,.6)}
.verde-m .cards-foto .card .cpaw{opacity:.1}

/* ---- CRECHE NA ENTRADA: a mensalidade debaixo dos círculos ----------------- */
.creche-lado{display:grid;gap:clamp(1.8rem,3vw,2.6rem);justify-items:center;align-content:start}
.mensal-cartao{width:100%;max-width:34rem;background:#FFF;border-radius:28px;padding:1.6rem 1.7rem 1.8rem;
  box-shadow:0 0 0 8px rgba(255,255,255,.6),0 26px 50px -30px rgba(27,38,32,.5)}
.mensal-cartao .eyebrow{margin:0}
.mensal-cartao .dias-creche{margin-top:.9rem}
.mensal-cartao .dias-nota{margin-top:.9rem}
.mensal-cartao .hero-cta{margin-top:1.3rem}
@media(max-width:900px){.creche-lado{margin-top:2rem}}
/* a primeira pergunta estava encostada ao título */
section.faq .wrap > h2 + details, section.faq .wrap > .lead + details{margin-top:clamp(1.6rem,2.6vw,2.2rem)}
/* com a mensalidade debaixo dos círculos, o lado das fotos ficou 220 px mais
   alto do que o texto: o texto centra-se na altura, em vez de deixar o vazio
   todo por baixo dele */
@media(min-width:901px){#creche-home .duo-txt{align-self:center}}

/* ---- 16/10/2026: "ou isto propaga-se para cima realisticamente ou sai" -----
   Os pontos de meio-tom presos ao canto DE CIMA tinham a parte mais densa
   encostada à borda da secção, e a onda de cima cortava-os a direito. O mais
   denso desce para um terço da altura e, por cima disso, os pontos vão
   rareando até desaparecerem antes da borda — dissolvem-se, não se cortam.
   (Duas máscaras cruzadas: a radial dá a forma, a linear apaga o topo.) */
.deco.pontos.tr{
  -webkit-mask:radial-gradient(circle at 100% 36%,#000 0 22%,transparent 70%),linear-gradient(transparent,#000 46%);
  -webkit-mask-composite:source-in;
  mask:radial-gradient(circle at 100% 36%,#000 0 22%,transparent 70%),linear-gradient(transparent,#000 46%);
  mask-composite:intersect}
.deco.pontos.tl{
  -webkit-mask:radial-gradient(circle at 0 36%,#000 0 22%,transparent 70%),linear-gradient(transparent,#000 46%);
  -webkit-mask-composite:source-in;
  mask:radial-gradient(circle at 0 36%,#000 0 22%,transparent 70%),linear-gradient(transparent,#000 46%);
  mask-composite:intersect}

/* ---- 21/10/2026: deixaram de fazer tosquias --------------------------------
   Na página dos banhos, "O que inclui" ficou com três cartões em vez de
   quatro: três colunas (e não a grelha de quatro com um buraco), e cartões
   maiores para ocuparem o lugar. Abaixo de 760 px, um por linha — dois e um
   deixavam o terceiro sozinho. As duas tabelas dos banhos (pelo curto e pelo
   comprido) passaram a uma só, a toda a largura da grelha das tabelas. */
.razoes-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.razoes-3 .card h3{font-size:1.3rem}
.razoes-3 .card p{font-size:1.02rem;line-height:1.6}
@media(max-width:760px){.razoes-3{grid-template-columns:1fr}}
.tab-larga{grid-column:1/-1}
/* no telemóvel, "PELO COMPRIDO" é mais largo do que era "TOSQUIA" e apertava
   a coluna do porte para três e quatro linhas: menos ar à volta dos preços */
@media(max-width:760px){
  .tab-larga thead td{letter-spacing:.06em;padding-inline:.5rem}
  .tab-larga tbody td{padding-inline:.5rem;font-size:1.3rem}
  .tab-larga thead th, .tab-larga tbody th{padding-right:.4rem}
  .tab-larga thead td:last-child, .tab-larga tbody td:last-child{padding-right:1rem}
}
/* 21/10/2026: o osso do fecho dos banhos foi para o canto da direita; entre
   901 e 1090 px a fotografia chega lá e ele ficava em cima do canto dela */
@media(900px < width < 1100px){.stk.osso-cta{display:none}}


/* ===========================================================================
   A RONDA DE 22/10/2026 — as notas do Eduardo, página a página, e
   "põe sempre de escuro, clica e fica claro, para todos"
   ======================================================================== */
:root{--creche-home:#FFD23F;--passos-bg:#FFF0C4;--bordeaux:#7A1F2B;--btn-esc:#8E3220;--preco:#8E3220}
/* 22/10/2026, à tarde: "põe os botões sempre vermelho como o botão reservar" —
   o --btn-esc deixou de ser escuro e passou ao vermelho do Reservar */

/* ---- TODAS AS PÁGINAS: secções mais curtas -------------------------------- */
section{padding-block:clamp(2rem,4vw,3.3rem)}
.trio-fotos figure{aspect-ratio:4/5}

/* ---- BOTÕES: escuros sempre; ao passar o rato e ao clicar ficam claros ----
   Ganha a todas as variantes de cor que se foram juntando (por serviço, por
   secção), daí o !important: é uma regra para o site inteiro. */
.btn, .btn.fill, .btn.ghost{background:var(--btn-esc)!important;border-color:var(--btn-esc)!important;
  color:#FFF!important;filter:none!important}
.btn:hover, .btn:active, .btn:focus-visible{background:#FFF!important;border-color:var(--btn-esc)!important;
  color:var(--btn-esc)!important}
/* sobre fundo escuro, o botão escuro leva um aro claro para se ver */
.rec .btn, body>footer .btn, .verde-m .btn, .mais-hotel .btn, .svc-s1 .svc-hero .btn, .pg-faq .pagetop .btn{
  box-shadow:0 0 0 2px rgba(255,255,255,.92)!important}

/* ---- INÍCIO ---------------------------------------------------------------- */
/* o carrossel do "Espaço a sério": sem as bolinhas, e a deslizar em vez de
   desvanecer (js: a que estava ganha .sai e sai pela esquerda) */
.car-pontos{display:none!important}
#quinta .car-arco{margin-bottom:0}
.car-arco.desliza figure{opacity:1;transform:translateX(101%);transition:none;z-index:0}
.car-arco.desliza figure.on{transform:none;z-index:2;transition:transform 1.05s cubic-bezier(.65,0,.35,1)}
.car-arco.desliza figure.sai{transform:translateX(-101%);z-index:1;transition:transform 1.05s cubic-bezier(.65,0,.35,1)}
@media(prefers-reduced-motion:reduce){.car-arco.desliza figure{transition:none!important}}

/* a creche: fora as "bolinhas"; o bege passou a amarelo da creche, e o
   vermelho do fim ("nenhuma.") a bordeaux. O cartão da mensalidade fica
   ao centro da coluna. */
#creche-home h2 em{color:var(--bordeaux)}
#creche-home .creche-lado{align-self:center}
#creche-home .mensal-cartao{box-shadow:0 26px 50px -30px rgba(90,58,0,.6)}

/* "Da primeira chamada à primeira noite": o bege passou a amarelo claro */
#passos .visita{background:#FFF}
#passos .visita .btn + .btn{margin-left:.5rem}

/* Reconhecimento: sem o degradê e sem a linha tracejada */
.rec{background:var(--night)!important}
.guests{border-top:0;padding-top:0;margin-top:2rem}

/* Testemunhos: fundo branco, colunas mais baixas e mais rápidas (js) */
.quotes{background:#FFF}
.tcols{max-height:440px;margin-top:2.2rem}
.quotes .btn + .btn{margin-left:.5rem}

/* as redes sociais, em destaque no rodapé de todas as páginas */
body>footer .fredes{gap:.55rem;margin-top:.5rem}
body>footer .fredes a, body>footer .fredes a:hover{display:inline-flex;align-items:center;gap:.5rem;
  padding:.62rem 1.15rem;border-radius:999px;font-weight:700;font-size:.98rem;color:#FFF;
  text-decoration:none;box-shadow:0 10px 20px -12px rgba(0,0,0,.6)}
body>footer .fredes a[href*="instagram"], body>footer .fredes a[href*="instagram"]:hover{
  background:linear-gradient(45deg,#F58529,#DD2A7B 55%,#8134AF)}
body>footer .fredes a[href*="facebook"], body>footer .fredes a[href*="facebook"]:hover{background:#1877F2}
body>footer .fredes a.wa, body>footer .fredes a.wa:hover{background:#25D366;color:#0B3B1E}
body>footer .fredes a:hover{transform:translateY(-2px);filter:brightness(1.08)}
body>footer .fredes svg{width:20px;height:20px;flex:0 0 20px}

/* ---- PET HOTEL ------------------------------------------------------------- */
/* cores mais fortes: o rosa claro das secções passou a salmão */
.svc-s1{--acc-lt:#F6CDBD;--s1-lt:#F6CDBD}
/* topo: "Quinta Diamante" a branco, com o diamante colado ao texto; sem
   patas nem diamantes de fundo; a fotografia sem o "respira" (menos zoom),
   um pouco mais acima, e uma pata grande que aparece devagar atrás dela */
.svc-s1 .svc-hero .eb-quinta{display:inline-flex;align-items:center;gap:.6rem;color:#FFF;
  font-size:clamp(.82rem,1.15vw,.98rem);letter-spacing:.22em;font-weight:800}
.eb-quinta i.pt-gema{display:inline-block;width:30px;height:26px;flex:0 0 30px;border-radius:0;background:none}
.eb-quinta i.pt-gema::after{display:none}
.eb-quinta i.pt-gema svg{width:100%;height:100%;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}
.svc-s1 .svc-hero-foto img{animation:arcoAbre 1.5s cubic-bezier(.65,.05,.36,1) .15s both!important;object-position:50% 58%}
.svc-s1 .svc-hero .foto-pata{margin-top:-12px}
.foto-pata{position:relative;display:grid;width:100%}
.foto-pata > figure{position:relative;z-index:1}
.pata-atras{position:absolute;z-index:0;width:clamp(110px,11vw,160px);left:-62px;top:-30px;pointer-events:none;
  opacity:0;transform:rotate(-20deg) scale(.6);animation:pataDevagar 2.8s cubic-bezier(.3,1,.4,1) .9s forwards}
.pata-atras svg{width:100%;height:auto;display:block;fill:currentColor;
  animation:pataBalanca 7s ease-in-out 3.8s infinite}
.svc-s1 .svc-hero .pata-atras{color:#FFD5C4}
#gatos .pata-atras{color:var(--red);left:auto;right:-58px;top:-26px;transform:rotate(16deg) scale(.6);
  animation-name:pataDevagarD;animation-play-state:paused}
#gatos .foto-pata.in .pata-atras{animation-play-state:running}
@keyframes pataDevagar{to{opacity:.95;transform:rotate(-20deg) scale(1)}}
@keyframes pataDevagarD{to{opacity:.9;transform:rotate(16deg) scale(1)}}
@keyframes pataBalanca{0%,100%{transform:rotate(0)}50%{transform:rotate(7deg) translateY(-4px)}}
@media(prefers-reduced-motion:reduce){
  .pata-atras{animation:none!important;opacity:.9;transform:rotate(-20deg)}
  .pata-atras svg{animation:none}}
@media(max-width:860px){
  .svc-hero-in > .foto-pata{order:-1;justify-self:center;max-width:22rem}
  .pata-atras{left:-30px;top:-22px;width:96px}
  #gatos .pata-atras{right:-20px}}
/* os dois autocolantes animados (casota e gato) com contorno preto */
.svc-s1 .stk svg{filter:drop-shadow(2.4px 0 0 #111) drop-shadow(-2.4px 0 0 #111)
  drop-shadow(0 2.4px 0 #111) drop-shadow(0 -2.4px 0 #111) drop-shadow(0 14px 20px rgba(30,42,68,.26))}
/* as duas caixas com cor a sério */
.svc-s1 #porque .caixa-svc:nth-child(1){background:#FFD866;border-color:#E0A800}
.svc-s1 #porque .caixa-svc:nth-child(2){background:#A9DDB0;border-color:#3E8A55}
.svc-s1 #porque .caixa-svc p{color:var(--ink)}
.svc-s1 #porque .caixa-svc .btn + .btn{margin-left:.5rem}
/* as três fotografias: contorno preto, etiquetas a vermelho, mais acima */
.svc-s1 #porque .trio-fotos{margin-top:clamp(1rem,2vw,1.5rem)}
.svc-s1 #porque .trio-fotos figure{border:5px solid #111;box-shadow:0 18px 34px -20px rgba(0,0,0,.6)}
.svc-s1 .legenda{background:#B5302A;color:#FFF;backdrop-filter:none}
/* Descubra o hotel: o carrossel vertical, sem o telemóvel à volta */
.vert-car{position:relative;justify-self:center;width:min(340px,82vw);aspect-ratio:3/4.2;
  border-radius:var(--arco);overflow:hidden;background:#FFF;
  box-shadow:0 0 0 8px #FFF,0 30px 60px -30px rgba(0,0,0,.45)}
.vert-car .seq-pista.seq-v{padding:.5rem .5rem 0}
@media(max-width:900px){.vert-car{margin-top:1.5rem}}
/* os preços no mesmo vermelho do botão de reservar */
.svc-s1 .azulejo{background:#FFF;border-color:#FFF;box-shadow:0 18px 34px -24px rgba(110,30,20,.55)}
.svc-s1 .azulejo span{color:var(--ink)}
.svc-s1 .azulejo em{color:var(--preco);font-size:2.3rem}
.svc-s1 .azulejo small{color:var(--graph)}

/* ---- CRECHE ---------------------------------------------------------------- */
/* "Nove horas sozinho": o título ao centro, por cima dos três momentos; a
   fotografia alinhada pelo início do texto */
.svc-s2 #creche-detalhe .wrap > .manu, .svc-s2 #creche-detalhe .wrap > .eyebrow,
.svc-s2 #creche-detalhe .wrap > h2, .svc-s2 #creche-detalhe .wrap > .lead{text-align:center;margin-inline:auto}
.svc-s2 #creche-detalhe .duo{align-items:start}
.svc-s2 #creche-detalhe .duo > .foto-deco{align-self:start;margin-top:0}
.svc-s2 #creche-detalhe .duo-txt > h3:first-child{margin-top:0}
/* as caixas brancas do acordo passam a amarelo forte */
.svc-s2 #acordo .caixa-svc{background:#F5AE00;border-color:#D99600}
.svc-s2 #acordo .caixa-svc h3{color:var(--ink)}
.svc-s2 #acordo .caixa-svc :is(p,li){color:var(--ink)}
/* botões ao centro */
.svc-s2 #mensalidades p:has(> .btn), .svc-s2 #perguntas-creche p:has(> .btn){text-align:center}
.svc-s2 p:has(> .btn) .btn + .btn{margin-left:.5rem}
/* as perguntas com a cor da creche */
.svc-s2 #perguntas-creche{background:#FFD23F!important}

/* ---- BANHOS ---------------------------------------------------------------- */
.svc-s3 .card .cpaw{fill:#C8201B;opacity:.55}
/* preços mais compactos: título à esquerda, tabela à direita */
@media(min-width:960px){
  .svc-s3 #precos .wrap{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
    column-gap:clamp(2rem,4vw,3.5rem);align-items:start}
  .svc-s3 #precos .wrap > *{grid-column:1}
  .svc-s3 #precos .wrap > .tabelas{grid-column:2;grid-row:1 / span 8;margin-top:0!important}
  .svc-s3 #precos .wrap > .tabelas .tab{margin:0}
}

/* ---- A QUINTA, PREÇOS E PERGUNTAS: o topo como nos serviços ----------------
   cor cheia de ponta a ponta, uma só cor, e só os cantos de baixo redondos */
.svc-casa section.svc-hero, .pg-precos .pagetop, .pg-faq .pagetop{margin:0;
  border-radius:0 0 clamp(30px,4.5vw,64px) clamp(30px,4.5vw,64px)}
.svc-casa section.svc-hero{background:#2A73AA!important}
.svc-casa .svc-hero .svc-factos li{background:#FFF;border-color:transparent;color:var(--ink)}
.svc-casa .svc-hero-foto{box-shadow:0 0 0 8px #FFF,0 30px 60px -30px rgba(0,0,0,.45)}
.pg-precos .pagetop{background:#F4A900!important}
.pg-precos .pagetop :is(h1,.lead,.eyebrow,.manu,.crumbs,.crumbs a){color:var(--ink)}
.pg-faq .pagetop{background:var(--verde-m)!important}
.pg-faq .pagetop :is(h1,.lead,.eyebrow,.crumbs,.crumbs a){color:#FFF}
.pg-faq .pagetop .phrase{color:var(--ouro)}
.pg-precos .pagetop::before, .pg-precos .pagetop::after, .pg-faq .pagetop::before, .pg-faq .pagetop::after{display:none}

/* ---- PREÇOS: outro destaque nos preços, com o marcador ----------------------
   o marcador (que era uma coisa só por página) passa a sublinhar cada preço
   das tabelas, e os números sobem de tamanho */
.pg-precos .tab tbody td{font-size:1.75rem;font-weight:800}
.pg-precos .tab tbody td .marca{isolation:isolate}
.pg-precos .tab tbody td .marca::before{opacity:.75;top:.28em;bottom:-.02em}
.marca::before{opacity:.7}
body>footer .fredes a.wa{padding:.62rem 1.15rem;border-radius:999px;font-weight:700;font-size:.98rem}

/* ---- RESERVAS: hotel, creche ou banho (22/10/2026) -------------------------
   "põe maneira de reservar creche e banho igualmente". O passo 1 abre com a
   escolha do serviço; na creche e no banho não se pergunta cão ou gato (são
   só para cães), e no banho aparece o pelo, que define o preço. */
.resv-servico{margin:0 0 1.6rem;padding-bottom:1.4rem;border-bottom:1px dashed var(--line-2)}
.resv-servico .gr-perg{margin-top:0}
.resv-serv{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem}
.pills label.resv-sv{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;
  padding:.9rem 1.05rem;border-radius:18px;border:2px solid var(--line-2);background:#FFF;text-align:left;min-height:4.6rem}
.resv-sv b{font-family:var(--f-display);font-weight:700;font-size:1.06rem;color:var(--ink)}
.resv-sv small{font-size:.8rem;color:var(--soft);line-height:1.35}
.pills input:checked+label.resv-sv{background:var(--btn-esc);border-color:var(--btn-esc)}
.pills input:checked+label.resv-sv b, .pills input:checked+label.resv-sv small{color:#FFF}
@media(max-width:560px){.resv-serv{grid-template-columns:1fr}.pills label.resv-sv{min-height:0}}
#resv:not([data-servico="hotel"]) .gr-esp-bloco{display:none}
.gr-pelo-bloco{display:none}
#resv[data-servico="banho"] .gr-linha[data-esp="cao"] .gr-pelo-bloco{display:block;animation:grEntra .45s cubic-bezier(.2,.8,.3,1)}

/* painel: os pedidos de creche e de banho levam uma etiqueta (22/10/2026) */
.p-svc{display:inline-block;padding:.08rem .5rem;border-radius:999px;font-size:.72rem;font-weight:800;
  letter-spacing:.04em;text-transform:uppercase;vertical-align:.1em;margin-right:.3rem;color:var(--ink);background:#FFD23F}
.p-svc.banho{background:#BFE3FA}
.f-svc{margin:0 0 1rem;padding:.7rem .9rem;border-radius:12px;background:var(--cream);font-weight:600;color:var(--ink)}
/* Perguntas: o topo passou a verde-escuro; o cabeçalho por cima dele fica a
   branco enquanto não se desce, como no Pet Hotel */
@media(min-width:1181px){body:has(main.pg-faq) #hd:not(.solid) nav a:not(.on){color:#FFF}}
body:has(main.pg-faq) #hd:not(.solid) .logo b, body:has(main.pg-faq) #hd:not(.solid) .logo b i,
body:has(main.pg-faq) #hd:not(.solid) .logo small{color:#FFF}
body:has(main.pg-faq) #hd:not(.solid) .burger{box-shadow:0 0 0 2px #FFF}

/* ===========================================================================
   22/10/2026, à tarde — "não uses fundos brancos em nenhum lado; se tiver
   branco, volta a usar uma cor que já foi usada noutro sítio; fundo algo
   vivo e forte mesmo". Cada secção que era branca, creme ou pastel leva
   class="viva" e a cor em style="--viva:…" — só cores que o site já usa.
   O :is(#nada, main) dá peso de id à regra: há cores antigas presas por id
   com !important (#creche-detalhe, #perguntas-banhos…) que ela tem de vencer.
   ======================================================================== */
:is(#nada, main) section.viva{background:var(--viva)!important}
/* o texto cinzento foi escolhido para fundos claros: nas cores vivas escurece */
.viva{--graph:#24302A;--soft:#2F3B34}
/* as ondas entre secções: a cor de cima e a de baixo vêm do html (--onda-bg) */
:is(#nada, main) svg.wave[style*="--onda-bg"]{background:var(--onda-bg)!important}
/* o fundo da página é a cor da secção a seguir ao topo: é o que aparece nos
   cantos redondos do topo e por trás do cabeçalho */
body:has(main.content){background:#7FA9CC}
main.content{background:#7FA9CC}
body:has(main.svc-casa){background:#357A38}
body:has(main.pg-precos){background:#2A73AA}
body:has(main.pg-faq){background:#2A73AA}
body:has(main.pg-servicos){background:#2A73AA}
body:has(main.resv-main){background:#357A38}
/* Serviços e Reservas: o topo também de ponta a ponta, numa cor só */
.pg-servicos .pagetop, .resv-main .pagetop{margin:0;
  border-radius:0 0 clamp(30px,4.5vw,64px) clamp(30px,4.5vw,64px)}
.pg-servicos .pagetop{background:#F6CDBD!important}
.resv-main .pagetop{background:#2A73AA!important}
.pg-servicos .pagetop::before, .pg-servicos .pagetop::after,
.resv-main .pagetop::before, .resv-main .pagetop::after{display:none}

/* ---- A Quinta: as quatro fotografias da equipa à volta da história -------
   Flutuam devagar, cada uma no seu tempo; usam rotate/translate (e não
   transform) para não lutarem com a revelação .rv-l/.rv-r. */
.historia-volta{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,34rem) minmax(0,1fr);
  gap:clamp(1.2rem,3vw,2.6rem);align-items:center;max-width:78rem}
.historia-volta .hv-txt{max-width:none}
.hv-col{display:grid;gap:clamp(1.4rem,3vw,2.6rem)}
.hv-esq{justify-items:end}
.hv-dir{justify-items:start}
.hv-f{margin:0;width:min(100%,15rem);aspect-ratio:3/4;border-radius:var(--arco);overflow:hidden;
  box-shadow:0 0 0 7px #FFF,0 26px 50px -26px rgba(0,0,0,.5);
  animation:hvFlutua 7s ease-in-out infinite}
.hv-f img{width:100%;height:100%;object-fit:cover;display:block;transition:scale .6s cubic-bezier(.2,.8,.3,1)}
.hv-f:hover img{scale:1.06}
.hv-1{rotate:-5deg}
.hv-2{rotate:4deg;margin-right:2.4rem;animation-delay:-2.4s;animation-duration:8s}
.hv-3{rotate:5deg;animation-delay:-1.2s;animation-duration:7.6s}
.hv-4{rotate:-4deg;margin-left:2.4rem;animation-delay:-3.6s;animation-duration:8.4s}
@keyframes hvFlutua{0%,100%{translate:0 0}50%{translate:0 -14px}}
@media(prefers-reduced-motion:reduce){.hv-f{animation:none}}
@media(max-width:960px){
  .historia-volta{grid-template-columns:1fr}
  .hv-col{grid-auto-flow:column;justify-content:center;justify-items:center;gap:1.2rem}
  .hv-esq{order:-1}
  .hv-f{width:min(40vw,11rem)}
  .hv-2, .hv-4{margin:0}
}

/* ---- A Quinta, fecho: os três desenhos que vieram de "Mais do que um hotel" */
.figuras-quinta{list-style:none;margin:1.8rem auto 1.6rem;padding:0;display:flex;justify-content:center;
  flex-wrap:wrap;gap:clamp(1rem,3vw,2.4rem)}
.figuras-quinta li{display:grid;justify-items:center;gap:.55rem}
.figuras-quinta .mh-ico{margin:0;box-shadow:0 14px 26px -16px rgba(0,0,0,.5);
  animation:hvFlutua 6s ease-in-out infinite}
.figuras-quinta li:nth-child(2) .mh-ico{animation-delay:-2s}
.figuras-quinta li:nth-child(3) .mh-ico{animation-delay:-4s}
.figuras-quinta b{font-family:var(--f-display);font-size:1.05rem;color:var(--ink)}
@media(prefers-reduced-motion:reduce){.figuras-quinta .mh-ico{animation:none}}
/* as etiquetas pequenas (eyebrow e manuscrita) ficavam a 3,5–4,5:1 sobre o
   azul, o ouro e o amarelo forte: nas secções vivas passam ao tom fundo */
:is(#nada, main) .viva :is(.eyebrow,.manu){color:#6B2416}
:is(#nada, main).svc-casa .viva :is(.eyebrow,.manu){color:#1E3D22}
/* o trilho de patas da entrada, mais comprido ("prolonga estas partes"):
   18 pegadas em vez de 7; o que não couber numa linha sai pela borda em vez
   de saltar para baixo */
.passinhos{flex-wrap:nowrap;overflow:hidden;max-width:100%}
.passinhos i{flex:0 0 26px}
/* "Sai de casa cheio de energia / Volta a casa sem nenhuma": mais pequeno,
   para se ler mais depressa — letra menor e menos ar entre as linhas */
#creche-home h2{font-size:clamp(1.7rem,3vw,2.45rem)}
#creche-home .lead{font-size:.98rem;line-height:1.6}
#creche-home .lista-check{margin-top:1.1rem;gap:.5rem}
#creche-home .lista-check li{font-size:.92rem;line-height:1.5}

/* 22/10/2026: "tira todos os comentários dentro das fotos" — legendas,
   balões, autocolantes de texto e pastilhas por cima das fotografias */
figure figcaption, .autoc, .pastilha, .selo-foto{display:none!important}

/* 22/10/2026: páginas de serviço sem cores pálidas — os fundos grandes
   claros passam ao tom forte da própria página; o branco fica (é o par do
   tema) e os cartões por dentro ficam como estavam */
:is(#nada, main).svc-s1 :is(#descubra, #precos){background:#A83E27!important}
.svc-s1 :is(#descubra, #precos) :is(h2, .eyebrow, .manu){color:#FFF}
.svc-s1 :is(#descubra, #precos) h2 em{color:#FFE3D6}
.svc-s1 :is(#descubra, #precos) .btn{box-shadow:0 0 0 2px #FFF!important}
:is(#nada, main).svc-s1 svg.wave{background:#A83E27!important}
body:has(main.svc-s1){background:#FFF}
:is(#nada, main).svc-s2 #porque{background:#F5B82E!important}
:is(#nada, main).svc-s2 #acordo{background:#FFF!important}
body:has(main.svc-s2){background:#FFD23F}
:is(#nada, main).svc-s3 :is(#porque, #perguntas-banhos){background:#2B76AF!important}
:is(#nada, main).svc-s3 #precos{background:#1F6CA3!important}
body:has(main.svc-s3){background:#2B76AF}
:is(#nada, main).svc-s4 #porque{background:#357A38!important}
:is(#nada, main).svc-s4 #como{background:#2E7030!important}
body:has(main.svc-s4){background:#357A38}
:is(.svc-s2, .svc-s3, .svc-s4) section:not(.svc-hero){--graph:#24302A;--soft:#2F3B34}
:is(#nada, main):is(.svc-s3, .svc-s4) section:not(.svc-hero) :is(.eyebrow, .manu){color:#14212B}
.svc-s1 #precos :is(.mnote, .exige){background:#FFF}
:is(#nada, main).svc-s2 section:not(.svc-hero) .manu{color:#6B2416}

/* ===========================================================================
   24/10/2026 — a arrumação mandada pela Mafalda: cada página de serviço só
   com o preço "desde"; a visita num bloco único no rodapé; três passos
   ======================================================================== */
.desde{margin:1.4rem 0 0;font-family:var(--f-display);font-size:1.15rem;color:var(--ink)}
.desde b{font-size:clamp(2.4rem,5vw,3.4rem);font-weight:800;color:var(--preco);margin:0 .15em;line-height:1}
.desde-nota{margin:.5rem 0 0;font-size:.95rem;color:var(--graph)}
.svc-s1 #precos .desde b{color:#FFF}
.svc-s1 #precos :is(.desde, .desde-nota){color:#FFF}
.steps-4.tres{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:900px){.steps-4.tres{grid-template-columns:1fr}}
.fvisita{display:flex;align-items:center;justify-content:space-between;gap:1rem 2rem;flex-wrap:wrap;
  margin:0 0 2.4rem;padding:1.2rem 1.5rem;border-radius:22px;background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.14)}
.fvisita p{margin:0;color:#E6EEE8;max-width:62ch;line-height:1.55}
.fvisita b{color:#FFF;font-family:var(--f-display);font-size:1.15rem;margin-right:.3rem}
.caixas-2:has(> .caixa-svc:only-child){grid-template-columns:1fr}
/* 24/10/2026: "põe isto em vermelho" — a caixa da medicação no Pet Hotel */
.svc-s1 #porque .caixa-svc:nth-child(1){background:#A83E27;border-color:#8E3220}
.svc-s1 #porque .caixa-svc:nth-child(1) :is(h3, p){color:#FFF}

/* 24/10/2026: "põe Pet Hotel Quinta Diamante no início e põe Gondomar, e uma
   foto melhor". O nome completo e a terra na capa; e no cabeçalho a segunda
   linha do logótipo volta a ver-se também nos portáteis (estava escondida
   abaixo de 1380 px), mais compacta para o menu continuar a caber. */
.cover-in .mark .b{color:var(--ink);font-size:clamp(1.05rem,2.8vw,1.8rem)}
.cover-in .mark .c{font-size:clamp(.78rem,1.8vw,1.05rem);font-weight:600;letter-spacing:.34em;color:var(--graph);margin-top:.15em}
.cover-bg img{object-position:50% 45%}
@media(max-width:700px){.cover-bg img{object-position:30% 50%}}
.logo small{white-space:nowrap}
@media(max-width:1380px){.logo small{display:block;font-size:.55rem;letter-spacing:.1em}}
@media(max-width:520px){.logo small{display:block;font-size:.5rem;letter-spacing:.06em}}
/* o véu claro da capa encolhe à zona do nome: com a foto do pomar os cães
   estão ao centro, e o véu grande lavava-os por inteiro */
.cover-bg::after{background:radial-gradient(ellipse 34% 32% at 50% 46%,rgba(255,253,250,.9),
  rgba(255,250,242,.7) 55%,rgba(255,246,234,0) 100%)!important}
@media(max-width:760px){.cover-bg::after{background:radial-gradient(ellipse 90% 34% at 50% 42%,
  rgba(255,253,250,.9),rgba(255,250,242,.7) 55%,rgba(255,246,234,0) 100%)!important}}
.cover-in .mark{text-shadow:0 0 22px rgba(255,253,250,.95),0 0 6px rgba(255,253,250,.9)}
@media(min-width:761px){.cover-bg img{object-position:0% 45%}}

/* 24/10/2026: a capa volta aos dois cães junto ao tanque (os cães ficam dos
   lados e o nome ao centro); as opiniões a vermelho; o azul da entrada mais
   sóbrio (#7FA9CC em vez do céu) */
.cover-bg img{object-position:50% 64%!important}
@media(max-width:760px){.cover-bg img{object-position:62% 50%!important}}
:is(#nada, main) #testemunhos .head :is(h2, .lead){color:#FFF}
:is(#nada, main) #testemunhos.viva :is(.eyebrow, .manu){color:#FFE3D6}
#testemunhos .btn{box-shadow:0 0 0 2px #FFF!important}
:is(#nada, main).content .viva :is(.eyebrow, .manu){color:#4A1810}

/* 25/10/2026: "Gondomar em cima e com mais destaque, porque o nosso nome é
   Pet Hotel Gondomar; a Quinta Diamante é o nome da quinta" */
.cover-in .mark .b{font-size:clamp(1.3rem,3.6vw,2.4rem);letter-spacing:.3em;color:var(--ink);font-weight:700}
.cover-in .mark .c{font-size:clamp(.95rem,2vw,1.25rem);letter-spacing:.04em;font-style:italic;font-weight:500;color:var(--graph)}

/* ===========================================================================
   25/10/2026 — O INÍCIO NOVO (copywriting oficial da Mafalda). "Parece estar
   amador; cores mais coerentes entre elas, sequências mais animadas." As
   cores ficam só as da casa: branco, verde-escuro com dourado, e o vermelho
   das opiniões; e cada bloco entra com movimento.
   ======================================================================== */
body:has(main.content), main.content{background:#FFF}
/* capa: a frase da família e a linha verde, agora uma frase inteira */
.capa-familia{font-family:var(--f-hand);font-size:clamp(1.35rem,2.8vw,2rem);color:var(--red-dk);
  margin:.2rem 0 .7rem;text-shadow:0 0 18px rgba(255,253,250,.95),0 0 4px rgba(255,253,250,.9)}
.cover-in .sub{display:inline-block;max-width:min(46ch,92vw);white-space:normal;line-height:1.5;
  border-radius:22px;text-align:center}
/* os quatro serviços: preço e ligação no fundo do cartão, e o cartão sobe ao passar */
.inicio25 .cards-foto .card{transition:transform .35s cubic-bezier(.2,.8,.3,1),box-shadow .35s}
.inicio25 .cards-foto .card:hover{transform:translateY(-6px);box-shadow:0 26px 50px -24px rgba(0,0,0,.55)}
.cf-preco{margin:auto 1.3rem 0;padding-top:1rem;font-size:.92rem;color:var(--graph);line-height:1.5}
.cf-preco b{font-family:var(--f-display);font-size:1.25rem;color:var(--preco)}
.cf-link{margin:.8rem 1.3rem 1.4rem;font-family:var(--f-display);font-weight:700;color:var(--ink);
  text-decoration:none;display:inline-flex;align-items:center;gap:.4rem;align-self:flex-start}
.cf-link span{transition:transform .3s}
.cf-link:hover span, .card:hover .cf-link span{transform:translateX(6px)}
.cf-link:hover{color:var(--preco)}
/* três passos numerados (1, 2, 3) em círculos dourados que entram um a um */
.passos25 .step::before{content:counter(s)!important;counter-increment:s!important;
  background:var(--ouro)!important;background-image:none!important;clip-path:none!important;
  -webkit-mask:none!important;mask:none!important;width:2.6rem!important;height:2.6rem!important;
  border-radius:50%!important;color:#1B2620!important;font-family:var(--f-display);font-weight:800;font-size:1.15rem;
  display:grid!important;place-items:center;box-shadow:0 10px 20px -10px rgba(122,82,0,.7)}
.passos25{counter-reset:s}
.passos25.in .step::before{animation:passoEntra .6s cubic-bezier(.3,1.6,.5,1) both}
.passos25.in .step:nth-child(2)::before{animation-delay:.18s}
.passos25.in .step:nth-child(3)::before{animation-delay:.36s}
@keyframes passoEntra{from{transform:scale(.3);opacity:0}to{transform:none;opacity:1}}
/* o fecho: a fotografia do pomar por trás, com um véu verde-escuro, a mexer devagar */
.fecho25{position:relative;isolation:isolate;overflow:hidden;color:#FFF;text-align:center;
  padding-block:clamp(4.5rem,10vw,7.5rem) calc(clamp(4.5rem,10vw,7.5rem) + clamp(46px,6.5vw,92px))}
.fecho25-fundo{position:absolute;inset:0;z-index:-1}
.fecho25-fundo img{width:100%;height:100%;object-fit:cover;object-position:50% 45%;
  animation:fechoZoom 26s ease-in-out infinite alternate}
.fecho25-fundo::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(15,46,30,.78),rgba(15,46,30,.88))}
@keyframes fechoZoom{from{transform:scale(1)}to{transform:scale(1.1)}}
.fecho25 h2{color:#FFF}
.fecho25 h2 em{color:var(--ouro)}
.fecho25 .lead{color:#E6EEE8;margin-inline:auto;max-width:56ch}
.fecho25-botoes{margin-top:1.8rem;display:flex;gap:.7rem;justify-content:center;flex-wrap:wrap}
.fecho25 .btn{box-shadow:0 0 0 2px rgba(255,255,255,.9)!important}
@media(prefers-reduced-motion:reduce){.fecho25-fundo img, .passos25.in .step::before{animation:none}}
/* a primeira secção depois da capa: branca, com a etiqueta e o título ao lado da foto */
.inicio25 #conte .lead{max-width:52ch}
body:has(main.inicio25) .fvisita{display:none}

/* ==========================================================================
   25/10/2026: OS BLOCOS NOVOS DO TEXTO OFICIAL
   ======================================================================= */
.ouvimos25, .regresso25{max-width:46rem;margin-inline:auto;text-align:center}
.ouvimos25 .lead, .regresso25 .lead{margin:1.1rem auto 0;max-width:60ch}
.regresso-links{margin-top:1.4rem;display:flex;gap:1.6rem;justify-content:center;flex-wrap:wrap}
/* os três preços do Pet Hotel, no vermelho */
.precos25{list-style:none;padding:0;margin:clamp(1.4rem,3vw,2rem) 0 0;
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.precos25 li{background:rgba(255,255,255,.12);border:1.5px solid rgba(255,255,255,.4);border-radius:var(--r-lg);
  padding:1.2rem 1.3rem;color:#FFF;font-size:1rem;line-height:1.45}
.precos25 b{display:block;font-family:var(--f-display);font-size:clamp(1.6rem,2.6vw,2.1rem);font-weight:600;color:#FFD27A;margin:.25rem 0}
#precos .desde-nota{color:#FFF}
@media(max-width:760px){.precos25{grid-template-columns:1fr}}
/* creche: as notas debaixo das mensalidades */
.mens-notas{list-style:none;padding:0;margin:1.6rem 0 0;max-width:52rem;display:grid;gap:.55rem}
.mens-notas li{position:relative;padding-left:1.4rem;line-height:1.55}
.mens-notas li::before{content:"";position:absolute;left:0;top:.6em;width:.5rem;height:.5rem;border-radius:50%;background:var(--ink)}
.caixa-larga{grid-column:1/-1;margin-top:clamp(1.2rem,2.4vw,1.8rem)}
/* a quinta: as três frases dos hóspedes, por baixo das fotos e nunca por cima */
.dizem25{list-style:none;padding:0;margin:clamp(1.6rem,3vw,2.4rem) 0 0;
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.dizem25 li{background:#FFF;border-radius:var(--r-lg);padding:1.1rem 1.3rem;text-align:center;
  font-family:var(--f-display);font-style:italic;font-size:clamp(1.02rem,1.5vw,1.18rem);line-height:1.4;color:var(--ink)}
@media(max-width:760px){.dizem25{grid-template-columns:1fr}}
.hospedes25 figure{aspect-ratio:4/5}
/* preços: o ×4 e o ×2 do pet táxi, e os dois lados do que está incluído */
.taxi-nota .taxi-vezes{margin:.7rem 0 .8rem}
.taxi-vezes li{line-height:1.55}
.inc-cols h4{font-size:1.08rem;margin:0 0 .7rem}
/* os fechos novos não repetem a cor da secção de cima */
.svc-s2 #fecho-creche{background:#F5B82E!important}
.svc-s3 #fecho-banhos{background:#1F6CA3!important}
/* a quinta: oito espaços em duas filas de quatro, sem cartões órfãos */
@media(min-width:1101px){.espacos{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(min-width:561px) and (max-width:1100px){.espacos{grid-template-columns:1fr 1fr}}
/* pet hotel: sem a madeira, os cinco cartões ficam vermelho forte e branco (nada de rosa) */
.svc-s1 #porque .razoes .card{background:#A83E27;border-color:#A83E27}
.svc-s1 #porque .razoes .card h3, .svc-s1 #porque .razoes .card p{color:#FFF}
.svc-s1 #porque .razoes .card .num{color:#FFD27A}
.tab .marca small{font-size:.62em;font-weight:500;letter-spacing:.02em;margin-right:.15em}
/* pet hotel: a lista "Traga, por favor" e a visita ficam brancas sobre o vermelho */
.svc-s1 #descubra .lista-check li, .svc-s1 #descubra p:not(.eyebrow){color:#FFF}
/* o caminho do topo, legível sobre o azul (a quinta, reservas) */
:is(main.svc-casa, main.resv-main) .crumbs, :is(main.svc-casa, main.resv-main) .crumbs a{color:#2E3A33}

/* ===========================================================================
   25/10/2026, À TARDE — A RONDA DOS PRINTS DA MAFALDA (17 notas por WhatsApp)
   "Tudo muito bem alinhado, os textos alinhados com as bordas das fotos,
   tudo super enquadrado." Cada bloco diz a nota a que responde.
   ======================================================================== */

/* ---- INÍCIO · capa: "altera a imagem de fundo, fotos mais bonitas" -------
   Três fotografias ao alto lado a lado, separadas por um fio branco. */
.capa-tri{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;background:#FFF}
.capa-tri img{width:100%;height:100%;object-fit:cover;transform:none!important;filter:saturate(1.08)}
.capa-tri img:nth-child(1){object-position:50% 40%!important}
.capa-tri img:nth-child(2){object-position:50% 62%!important}
.capa-tri img:nth-child(3){object-position:40% 45%!important}
.capa-tri::after{z-index:1;background:radial-gradient(ellipse 30% 36% at 50% 47%,rgba(255,253,250,.94),
  rgba(255,250,242,.78) 52%,rgba(255,246,234,0) 100%),
  linear-gradient(180deg,rgba(255,255,255,0) 70%,rgba(20,30,24,.28))!important}
@media(max-width:760px){
  .capa-tri{grid-template-columns:1fr}
  .capa-tri img:nth-child(1), .capa-tri img:nth-child(3){display:none}
  .capa-tri img:nth-child(2){object-position:50% 70%!important}
  .capa-tri::after{background:radial-gradient(ellipse 92% 36% at 50% 42%,rgba(255,253,250,.92),
    rgba(255,250,242,.75) 55%,rgba(255,246,234,0) 100%)!important}
}
/* "coloca em 2 linhas" — a frase verde passa a caixa larga de duas linhas */
.cover-in .sub{max-width:min(60ch,92vw)!important;padding:.7rem 1.8rem!important;text-wrap:balance}

/* ---- INÍCIO · "Antes de mais": texto a começar em cima, foto mais pequena */
.inicio25 #conte .wrap{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:clamp(2rem,5vw,4.5rem)}
.inicio25 #conte .blob-wrap{width:clamp(15rem,24vw,19.5rem);justify-self:end}
.inicio25 #conte .wrap > div:first-child > :first-child{margin-top:0}
@media(max-width:900px){.inicio25 #conte .wrap{grid-template-columns:minmax(0,1fr)}
  .inicio25 #conte .blob-wrap{justify-self:center;width:min(17rem,80vw)}}

/* ---- INÍCIO · os quatro serviços: preço na cor do nome, os dois maiores,
   e o "Conhecer" numa caixinha própria ------------------------------------ */
.inicio25 .cards-foto .card h3{font-size:clamp(1.55rem,2vw,1.8rem);margin:1.2rem .9rem .5rem;color:var(--accdk)}
.inicio25 .cf-preco{margin:auto .9rem 0;padding-top:1rem;font-size:.9rem;line-height:1.35;color:var(--graph)}
.inicio25 .cf-preco b{color:var(--accdk);font-size:clamp(1.7rem,2.2vw,2rem);font-weight:800;margin:0 .08em;line-height:1.1}
.inicio25 .cards-foto .card:nth-child(1) .cf-preco b{font-size:clamp(1.4rem,1.8vw,1.6rem)}
.inicio25 .cf-link{display:flex;align-self:stretch;justify-content:space-between;margin:1rem .9rem 0;
  padding:.75rem .7rem .75rem 1rem;border-radius:14px;border:1.5px solid var(--accdk);
  background:#FFF;color:var(--accdk);font-size:.98rem;transition:background .25s,color .25s}
.inicio25 .cf-link span{display:grid;place-items:center;width:1.9rem;height:1.9rem;border-radius:50%;
  background:var(--accdk);color:#FFF;font-size:.95rem}
.inicio25 .cf-link:hover, .inicio25 .card:hover .cf-link{background:var(--accdk);color:#FFF}
.inicio25 .card:hover .cf-link span{background:#FFF;color:var(--accdk);transform:translateX(3px)}

/* ---- INÍCIO · "Como começar": subir um bocadinho ------------------------- */
.inicio25 #passos{padding-top:clamp(.6rem,1.4vw,1.2rem)!important}
.inicio25 #passos > .wrap > .manu{margin-top:0}

/* ---- INÍCIO · opiniões → "Venha conhecer o sítio": muito espaço entre os dois */
.inicio25 #testemunhos{padding-bottom:clamp(2.6rem,4.5vw,3.6rem)!important}
.inicio25 .fecho25{padding-block:clamp(3.2rem,6vw,4.6rem) calc(clamp(3.2rem,6vw,4.6rem) + clamp(46px,6.5vw,92px))}
.inicio25 .cf-link{font-size:.9rem;white-space:nowrap;gap:.5rem}
.inicio25 #conte{padding-bottom:calc(clamp(1.4rem,3vw,2.4rem) + clamp(46px,6.5vw,92px))!important}

/* ---- AS QUATRO PÁGINAS DE SERVIÇO · capa: "texto alinhado com a imagem",
   "subir texto e imagem", "subir imagem". A foto passa a ter a altura exacta
   do bloco de texto: o topo da foto bate na primeira linha (o caminho
   Início · …) e o fundo bate no último elemento. Tudo sobe para junto do
   cabeçalho. ------------------------------------------------------------- */
@media(min-width:901px){
  .svc section.svc-hero{padding-top:calc(89px + clamp(1rem,2vw,1.6rem))!important;padding-bottom:clamp(2.4rem,4vw,3.4rem)!important}
  .svc .svc-hero-in{align-items:stretch!important}
  .svc .svc-hero-txt{padding-top:0!important;display:flex;flex-direction:column}
  .svc .svc-hero-txt > :first-child{margin-top:0}
  .svc .svc-hero-txt > :last-child{margin-bottom:0}
  .svc .svc-hero-in > .foto-pata{margin-top:0!important;align-self:stretch;height:100%}
  .svc .svc-hero-foto{aspect-ratio:auto!important;height:100%!important;max-height:none!important;
    min-height:26rem;width:100%;max-width:30rem;justify-self:end;align-self:stretch;margin:0}
  .svc .svc-hero-in > .foto-pata > .svc-hero-foto{height:100%!important}
}
.svc-s2 .svc-hero-foto img{object-position:50% 72%!important}
.svc-s4 .svc-hero-foto img{object-position:50% 45%!important}

/* ---- PET HOTEL · as três fotos: "ajustar fotos". Mesma forma e o mesmo aro
   branco nas três (o aro que ela gosta), a mesma altura, e os cães inteiros
   da cabeça às patas. ------------------------------------------------------ */
.svc-s1 #porque .trio-fotos figure, .svc-s1 #porque .trio-fotos figure:nth-child(n){
  border:0!important;border-radius:var(--arco)!important;clip-path:none!important;aspect-ratio:3/4!important;
  box-shadow:0 0 0 6px #FFF,0 0 0 7px rgba(168,62,39,.18),0 26px 44px -26px rgba(0,0,0,.55)!important}
.svc-s1 #porque .trio-fotos{gap:clamp(1.2rem,2.4vw,2rem);margin-top:clamp(2rem,3.4vw,2.8rem)!important;padding:6px}
.svc-s1 #porque .trio-fotos figure:nth-child(1) img{object-position:50% 70%!important}
.svc-s1 #porque .trio-fotos figure:nth-child(2) img{object-position:50% 72%!important}
.svc-s1 #porque .trio-fotos figure:nth-child(3) img{object-position:50% 62%!important}

/* ---- PET HOTEL · "Traga, por favor": diamantes em vez dos pontos, e a
   fotografia com a altura do texto (topo com topo, fundo com fundo) ------- */
.lista-gema li{padding-left:2.5rem}
.lista-gema li::before, .lista-gema li::after{display:none!important}
.li-gema{position:absolute;left:0;top:.1em;width:1.65rem;height:1.4rem}
.li-gema svg{width:100%;height:100%;filter:drop-shadow(0 2px 3px rgba(0,0,0,.35))}
@media(min-width:901px){
  .svc-s1 #descubra .tel-duo{grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:clamp(2.5rem,5vw,4.5rem)}
  .svc-s1 #descubra .vert-car{aspect-ratio:auto;height:auto;align-self:stretch;width:clamp(18rem,26vw,22rem);
    min-height:26rem;justify-self:end;margin:0}
  .svc-s1 #descubra .duo-txt > :first-child{margin-top:0}
  .svc-s1 #descubra .duo-txt > :last-child{margin-bottom:0}
}

/* ---- PET HOTEL · os gatos: "chegava a imagem um bocadinho mais para o lado"
   — a foto encosta ao texto e tem a altura dele ------------------------- */
@media(min-width:901px){
  .svc-s1 #gatos .duo{grid-template-columns:minmax(0,38rem) auto;justify-content:center;align-items:stretch;
    gap:clamp(2.5rem,4.5vw,4rem)}
  .svc-s1 #gatos .foto-pata{width:clamp(17rem,24vw,20rem);height:100%}
  .svc-s1 #gatos .foto-pata > .arco{aspect-ratio:auto!important;max-height:none!important;height:100%;min-height:24rem}
  .svc-s1 #gatos .duo-txt > :first-child{margin-top:0}
  .svc-s1 #gatos .duo-txt > :last-child{margin-bottom:0}
  .svc-s1 #gatos .stk[data-stk="gato"]{--stk-l:auto!important;left:calc(50% + 2rem)!important}
}

/* ---- PET HOTEL · "Para o regresso a casa — tem que destacar" ------------- */
.svc-s1 #regresso{padding-block:clamp(2.2rem,4vw,3.2rem)}
.regresso-painel{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(1.6rem,4vw,3.4rem);
  align-items:center;background:var(--ouro);border-radius:clamp(26px,3vw,40px);padding:clamp(1.8rem,4vw,3.2rem);
  position:relative;overflow:hidden;box-shadow:0 30px 60px -36px rgba(122,82,0,.75)}
.regresso-painel::after{content:"";position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:50%;
  background:rgba(255,255,255,.18);pointer-events:none}
.regresso-txt h2{margin:0;color:var(--ink);font-size:clamp(2rem,3.6vw,2.9rem)}
.regresso-txt .lead{margin:.9rem 0 0;color:#2B2410;max-width:44ch}
.regresso-caixas{display:grid;grid-template-columns:1fr 1fr;gap:1rem;position:relative;z-index:1}
.regresso-caixa{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;background:#FFF;border-radius:22px;
  padding:1.3rem 1.3rem 1.2rem;text-decoration:none;color:var(--ink);box-shadow:0 18px 30px -22px rgba(0,0,0,.5);
  transition:transform .3s cubic-bezier(.2,.8,.3,1),box-shadow .3s}
.regresso-caixa:hover{transform:translateY(-5px);box-shadow:0 26px 40px -24px rgba(0,0,0,.55)}
.rc-ico{width:3.2rem;height:3.2rem;border-radius:16px;display:grid;place-items:center;margin-bottom:.4rem}
.rc-ico svg{width:2rem;height:2rem;fill:currentColor}
.rc-banho .rc-ico{background:#E3F2FC;color:#1F7FC0}
.rc-taxi .rc-ico{background:#E6F5E1;color:#3F9C31}
.rc-tit{font-family:var(--f-display);font-weight:800;font-size:1.22rem;line-height:1.2}
.rc-preco{font-size:.92rem;color:var(--graph)}
.rc-preco b{font-family:var(--f-display);font-size:1.45rem;color:#8E3220;font-weight:800}
.rc-ir{margin-top:auto;padding-top:.6rem;font-family:var(--f-display);font-weight:700;font-size:.95rem;color:#8E3220;
  display:inline-flex;gap:.4rem}
.rc-ir i{font-style:normal;transition:transform .3s}
.regresso-caixa:hover .rc-ir i{transform:translateX(5px)}
@media(max-width:900px){.regresso-painel{grid-template-columns:1fr}}
@media(max-width:480px){.regresso-caixas{grid-template-columns:1fr}}

/* ---- PET HOTEL · "Perguntas que nos fazem — subir" ---------------------- */
.svc-s1 #perguntas-hotel{padding-top:clamp(1rem,2vw,1.6rem)!important}
/* a fotografia não pode empurrar a altura: fica absoluta dentro da moldura */
@media(min-width:901px){
  .svc .svc-hero-foto, .svc-s1 #gatos .foto-pata > .arco{position:relative}
  .svc .svc-hero-foto > img, .svc-s1 #gatos .foto-pata > .arco > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
}
@media(min-width:901px){
  .svc-s1 #descubra .vert-car{min-height:18rem!important}
  .svc-s1 #gatos .foto-pata > .arco{min-height:18rem!important}
}
.regresso-txt h2{text-wrap:balance}

/* ---- CRECHE · "vamos ter que criar outra organização, não fica chamativo":
   os cinco cartões e as três fotos num mosaico de três colunas, a foto alta
   ao centro, cartões verdes com o número em dourado, o quinto a vermelho -- */
.mosaico-creche{display:grid;gap:clamp(.9rem,1.6vw,1.3rem);margin-top:clamp(1.8rem,3vw,2.6rem);
  grid-template-columns:repeat(3,minmax(0,1fr));
  grid-template-areas:"c1 f1 c2" "c3 f1 c4" "f2 c5 f3";grid-template-rows:auto auto minmax(16rem,auto)}
.mosaico-creche .mc-c1{grid-area:c1}.mosaico-creche .mc-c2{grid-area:c2}.mosaico-creche .mc-c3{grid-area:c3}
.mosaico-creche .mc-c4{grid-area:c4}.mosaico-creche .mc-c5{grid-area:c5}
.mosaico-creche .mf-1{grid-area:f1}.mosaico-creche .mf-2{grid-area:f2}.mosaico-creche .mf-3{grid-area:f3}
.mosaico-creche .mc{position:relative;margin:0;padding:1.5rem 1.5rem 1.4rem;border-radius:26px;border:0;
  background:var(--verde-m);color:#FFF;box-shadow:0 22px 40px -28px rgba(26,76,51,.9);overflow:hidden;
  transition:transform .35s cubic-bezier(.2,.8,.3,1)}
.mosaico-creche .mc:hover{transform:translateY(-5px) rotate(-.4deg)}
.mosaico-creche .mc .num{display:grid!important;place-items:center;width:2.6rem;height:2.6rem;margin:0 0 .9rem;
  border-radius:50%;background:var(--ouro);color:#1B2620;font-family:var(--f-display);font-weight:800;font-size:1rem}
.mosaico-creche .mc h3{margin:0 0 .5rem;color:var(--ouro);font-size:clamp(1.12rem,1.5vw,1.3rem);line-height:1.2}
.mosaico-creche .mc p:not(.num){margin:0;color:#DCE9E0;font-size:.95rem;line-height:1.6}
.mosaico-creche .mc::after{content:"";position:absolute;right:-34px;bottom:-34px;width:110px;height:110px;border-radius:50%;
  background:rgba(244,169,0,.16)}
.mosaico-creche .mc-c5{background:#A83E27;display:flex;flex-direction:column;justify-content:center}
.mosaico-creche .mc-c5 h3{color:#FFF}
.mosaico-creche .mc-c5 p:not(.num){color:#FFE3D6}
.mosaico-creche .mc-c5 .num{background:#FFF;color:#A83E27}
.mosaico-creche .mf{margin:0;position:relative;border-radius:26px;overflow:hidden;
  box-shadow:0 0 0 6px #FFF,0 26px 44px -26px rgba(0,0,0,.5)}
.mosaico-creche .mf-1{border-radius:var(--arco)}
.mosaico-creche .mf img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.mosaico-creche .mf-1 img{object-position:50% 55%}
.mosaico-creche .mf-2 img{object-position:50% 62%}
.mosaico-creche .mf-3 img{object-position:50% 58%}
@media(max-width:900px){
  .mosaico-creche{grid-template-columns:1fr 1fr;grid-template-areas:"c1 c2" "f1 f2" "c3 c4" "f3 c5";grid-template-rows:none}
  .mosaico-creche .mf{min-height:16rem}
}
@media(max-width:560px){
  .mosaico-creche{grid-template-columns:1fr;grid-template-areas:"c1" "f1" "c2" "c3" "f2" "c4" "c5" "f3"}
  .mosaico-creche .mf{min-height:18rem}
}

/* ---- CRECHE · "Comece pelo dia experimental": a foto mais pequena, com a
   altura exacta do texto --------------------------------------------------- */
@media(min-width:901px){
  .svc-s2 #creche-detalhe .duo{grid-template-columns:auto minmax(0,1fr)!important;align-items:stretch!important;
    gap:clamp(2.5rem,5vw,4.5rem)}
  .svc-s2 #creche-detalhe .duo > .foto-deco{width:clamp(16rem,23vw,19rem);aspect-ratio:auto!important;height:auto;
    align-self:stretch!important;position:relative;min-height:18rem;max-height:none}
  .svc-s2 #creche-detalhe .duo > .foto-deco img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 40%}
  .svc-s2 #creche-detalhe .duo-txt > :first-child{margin-top:0}
  .svc-s2 #creche-detalhe .duo-txt > :last-child{margin-bottom:0}
}

/* ---- CRECHE · o fecho: "muito vazio" ------------------------------------ */
.fecho-creche25{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:clamp(2rem,5vw,4.5rem);align-items:center}
.fecho-creche25 .duo-txt{text-align:left}
.fc-dados{list-style:none;padding:0;margin:1.6rem 0 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;max-width:34rem}
.fc-dados li{background:#FFF;border-radius:18px;padding:.85rem .95rem;box-shadow:0 14px 26px -20px rgba(90,58,0,.6)}
.fc-dados b{display:block;font-family:var(--f-display);font-size:1.05rem;color:var(--verde-m);line-height:1.2}
.fc-dados span{display:block;font-size:.85rem;color:var(--graph);margin-top:.2rem}
.fc-botoes{margin-top:1.6rem;display:flex;gap:.6rem;flex-wrap:wrap}
.fc-fotos{position:relative;justify-self:end;width:min(100%,25rem);padding:0 0 3rem 4.5rem}
.fc-f1{margin:0;aspect-ratio:4/5;box-shadow:0 0 0 7px #FFF,0 30px 60px -30px rgba(0,0,0,.45)}
.fc-f1 img{width:100%;height:100%;object-fit:cover;object-position:50% 35%}
.fc-f2{position:absolute;left:0;bottom:0;width:46%;aspect-ratio:1;margin:0;border-radius:50%;overflow:hidden;
  box-shadow:0 0 0 7px #FFF,0 20px 40px -18px rgba(0,0,0,.5);z-index:2}
.fc-f2 img{width:100%;height:100%;object-fit:cover;object-position:50% 55%}
@media(max-width:900px){.fecho-creche25{grid-template-columns:1fr}.fc-fotos{justify-self:center}
  .fc-dados{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:520px){.fc-dados{grid-template-columns:1fr}}
.svc-s2 .svc-hero-foto img{object-position:50% 60%!important}
.fc-f2 img{object-position:40% 50%}

/* ---- BANHOS · "Tudo o que um bom banho tem — mais dinâmico" ------------- */
.svc-s3 #porque{position:relative;overflow:hidden;isolation:isolate}
.svc-s3 #porque > .wrap{position:relative;z-index:1}
.banho-inclui{align-items:start;gap:clamp(1rem,2vw,1.6rem)!important;margin-top:clamp(1.6rem,3vw,2.4rem)}
.banho-inclui .card{position:relative;padding:1.6rem 1.5rem 1.5rem!important;border:0!important;border-radius:26px!important;
  background:#FFF!important;box-shadow:0 24px 44px -28px rgba(6,47,74,.65)!important;
  transition:transform .4s cubic-bezier(.2,.8,.3,1)}
.banho-inclui .card:nth-child(1){transform:rotate(-1.2deg)}
.banho-inclui .card:nth-child(2){transform:translateY(1.6rem) rotate(.8deg)}
.banho-inclui .card:nth-child(3){transform:rotate(-.6deg)}
.banho-inclui .card:hover{transform:translateY(-6px) rotate(0)}
.bi-ico{display:grid;place-items:center;width:3.6rem;height:3.6rem;border-radius:18px;margin-bottom:1rem;color:#FFF;
  box-shadow:0 12px 22px -12px rgba(6,47,74,.7)}
.bi-ico svg{width:2.1rem;height:2.1rem;fill:currentColor}
.banho-inclui .card:nth-child(1) .bi-ico{background:#2489CC}
.banho-inclui .card:nth-child(2) .bi-ico{background:#E5735C}
.banho-inclui .card:nth-child(3) .bi-ico{background:#1A4C33}
.banho-inclui .card .num{position:absolute;top:1.3rem;right:1.4rem;margin:0!important;font-family:var(--f-display);
  font-size:2.4rem;font-weight:800;line-height:1;color:rgba(36,137,204,.16)}
.banho-inclui .card h3{font-size:1.3rem;margin:0 0 .45rem}
.banho-inclui .card .cpaw{display:none}
/* as três fotos como polaroides, cada uma com o seu jeito */
.svc-s3 #porque .trio-fotos{margin-top:clamp(2.8rem,5vw,3.8rem)!important;gap:clamp(1.2rem,2.6vw,2.2rem)!important;padding:0 .5rem}
.svc-s3 #porque .trio-fotos figure, .svc-s3 #porque .trio-fotos figure:nth-child(n){border-radius:22px!important;clip-path:none!important;
  aspect-ratio:3/4!important;box-shadow:0 0 0 8px #FFF,0 30px 50px -26px rgba(6,47,74,.7)!important;overflow:visible;
  transition:transform .45s cubic-bezier(.2,.8,.3,1)}
.svc-s3 #porque .trio-fotos figure img{border-radius:22px}
.svc-s3 #porque .trio-fotos figure:nth-child(1){transform:rotate(-3deg)}
.svc-s3 #porque .trio-fotos figure:nth-child(2){transform:translateY(-1.2rem) rotate(2deg)}
.svc-s3 #porque .trio-fotos figure:nth-child(3){transform:rotate(-1.5deg)}
.svc-s3 #porque .trio-fotos figure:hover{transform:rotate(0) scale(1.03)}
.svc-s3 #porque .trio-fotos .legenda{bottom:-1rem!important;background:#062F4A;color:#FFF;font-family:var(--f-hand);
  font-size:1.15rem;padding:.35rem 1rem;border-radius:999px;box-shadow:0 10px 18px -10px rgba(0,0,0,.6)}
/* bolas de sabão a subir devagar atrás de tudo */
.bolhas-sabao{position:absolute;inset:0;z-index:0;pointer-events:none}
.bolhas-sabao i{position:absolute;bottom:-80px;border-radius:50%;
  background:radial-gradient(circle at 32% 30%,rgba(255,255,255,.95) 0 9%,rgba(255,255,255,.25) 10% 55%,rgba(255,255,255,.55) 70%,rgba(255,255,255,.1) 72%);
  box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.65);animation:bolhaSobe linear infinite}
.bolhas-sabao i:nth-child(1){left:4%;width:46px;height:46px;animation-duration:17s}
.bolhas-sabao i:nth-child(2){left:13%;width:22px;height:22px;animation-duration:12s;animation-delay:-5s}
.bolhas-sabao i:nth-child(3){left:31%;width:34px;height:34px;animation-duration:19s;animation-delay:-11s}
.bolhas-sabao i:nth-child(4){left:52%;width:18px;height:18px;animation-duration:13s;animation-delay:-3s}
.bolhas-sabao i:nth-child(5){left:71%;width:40px;height:40px;animation-duration:16s;animation-delay:-8s}
.bolhas-sabao i:nth-child(6){left:86%;width:26px;height:26px;animation-duration:14s;animation-delay:-1s}
.bolhas-sabao i:nth-child(7){left:95%;width:52px;height:52px;animation-duration:21s;animation-delay:-13s}
@keyframes bolhaSobe{0%{transform:translate(0,0)}25%{transform:translate(14px,-30vh)}50%{transform:translate(-10px,-60vh)}
  75%{transform:translate(12px,-90vh)}100%{transform:translate(0,-125vh)}}
@media(prefers-reduced-motion:reduce){.bolhas-sabao{display:none}}
@media(max-width:760px){
  .banho-inclui .card:nth-child(n), .svc-s3 #porque .trio-fotos figure:nth-child(n){transform:none}
}

/* ---- PET TÁXI · "A quinta fica em Gondomar — sem graça": verde-escuro com
   dourado, ícones, e uma estrada tracejada com a carrinha a andar --------- */
:is(#nada, main).svc-s4 #porque.taxi-rota25{background:var(--verde-m)!important;position:relative;overflow:hidden;
  padding-block:clamp(3rem,6vw,4.6rem)!important}
.taxi-rota25 .wrap > .eyebrow{color:var(--ouro)!important}
.taxi-rota25 .wrap > h2{color:#FFF!important}
.taxi-rota25 .wrap > h2 em{color:var(--ouro)!important}
.taxi-rota25 .rota{position:relative;height:46px;margin:clamp(1.6rem,3vw,2.2rem) 0 .4rem}
.taxi-rota25 .rota::before{content:"";position:absolute;left:0;right:0;top:50%;height:4px;margin-top:-2px;
  background:repeating-linear-gradient(90deg,var(--ouro) 0 22px,transparent 22px 36px);border-radius:4px;opacity:.9}
.rota-carro{position:absolute;top:50%;left:0;width:64px;height:36px;margin-top:-24px;
  animation:carroAnda 11s cubic-bezier(.45,0,.55,1) infinite alternate;filter:drop-shadow(0 6px 8px rgba(0,0,0,.35))}
.rota-carro svg{width:100%;height:100%;display:block}
@keyframes carroAnda{from{left:0}to{left:calc(100% - 64px)}}
.taxi-rota25 .razoes{gap:clamp(.9rem,1.6vw,1.3rem)!important;align-items:stretch}
.taxi-rota25 .razoes .card{position:relative;background:#FFF!important;border:0!important;border-radius:24px!important;
  padding:1.5rem 1.35rem 1.4rem!important;box-shadow:0 24px 40px -26px rgba(0,0,0,.6)!important;
  transition:transform .35s cubic-bezier(.2,.8,.3,1)}
.taxi-rota25 .razoes .card::before{content:"";position:absolute;top:-1.95rem;left:1.6rem;width:14px;height:14px;border-radius:50%;
  background:var(--ouro);box-shadow:0 0 0 4px var(--verde-m),0 0 0 6px rgba(244,169,0,.5)}
.taxi-rota25 .razoes .card:hover{transform:translateY(-6px)}
.tx-ico{display:grid;place-items:center;width:3.4rem;height:3.4rem;border-radius:16px;margin-bottom:.95rem;color:#FFF}
.tx-ico svg{width:2rem;height:2rem;fill:currentColor}
.taxi-rota25 .razoes .card:nth-child(1) .tx-ico{background:#E5735C}
.taxi-rota25 .razoes .card:nth-child(2) .tx-ico{background:#2489CC}
.taxi-rota25 .razoes .card:nth-child(3) .tx-ico{background:#4FAE3E}
.taxi-rota25 .razoes .card:nth-child(4) .tx-ico{background:#F4A900}
.taxi-rota25 .razoes .card .num{position:absolute;top:1.3rem;right:1.3rem;margin:0!important;font-family:var(--f-display);
  font-size:2.2rem;font-weight:800;line-height:1;color:rgba(26,76,51,.13)}
.taxi-rota25 .razoes .card h3{color:var(--verde-m)!important;font-size:1.18rem;margin:0 0 .45rem}
.taxi-rota25 .razoes .card p:not(.num){color:var(--graph)!important}
.taxi-rota25 .razoes .card .cpaw{display:none}
@media(max-width:760px){.taxi-rota25 .rota{display:none}.taxi-rota25 .razoes .card::before{display:none}}
@media(prefers-reduced-motion:reduce){.rota-carro{animation:none}}

/* ---- PREÇOS · o topo "básico": quatro cartões de preço ------------------ */
.pg-precos .pagetop{position:relative;overflow:hidden}
.pg-precos .pagetop .wrap{position:relative;z-index:1}
.topo-precos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(.8rem,1.5vw,1.2rem);
  max-width:58rem;margin:clamp(1.8rem,3vw,2.4rem) auto 0;text-align:left}
.tp{position:relative;display:flex;flex-direction:column;background:#FFF;border-radius:24px;padding:1.15rem 1.2rem 1.15rem;
  text-decoration:none;color:var(--ink);overflow:hidden;box-shadow:0 22px 40px -26px rgba(90,58,0,.75);
  transition:transform .35s cubic-bezier(.2,.8,.3,1)}
.tp:hover{transform:translateY(-6px) rotate(-.6deg)}
.tp::before{content:"";position:absolute;inset:0 0 auto 0;height:7px;background:var(--tp)}
.tp::after{content:"";position:absolute;right:-26px;bottom:-26px;width:84px;height:84px;border-radius:50%;background:var(--tp);opacity:.12}
.tp-hotel{--tp:#A83E27}.tp-creche{--tp:#1A4C33}.tp-banho{--tp:#2489CC}.tp-taxi{--tp:#4FAE3E}
.tp-nome{font-family:var(--f-display);font-weight:800;font-size:1.12rem;color:var(--tp)}
.tp-desde{margin-top:.7rem;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--graph);font-weight:700}
.tp b{font-family:var(--f-display);font-size:clamp(2rem,3.2vw,2.6rem);font-weight:800;line-height:1.05;color:var(--tp)}
.tp-un{font-size:.86rem;color:var(--graph);margin-top:.15rem}
@media(max-width:760px){.topo-precos{grid-template-columns:1fr 1fr}}

/* ---- AUTOCOLANTES (25/10/2026, tarde): "tira todos os stickers que estão em
   sobreposição, muda-os de posição, usa outros de animais com casinhas".
   Os de dentro do conteúdo (.stk-in) ficam presos a um canto vazio da
   coluna; os das margens (capas, patas e cães de fundo) só aparecem quando
   há margem a sério para eles (≥1400 px). Medido sem tocar em texto, fotos,
   cartões nem botões a 1440, 1280 e 1100. */
.inicio25 #conte .wrap > div:first-child, .inicio25 #servicos-home > .wrap, .inicio25 #testemunhos > .wrap,
.inicio25 .fecho25 > .wrap{position:relative}
.stk-in{z-index:2}
@media(max-width:1399px){
  .svc-hero .stk, .deco.pata, .deco.cao{display:none!important}
}
/* os autocolantes das capas vivem na margem à direita da foto: só aparecem
   quando a margem os leva inteiros, e a pata grande atrás das fotos sai */
.svc-hero .stk{--stk-b:5%!important;--stk-r:max(.4rem, calc((100% - 1100px) / 4 - 60px))!important}
@media(max-width:1439px){.svc-hero .stk{display:none!important}}
.pata-atras{display:none!important}
.svc-s1 #gatos .duo-txt{position:relative}
@media(max-width:1199px){#fecho-creche > .stk{display:none!important}}

/* ---- RESERVAS (25/10/2026): o verde-claro sai; verde-escuro da casa, e as
   pegadas a dourado nas margens ao lado do formulário, nunca por baixo dele */
body:has(main.resv-main){background:#1A4C33!important}
.resv-main section.resv-verde{position:relative}
.resv-main .trilho-dir{position:absolute;inset:0;pointer-events:none;z-index:0}
.resv-main .resv-verde .trilho .pata svg{fill:var(--ouro)}
.resv-main .resv-verde .trilho .pata.b svg{fill:#F3EBDE}
.resv-main .resv-verde .trilho .pata.in{opacity:.32}
.resv-main .resv-verde .emo-tag{box-shadow:0 12px 24px -16px rgba(0,0,0,.6)}
.resv-main #resvTopo > .wrap{position:relative;z-index:1}
@media(max-width:1199px){.resv-main .resv-verde .trilho{display:none}}

/* ===========================================================================
   25/10/2026, noite — AUDITORIA DO TELEMÓVEL. Tudo o que está daqui para
   baixo vive dentro de media queries de ecrã estreito: o computador não muda.
   ======================================================================== */
/* BUG: os "Preços" e "Perguntas" soltos a meio da página. O cabeçalho tem
   backdrop-filter, e um filtro faz do cabeçalho o bloco de referência dos
   filhos com position:fixed — o menu (#nav, fixed inset:0) ficava com a
   altura do cabeçalho (73 px) e os links transbordavam pela página. O
   desfoque passa para um ::before, o menu volta a ocupar o ecrã inteiro e,
   fechado, fica invisível de verdade. */
@media(max-width:1180px){
  body>header.solid{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
  body>header.solid::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
    -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
  #nav{height:100dvh;overflow-y:auto;visibility:hidden;transition:transform .4s,visibility 0s .4s}
  #nav.open{visibility:visible;transition:transform .4s,visibility 0s}
  body:has(#nav.open)>header{opacity:1!important;visibility:visible!important;pointer-events:auto!important}
}
/* capas das páginas: no telemóvel a foto comia o ecrã todo e o título
   ficava abaixo da dobra — a foto passa a mais baixa, centrada no cão */
@media(max-width:900px){
  .svc .svc-hero-foto{aspect-ratio:5/4!important;width:100%;max-width:26rem!important;max-height:42svh!important;margin-inline:auto}
  .svc .svc-hero-foto img{width:100%;height:100%;object-fit:cover}
  .svc .svc-hero-in > .foto-pata{max-width:26rem;width:100%}
  .svc .svc-hero-in > .foto-pata > .svc-hero-foto{max-height:42svh!important}
}
/* a tabela larga dos banhos (Preços e Banhos): a coluna do porte partia as
   palavras ("Pequ-eno", "Grand-e"). Cada porte passa a uma linha inteira e os
   dois preços ficam lado a lado por baixo, com o tipo de pelo no topo */
@media(max-width:600px){
  .tab-larga table, .tab-larga thead, .tab-larga tbody{display:block}
  .tab-larga tr{display:grid;grid-template-columns:1fr 1fr;align-items:center}
  .tab-larga thead th{display:none}
  .tab-larga thead td{text-align:center!important;padding:.9rem .5rem .3rem!important}
  .tab-larga tbody th{grid-column:1/-1;overflow-wrap:normal;padding:.85rem 1.2rem .15rem!important}
  .tab-larga tbody td{text-align:center!important;border-top:0!important;padding:.25rem .5rem .8rem!important;font-size:1.35rem!important}
}
/* creche, "Comece pelo dia experimental": a foto também mais pequena aqui */
@media(max-width:900px){
  .svc-s2 #creche-detalhe .duo > .foto-deco{max-width:min(17rem,78vw);aspect-ratio:4/5;margin-inline:auto}
}
/* rodapé: as páginas em duas colunas e com alvos de toque de 40 px */
@media(max-width:700px){
  .fcol-mapa nav{grid-template-columns:1fr 1fr;column-gap:1rem}
  .fcol-mapa nav a{min-height:40px;display:flex;align-items:center}
  .eyebrow{font-size:.78rem}
}

/* ==========================================================================
   MODO DE TESTE — 26/10/2026 (só aparece com o link secreto; ver reservas.js)
   ======================================================================= */
.faixa-teste{position:fixed;left:50%;bottom:12px;transform:translateX(-50%);z-index:300;display:flex;align-items:center;gap:1rem;
  max-width:calc(100% - 24px);padding:.6rem .7rem .6rem 1.1rem;border-radius:999px;background:#A83E27;color:#fff;
  font-size:.8rem;line-height:1.3;box-shadow:0 12px 30px -10px rgba(0,0,0,.45)}
.faixa-teste a{flex:0 0 auto;color:#A83E27;background:#fff;border-radius:999px;padding:.4rem .8rem;font-weight:700;text-decoration:none;font-size:.74rem}
.teste-nota{margin:1rem auto 0;max-width:46ch;font-size:.9rem;line-height:1.55;padding:.8rem 1rem;border-radius:12px;
  background:#FFF6E0;border:1px solid #F4D27A;color:#1A4C33;text-align:left}
.pagsim{border:0;padding:0;background:transparent;max-width:none}
.pagsim::backdrop{background:rgba(16,40,27,.6);backdrop-filter:blur(4px)}
.pagsim-cx{width:min(340px,88vw);padding:2rem 1.6rem 1.6rem;border-radius:22px;text-align:center;background:#fff;
  box-shadow:0 40px 90px -40px rgba(0,0,0,.6);font-family:inherit}
.pagsim-marca{margin:0;font-weight:700;letter-spacing:.12em;color:#D7182A}
.pagsim-marca span{font-weight:400;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:#6b7a70;margin-left:.4rem}
.pagsim-valor{font-size:2.2rem;font-weight:700;color:#1A4C33;margin:.4rem 0 .6rem;line-height:1}
.pagsim-txt{margin:0 0 1.2rem;font-size:.95rem;line-height:1.55;color:#33443a}
.pagsim-roda{width:42px;height:42px;margin:0 auto 1rem;border-radius:50%;border:3px solid #E5EFE8;border-top-color:#1A4C33;
  animation:pagsimGira .8s linear infinite}
.pagsim.ok .pagsim-roda{animation:none;border-color:#1E9E5A;background:#1E9E5A;position:relative}
.pagsim.ok .pagsim-roda::after{content:"";position:absolute;left:13px;top:7px;width:10px;height:18px;
  border-right:3px solid #fff;border-bottom:3px solid #fff;transform:rotate(45deg)}
.pagsim.ok .pagsim-txt b{color:#1E9E5A}
.pagsim-nota{margin:0;font-size:.72rem;color:#6b7a70}
@keyframes pagsimGira{to{transform:rotate(360deg)}}

/* 27/10/2026: etiqueta das reservas de teste no painel */
.p-svc.teste{background:#A83E27;color:#fff}

/* ========================================================================
   28/10/2026 — RONDA DE 28/10 (capa de foto única, letras brancas nos
   fundos de cor e pretas nos brancos, fotos sem cães repetidos)
   ======================================================================== */

/* ---- INÍCIO · capa: "põe como foto única esta de fundo" (o rafeiro) ---- */
.capa-uma img{object-position:50% 35%!important;transform:none!important;filter:saturate(1.08)}
.capa-uma::after{z-index:1;background:radial-gradient(ellipse 34% 34% at 50% 44%,rgba(255,253,250,.9),
  rgba(255,250,242,.7) 52%,rgba(255,246,234,0) 100%),
  linear-gradient(180deg,rgba(255,255,255,0) 70%,rgba(20,30,24,.28))!important}
@media(max-width:760px){
  .capa-uma img{object-position:50% 70%!important}
  .capa-uma::after{background:radial-gradient(ellipse 92% 36% at 50% 42%,rgba(255,253,250,.92),
    rgba(255,250,242,.75) 55%,rgba(255,246,234,0) 100%)!important}
}

/* ---- RESERVAS · "o acrescentar outro está sobreposto à linha do separador"
   O botão encostava ao filete de baixo da última linha do grupo. */
#addGrupo{margin-top:1.5rem}

/* ---- A QUINTA · "troca o verde": o verde-claro #8FD47F passou a um verde
   de relva mais fundo, que aguenta as letras brancas (5,3:1) */
body:has(main.svc-casa){background:#357A38}

/* ---- FUNDOS ESCUROS: "sim, escurece os fundos" (28/10) — com as letras
   brancas, o céu e o verde-claro ficavam a 1,4–2,3:1. Passaram a
   azul #2A73AA e verde #357A38 (todos acima de 4,5:1 com branco).
   Os destaques dourados sobre o verde-escuro continuam no --ouro. */

/* ---- INÍCIO · capa: "põe menos zoom para se ver o corpo do cão" (28/10)
   A foto é ao alto: em vez de a esticar à largura toda, mostra-se inteira na
   altura, ao centro, e os lados levam a mesma foto desfocada por trás. */
.capa-uma{background:#2A3A22}
.capa-uma .capa-desfoque{position:absolute;inset:-40px;background:url(../img/ronda2510/capa-tri-a-600.webp) center 60%/cover;
  filter:blur(26px) saturate(1.1) brightness(.92)}
.capa-uma img{position:relative;object-fit:contain!important;object-position:50% 100%!important}
@media(max-width:760px){
  .capa-uma img{object-fit:cover!important;object-position:50% 80%!important}
}

/* ---- ONDAS EM TODOS OS PAINEIS (28/10): a faixa de destaque é o tom claro
   de cada página; a outra pinta-a o js com a cor do painel seguinte */
.onda-auto{position:relative}
.deco.onda .o-verm{fill:var(--onda-a,var(--deco-a))}
.com-deco{--onda-a:#F4A900}
.svc-s1 .com-deco{--onda-a:#E9876B}
.svc-s2 .com-deco{--onda-a:#E8A200}
.svc-s3 .com-deco{--onda-a:#7CC8F2}
.svc-s4 .com-deco{--onda-a:#8FD47F}
.svc-casa .com-deco{--onda-a:#8FD47F}
.svc-casa section[style*="#357A38"].com-deco{--onda-a:#9AD3F2}
/* no computador a foto inteira encosta à direita: ao centro ficava com a
   cara do cão por baixo do nome */
@media(min-width:1100px){.capa-uma img{object-position:94% 100%!important}}

/* ---- 28/10, noite: "volta a pôr o amarelo que estava antes, literalmente;
   se não se vir muito bem, deixa estar" — os amarelos voltaram todos. */
/* capa com a foto deitada (capa.webp): de volta ao ecrã inteiro, sem a foto
   desfocada dos lados */
.capa-tanque img{object-fit:cover!important;object-position:50% 64%!important}
@media(max-width:760px){.capa-tanque img{object-position:62% 50%!important}}
/* capa com os dois cães no parque (capa-parque.webp, ao alto): ecrã inteiro */
.capa-parque img{object-fit:cover!important;object-position:50% 57%!important}
@media(max-width:760px){.capa-parque img{object-position:50% 50%!important}}
/* CRECHE · "põe esta barra em branco": a faixa entre "Escolha os dias" e as
   perguntas era o fundo amarelo da página a aparecer no intervalo */
body:has(main.svc-s2){background:#FFFFFF}

/* ---- RESERVAS · 29/10: hotel cheio / não sociável → telefonar, bem à vista */
.resv-ligue{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;max-width:860px;margin:0 auto 1.4rem;position:relative;z-index:2}
.rl-caixa{background:#FFF;border:3px solid #F4A900;border-radius:20px;padding:1.1rem 1.3rem;box-shadow:0 18px 40px -26px rgba(0,0,0,.6)}
.rl-caixa h3{margin:0 0 .3rem;font-size:clamp(1.05rem,1.6vw,1.25rem);line-height:1.2}
.rl-caixa p{margin:0 0 .6rem;font-size:.92rem;line-height:1.45}
.rl-tel{display:inline-flex;align-items:center;gap:.45rem;font-family:var(--f-display);font-weight:800;font-size:1.25rem;
  color:#FFF;background:#8E3220;border-radius:999px;padding:.45rem 1.1rem;text-decoration:none}
@media(max-width:700px){.resv-ligue{grid-template-columns:1fr}}
/* 29/10 · "resolve esta incoerência": a regra .faq{margin-top} das listas de
   perguntas também apanhava as SECÇÕES .faq e abria um intervalo entre
   painéis; sem ele, a onda do painel de cima entra direita nas perguntas */
main > section.faq{margin-top:0}

/* ========================================================================
   29/10/2026 — RESERVAS EM PRETO E VERMELHO
   "A parte das reservas está feia; põe muito estética, com cores mais
   bonitas — um preto e mais vermelho —, porque é a página que as pessoas
   mais vão ver." As cores do logótipo: preto, vermelho #C64446 e branco.
   ======================================================================== */
body:has(main.resv-main){background:#111111!important}
.resv-main .pagetop{background:radial-gradient(ellipse 75% 120% at 50% 0%,#4A1714 0%,#2A0F0D 45%,#111111 85%)!important;
  border-bottom:1px solid rgba(198,68,70,.35)}
.resv-main section.resv-verde{--viva:#111111!important;background:#111111!important}
.resv-main .resv-verde .trilho .pata svg,
.resv-main .resv-verde .trilho .pata.b svg{fill:#C64446}
.resv-main .resv-verde .trilho .pata.in{opacity:.26}
.resv-main .resv-verde .emo-tag{background:rgba(198,68,70,.14);border:1.5px solid rgba(198,68,70,.85);box-shadow:none}
/* o cartão do formulário: branco, com a barra vermelha em cima e um brilho */
.resv-main .resv-card{border-top:6px solid #C64446;
  box-shadow:0 0 0 1px rgba(255,255,255,.06),0 50px 90px -50px rgba(198,68,70,.7)}
.resv-main .resv-track{background:#EFE7DD}
.resv-main .resv-track i{background:linear-gradient(90deg,#8E3220,#C64446)!important}
.resv-main .resv-dot.now{color:#C64446}
.resv-main .resv-dot.now b{background:#C64446!important;box-shadow:0 0 0 5px rgba(198,68,70,.18)}
.resv-main .resv-dot.done b{background:#111111!important}
.resv-main .pills input:checked+label.resv-sv{background:#C64446;border-color:#C64446;box-shadow:0 14px 28px -16px rgba(198,68,70,.9)}
/* as duas caixas do telefone e o "Prefere falar?" no mesmo registo */
.resv-main .rl-caixa{border:0;border-top:5px solid #C64446;box-shadow:0 30px 60px -40px rgba(198,68,70,.8)}
.resv-main .rl-tel{background:#C64446}
.resv-main .book{background:#FFFFFF!important;border-top:6px solid #C64446;
  box-shadow:0 0 0 1px rgba(255,255,255,.06),0 50px 90px -50px rgba(198,68,70,.7)}
.resv-main .book::before{background:radial-gradient(circle,rgba(198,68,70,.12),rgba(198,68,70,0) 70%)!important}
.resv-main .com-deco{--onda-a:#C64446}
/* o cabeçalho transparente desaparecia sobre o preto: aqui fica sempre claro */
body:has(main.resv-main) header{background:rgba(255,252,247,.97)!important;box-shadow:0 10px 30px -20px rgba(0,0,0,.6)}

/* ---- 29/10 · "inverte as cores, põe mais vermelho e fundo preto": a página
   passa a VERMELHA e os cartões a PRETOS (resposta dele: "página vermelha,
   cartões pretos"). As opções a escolher e os campos ficam claros. */
body:has(main.resv-main){background:#B83A36!important}
.resv-main .pagetop{background:radial-gradient(ellipse 75% 120% at 50% 0%,#D9554F 0%,#C64446 40%,#B83A36 80%)!important;
  border-bottom:1px solid rgba(0,0,0,.18)}
.resv-main section.resv-verde{--viva:#B83A36!important;background:#B83A36!important}
.resv-main .resv-verde .trilho .pata svg,
.resv-main .resv-verde .trilho .pata.b svg{fill:#111111}
.resv-main .resv-verde .trilho .pata.in{opacity:.18}
.resv-main .resv-verde .emo-tag{background:rgba(17,17,17,.28);border:1.5px solid rgba(17,17,17,.55)}
.resv-main .com-deco{--onda-a:#111111}
/* os cartões pretos */
.resv-main .resv-card, .resv-main .book, .resv-main .rl-caixa{background:#141414!important;
  border-top:6px solid #111111;box-shadow:0 0 0 1px rgba(255,255,255,.08),0 50px 90px -45px rgba(0,0,0,.85)}
.resv-main .book::before{background:radial-gradient(circle,rgba(198,68,70,.25),rgba(198,68,70,0) 70%)!important}
.resv-main .resv-card .campo > label:not(.sim-check){color:#FFFFFF!important}
.resv-main .resv-card .campo > label .op{color:rgba(255,255,255,.65)!important}
.resv-main .gr-linha, .resv-main .pet-card{background:#1E1E1E!important;border-color:rgba(255,255,255,.14)!important}
.resv-main .resv-track{background:#2A2A2A}
.resv-main .resv-dot{color:rgba(255,255,255,.72)}
.resv-main .resv-dot.now{color:#FF8A80}
.resv-main .resv-dot b{background:#2A2A2A;color:#FFFFFF}
.resv-main .resv-dot.done b{background:#C64446!important}
.resv-main .book .info li{border-bottom-color:rgba(255,255,255,.14)}
.resv-main .rl-tel{background:#C64446}

/* ---- 03/11/2026: auditoria de telemóvel (medido a 390 px) -----------------
   Preços: o título encostava ao parágrafo de baixo, e no simulador o
   "2 · A estadia" colava aos botões dos serviços (era o primeiro filho do
   seu bloco e perdia a margem). Painel: o estado esticava numa barra em vez
   de pastilha, e as lotações do calendário ("3/25") estavam a 9,6 px.
   Botão da língua (30 px) e "Início" do trilho (31 px) com alvo maior. */
.pagetop h1 + .lead{margin-top:1rem}
[data-para] > .sim-lbl:first-child{margin-top:1.6rem}
.p-linha .p-est{justify-self:start}
@media(max-width:700px){
  .cal-c{font-size:.68rem}
  .lang{min-height:40px}
  .crumbs a{padding:.65rem .35rem;margin:-.35rem -.35rem}
}

/* ---- 03/11/2026 · Início, os quatro cartões: setas pretas; a creche, quando
   o botão enche, fica AMARELA com letra preta (era âmbar-escuro com letra
   branca); o táxi passa a dizer "Sobre o táxi". */
/* o letrasPeloFundo deixou de mexer nestes botões (NAO_MEXER), por isso a
   letra preta em repouso passa a vir daqui; cheio escuro continua branco */
.inicio25 .cf-link{color:#111111}
.inicio25 .cf-link span, .inicio25 .card:hover .cf-link span{color:#111111}
.inicio25 .cards-foto .card:nth-child(2) .cf-link:hover,
.inicio25 .cards-foto .card:nth-child(2):hover .cf-link{background:var(--s2-viva);border-color:var(--s2-viva);color:#111111}

/* ---- 03/11/2026 · Reservas: "põe o formulário branco, a página está boa".
   Só o cartão do formulário volta a branco, com a barra vermelha em cima;
   a página vermelha, as duas caixas do telefone e o "Prefere falar?" ficam
   pretos. As letras escuras vêm do letrasPeloFundo (js/site.js). */
.resv-main .resv-card{background:#FFFFFF!important;border-top:6px solid #C64446;
  box-shadow:0 0 0 1px rgba(0,0,0,.04),0 50px 90px -45px rgba(0,0,0,.6)}
.resv-main .resv-card .campo > label:not(.sim-check){color:#111111!important}
.resv-main .resv-card .campo > label .op{color:#6B6B6B!important}
.resv-main .resv-card .gr-linha, .resv-main .resv-card .pet-card{background:#FAF6F1!important;border-color:#E6DDD2!important}
.resv-main .resv-card .resv-track{background:#EFE7DD}
.resv-main .resv-card .resv-dot{color:#5A5A5A}
.resv-main .resv-card .resv-dot.now{color:#C64446}
.resv-main .resv-card .resv-dot b{background:#EFE7DD;color:#111111}
.resv-main .resv-card .resv-dot.now b, .resv-main .resv-card .resv-dot.done b{color:#FFFFFF}

/* ---- 03/11/2026, noite: notas da Mafalda na página Pet Hotel ----------------
   "fazer uma divisão entre o de cima e este, pois está muito branco": o
   "O que ele encontra cá" passa a vermelho escuro, com onda por cima (claro
   não: a 22/10 ela tirou as cores pálidas das páginas de serviço).
   "mudar foto e colocar borda a vermelho escuro" no gato. */
:is(#nada, main).svc-s1 #porque{background:#6B2416!important}
:is(#nada, main).svc-s1 svg.wave.antes-porque{background:#FFF!important}
#gatos .arco.gato-borda{box-shadow:0 0 0 8px #7F271D,0 28px 56px -30px rgba(27,38,32,.5)!important}
.svc-s1 #porque .btn{box-shadow:0 0 0 2px #FFF!important}

/* ---- 03/11/2026, noite: as fotografias verdadeiras dos cavalos ---------------
   "pôr essas fotos em evidência": a charrete em grande e o cavaleiro da
   procissão ao lado, com o aro branco das outras; os três usos ficam por
   baixo em cartões só de texto. No telemóvel, uma por baixo da outra. */
.cvf{display:grid;grid-template-columns:1.85fr 1fr;gap:clamp(1rem,2vw,1.6rem);margin-top:clamp(2rem,3.5vw,3rem)}
.cvf figure{margin:0;overflow:hidden;border-radius:var(--r-lg);position:relative;min-height:100%;
  box-shadow:0 0 0 8px #FFF,0 28px 56px -30px rgba(0,0,0,.5)}
.cvf-larga{aspect-ratio:3/2}
.cvf img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cvf-larga img{object-position:62% 55%}
.cvf-alta img{object-position:42% 40%}
.cvf + .cavalos{margin-top:clamp(1.6rem,3vw,2.4rem)}
@media(max-width:760px){
  .cvf{grid-template-columns:1fr;gap:1.4rem}
  .cvf-alta{aspect-ratio:4/5}
}
.cvf + .cavalos .cavalo h3{margin-top:1.4rem}

/* ---- 03/11/2026, noite: capa com os cães a correr no pomar (deitada) -------
   No telemóvel encosta à esquerda, para o cão branco ficar à vista. */
.capa-pomar-corrida img{object-fit:cover!important;object-position:50% 62%!important}
@media(max-width:760px){.capa-pomar-corrida img{object-position:30% 50%!important}}
/* o véu claro por trás do nome fica mais estreito nesta capa: os cães
   correm dos dois lados do texto e deixavam de se ver por baixo dele */
@media(min-width:761px){
  .capa-pomar-corrida::after{background:radial-gradient(ellipse 21% 38% at 50% 46%,rgba(255,253,250,.88),
    rgba(255,250,242,.62) 55%,rgba(255,246,234,0) 100%),
    linear-gradient(180deg,rgba(255,255,255,0) 70%,rgba(20,30,24,.28))!important}
}

/* ==========================================================================
   03/11/2026 — PAINEL DA EQUIPA REFEITO
   "Mais claro, mais profissional, mais a sério, maior e global." Hoje no
   topo, um separador por serviço, calendário grande com os nomes de quem
   está em cada dia, domingos e feriados a vermelho (sem saídas), ficha
   técnica do patudo e ficha do cliente. Cores por serviço, iguais em todo o
   painel: Pet Hotel vermelho, Creche amarelo, Banho azul, extras verde.
   ========================================================================== */
body.painel.p-largo .p-main > .wrap{max-width:1480px}
.p-hoje-data{font-size:.82rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--red-dk);margin-bottom:.2rem}
.p-novas{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}
.p-novas span{font-weight:700;color:var(--soft);font-size:.9rem;margin-right:.2rem}
.p-novas .btn{padding:.7rem 1.3rem}

.p-hoje{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-bottom:1.6rem}
.p-hoje-c{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;text-align:left;cursor:pointer;
  background:#FFF;border:0;border-left:8px solid var(--stone);border-radius:20px;padding:1.05rem 1.2rem;
  box-shadow:var(--shadow);font-family:var(--f-body);transition:transform .2s}
.p-hoje-c:hover{transform:translateY(-3px)}
.p-hoje-c span{font-size:.8rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--soft)}
.p-hoje-c b{font-family:var(--f-display);font-size:clamp(2rem,3.6vw,2.8rem);line-height:1.05;color:var(--ink)}
.p-hoje-c small{font-size:.86rem;color:var(--soft)}
.p-hoje-c.h{border-left-color:#C64446} .p-hoje-c.c{border-left-color:#F2B705}
.p-hoje-c.x{border-left-color:#3B9AD9} .p-hoje-c.e{border-left-color:#3E8A55}

.p-abas button{font-size:1.08rem;padding:.6rem 1.3rem}

/* as cores dos serviços: pontos, nomes e etiquetas */
.cn{display:inline-flex;align-items:center;gap:.3rem;max-width:100%;font-size:.74rem;font-weight:700;line-height:1.2;
  padding:.12rem .45rem;border-radius:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
i.cn{width:.8rem;height:.8rem;padding:0;border-radius:50%;flex:none}
.cn.h{background:#FBE1DF;color:#7E2420} i.cn.h{background:#C64446}
.cn.c{background:#FFF0B8;color:#5E4600} i.cn.c{background:#F2B705}
.cn.b{background:#DDEFFC;color:#0F4C75} i.cn.b{background:#3B9AD9}
.cn.x{background:#DDEFFC;color:#0F4C75} i.cn.x{background:#3B9AD9}
.cn.h.entra{box-shadow:inset 3px 0 0 #3E8A55}
.cn.h.sai{background:#FFF;color:#7E2420;box-shadow:inset 0 0 0 1px #E7B4B0;text-decoration:line-through;text-decoration-thickness:1px}
.cn.mais{background:var(--sand);color:var(--graph)}
.p-svc.hotel{background:#FBE1DF;color:#7E2420}
.p-svc.creche{background:#FFE07A}
.p-tag.exp{background:#FFF0B8;color:#5E4600}
.p-cal-legenda{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;margin-bottom:.9rem;font-size:.88rem;font-weight:600;color:var(--graph)}
.p-cal-legenda span{display:inline-flex;align-items:center;gap:.45rem}
.p-leg-verm{width:1rem;height:1rem;border-radius:4px;background:#FCE4E2;border:2px solid #C64446}

/* calendário grande */
.p-cal{background:#FFF;border-radius:var(--r-lg);box-shadow:var(--shadow);padding:clamp(1rem,2vw,1.6rem)}
.p-cal .cal-mes{font-size:1.5rem}
.p-cal .cal-grelha{gap:.45rem}
.p-cal .cal-dh{font-size:.85rem;padding-bottom:.4rem}
.p-cal .cal-dh.dom{color:#B3261E}
.p-cal .cal-vazio{aspect-ratio:auto}
.p-cd{aspect-ratio:auto!important;min-height:8.6rem;display:flex!important;flex-direction:column;align-items:stretch!important;
  justify-content:flex-start!important;gap:.25rem;padding:.45rem .5rem!important;text-align:left;overflow:hidden;
  border:2px solid var(--line)!important;background:#FFF!important}
.p-cd-topo{display:flex;justify-content:space-between;align-items:baseline;gap:.3rem}
.p-cd .cal-n{font-size:1.15rem}
.p-cd .cal-c{font-size:.7rem;color:var(--soft);font-weight:700}
.p-cd.raros .cal-c{color:#9A6A00} .p-cd.cheio .cal-c{color:#B3261E}
.p-cd.cheio{box-shadow:inset 0 -4px 0 #B3261E}
.p-cd.raros{box-shadow:inset 0 -4px 0 #F2B705}
.p-cd-nomes{display:flex;flex-direction:column;gap:.18rem;min-width:0}
.p-cd-contas{display:none}
.p-cd-sem{font-size:.66rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#B3261E;line-height:1.15;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.p-cd.sem-saidas{background:#FCE4E2!important;border-color:#E9A6A1!important}
.p-cd.hoje{border-color:var(--ink)!important}
.p-cd.inicio{background:#FFF!important;border-color:#C64446!important;box-shadow:0 0 0 3px #C64446,0 12px 26px -14px rgba(198,68,70,.8)}
.p-cd.inicio.sem-saidas{background:#FCE4E2!important}
.p-cd.inicio .cal-n{color:var(--ink)} .p-cd.inicio .cal-c{color:var(--soft)}
.p-cd:hover{transform:translateY(-2px)}

/* o dia aberto: quatro colunas, uma por serviço */
.p-dia{margin-top:1.4rem;background:#FFF;border-radius:var(--r-lg);box-shadow:var(--shadow);padding:clamp(1.1rem,2.2vw,1.8rem);scroll-margin-top:6rem}
.p-dia-cab{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.6rem 1.5rem;
  padding-bottom:.9rem;border-bottom:2px dotted var(--line)}
.p-dia .p-dia-h{font-size:clamp(1.3rem,2.4vw,1.7rem)}
.p-quartos{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;font-size:.92rem;color:var(--soft)}
.p-quartos b{color:var(--ink)}
.p-sem-saidas{margin-top:.9rem;padding:.7rem 1rem;border-radius:14px;background:#FCE4E2;color:#8E1F18;font-weight:700}
.p-cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.1rem;margin-top:1.1rem}
.p-col{min-width:0}
.p-col h4{display:flex;align-items:center;gap:.5rem;font-family:var(--f-body);font-size:.8rem;font-weight:800;
  letter-spacing:.13em;text-transform:uppercase;color:var(--ink);padding-bottom:.5rem;border-bottom:3px solid var(--stone)}
.p-col.h h4{border-bottom-color:#C64446} .p-col.c h4{border-bottom-color:#F2B705}
.p-col.x h4{border-bottom-color:#3B9AD9}
.p-col .p-cont{margin-left:auto;font-size:1rem;color:var(--ink)}
.p-col .p-lista{margin-top:.7rem}
.p-col .p-linha{grid-template-columns:1fr auto;row-gap:.15rem;padding:.6rem .75rem}
.p-col .p-linha .p-nome{grid-column:1/-1}
.p-col .p-linha .p-dono{grid-column:1/-1}
.p-col .p-linha .p-tel{grid-column:1}
.p-col .p-linha .p-est{grid-column:2;grid-row:3}
.p-col .p-linha-x .p-nome{color:#0F4C75}
.p-col .p-vazio{font-size:.9rem;margin-top:.7rem}
.p-col .p-tag{display:inline-block;font-size:.7rem;padding:.12rem .5rem;vertical-align:.08em}

/* listas por serviço, com cabeçalho */
.p-tab-cab{display:grid;grid-template-columns:1.1fr 1.3fr 1.2fr 1.3fr 8rem;gap:.7rem;padding:0 .95rem .5rem;
  font-size:.74rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--soft)}
.p-tab5 li>button{grid-template-columns:1.1fr 1.3fr 1.2fr 1.3fr 8rem}
.p-tab5 .p-dono small{display:block;font-size:.8rem}
.p-tab5 .p-est{justify-self:start}
.p-tab5 .p-tag{display:inline-block;font-size:.7rem;padding:.12rem .5rem}
.p-sem{color:var(--stone)}
.p-ver{font-weight:700;color:var(--red-dk);font-size:.88rem}

/* gaveta: ficha técnica, ficha do cliente e formulário */
.p-ficha{width:min(38rem,96vw);padding:1.6rem}
.f-svc-topo{font-size:.78rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--red-dk);margin-bottom:.2rem}
.f-botoes{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:1rem}
.f-botoes span{font-weight:700;color:var(--soft);font-size:.88rem;flex-basis:100%}
.f-botoes .btn{padding:.6rem 1.15rem}
.f-pet-ficha{margin-top:1.6rem;padding:1rem 1.1rem 1.1rem;border-radius:18px;background:var(--cream)}
.f-pet-nome{font-size:1.3rem}
.f-pet-ficha .f-bloco{margin-top:.9rem}
.f-hist-l{list-style:none;display:grid;gap:.45rem}
.f-hist{width:100%;display:grid;grid-template-columns:1fr auto;gap:.15rem .8rem;align-items:center;text-align:left;cursor:pointer;
  background:var(--cream);border:2px solid transparent;border-radius:14px;padding:.6rem .8rem;font-family:var(--f-body)}
.f-hist:hover{border-color:var(--red)}
.f-hist[data-arq]{opacity:.6}
.f-hist-t{font-weight:700;color:var(--ink)}
.f-hist-s{grid-column:1;font-size:.84rem;color:var(--soft);line-height:1.45}
.f-hist .p-est{grid-column:2;grid-row:1 / span 2}
.f-ligado{display:inline-block;margin-top:.15rem;font-weight:700;color:#24562F}
.f-aviso-p{font-style:normal;font-weight:700;color:#B3261E}
.f-svc-esc{margin-top:1rem}
.f-svc-esc > label{display:block;font-weight:700;font-size:.85rem;margin-bottom:.4rem}
#fForm:not([data-svc="hotel"]) [data-so="hotel"],
#fForm:not([data-svc="creche"]) [data-so="creche"],
#fForm:not([data-svc="banho"]) [data-so="banho"],
#fForm:not([data-svc="extra"]) [data-so="extra"]{display:none}
.f-sem-saidas{margin-top:.7rem;padding:.6rem .85rem;border-radius:12px;background:#FCE4E2;color:#8E1F18;font-size:.86rem;line-height:1.45}
.f-sem-saidas.on{background:#B3261E;color:#FFF}
input.f-dia-verm{border-color:#B3261E!important;background:#FCE4E2!important;color:#8E1F18!important}

@media(max-width:1100px){
  .p-cols{grid-template-columns:repeat(2,minmax(0,1fr))}
  .p-hoje{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .p-novas{width:100%}
  .p-novas span{flex-basis:100%}
  .p-novas .btn{flex:1;padding:.7rem .4rem}
  .p-hoje{gap:.6rem}
  .p-hoje-c{padding:.8rem .9rem;border-left-width:6px}
  .p-hoje-c span{font-size:.7rem;letter-spacing:.08em}
  .p-hoje-c small{font-size:.76rem}
  .p-abas{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .p-abas button{flex:none;font-size:.98rem;padding:.55rem 1rem}
  .p-cal{padding:.7rem .5rem}
  .p-cal .cal-grelha{gap:.2rem}
  .p-cal .cal-mes{font-size:1.15rem}
  .p-cd{min-height:4.4rem;padding:.3rem .25rem!important;gap:.15rem;border-radius:10px!important}
  .p-cd .cal-n{font-size:.95rem}
  .p-cd .cal-c,.p-cd-nomes,.p-cd-sem{display:none}
  .p-cd-contas{display:flex;flex-wrap:wrap;gap:2px}
  .pc{font-style:normal;font-size:.66rem;font-weight:800;min-width:1.1rem;height:1.1rem;line-height:1.1rem;
    text-align:center;border-radius:4px;padding:0 .15rem}
  .pc.h{background:#C64446;color:#FFF} .pc.c{background:#F2B705;color:#3A2C00} .pc.x{background:#3B9AD9;color:#FFF}
  .p-cols{grid-template-columns:1fr}
  .p-tab-cab{display:none}
  .p-tab5 li>button{grid-template-columns:1fr auto}
  .p-tab5 .p-est{grid-column:2;grid-row:1}
  .p-ficha{padding:1.1rem}
}

/* 03/11/2026, à noite: Serviços Extras num conjunto só (azul) e fichas de
   cliente sem serviço */
.p-svc.extra{background:#DDEFFC;color:#0F4C75}
.p-tag.aparte{background:#DDEFFC;color:#0F4C75}
.p-cols{grid-template-columns:repeat(3,minmax(0,1fr))}
.p-novas .btn.ghost{background:#FFF;color:var(--red-dk);border:2px solid var(--red-dk)}
#fForm[data-svc="ficha"] [data-nao~="ficha"]{display:none}
.f-so-ficha{margin-top:1.2rem;padding:.8rem 1rem;border-radius:14px;background:#DDEFFC;color:#0F4C75;font-weight:700}
.f-notas{font-size:.95rem;line-height:1.5;color:var(--ink)}
@media(max-width:1100px){.p-cols{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.p-cols{grid-template-columns:1fr}.p-novas .btn{flex:1 1 40%}}

/* 03/11/2026: escolher o cliente que já tem ficha, no topo da reserva nova */
.f-cli{margin-top:1rem;padding:1rem;border-radius:16px;background:#FFF;border:2px solid var(--stone)}
.f-cli > label{display:block;font-weight:800;font-size:.85rem;margin-bottom:.4rem}
.f-cli input{width:100%;font-family:var(--f-body);font-size:1rem;border:2px solid var(--stone);border-radius:12px;padding:.7rem .85rem;min-height:46px;background:var(--paper)}
.f-cli input:focus{outline:none;border-color:var(--red-dk)}
.f-cli-res{display:grid;gap:.35rem;margin-top:.45rem}
.f-cli-res button{display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;text-align:left;cursor:pointer;
  background:var(--cream);border:2px solid transparent;border-radius:12px;padding:.55rem .75rem;font-family:var(--f-body)}
.f-cli-res button:hover{border-color:var(--red)}
.f-cli-res button span{font-size:.84rem;color:var(--soft)}
.f-cli-nada,.f-cli-dica{font-size:.84rem;color:var(--soft);margin-top:.45rem}
.f-cli-ok{margin-top:.55rem;padding:.6rem .8rem;border-radius:12px;background:#DFF0E2;color:#24562F;font-size:.9rem}

/* ==========================================================================
   04/11/2026 — notas da Mafalda na Creche. "Colocar a vermelho": os títulos
   marcados passam ao vermelho de sempre da casa (o js já não lhes mexe na
   cor: .t-verm está no NAO_MEXER). "Bolas dos números mais preenchidas",
   "foto um bocado mais larga" e "os certos mais verdes".
   ========================================================================== */
.t-verm, .t-verm em{color:#A83E27!important;-webkit-text-fill-color:#A83E27!important}
.mosaico-creche .mc .num{opacity:1!important;width:2.9rem;height:2.9rem;font-size:1.05rem;
  background:#FFD23F!important;color:#1A4C33!important;-webkit-text-fill-color:#1A4C33!important;
  box-shadow:0 0 0 3px rgba(255,255,255,.18),0 8px 16px -8px rgba(0,0,0,.5)}
.mosaico-creche .mc-c5 .num{background:#FFF!important;color:#A83E27!important;-webkit-text-fill-color:#A83E27!important}
.svc-s2 #creche-detalhe .lista-check li::before{opacity:1;background:#2E8B4E}
.svc-s2 #creche-detalhe .lista-check li::after{border-color:#FFF}
@media(min-width:901px){
  .svc-s2 #creche-detalhe .duo > .foto-deco{width:clamp(19rem,30vw,26rem)}
}
@media(max-width:900px){
  .svc-s2 #creche-detalhe .duo > .foto-deco{max-width:min(21rem,88vw)}
}
/* 04/11, depois: "todos os títulos a vermelho" na Creche e o quadrado
   escolhido das mensalidades (a semana inteira) a verde */
#mensalidades .mens.destaque{background:linear-gradient(160deg,#2E8B4E,#1A6B3A)!important;border-color:#1A6B3A!important;
  box-shadow:0 20px 40px -22px rgba(26,107,58,.8)}
#mensalidades .mens.destaque *{color:#FFF!important;-webkit-text-fill-color:#FFF!important}


/* ---- 04/11/2026, à noite: "consegues colocar tipo borda branca" nos títulos
   vermelhos; os do Pet Táxi a amarelo; a fotografia na secção do código
   postal. A borda é feita com sombras (funciona em todos os browsers). */
.t-verm{text-shadow:
  -.045em -.045em 0 #FFF, .045em -.045em 0 #FFF, -.045em .045em 0 #FFF, .045em .045em 0 #FFF,
  0 -.06em 0 #FFF, 0 .06em 0 #FFF, -.06em 0 0 #FFF, .06em 0 0 #FFF, 0 .14em .3em rgba(90,40,10,.25)}
.t-amar, .t-amar em{color:#FFD23F!important;-webkit-text-fill-color:#FFD23F!important}
.como-duo{align-items:center}
.como-foto{width:min(100%,380px);aspect-ratio:4/5;justify-self:center;margin:0}
.como-foto img{width:100%;height:100%;object-fit:cover;object-position:50% 45%}
@media(max-width:900px){ .como-foto{max-width:20rem;margin-top:1.6rem} }
@media(min-width:901px){ .como-duo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,380px);gap:clamp(2rem,5vw,4rem);align-items:center} .como-foto{width:100%} }
/* 04/11: os sobretítulos da Creche a vermelho, só a cor, sem a borda branca */
.t-verm-s{color:#A83E27!important;-webkit-text-fill-color:#A83E27!important;text-shadow:none!important}

/* ==========================================================================
   04/11/2026, à noite — notas da Mafalda
   ========================================================================== */
/* INÍCIO · capa: o beagle a correr no pomar; sem a nota do Google */
.capa-pomar-beagle img{object-fit:cover!important;object-position:50% 34%!important}
@media(max-width:760px){.capa-pomar-beagle img{object-position:38% 50%!important}}
/* "equilibra o espaço": o nome e a frase em cima, os dois botões vermelhos em
   baixo, e o meio fica para a fotografia (o beagle a correr à vista) */
.cover:has(.capa-pomar-beagle) .cover-in{align-self:stretch;display:flex;flex-direction:column;align-items:center;
  margin-top:0!important;box-sizing:border-box;
  padding-top:clamp(4.2rem,10vh,7rem);padding-bottom:clamp(5rem,10.5vh,6.8rem)}
.cover:has(.capa-pomar-beagle) .cover-act{margin-top:auto}
@media(min-width:761px){
  /* no computador a foto desce um pouco: o beagle passa a correr por baixo
     da frase verde e por cima dos botões, em vez de ficar tapado */
  .capa-pomar-beagle img{transform:scale(1.18)!important;transform-origin:62% 0}
  .capa-pomar-beagle::after{background:radial-gradient(ellipse 32% 36% at 50% 33%,rgba(255,253,250,.86),
    rgba(255,250,242,.55) 58%,rgba(255,246,234,0) 100%),
    linear-gradient(180deg,rgba(255,255,255,0) 66%,rgba(20,30,24,.34))!important}
}
@media(max-width:760px){
  .capa-pomar-beagle::after{background:radial-gradient(ellipse 96% 30% at 50% 30%,rgba(255,253,250,.9),
    rgba(255,250,242,.72) 55%,rgba(255,246,234,0) 100%),
    linear-gradient(180deg,rgba(255,255,255,0) 70%,rgba(20,30,24,.3))!important}
  .cover:has(.capa-pomar-beagle) .cover-in{padding-top:5.4rem;padding-bottom:4.6rem}
  .cover:has(.capa-pomar-beagle) .capa-diamante{margin-bottom:-.2rem}
}

/* A QUINTA · "muito espaço" por cima dos cavalos: onda mais baixa e o título mais perto */
#cavalos{padding-top:clamp(1.4rem,3vw,2.6rem)}
#cavalos > .deco.onda.t{height:clamp(46px,6vw,92px)}
#cavalos > .wrap{margin-top:clamp(28px,4vw,60px)}
/* e a onda de baixo dos hóspedes, que somava a dela à dos cavalos */
#hospedes{padding-bottom:clamp(1.2rem,2.4vw,2.2rem)}
#hospedes > .deco.onda.b{height:clamp(40px,5vw,80px)}
#hospedes > .wrap{margin-bottom:clamp(30px,4vw,64px)}

.pg-faq .pagetop h1, .pg-faq .pagetop .phrase{text-shadow:0 2px 14px rgba(0,0,0,.45)}

/* ---- 04/11/2026, noite: Início sem a caixa verde; botões nunca colados ---- */
.cover:has(.capa-pomar-beagle) .cover-act{padding-top:1.6rem}
.capa-familia{margin-bottom:0}

/* ---- PERGUNTAS · o portão verdadeiro da entrada como FUNDO do topo. O
   título vive no céu da fotografia, o portão fica à vista por baixo.
   Tudo em imagens (sem background-color): o js das ondas lê a cor de fundo.
   No computador a foto cobre o painel e o painel cresce para o portão caber;
   no telemóvel a foto vai à largura, em baixo, e o céu continua por cima
   num gradiente com as cores do próprio céu. ------------------------------ */
/* Uma só regra para todos os ecrãs. --T é onde acaba o texto (cresce com a
   largura). A foto vai sempre à largura toda e é posta de maneira que o topo
   do portão (27,5% da largura abaixo do topo da foto) caia logo depois do
   texto; o painel acaba pouco depois da calçada (31,8% da largura). Por cima
   da foto, quando sobra, continua o céu num gradiente com as cores dele; e a
   faixa de cima escurece para o menu, o caminho e a frase a branco. */
.pg-faq .pagetop{--T:calc(260px + 9vw);
  background:
    linear-gradient(180deg,rgba(16,40,26,.64) 0,rgba(16,40,26,.4) calc(var(--T) * .55),rgba(16,40,26,0) var(--T)),
    linear-gradient(180deg,#9DB8DE 0,#AFC5E3 calc(var(--T) - 27.5vw),rgba(175,197,227,0) calc(var(--T) - 27.5vw + 90px)),
    url(../img/ronda2510/faq-portao-fundo.webp) 50% calc(var(--T) - 27.5vw)/100% auto no-repeat!important;
  min-height:calc(var(--T) + 31.8vw)}
.pg-faq .pagetop > .wrap{position:relative;z-index:2}
.pg-faq .pagetop .phrase, .pg-faq .pagetop .crumbs{text-shadow:0 2px 12px rgba(0,0,0,.5)}
.pg-faq .pagetop h1{margin-top:.3rem}

/* ---- 04/11/2026, noite: RESERVAS · "ajeita isto, que fique bem e coerente".
   As garantias e o formulário são o mesmo vermelho: a onda preta que o js
   punha entre os dois não separava nada e caía em cima dos cartões pretos.
   Sai, e os cartões ficam a uma distância certa das garantias. */
.resv-main .resv-verde:not(#resvTopo) > .deco.onda{display:none}
.resv-main .resv-verde:not(#resvTopo){padding-bottom:clamp(1.6rem,3vw,2.4rem)!important}
.resv-main .resv-verde:not(#resvTopo) > .wrap{margin-bottom:0!important}
