/* styles.css — mantém paleta e componentes; adiciona ajuste para horários */

:root{--brown:#6B3F2A;--brown-med:#9C6B4A;--beige:#F5EEE6;--ivory:#FBF8F3;--coffee:#3E2F27;--gold:#C9A57B;--radius:16px;--shadow:0 12px 36px rgba(62,47,39,.12)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--coffee);background:var(--beige);line-height:1.6;font-weight:500}

h1,h2,h3{font-family:"Playfair Display",Georgia,serif;line-height:1.2;color:var(--brown);margin:0 0 .5rem}
h1{font-size:clamp(2.2rem,3.6vw,3.8rem);letter-spacing:-.5px;font-weight:700}
h2{font-size:clamp(1.8rem,2.8vw,2.6rem);letter-spacing:-.25px;font-weight:600}
h3{font-size:1.25rem}

.container{max-width:1160px;margin:auto;padding:0 1rem}
.section{padding:4rem 0}
.center{text-align:center}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;clip:rect(0 0 0 0);overflow:hidden}
.skip-to-content{position:absolute;left:-9999px;top:auto}
.skip-to-content:focus{left:1rem;top:1rem;background:var(--ivory);padding:.5rem .75rem;border-radius:.5rem;box-shadow:var(--shadow)}
#loader{position:fixed;inset:0;background:var(--ivory);opacity:0;pointer-events:none;transition:opacity .4s ease}
body.loading #loader{opacity:1;pointer-events:auto}

