/* ============================================================
   Moment Pro — Safe Polish v1.0
   Camada exclusivamente visual.
   Não altera IDs, names, endpoints, formulários, login, sessões,
   base de dados, reCAPTCHA ou JavaScript existente.
   ============================================================ */

/* Ritmo geral: menos altura sem perder a identidade preto/dourado */
body.index-page .premium-h2 {
  line-height: 1.13 !important;
  text-wrap: balance;
}

body.index-page .premium-p {
  max-width: 680px;
  line-height: 1.68 !important;
}

body.index-page .about {
  padding: 94px 0 !important;
}

body.index-page .featured-services {
  padding: 90px 0 82px !important;
}

body.index-page #services {
  padding: 84px 0 !important;
}

body.index-page .portfolio {
  padding-top: 86px !important;
  padding-bottom: 86px !important;
}

body.index-page .testimonials-section {
  padding: 82px 0 !important;
}

body.index-page #dropdown {
  padding: 78px 0 !important;
}

body.index-page #team {
  padding: 82px 0 !important;
}

body.index-page #contact {
  padding: 84px 0 !important;
}

body.index-page .custom-cta {
  padding: 66px 0 !important;
}

/* About: moldura um pouco mais discreta */
body.index-page .about-img-frame {
  padding: 11px !important;
  box-shadow: 0 24px 54px rgba(0,0,0,.68) !important;
}
body.index-page .inner-frame-decor {
  inset: 11px !important;
}
body.index-page .section-divider-decor {
  margin-top: 72px !important;
  margin-bottom: -92px !important;
}

/* Layouts: continuam protagonistas, mas a página respira menos */
body.index-page #featured-services .premium-p {
  margin-bottom: 46px !important;
}
body.index-page #featured-services .row.gy-5 {
  --bs-gutter-y: 2.55rem;
}
body.index-page #featured-services .card-info {
  padding-top: 20px !important;
}
body.index-page #featured-services .card-info h3 {
  font-size: 23px !important;
  margin-bottom: 9px !important;
}
body.index-page #featured-services .card-info p {
  max-width: 520px;
  margin-left: auto;
  margin-right: auto;
  font-size: 13.5px !important;
  line-height: 1.62 !important;
}

/* Processo: mais compacto e mais fácil de percorrer */
body.index-page #services .v2-process-wrap {
  margin-top: 44px !important;
  padding-top: 36px !important;
}
body.index-page #services .v2-process-card {
  padding: 24px 20px !important;
  min-height: 178px !important;
}
body.index-page #services .v2-process-number {
  margin-bottom: 17px !important;
}

/* Casamentos reais: menos espaço antes/depois da grelha */
body.index-page #portfolio .portfolio-filters {
  margin-bottom: 30px !important;
}

/* Opiniões: preserva o slider e dados da BD; só ajusta proporções */
body.index-page #opinioes .v2-testimonials-heading {
  margin-bottom: 42px !important;
}
body.index-page #opinioes .testimonial-card {
  padding-top: 34px !important;
  padding-bottom: 34px !important;
}
body.index-page #opinioes .comment-body p {
  line-height: 1.65 !important;
}

/* FAQ: mesma lógica de acordeão, menos altura por linha */
body.index-page #dropdown .premium-p {
  margin-bottom: 44px !important;
}
body.index-page #dropdown .faq-container-luxury {
  gap: 12px !important;
}
body.index-page #dropdown .faq-item-premium {
  padding: 21px 48px 21px 22px !important;
}
body.index-page #dropdown .faq-item-premium h3 {
  font-size: 15px !important;
  line-height: 1.45 !important;
  letter-spacing: .55px !important;
}
body.index-page #dropdown .faq-icon {
  top: 22px !important;
  right: 22px !important;
}

