/* ============================================================
   Predimed Madeira One — design system partilhado (versão modernizada)
   Usado por todas as páginas interiores. A homepage mantém tudo inline.
   ============================================================ */
:root{
  --creme:#fbf9f5; --creme2:#f4efe3; --ouro:#c9a04f; --ouro-claro:#e2c584;
  --tinta:#14110b; --noite:#0b0a08; --cinza:#6b655a; --linha:#e8e1d0;
  --r-card:20px; --r-btn:999px;
  --sombra-suave:0 20px 50px rgba(20,17,11,.10);
  --ease-out:cubic-bezier(.22,1,.36,1);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:'Inter',sans-serif;background:var(--creme);color:var(--tinta);line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased;}
img{max-width:100%;height:auto;}
.serif{font-family:'Playfair Display',serif;}
.gold{color:#a8823c;}
::selection{background:rgba(201,160,79,.3);}

/* ---------- Barra de progresso de leitura ---------- */
#progresso{position:fixed;top:0;left:0;right:0;height:3px;z-index:150;background:linear-gradient(to right,var(--ouro),var(--ouro-claro));transform:scaleX(0);transform-origin:left;pointer-events:none;}

/* ---------- Preloader ---------- */
#pre{position:fixed;inset:0;z-index:200;background:rgba(11,10,8,.88);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;transition:opacity .7s ease,visibility .7s;}
.sem-pre #pre{display:none;}
#pre.fora{opacity:0;visibility:hidden;}
#pre img{height:clamp(120px,22vw,180px);width:auto;opacity:0;animation:preIn .7s .1s ease forwards;}
#pre .p-linha{width:0;height:1px;background:var(--ouro);animation:preLinha 1s .2s var(--ease-out) forwards;}
@keyframes preIn{to{opacity:1;}}
@keyframes preLinha{to{width:120px;}}

/* ---------- Navegação ---------- */
nav.topo{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:18px clamp(20px,4vw,48px);transition:padding .4s ease,background .4s ease,box-shadow .4s ease,border-color .4s ease;border-bottom:1px solid transparent;}
nav.topo.solida{padding:10px clamp(20px,4vw,48px);background:rgba(13,12,9,.82);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);box-shadow:0 10px 40px rgba(8,6,3,.25);border-bottom-color:rgba(255,255,255,.06);}
.n-logo img{height:56px;width:auto;transition:height .4s ease;}
nav.topo.solida .n-logo img{height:44px;}
.n-links{display:flex;align-items:center;gap:32px;}
.n-links > a, .n-drop > a{font-size:11px;letter-spacing:2.2px;color:rgba(255,255,255,.85);text-transform:uppercase;position:relative;padding:6px 0;transition:color .25s;display:inline-block;text-decoration:none;}
.n-links > a:hover, .n-drop > a:hover{color:#fff;}
.n-links > a::after{content:'';position:absolute;left:0;bottom:0;width:100%;height:1.5px;border-radius:2px;background:var(--ouro);transform:scaleX(0);transform-origin:right;transition:transform .35s cubic-bezier(.4,0,.2,1);}
.n-links > a:hover::after{transform:scaleX(1);transform-origin:left;}
.n-drop{position:relative;display:inline-block;}
.n-drop-menu{position:absolute;top:100%;left:50%;transform:translate(-50%,8px);background:rgba(13,12,9,.9);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:8px;min-width:200px;opacity:0;visibility:hidden;transition:opacity .3s ease,transform .3s ease,visibility .3s;box-shadow:0 24px 60px rgba(0,0,0,.4);}
.n-drop:hover .n-drop-menu, .n-drop:focus-within .n-drop-menu, .n-drop.aberto .n-drop-menu{opacity:1;visibility:visible;transform:translate(-50%,2px);}
.n-drop-menu a{display:block;padding:12px 16px;border-radius:9px;font-size:11px;letter-spacing:2px;color:rgba(255,255,255,.85);text-transform:uppercase;text-decoration:none;transition:background .2s,color .2s;}
.n-drop-menu a:hover{background:rgba(201,160,79,.16);color:var(--ouro-claro);}
.n-cta{border:1px solid var(--ouro)!important;border-radius:var(--r-btn);padding:11px 24px!important;color:var(--ouro-claro)!important;}
.n-lang{opacity:.75;}
.n-cta::after{display:none!important;}
.n-cta:hover{background:var(--ouro);color:var(--noite)!important;}
#n-burger{display:none;background:none;border:none;width:40px;height:40px;position:relative;z-index:120;cursor:pointer;}
#n-burger span{position:absolute;left:8px;right:8px;height:1.5px;background:#fff;transition:transform .35s ease,opacity .3s,top .35s ease;}
#n-burger span:nth-child(1){top:14px;}
#n-burger span:nth-child(2){top:20px;}
#n-burger span:nth-child(3){top:26px;}
#n-burger.x span:nth-child(1){top:20px;transform:rotate(45deg);}
#n-burger.x span:nth-child(2){opacity:0;}
#n-burger.x span:nth-child(3){top:20px;transform:rotate(-45deg);}
#menu-mob{position:fixed;inset:0;z-index:110;background:rgba(11,10,8,.97);backdrop-filter:blur(12px);display:flex;flex-direction:column;justify-content:center;padding:0 clamp(28px,8vw,80px);gap:4px;opacity:0;visibility:hidden;transition:opacity .45s ease,visibility .45s;}
#menu-mob.aberto{opacity:1;visibility:visible;}
#menu-mob a{font-family:'Playfair Display',serif;font-size:clamp(26px,6.5vw,40px);color:#fff;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.08);opacity:0;transform:translateY(24px);transition:opacity .5s ease,transform .5s var(--ease-out);text-decoration:none;}
#menu-mob.aberto a{opacity:1;transform:none;}
#menu-mob a small{font-family:'Inter',sans-serif;font-size:11px;letter-spacing:3px;color:rgba(255,255,255,.4);display:block;}
#menu-mob a em{font-style:italic;color:var(--ouro);}
@media(max-width:960px){.n-links{display:none;}#n-burger{display:block;}}

/* ---------- Componentes ---------- */
.btn-ouro{display:inline-flex;align-items:center;gap:10px;padding:17px 34px;background:var(--ouro);color:var(--noite);border-radius:var(--r-btn);font-size:11px;font-weight:600;letter-spacing:2.5px;text-transform:uppercase;text-decoration:none;transition:background .25s,box-shadow .25s,transform .25s ease;box-shadow:0 14px 40px rgba(201,160,79,.28);}
.btn-ouro:hover{background:var(--ouro-claro);box-shadow:0 18px 50px rgba(201,160,79,.42);transform:translateY(-2px);}
.btn-linha{display:inline-flex;align-items:center;gap:10px;padding:16px 33px;border:1px solid rgba(255,255,255,.5);color:#fff;border-radius:var(--r-btn);font-size:11px;font-weight:500;letter-spacing:2.5px;text-transform:uppercase;text-decoration:none;background:rgba(255,255,255,.06);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:border-color .25s,background .25s,transform .25s;}
.btn-linha:hover{border-color:#fff;background:rgba(255,255,255,.12);transform:translateY(-2px);}
.btn-escuro,.btn-dark{display:inline-flex;align-items:center;gap:10px;padding:15px 30px;background:var(--tinta);color:#fff;border:none;border-radius:var(--r-btn);font-size:11px;font-weight:600;letter-spacing:2.5px;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:background .25s,box-shadow .25s,transform .25s ease;}
.btn-escuro:hover,.btn-dark:hover{background:#2a2418;box-shadow:0 14px 34px rgba(20,17,11,.25);transform:translateY(-2px);}
.btn-borda,.btn-gold{display:inline-flex;align-items:center;gap:10px;padding:14px 29px;border:1px solid var(--ouro);color:#8a6a2a;border-radius:var(--r-btn);font-size:11px;font-weight:600;letter-spacing:2.5px;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:background .25s,color .25s,transform .25s ease,box-shadow .25s;}
.btn-borda:hover,.btn-gold:hover{background:var(--ouro);color:#fff;transform:translateY(-2px);box-shadow:0 10px 24px rgba(168,130,60,.22);}
.btn-dark:active,.btn-gold:active,.btn-escuro:active,.btn-borda:active,.pm-btn:active{transform:translateY(0) scale(.985);transition-duration:.1s;}
body .pm-btn{border-radius:var(--r-btn);transition:background .25s,color .25s,transform .25s;}
body .pm-btn:hover{background:var(--ouro);color:var(--noite);transform:translateY(-2px);}
.seta{transition:transform .3s var(--ease-out);display:inline-block;}
a:hover .seta{transform:translateX(5px);}
.mag{display:inline-block;will-change:transform;transition:transform .55s cubic-bezier(.22,1.4,.36,1);}
.mag.ativo{transition:transform .09s linear;}
.s-label{display:inline-flex;align-items:center;gap:10px;font-size:10px;letter-spacing:4.5px;color:#8a6a2a;text-transform:uppercase;margin-bottom:18px;padding:9px 18px;border:1px solid var(--linha);border-radius:999px;background:#fff;}
.s-label::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--ouro);}
.s-titulo{font-family:'Playfair Display',serif;font-weight:400;font-size:clamp(30px,4vw,46px);line-height:1.25;letter-spacing:-.5px;}
.s-titulo em{font-style:italic;color:var(--ouro);}
.section{padding:64px 52px;max-width:1100px;margin:0 auto;}
.line{width:48px;height:2px;border-radius:2px;background:linear-gradient(to right,var(--ouro),var(--ouro-claro));margin-bottom:20px;}
.label{font-size:11px;letter-spacing:3px;color:#8a6a2a;display:block;}

/* ---------- Heróis interiores (pm-hero) ---------- */
body .pm-hero{border-radius:0 0 clamp(20px,3vw,32px) clamp(20px,3vw,32px);}
body .pm-hero-img{will-change:transform;}
body .pm-overlay{border-radius:0 0 clamp(20px,3vw,32px) clamp(20px,3vw,32px);}

/* ---------- Reveals ---------- */
.rev{opacity:0;transform:translateY(34px);transition:opacity .9s ease,transform .9s var(--ease-out);transition-delay:var(--d,0s);}
.rev.on{opacity:1;transform:none;}

/* ---------- Cartões e galerias (partilhado entre páginas) ---------- */
body .guia-card{border-radius:18px;box-shadow:var(--sombra-suave);}
body .team-card{border-radius:18px;}
body .blog-img{border-radius:14px;}
.espaco-card,.beneficios-grid>div{transition:transform .3s ease,box-shadow .3s ease;border-radius:16px;}
.espaco-card:hover,.beneficios-grid>div:hover{transform:translateY(-4px);box-shadow:0 12px 28px rgba(168,130,60,.16);}
.agencia-galeria img,.historia-foto img{border-radius:14px;transition:transform .35s ease,box-shadow .35s ease;}
.agencia-galeria img:hover{transform:scale(1.015);box-shadow:0 14px 32px rgba(31,28,23,.18);}
.historia-foto img:hover{transform:scale(1.012);}

/* ---------- Migalhas, skip-link, acessibilidade ---------- */
.migalhas{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:#9a9282;display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.migalhas a{color:#8a6a2a;text-decoration:none;transition:color .2s;display:inline-block;padding:8px 0;}
.migalhas a:hover{color:var(--tinta);}
.migalhas .sep{color:#c9b888;font-size:13px;}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--tinta);color:var(--creme);padding:10px 18px;z-index:999;font-size:13px;letter-spacing:1px;text-decoration:none;}
.skip-link:focus{left:0;}
a:focus-visible,button:focus-visible,[role="button"]:focus-visible{outline:2px solid #8a6a2a;outline-offset:3px;}

/* ---------- WhatsApp ---------- */
#wa-btn{position:fixed;left:24px;bottom:24px;width:52px;height:52px;border-radius:50%;background:#25D366;display:flex;align-items:center;justify-content:center;z-index:99;box-shadow:0 6px 18px rgba(0,0,0,.28);transition:transform .2s;}
#wa-btn:hover{transform:scale(1.08);}
#wa-btn svg{width:28px;height:28px;fill:#fff;}

/* ---------- Redes sociais ---------- */
.redes{display:flex;gap:16px;justify-content:center;margin:20px 0 6px;}
.redes a{width:42px;height:42px;border:1px solid rgba(201,160,79,.4);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:border-color .25s,background .25s,transform .25s;border-bottom:1px solid rgba(201,160,79,.4)!important;padding-bottom:0!important;}
.redes a:hover{border-color:var(--ouro)!important;background:rgba(201,160,79,.12);transform:translateY(-3px);}
.redes svg{width:16px;height:16px;fill:rgba(255,255,255,.78);transition:fill .25s;}
.redes a:hover svg{fill:var(--ouro-claro);}

/* ---------- Rodapé ---------- */
footer.rodape{background:var(--noite);color:rgba(255,255,255,.55);text-align:center;padding:56px 20px 34px;font-size:12px;letter-spacing:.5px;}
footer.rodape img{height:60px;width:auto;margin:0 auto 18px;display:block;}
footer.rodape p{line-height:2;}
footer.rodape a{color:rgba(255,255,255,.8);border-bottom:1px solid rgba(201,160,79,.5);padding-bottom:1px;text-decoration:none;}

/* ---------- Responsivo (grelhas 900px) ---------- */
@media(max-width:900px){
  .duas-colunas{grid-template-columns:1fr !important;}
  .duas-colunas>div:empty{display:none;}
  .form-field input,.form-field select,.form-field textarea{font-size:16px;}
}
@media(max-width:768px){
  .section{padding:40px 20px;}
}

/* ---------- Partilha discreta (guias e artigos) ---------- */
.partilha{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.partilha-rotulo{font-size:10px;letter-spacing:3px;text-transform:uppercase;color:#8a6a2a;margin-right:4px;}
.partilha-btn{display:inline-flex;align-items:center;gap:7px;padding:9px 18px;border:1px solid var(--linha);border-radius:999px;background:#fff;color:#4a443a;font-size:12px;font-family:'Inter',sans-serif;cursor:pointer;text-decoration:none;transition:border-color .25s,color .25s,box-shadow .25s;}
.partilha-btn:hover{border-color:var(--ouro);color:#8a6a2a;box-shadow:0 6px 16px rgba(168,130,60,.12);}

/* ---------- Movimento reduzido ---------- */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;}
  html{scroll-behavior:auto;}
  .rev{opacity:1;transform:none;}
  #pre{display:none;}
  #progresso{display:none;}
  .pm-hero-img{animation:none;transform:none!important;}
  .btn-dark:hover,.btn-gold:hover,.btn-escuro:hover,.btn-borda:hover,.pm-btn:hover,.espaco-card:hover,.beneficios-grid>div:hover,.agencia-galeria img:hover,.historia-foto img:hover{transform:none;}
}