/* Header */
.site-header{position:sticky;top:0;z-index:1000;background:rgba(251,248,243,.92);backdrop-filter:saturate(180%) blur(8px);border-bottom:1px solid rgba(201,165,123,.30)}
.header-grid{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:70px}
.brand img{display:block;object-fit:contain}
.menu{display:flex;gap:.6rem;list-style:none;margin:0;padding:0;align-items:center}
.menu a{display:inline-block;padding:.55rem .8rem;border-radius:.7rem;text-decoration:none;color:var(--coffee)}
.menu a:hover{background:rgba(201,165,123,.14)}
.btn{background:var(--brown);color:#fff;text-decoration:none;padding:.75rem 1.1rem;border-radius:999px;border:1px solid var(--brown);display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;box-shadow:var(--shadow);font-weight:600}
.btn:hover{background:#5e3826;border-color:#5e3826}
.btn-outline{background:#fff;color:var(--brown);border:1px solid var(--gold)}
.btn-cta{background:linear-gradient(180deg,var(--brown) 0%,#5e3826 100%);border-color:#5e3826}
.btn-lg{padding:1rem 1.4rem;font-size:1.125rem}

/* Hero */
.hero{position:relative;overflow:hidden;background:var(--beige)}
.hero::before{content:"";position:absolute;inset:-20% -10% auto auto;width:1200px;height:1200px;background:url('public/assets/logo-dark.webp') no-repeat center/contain;opacity:.06;filter:grayscale(100%);pointer-events:none}
.hero-grid{position:relative;display:grid;grid-template-columns:1.15fr .85fr;gap:2rem;align-items:center}
.hero-ctas-vertical{display:grid;gap:.6rem;margin:1rem 0 1.2rem}
.badge{display:inline-flex;align-items:center;gap:.35rem;background:#fff;border:1px solid rgba(201,165,123,.35);padding:.35rem .6rem;border-radius:999px;font-size:.95rem;margin:.25rem .35rem .25rem 0}
.highlights{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}
.highlight-card{background:#fff;padding:.9rem 1rem;border:1px solid rgba(201,165,123,.35);border-radius:1rem}
.hero-photo{width:100%;height:auto;border-radius:20px;border:1px solid rgba(201,165,123,.35);box-shadow:0 18px 44px rgba(107,63,42,.18)}

/* Cards */
.grid.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.card{background:linear-gradient(180deg,#FBF8F3 0%,#fff 100%);padding:1.25rem;border-radius:1rem;border:1px solid rgba(201,165,123,.28);box-shadow:var(--shadow);transition:transform .2s ease, box-shadow .2s ease}
.card:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(62,47,39,.12)}
.card .btn-link{background:none;border:none;color:var(--brown);text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:0;margin-top:.25rem}

/* About */
.about-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:2rem;align-items:start}
.about-photo img{width:100%;height:auto;border-radius:1rem;box-shadow:var(--shadow);border:1px solid rgba(201,165,123,.28)}
.badge-list{display:flex;gap:.5rem;flex-wrap:wrap;padding:0;margin:.5rem 0 1rem;list-style:none}
.badge-list li{background:#fff;padding:.35rem .55rem;border-radius:.6rem;border:1px solid rgba(201,165,123,.35)}
.team-mini{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}
.team-mini div{background:var(--ivory);border:1px solid rgba(201,165,123,.35);border-radius:.8rem;padding:.8rem}

/* Carousel */
.carousel{position:relative;margin-top:.5rem}
.carousel-track{display:flex;overflow:hidden;scroll-behavior:smooth}
.carousel-slide{min-width:100%;padding:.25rem;display:grid;justify-items:center}
.carousel img{width:min(880px,100%);height:auto;border-radius:16px;border:1px solid rgba(201,165,123,.35);background:#fff}
.carousel-prev,.carousel-next{position:absolute;top:50%;transform:translateY(-50%);background:#fff;border:1px solid rgba(201,165,123,.5);border-radius:50%;width:42px;height:42px;display:grid;place-items:center;cursor:pointer;box-shadow:var(--shadow)}
.carousel-prev{left:-.5rem}.carousel-next{right:-.5rem}

/* Testimonials */
.testimonials{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;list-style:none;padding:0;margin:0}
.testimonial{background:#fff;border:1px solid rgba(201,165,123,.25);border-radius:1rem;padding:1rem}

/* CTA */
.cta{background:linear-gradient(180deg, rgba(201,165,123,.16), rgba(201,165,123,.06));text-align:center}
.cta-title{font-size:clamp(1.4rem,2.4vw,2rem);max-width:980px;margin:0 auto 1rem}
.cta-sub{margin:.25rem 0 1rem}

/* Contactos & Map */
.contacts-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:start}
.map iframe{width:100%;height:340px;border-radius:16px}
.contact-block{margin:.5rem 0 1rem}
.hours{margin:1rem 0}
.hours-list{list-style:none;margin:.25rem 0 0;padding:0;display:grid;gap:.25rem;max-width:360px}
.hours-list li{display:flex;justify-content:space-between;border:1px solid rgba(201,165,123,.28);background:#fff;border-radius:.5rem;padding:.45rem .6rem}
.social-coming{opacity:.9;margin-top:.6rem}

/* Footer */
.site-footer{background:#1d1612;color:#dccfbe;padding:2.2rem 0 1.2rem;margin-top:2rem}
.site-footer a{color:#e9dccb;text-decoration:none}
.site-footer a:hover{text-decoration:underline}
.footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:1.25rem;align-items:start}
.footer-nav ul{list-style:none;padding:0;margin:0;display:grid;gap:.35rem}
.footer-contact .social{display:flex;gap:.5rem;margin-top:.5rem}
.soc{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#3a2a21;border:1px solid rgba(201,165,123,.4);font-size:0}
.soc.ig::before{content:"";width:18px;height:18px;background:radial-gradient(circle at 30% 30%,#fdf497 0,#fdf497 30%,#fd5949 45%,#d6249f 60%,#285AEB 90%);-webkit-mask:url('data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 24 24\'><path d=\'M7 2C4.2 2 2 4.2 2 7v10c0 2.8 2.2 5 5 5h10c2.8 0 5-2.2 5-5V7c0-2.8-2.2-5-5-5H7zm5 5a5 5 0 110 10 5 5 0 010-10zm6.5-.9a1.1 1.1 0 110 2.2 1.1 1.1 0 010-2.2zM12 9a3 3 0 100 6 3 3 0 000-6z\'/></svg>') center/contain no-repeat}
.soc.fb::before{content:"";width:18px;height:18px;background:#1877F2;-webkit-mask:url('data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 24 24\'><path d=\'M13 22v-8h3l1-4h-4V7c0-1.2.3-2 2-2h2V1h-3c-3.1 0-5 2-5 5v4H6v4h3v8h4z\'/></svg>') center/contain no-repeat}
.soc.wa::before{content:"";width:18px;height:18px;background:#25D366;-webkit-mask:url('data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 32 32\'><path d=\'M16 3a13 13 0 0 0-11.2 19.4L3 29l6.9-1.8A13 13 0 1 0 16 3Zm7.5 18.7c-.3.9-1.7 1.6-2.3 1.7-.6.1-1.3.1-2.1-.1a18.4 18.4 0 0 1-3.9-1.6 14.7 14.7 0 0 1-4.7-4.2c-.5-.6-1.1-1.6-1.4-2.5-.3-.9 0-1.9.5-2.6.2-.3.5-.6.9-.6h.7c.2 0 .5 0 .7.6.3.7 1 2.4 1.1 2.5.1.2.2.5 0 .8-.2.3-.3.5-.6.8-.2.2-.5.5-.2 1 .3.5 1.3 2 2.9 3.2 2 1.4 3.5 1.9 4 .2.3-.6.6-.8 1.1-1 .2-.1.5-.1.7 0 .2 0 2 .9 2.3 1 .2.1.4.1.5.2.1.2.1.9-.1 1.2Z\'/></svg>') center/contain no-repeat}

.footer-legal{display:flex;gap:.6rem;justify-content:space-between;align-items:center;border-top:1px solid rgba(201,165,123,.25);margin-top:1.25rem;padding-top:1rem;font-size:.95rem}

/* Forms & Modal */
input,select,button,textarea{font:inherit}
input,select,textarea{width:100%;padding:.75rem .85rem;border:1px solid rgba(62,47,39,.25);border-radius:.8rem;background:#fff}
input:focus,select:focus,textarea:focus,button:focus{outline:3px solid rgba(201,165,123,.5);outline-offset:2px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.form-grid .consent{grid-column:1/-1;display:flex;gap:.5rem;align-items:flex-start}
.form-actions{display:flex;gap:1rem;align-items:center;margin-top:1rem}
.modal[hidden]{display:none}
.modal{position:fixed;inset:0;z-index:1100;display:grid;place-items:center}
.modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.45)}
.modal-content{position:relative;background:var(--ivory);border-radius:16px;padding:1.25rem;max-width:720px;width:min(720px,92vw);box-shadow:var(--shadow);border:1px solid rgba(201,165,123,.35)}
.modal-close{position:absolute;right:.5rem;top:.5rem;border:0;background:transparent;font-size:1.6rem;cursor:pointer}

/* WhatsApp flutuante */
.whatsapp-float{position:fixed;right:1rem;bottom:1rem;background:#25D366;color:#fff;width:56px;height:56px;border-radius:50%;display:grid;place-items:center;text-decoration:none;font-weight:700;box-shadow:0 10px 25px rgba(37,211,102,.4);font-size:0}
.whatsapp-float::before{content:"";display:block;width:26px;height:26px;background:#fff;-webkit-mask:url('data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 32 32\'><path d=\'M16 3a13 13 0 0 0-11.2 19.4L3 29l6.9-1.8A13 13 0 1 0 16 3Zm7.5 18.7c-.3.9-1.7 1.6-2.3 1.7-.6.1-1.3.1-2.1-.1a18.4 18.4 0 0 1-3.9-1.6 14.7 14.7 0 0 1-4.7-4.2c-.5-.6-1.1-1.6-1.4-2.5-.3-.9 0-1.9.5-2.6.2-.3.5-.6.9-.6h.7c.2 0 .5 0 .7.6.3.7 1 2.4 1.1 2.5.1.2.2.5 0 .8-.2.3-.3.5-.6.8-.2.2-.5.5-.2 1 .3.5 1.3 2 2.9 3.2 2 1.4 3.5 1.9 4 .2.3-.6.6-.8 1.1-1 .2-.1.5-.1.7 0 .2 0 2 .9 2.3 1 .2.1.4.1.5.2.1.2.1.9-.1 1.2Z\'/></svg>') center/contain no-repeat}

/* Responsivo */
@media (max-width:980px){
  .hero-grid{grid-template-columns:1fr}
  .grid.cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .testimonials{grid-template-columns:repeat(2,minmax(0,1fr))}
  .contacts-grid{grid-template-columns:1fr}
  .about-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
  .menu{display:none;position:absolute;right:1rem;top:70px;background:#fff;border:1px solid rgba(0,0,0,.1);padding:.5rem;border-radius:.6rem;flex-direction:column}
  .main-nav .nav-toggle{display:inline-flex;gap:.5rem;align-items:center;border:1px solid rgba(0,0,0,.15);background:#fff;padding:.4rem .6rem;border-radius:.6rem}
  .grid.cards{grid-template-columns:1fr}
  .hours-list{max-width:100%}
}
/* ==== Ajuste solicitado: carrossel da equipa -30% ==== */
/* Seleciona apenas o carrossel que fica dentro da foto da secção "Sobre" */
.about-grid .about-photo .carousel{
  max-width: 70%;         /* 30% menor */
  margin-left: auto;
  margin-right: auto;
}

/* Botões um pouco menores para acompanhar a redução */
.about-grid .about-photo .carousel .carousel-prev,
.about-grid .about-photo .carousel .carousel-next{
  width: 28px;
  height: 28px;
}

/* Imagem acompanha o novo container e mantém corte elegante */
.about-grid .about-photo .carousel img{
  width: 100%;
  height: auto;
  max-height: 300px;       /* opcional para evitar ficar muito alta */
  object-fit: cover;
  border-radius: 16px;
}

/* Em telas menores, deixamos ocupar toda a largura disponível */
@media (max-width: 980px){
  .about-grid .about-photo .carousel{ max-width: 100%; }
}
/* ===== Refinos de layout – coluna de texto ao lado do carrossel ===== */

/* Alinha verticalmente a coluna de texto com o carrossel e melhora a leitura */
#sobre .about-grid{
  align-items: center;              /* texto fica centrado em altura em relação ao carrossel */
  column-gap: 2rem;                 /* respiro entre as colunas */
}

/* Limita a largura da coluna de texto e aproxima visualmente do carrossel */
#sobre .about-grid > div:last-child{
  max-width: 640px;                 /* linha de leitura confortável */
  margin-left: auto;
}

/* Hierarquia e espaçamento mais elegantes */
#sobre h2{ margin: 0 0 .6rem }
#sobre p{  margin: 0 0 1.1rem }

/* Badges mais “respiráveis” e alinhadas ao texto */
#sobre .badge-list{
  gap: .6rem;
  margin: .6rem 0 1rem;
  align-items: center;
}

/* Grelha da equipa com respiro extra do texto acima */
#sobre .team-mini{
  margin-top: 1rem;
  row-gap: .9rem;
}

/* Responsivo: em telas estreitas, a coluna de texto ocupa toda a largura */
@media (max-width: 980px){
  #sobre .about-grid{
    align-items: start;             /* evita “pular” em mobile */
  }
  #sobre .about-grid > div:last-child{
    max-width: 100%;
  }
}
/* ====== SOBRE: alinhamento e largura da coluna de texto ====== */
#sobre .about-grid{
  /* controla as larguras das duas colunas e força alinhamento pelo topo */
  grid-template-columns: minmax(380px, 46%) minmax(420px, 54%);
  align-items: start !important;     /* sobrescreve qualquer center anterior */
  column-gap: 2rem;
}

/* mantém o carrossel centralizado dentro da sua coluna */
#sobre .about-grid .about-photo{ justify-self: center; }

/* coluna de texto (a da direita) com leitura confortável e leve deslocamento ao topo */
#sobre .about-grid > div:last-child{
  max-width: 560px;                  /* reduz linha de leitura */
  padding-top: .25rem;               /* aproxima do topo da imagem */
  margin-left: 0;                    /* garante alinhamento à esquerda */
}

/* hierarquia de tipografia e respiros */
#sobre h2{ margin: 0 0 .5rem; }
#sobre p{  margin: .25rem 0 1rem; max-width: 56ch; }

/* badges e grelha da equipa com respiro controlado */
#sobre .badge-list{ gap: .6rem; margin: .6rem 0 1rem; }
#sobre .team-mini{ margin-top: 1rem; row-gap: .9rem; }

/* — Mobile: uma coluna só, sem padding extra no topo — */
@media (max-width: 980px){
  #sobre .about-grid{
    grid-template-columns: 1fr;
    align-items: start !important;
  }
  #sobre .about-grid > div:last-child{
    max-width: 100%;
    padding-top: 0;
  }
}
/* ===== HEADER: logo maior + navegação alinhada ===== */
.site-header .header-grid{
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  min-height:76px;                  /* dá mais presença ao header */
}

.brand-logo{                        /* aumenta a logo do topo */
  height:56px; width:auto; display:block;
}

.main-nav{ display:flex; align-items:center; gap:.8rem; }
.menu{ display:flex; align-items:center; gap:.8rem; margin:0; padding:0; list-style:none; }
.menu a{ padding:.55rem .8rem; border-radius:.6rem; text-decoration:none; }

/* botão “Menu” alinhado com a navegação */
.main-nav .nav-toggle{
  display:inline-flex; align-items:center; gap:.4rem;
  border:1px solid rgba(0,0,0,.12); background:#fff; padding:.4rem .6rem; border-radius:.5rem;
}

/* ===== FOOTER: logo corrigida ===== */
.footer-logo{
  height:48px; width:auto; display:block; margin:0 0 .5rem 0;
  image-rendering:-webkit-optimize-contrast; /* melhora nitidez em PNG */
}

/* ===== Responsivo ===== */
@media (max-width: 760px){
  .brand-logo{ height:44px; }       /* ligeiramente menor em mobile */
  .menu{ display:none; }            /* o teu JS já abre/fecha o menu */
}
/* Garantir que nenhum tema/toggle substitua o src da imagem */
.brand-logo, .footer-logo { content: normal !important; }

/* Tamanhos das logos */
.brand-logo  { height: 56px; width: auto; display:block; }
.footer-logo { height: 48px; width: auto; display:block; margin: 0 0 .5rem; }

/* Mobile: um pouco menor */
@media (max-width:760px){
  .brand-logo{ height: 44px; }
}