/* Equipa: mantém exatamente as mesmas fotos/slider, apenas reduz escala */
@media (min-width: 768px) {
  body.index-page #team .slider-team-wrap .swiper {
    max-width: 820px !important;
  }
}
body.index-page #team .team-card-luxury {
  padding: 12px !important;
}
body.index-page #team .pic-wrapper {
  margin-bottom: 16px !important;
}
body.index-page #team .team-info-luxury h3 {
  font-size: 21px !important;
  margin-top: 11px !important;
}
body.index-page #team .team-info-luxury .position {
  font-size: 10.5px !important;
  margin-bottom: 12px !important;
}
body.index-page #team .luxury-line {
  margin-bottom: 12px !important;
}
body.index-page #team .team-info-luxury p {
  font-size: 13.2px !important;
  line-height: 1.58 !important;
  padding: 0 7px 5px !important;
}

/* Contacto: mesma ação, mesmos campos, mesmo reCAPTCHA e endpoint */
body.index-page #contact .v23-contact-header {
  padding-bottom: 32px !important;
}
body.index-page #contact .v23-contact-side {
  padding: 30px 24px 26px !important;
}
body.index-page #contact .form-wrapper-luxury {
  padding: 30px 32px 28px !important;
}
body.index-page #contact .v23-form-head {
  margin-bottom: 24px !important;
  padding-bottom: 20px !important;
}
body.index-page #contact .info-item-premium {
  margin-bottom: 30px !important;
}
body.index-page #contact .map-container-luxury {
  margin-top: 48px !important;
}
@media (min-width: 992px) {
  body.index-page #contact .map-responsive {
    height: 320px !important;
  }
}

/* Desktop: ligeiro refinamento do hero, sem mudar mensagem nem vídeo */
@media (min-width: 1200px) {
  body.index-page #hero .v2-hero-wrap {
    max-width: 860px !important;
    padding-top: 108px !important;
    padding-bottom: 56px !important;
  }
  body.index-page #hero .v2-hero-title {
    max-width: 790px !important;
    font-size: clamp(48px, 4vw, 62px) !important;
    line-height: 1.075 !important;
  }
  body.index-page #hero .v2-hero-copy {
    max-width: 680px !important;
  }
  body.index-page .v2-trust-item {
    min-height: 98px !important;
    padding-top: 20px !important;
    padding-bottom: 20px !important;
  }
}

/* Tablet */
@media (max-width: 1199px) {
  body.index-page .about,
  body.index-page .featured-services,
  body.index-page #services,
  body.index-page .portfolio,
  body.index-page .testimonials-section,
  body.index-page #dropdown,
  body.index-page #team,
  body.index-page #contact {
    padding-top: 72px !important;
    padding-bottom: 72px !important;
  }
}

/* Mobile: layout pensado como mobile, não apenas desktop encolhido */
@media (max-width: 768px) {
  body.index-page .header-social-links {
    display: none !important;
  }
  body.index-page #header .logo img,
  body.index-page #header .logo-image {
    max-height: 37px !important;
  }

  body.index-page #hero {
    min-height: 610px !important;
  }
  body.index-page .v2-hero-wrap {
    padding: 86px 14px 58px !important;
  }
  body.index-page .v2-hero-logo {
    width: 66px !important;
  }
  body.index-page .v2-hero-title {
    font-size: clamp(31px, 9.1vw, 40px) !important;
    line-height: 1.09 !important;
  }
  body.index-page .v2-hero-copy {
    font-size: 13px !important;
    line-height: 1.58 !important;
  }
  body.index-page .v2-hero-microproof {
    max-width: 330px;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  body.index-page .about,
  body.index-page .featured-services,
  body.index-page #services,
  body.index-page .portfolio,
  body.index-page .testimonials-section,
  body.index-page #dropdown,
  body.index-page #team,
  body.index-page #contact {
    padding-top: 62px !important;
    padding-bottom: 62px !important;
  }

  body.index-page .premium-h2 {
    font-size: clamp(29px, 8vw, 36px) !important;
  }
  body.index-page .premium-p {
    margin-bottom: 34px !important;
    font-size: 13px !important;
  }

  body.index-page #featured-services .row.gy-5 {
    --bs-gutter-y: 2rem;
  }
  body.index-page #featured-services .card-info {
    padding: 17px 8px 4px !important;
  }

  body.index-page #services .v2-process-wrap {
    margin-top: 34px !important;
    padding-top: 30px !important;
  }
  body.index-page #services .v2-process-card {
    padding: 20px 18px !important;
  }

  body.index-page #dropdown .faq-item-premium {
    padding: 18px 42px 18px 18px !important;
  }
  body.index-page #dropdown .faq-item-premium h3 {
    font-size: 14px !important;
    letter-spacing: .2px !important;
  }
  body.index-page #dropdown .faq-icon {
    top: 20px !important;
    right: 17px !important;
  }

  body.index-page #team .team-card-luxury {
    width: min(100%, 360px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  body.index-page #contact .v23-contact-side,
  body.index-page #contact .form-wrapper-luxury {
    padding: 22px 17px !important;
  }
  body.index-page #contact .g-recaptcha {
    transform-origin: left top;
  }
}

/* Ecrãs muito estreitos: evitar overflow do reCAPTCHA sem mexer nele */
@media (max-width: 340px) {
  body.index-page #contact .v23-recaptcha-wrap {
    width: 100%;
    overflow: hidden;
  }
  body.index-page #contact .g-recaptcha {
    transform: scale(.91);
    margin-bottom: -7px;
  }
}

/* ============================================================
   Safe Polish v1.1 — refinamento 2
   Foco: equipa mais elegante + FAQ mais nítido + ritmo final.
   Continua 100% visual: não altera PHP, IDs, names, endpoints,
   sessões, base de dados, login, registo, reCAPTCHA ou JS.
   ============================================================ */

/* Títulos de Equipa/FAQ mais próximos do conteúdo */
body.index-page #team .section-title {
  padding-bottom: 34px !important;
}
body.index-page #dropdown .section-title {
  padding-bottom: 36px !important;
}

/* Equipa: duas fichas mais compactas e com proporção mais elegante */
@media (min-width: 1200px) {
  body.index-page #team .slider-team-wrap .swiper {
    max-width: 770px !important;
  }
}
@media (min-width: 768px) and (max-width: 1199px) {
  body.index-page #team .slider-team-wrap .swiper {
    max-width: 740px !important;
  }
}
body.index-page #team .team-card-luxury {
  padding: 10px !important;
}
body.index-page #team .pic-wrapper {
  aspect-ratio: 4 / 4.65 !important;
  margin-bottom: 13px !important;
}
body.index-page #team .team-info-luxury h3 {
  font-size: 20px !important;
  margin-top: 8px !important;
  margin-bottom: 5px !important;
}
body.index-page #team .team-info-luxury .position {
  font-size: 10px !important;
  letter-spacing: 1.65px !important;
  margin-bottom: 10px !important;
}
body.index-page #team .luxury-line {
  margin-bottom: 10px !important;
}
body.index-page #team .team-info-luxury p {
  font-size: 12.8px !important;
  line-height: 1.56 !important;
  max-width: 315px;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: 0 5px 4px !important;
}

/* FAQ: mantém o acordeão atual, melhora leitura e estado aberto */
body.index-page #dropdown .faq-content-premium p {
  font-size: 13px !important;
  line-height: 1.62 !important;
  color: rgba(255,255,255,.68) !important;
}
body.index-page #dropdown .faq-item-premium.active-item {
  background: rgba(181,140,43,.045) !important;
  border-color: rgba(181,140,43,.36) !important;
}
body.index-page #dropdown .faq-item-premium.active-item h3 {
  color: #f4f1ea !important;
}

/* Divisórias um pouco menos altas para o site fluir melhor */
body.index-page .luxury-divider-flow {
  padding-top: 30px !important;
  padding-bottom: 30px !important;
}

/* Mobile: staff claramente desenhado para o ecrã, não apenas encolhido */
@media (max-width: 768px) {
  body.index-page #team .section-title,
  body.index-page #dropdown .section-title {
    padding-bottom: 28px !important;
  }
  body.index-page #team .team-card-luxury {
    width: min(100%, 330px) !important;
  }
  body.index-page #team .pic-wrapper {
    aspect-ratio: 4 / 4.7 !important;
  }
  body.index-page #team .team-info-luxury p {
    max-width: 285px;
    font-size: 12.6px !important;
  }
  body.index-page #dropdown .faq-container-luxury {
    gap: 10px !important;
  }
  body.index-page #dropdown .faq-item-premium {
    padding: 17px 40px 17px 16px !important;
  }
  body.index-page #dropdown .faq-item-premium h3 {
    font-size: 13.6px !important;
    line-height: 1.4 !important;
  }
  body.index-page #dropdown .faq-content-premium p {
    font-size: 12.7px !important;
    line-height: 1.58 !important;
  }
  body.index-page .luxury-divider-flow {
    padding-top: 24px !important;
    padding-bottom: 24px !important;
  }
}

/* ============================================================
   Safe Polish v1.2 — opiniões + contacto
   Apenas apresentação e microcopy do formulário de teste.
   Mantém IDs, names, endpoint, CSRF, reCAPTCHA e JS existentes.
   ============================================================ */

/* OPINIÕES — ligeiramente mais compactas e botão mais próximo */
@media (min-width: 769px) {
  body.index-page #opinioes .v2-testimonials-heading {
    max-width: 780px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    margin-bottom: 34px !important;
  }
  body.index-page #opinioes .v2-testimonials-heading h2 {
    font-size: clamp(34px, 3.3vw, 42px) !important;
    line-height: 1.14 !important;
  }
  body.index-page #opinioes .v2-testimonials-heading p {
    max-width: 650px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    font-size: 13.5px !important;
    line-height: 1.65 !important;
  }
  body.index-page #opinioes .testimonials-container {
    min-height: 365px !important;
  }
  body.index-page #opinioes .testimonials-group {
    gap: 26px !important;
  }
  body.index-page #opinioes .testimonial-card {
    max-width: 445px !important;
    padding: 27px 27px !important;
  }
  body.index-page #opinioes .wedding-date {
    margin-bottom: 10px !important;
  }
  body.index-page #opinioes .couple-name {
    font-size: 15px !important;
    margin-bottom: 7px !important;
  }
  body.index-page #opinioes .stars-elegant {
    margin-bottom: 16px !important;
  }
  body.index-page #opinioes .opinion-title {
    font-size: 18px !important;
    margin-bottom: 14px !important;
  }
  body.index-page #opinioes .comment-body p {
    font-size: 13px !important;
    line-height: 1.62 !important;
    padding: 0 4px !important;
  }
  body.index-page #opinioes form[method="POST"] {
    margin-top: 18px !important;
  }
}

body.index-page #opinioes .btn-elegant {
  padding: 12px 30px !important;
  font-size: 10.5px !important;
  letter-spacing: 2.2px !important;
}

/* CONTACTO — mais simples e mais claramente interativo */
body.index-page #contact .v23-contact-header {
  max-width: 760px !important;
  padding-bottom: 26px !important;
}
body.index-page #contact .v23-contact-header .premium-h2 {
  margin-bottom: 11px !important;
}
body.index-page #contact .v23-contact-copy {
  max-width: 610px !important;
  font-size: 13.5px !important;
  line-height: 1.62 !important;
}
body.index-page #contact .v23-form-head {
  margin-bottom: 20px !important;
  padding-bottom: 17px !important;
}
body.index-page #contact .v23-form-head h3 {
  font-size: 23px !important;
  margin-bottom: 6px !important;
}
body.index-page #contact .v23-form-head p {
  font-size: 12.5px !important;
  line-height: 1.55 !important;
}
body.index-page #contact textarea.custom-input-premium {
  min-height: 92px !important;
}

/* A seta torna evidente que "Tipo de evento" é uma escolha */
body.index-page #contact #contact-type {
  -webkit-appearance: none !important;
  appearance: none !important;
  cursor: pointer !important;
  padding-right: 46px !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23b58c2b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 15px center !important;
  background-size: 16px 16px !important;
}
body.index-page #contact #contact-type option {
  background: #111 !important;
  color: #fff !important;
}
body.index-page #contact #contact-type:invalid {
  color: rgba(255,255,255,.55) !important;
}

/* Ícone do calendário visível em Chrome/Safari sobre o fundo escuro */
body.index-page #contact #contact-date {
  color-scheme: dark;
  cursor: pointer;
}
body.index-page #contact #contact-date::-webkit-calendar-picker-indicator {
  opacity: 1 !important;
  cursor: pointer !important;
  filter: invert(64%) sepia(27%) saturate(1050%) hue-rotate(4deg) brightness(92%) contrast(88%);
}

@media (max-width: 768px) {
  body.index-page #opinioes .v2-testimonials-heading {
    margin-bottom: 26px !important;
  }
  body.index-page #opinioes .v2-testimonials-heading h2 {
    font-size: clamp(29px, 8.5vw, 35px) !important;
  }
  body.index-page #opinioes .testimonial-card {
    max-width: 94% !important;
    padding: 23px 18px !important;
  }
  body.index-page #opinioes .opinion-title {
    font-size: 17px !important;
    margin-bottom: 12px !important;
  }
  body.index-page #opinioes .comment-body p {
    font-size: 12.7px !important;
    line-height: 1.58 !important;
  }
  body.index-page #opinioes form[method="POST"] {
    margin-top: 18px !important;
  }
  body.index-page #contact .v23-contact-header {
    padding-bottom: 22px !important;
  }
  body.index-page #contact .v23-contact-copy {
    font-size: 12.8px !important;
  }
  body.index-page #contact #contact-type {
    background-position: right 12px center !important;
  }
}

/* ============================================================
   Safe Polish v1.3 — candidato a acabamento final
   Apenas CSS visual. Não altera PHP, sessões, BD, login,
   registo, endpoints, names/IDs de formulário ou reCAPTCHA.
   ============================================================ */

/* Cabeçalho: menos ruído sem retirar opções */
body.index-page .header-social-links {
  gap: 7px !important;
}
body.index-page .header-social-links a {
  opacity: .78;
  transform: scale(.92);
  transition: opacity .2s ease, transform .2s ease, color .2s ease;
}
body.index-page .header-social-links a:hover {
  opacity: 1;
  transform: scale(1);
}

/* Faixa de confiança mais elegante e menos alta */
@media (min-width: 992px) {
  body.index-page .v2-trust-item {
    min-height: 88px !important;
    padding-top: 16px !important;
    padding-bottom: 16px !important;
  }
  body.index-page .v2-trust-icon {
    font-size: 23px !important;
  }
  body.index-page .v2-trust-copy strong {
    font-size: 13px !important;
  }
  body.index-page .v2-trust-copy span {
    font-size: 10.5px !important;
  }
}

/* CTA: mantém a mensagem, mas deixa de competir com o hero/contacto */
body.index-page .custom-cta {
  padding-top: 56px !important;
  padding-bottom: 56px !important;
}
body.index-page .custom-cta .cta-title {
  font-size: clamp(27px, 3vw, 34px) !important;
  line-height: 1.18 !important;
  letter-spacing: .4px !important;
  margin-bottom: 12px !important;
}
body.index-page .custom-cta .cta-description {
  max-width: 650px !important;
  font-size: 14px !important;
  line-height: 1.62 !important;
  margin-bottom: 14px !important;
}
body.index-page .custom-cta .v2-cta-proof {
  gap: 10px 18px !important;
  font-size: 10px !important;
}
body.index-page .custom-cta .cta-btn-refined {
  padding: 13px 31px !important;
  font-size: 10.5px !important;
  letter-spacing: 2px !important;
}

/* Processo: um pouco mais editorial e menos bloco */
body.index-page #services .exp-item {
  padding: 25px !important;
}
body.index-page #services .exp-icon i {
  font-size: 27px !important;
  margin-bottom: 15px !important;
}
body.index-page #services .exp-content h4 {
  font-size: 19px !important;
}
body.index-page #services .exp-content p {
  font-size: 13px !important;
  line-height: 1.58 !important;
}
body.index-page #services .v2-process-heading p {
  max-width: 560px;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Layouts: hover ligeiramente mais subtil e comercial */
body.index-page #featured-services .luxury-card:hover img {
  transform: scale(1.022) !important;
}
body.index-page #featured-services .card-img-wrapper {
  box-shadow: 0 12px 34px rgba(0,0,0,.16);
}

/* Opiniões: mais leves, mantendo todo o texto e BD atual */
@media (min-width: 992px) {
  body.index-page #opinioes .testimonials-group {
    gap: 22px !important;
  }
  body.index-page #opinioes .testimonial-card {
    max-width: 420px !important;
    padding: 24px 24px !important;
  }
  body.index-page #opinioes .opinion-title {
    font-size: 17px !important;
  }
  body.index-page #opinioes .comment-body p {
    font-size: 12.7px !important;
  }
}

/* Equipa: acabamento final sem tornar as pessoas demasiado pequenas */
@media (min-width: 1200px) {
  body.index-page #team .slider-team-wrap .swiper {
    max-width: 735px !important;
  }
}
body.index-page #team .team-card-luxury {
  box-shadow: 0 18px 42px rgba(0,0,0,.22) !important;
}
body.index-page #team .pic-wrapper {
  margin-bottom: 11px !important;
}

/* Contacto: inputs um pouco mais limpos e compactos */
body.index-page #contact .custom-input-premium {
  min-height: 47px !important;
  padding-top: 11px !important;
  padding-bottom: 11px !important;
}
body.index-page #contact textarea.custom-input-premium {
  min-height: 88px !important;
}
body.index-page #contact .v2-field-label {
  margin-bottom: 6px !important;
}
body.index-page #contact .v23-recaptcha-wrap {
  margin-top: 4px !important;
  margin-bottom: 16px !important;
}
body.index-page #contact .v2-form-note {
  max-width: 540px;
}

/* Botão voltar ao topo: fica secundário em relação ao WhatsApp */
body.index-page #scroll-top {
  width: 38px !important;
  height: 38px !important;
  padding: 0 !important;
  right: 20px !important;
  bottom: 18px !important;
  border-radius: 50% !important;
  opacity: .82;
  box-shadow: 0 7px 22px rgba(0,0,0,.28) !important;
}
body.index-page #scroll-top:hover {
  opacity: 1;
  background: #b58c2b !important;
  color: #050505 !important;
}
body.index-page #scroll-top .bi-arrow-up-short {
  font-size: 20px !important;
}

/* Mobile: polimento real de ritmo e toques */
@media (max-width: 768px) {
  body.index-page #hero {
    min-height: 620px !important;
  }
  body.index-page .v2-hero-wrap {
    padding-top: 84px !important;
    padding-bottom: 54px !important;
  }
  body.index-page .v2-trust-grid {
    row-gap: 0 !important;
  }
  body.index-page .v2-trust-item {
    min-height: 82px !important;
    padding: 14px 10px !important;
  }
  body.index-page .custom-cta {
    padding: 46px 18px !important;
  }
  body.index-page .custom-cta .cta-title {
    font-size: 26px !important;
  }
  body.index-page .custom-cta .cta-description {
    font-size: 13px !important;
  }
  body.index-page #services .exp-item {
    padding: 22px 19px !important;
  }
  body.index-page #opinioes .testimonial-card {
    max-width: 92% !important;
  }
  body.index-page #team .team-card-luxury {
    width: min(100%, 318px) !important;
  }
  body.index-page #contact .custom-input-premium {
    min-height: 46px !important;
  }
  body.index-page #scroll-top {
    right: 14px !important;
    bottom: 18px !important;
    width: 36px !important;
    height: 36px !important;
  }
}


/* V5 — Contacto mobile: pedido primeiro, contactos diretos depois */
@media (max-width: 991.98px) {
  body.index-page #contact .row.gy-4 > .col-lg-8 {
    order: 1 !important;
  }
  body.index-page #contact .row.gy-4 > .col-lg-4 {
    order: 2 !important;
    margin-top: 22px !important;
  }
  body.index-page #contact .form-wrapper-luxury {
    margin-top: 0 !important;
  }
  body.index-page #contact .info-container-luxury {
    margin-top: 0 !important;
  }
}
