/* ═══════════════════════════════════════
   GESTÃO DE EVENTOS — RESPONSIVE CSS
   ═══════════════════════════════════════ */

:root {
  --ge-gold: var(--fived-gold);
  --ge-gold-light: #e8c547;
  --ge-dark: var(--fived-ink);
  --ge-surface: var(--fived-panel-raised);
  --ge-surface-2: #242424;
  --ge-text: var(--fived-ivory);
  --ge-text-muted: var(--fived-muted);
  --ge-border: rgba(255,255,255,.08);
  --ge-border-gold: rgba(201,168,76,.2);
  --ge-radius: 8px;
  --ge-radius-lg: 12px;
  --ge-transition: all .3s ease;
}

/* GE 2.5.221 - remove o indicador Explorar no hero mobile */
@media(max-width:768px){
  #inicio .ge5d-hero-scroll,
  .ge5d-hero-scroll{
    display:none!important;
    visibility:hidden!important;
    opacity:0!important;
    pointer-events:none!important;
  }
}

/* GE 2.5.222 - mantem "momento inesquecivel" na mesma linha no desktop */
@media(min-width:769px){
  .ge5d-hero-content{
    max-width:1120px!important;
  }
  .ge5d-hero h1{
    font-size:clamp(52px,7vw,96px)!important;
  }
}

/* GE 2.5.223 - menu mobile publico: dourado mais leve e sair em vermelho */
@media(max-width:768px){
  #ge5d-mobile-menu .ge5d-mobile-links a{
    color:var(--fived-gold)!important;
    font-weight:560!important;
    letter-spacing:.18em!important;
  }
  #ge5d-mobile-menu .ge5d-mobile-links a:hover,
  #ge5d-mobile-menu .ge5d-mobile-links a:focus-visible{
    color:var(--fived-gold-light)!important;
  }
  #ge5d-mobile-menu .ge5d-mobile-actions a.ge5d-mobile-login{
    color:var(--fived-gold-light)!important;
    font-weight:620!important;
  }
  #ge5d-mobile-menu .ge5d-mobile-actions a.ge5d-mobile-logout{
    min-height:34px!important;
    width:auto!important;
    border:0!important;
    background:transparent!important;
    box-shadow:none!important;
    color:#ff5959!important;
    font-size:12px!important;
    font-weight:650!important;
    letter-spacing:.18em!important;
    margin-top:6px!important;
    padding:0 16px!important;
  }
}

/* GE 2.5.224 - remove molduras dos icones do topo mobile */
@media(max-width:768px){
  .ge5d-hamb,
  button.ge5d-hamb,
  .ge5d-hamb.active,
  button.ge5d-hamb.active{
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    background-color:transparent!important;
    background-image:none!important;
    box-shadow:none!important;
    outline:0!important;
    appearance:none!important;
    -webkit-appearance:none!important;
    min-width:44px!important;
    min-height:44px!important;
  }
  .ge5d-notification-trigger-mobile,
  button.ge5d-notification-trigger-mobile,
  .ge5d-nav .ge5d-notification-trigger-mobile,
  .ge5d-nav button.ge5d-notification-trigger-mobile,
  .ge5d-notification-trigger-mobile:not(:hover):not(:active):not(:focus),
  button.ge5d-notification-trigger-mobile:not(:hover):not(:active):not(:focus){
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    background-color:transparent!important;
    background-image:none!important;
    box-shadow:none!important;
    outline:0!important;
    appearance:none!important;
    -webkit-appearance:none!important;
  }
  .ge5d-notification-trigger-mobile:hover,
  .ge5d-notification-trigger-mobile:focus-visible,
  .ge5d-notification-trigger-mobile:active,
  .ge5d-nav .ge5d-notification-trigger-mobile:hover,
  .ge5d-nav .ge5d-notification-trigger-mobile:focus-visible,
  .ge5d-nav .ge5d-notification-trigger-mobile:active,
  button.ge5d-notification-trigger-mobile:hover,
  button.ge5d-notification-trigger-mobile:focus-visible,
  button.ge5d-notification-trigger-mobile:active{
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    background-color:transparent!important;
    background-image:none!important;
    box-shadow:none!important;
    outline:0!important;
    transform:none!important;
  }
  .ge5d-notification-trigger-mobile > span,
  button.ge5d-notification-trigger-mobile > span{
    top:8px!important;
    right:8px!important;
    width:8px!important;
    height:8px!important;
    min-width:8px!important;
    padding:0!important;
    border:0!important;
    border-radius:999px!important;
    background:#ff3b3b!important;
    color:transparent!important;
    font-size:0!important;
    line-height:0!important;
    overflow:hidden!important;
    box-shadow:0 0 0 2px rgba(6,6,6,.96)!important;
  }
}

/* ═══════════════════════════════════════
   HIDE DEFAULT PAGE TITLES
═══════════════════════════════════════ */

.page-title,
.entry-title,
h1.entry-title,
.elementor-page-title,
.site-title,
.page .entry-header {
  display: none !important;
}

/* ═══════════════════════════════════════
   OVERRIDE ELEMENTOR DEFAULTS
═══════════════════════════════════════ */

/* ─── Box-sizing global ─── */
.ge-dashboard *,
.ge-auth-wrap *,
#ge-reserva-wrap * {
  box-sizing: border-box;
}

/* ═══════════════════════════════════════
   BUTTONS
   ═══════════════════════════════════════ */

.ge-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 28px;
  background: var(--ge-gold);
  color: var(--ge-dark);
  font-family:'DM Sans';
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .5px;
  text-decoration: none;
  border: none;
  border-radius: var(--ge-radius);
  cursor: pointer;
  transition: var(--ge-transition);
  white-space: nowrap;
}

.ge-btn:hover {
  background: var(--ge-gold-light);
  transform: translateY(-1px);
  box-shadow: 0 4px 16px rgba(201,168,76,.3);
  color: var(--ge-dark);
  text-decoration: none;
}

.ge-btn-outline {
  background: transparent;
  border: 1px solid var(--ge-border-gold);
  color: var(--ge-gold);
}

.ge-btn-outline:hover {
  background: var(--ge-gold);
  color: var(--ge-dark);
}

.ge-btn-submit {
  width: 100%;
  padding: 14px 28px;
  font-size: 15px;
}

.ge-btn-sm {
  padding: 6px 14px;
  font-size: 12px;
  font-weight: 600;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  transition: var(--ge-transition);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: #333;
  color: #fff;
}

.ge-btn-sm:hover { opacity: .85; }
.ge-btn-success { background: #2d8a4e; color: #fff; }
.ge-btn-danger { background: #c0392b; color: #fff; }
.ge-btn-active { background: var(--ge-gold) !important; color: var(--ge-dark) !important; }

/* ═══════════════════════════════════════
   LIGHT THEME — CARDS GRID
   ═══════════════════════════════════════ */

.ge-grid {
  display: grid;
  gap: 24px;
  width: 100%;
}

.ge-card {
  background: #fff;
  border-radius: var(--ge-radius-lg);
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(0,0,0,.06);
  transition: var(--ge-transition);
}

.ge-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 32px rgba(0,0,0,.12);
}

.ge-card-img {
  width: 100%;
  aspect-ratio: 16/10;
  overflow: hidden;
}

.ge-card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .6s ease;
}

.ge-card:hover .ge-card-img img { transform: scale(1.05); }

.ge-card-body { padding: 20px; }

.ge-card-title {
  font-family:'Cormorant Garamond';
  font-size: 1.4rem;
  font-weight: 600;
  margin: 0 0 10px;
  color: var(--fived-panel-raised);
}

.ge-card-meta {
  font-family:'DM Sans';
  font-size: .9rem;
  color: #666;
  margin: 4px 0;
}

.ge-card-meta a {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px dotted #aaa;
  transition: color .2s;
}

.ge-card-meta a:hover {
  color: var(--ge-gold);
  border-bottom-color: var(--ge-gold);
}

.ge-card-price {
  font-family:'DM Sans';
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--ge-gold);
  margin: 12px 0;
}

.ge-card-price-note {
  font-size: .75rem;
  font-weight: 400;
  color: #999;
  display: block;
  margin-top: 2px;
}

.ge-card-excerpt {
  font-family:'DM Sans';
  font-size: .9rem;
  color: #666;
  line-height: 1.6;
  margin: 8px 0 0;
}

.ge-destaque { border: 2px solid var(--ge-gold); position: relative; }

.ge-badge-destaque {
  position: absolute;
  top: 12px;
  right: 12px;
  background: var(--ge-gold);
  color: var(--ge-dark);
  padding: 4px 14px;
  border-radius: 20px;
  font-size: .8rem;
  font-weight: 700;
  z-index: 2;
}

.ge-empty {
  text-align: center;
  color: #999;
  padding: 60px 20px;
  font-family:'DM Sans';
}

/* ═══════════════════════════════════════
   LIGHT THEME — SERVIÇOS LIST
   ═══════════════════════════════════════ */

.ge-servicos-list {
  max-width: 800px;
  margin: 0 auto;
}

.ge-servico-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 18px 0;
  border-bottom: 1px solid #eee;
  gap: 16px;
}

.ge-servico-item:last-child { border-bottom: none; }

.ge-servico-info h4 {
  font-family:'Cormorant Garamond';
  font-size: 1.2rem;
  margin: 0 0 4px;
  color: var(--fived-panel-raised);
}

.ge-servico-info p {
  font-family:'DM Sans';
  font-size: .9rem;
  color: #666;
  margin: 0;
}

.ge-servico-preco {
  font-family:'DM Sans';
  font-weight: 700;
  font-size: 1rem;
  color: var(--ge-gold);
  white-space: nowrap;
}

/* ═══════════════════════════════════════
   LIGHT THEME — EQUIPA
   ═══════════════════════════════════════ */

.ge-equipa-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 30px;
  max-width: 1000px;
  margin: 0 auto;
}

.ge-staff-card { text-align: center; }

.ge-staff-img {
  width: 120px;
  height: 120px;
  border-radius: 50%;
  object-fit: cover;
  margin-bottom: 14px;
  border: 3px solid #eee;
}

.ge-staff-name {
  font-family:'Cormorant Garamond';
  font-size: 1.15rem;
  margin: 0 0 4px;
  color: var(--fived-panel-raised);
}

.ge-staff-role {
  font-family:'DM Sans';
  font-size: .85rem;
  color: #888;
  margin: 0;
}

/* ═══════════════════════════════════════
   FORMS
   ═══════════════════════════════════════ */

.ge-form { max-width: 100%; }

.ge-form-section { margin-bottom: 28px; }

.ge-form-section h3 {
  font-family:'Cormorant Garamond';
  font-size: 1.3rem;
  font-weight: 600;
  margin: 0 0 16px;
  padding-bottom: 10px;
  border-bottom: 1px solid #eee;
  color: var(--fived-panel-raised);
}

.ge-form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.ge-form-group { margin-bottom: 16px; }

.ge-form-group label {
  display: block;
  font-family:'DM Sans';
  font-size: .9rem;
  font-weight: 500;
  margin-bottom: 6px;
  color: #333;
}

.ge-form-group input,
.ge-form-group select,
.ge-form-group textarea {
  width: 100%;
  padding: 12px 14px;
  font-family:'DM Sans';
  font-size: .95rem;
  border: 1px solid #ddd;
  border-radius: var(--ge-radius);
  background: #fff;
  color: var(--fived-panel-raised);
  transition: border-color .2s;
}

.ge-form-group input:focus,
.ge-form-group select:focus,
.ge-form-group textarea:focus {
  outline: none;
  border-color: var(--ge-gold);
  box-shadow: 0 0 0 3px rgba(201,168,76,.15);
}

.ge-form-group textarea { resize: vertical; }

.ge-form-submit { margin-top: 24px; }

.ge-cap-info {
  font-family:'DM Sans';
  font-size: .85rem;
  color: var(--ge-gold);
  margin: -8px 0 12px;
  min-height: 20px;
}

.ge-extras-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: 12px;
}

.ge-extra-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  border: 1px solid #eee;
  border-radius: var(--ge-radius);
  cursor: pointer;
  transition: var(--ge-transition);
}

.ge-extra-item:hover {
  border-color: var(--ge-gold);
  background: rgba(201,168,76,.04);
}

.ge-extra-item input[type="checkbox"] {
  width: 18px;
  height: 18px;
  accent-color: var(--ge-gold);
  flex-shrink: 0;
}

.ge-extra-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.ge-extra-info strong {
  font-family:'DM Sans';
  font-size: .95rem;
  color: var(--fived-panel-raised);
}

.ge-extra-price {
  font-family:'DM Sans';
  font-size: .85rem;
  color: var(--ge-gold);
  font-weight: 600;
}

.ge-valor-box {
  padding: 16px 20px;
  background: rgba(201,168,76,.08);
  border: 1px solid rgba(201,168,76,.2);
  border-radius: var(--ge-radius);
  margin-bottom: 16px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family:'DM Sans';
}

.ge-valor-box span { color: #666; }

.ge-valor-box strong {
  font-size: 1.3rem;
  color: var(--ge-gold);
}

.ge-valor-breakdown {
  font-size: .8rem;
  color: #999;
  margin-top: 4px;
}

#ge-msg,
#ge-login-msg,
#ge-registo-msg,
#ge-pagamento-msg {
  margin-top: 14px;
  font-family:'DM Sans';
  font-size: .9rem;
}

.ge-msg-ok {
  color: #2d8a4e;
  padding: 10px 14px;
  background: rgba(45,138,78,.08);
  border-radius: 6px;
}

.ge-msg-err {
  color: #c0392b;
  padding: 10px 14px;
  background: rgba(192,57,43,.08);
  border-radius: 6px;
}

/* ═══════════════════════════════════════
   AUTH PAGES
   ═══════════════════════════════════════ */

.ge-auth-wrap {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 70vh;
  padding: 40px 20px;
}

.ge-auth-card {
  width: 100%;
  max-width: 440px;
  background: #fff;
  padding: 40px 32px;
  border-radius: var(--ge-radius-lg);
  box-shadow: 0 4px 24px rgba(0,0,0,.08);
}

.ge-auth-card h2 {
  font-family:'Cormorant Garamond';
  font-size: 1.8rem;
  font-weight: 600;
  margin: 0 0 28px;
  text-align: center;
  color: var(--fived-panel-raised);
}

.ge-auth-link {
  text-align: center;
  font-family:'DM Sans';
  font-size: .9rem;
  color: #666;
  margin: 20px 0 0;
}

.ge-auth-link a {
  color: var(--ge-gold);
  font-weight: 600;
  text-decoration: none;
}

.ge-auth-link a:hover { text-decoration: underline; }

/* ═══════════════════════════════════════
   DASHBOARD (DARK THEME)
   ═══════════════════════════════════════ */

.ge-dashboard {
  font-family:'DM Sans';
  max-width: 1200px;
  margin: 0 auto;
  padding: 30px 20px;
  color: var(--ge-text);
}

.ge-dash-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 30px;
  flex-wrap: wrap;
  gap: 16px;
}

.ge-dash-header h1 {
  font-family:'Cormorant Garamond';
  font-size: 2rem;
  font-weight: 600;
  margin: 0;
  color: var(--ge-text);
}

.ge-dash-role {
  font-size: .9rem;
  color: var(--ge-text-muted);
  margin: 4px 0 0;
}

.ge-dash-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 16px;
  margin-bottom: 30px;
}

.ge-dash-card {
  background: var(--ge-surface);
  padding: 22px;
  border-radius: var(--ge-radius-lg);
  border: 1px solid var(--ge-border);
  text-align: center;
  transition: var(--ge-transition);
}

.ge-dash-card:hover { border-color: var(--ge-border-gold); }

.ge-dash-card-num {
  display: block;
  font-family:'Cormorant Garamond';
  font-size: 2rem;
  font-weight: 700;
  color: var(--ge-gold);
  margin-bottom: 4px;
  word-break: break-word;
}

.ge-dash-card-label {
  font-size: .85rem;
  color: var(--ge-text-muted);
}

.ge-dash-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 24px;
  align-items: center;
}

.ge-dash-section {
  background: var(--ge-surface);
  border-radius: var(--ge-radius-lg);
  padding: 24px;
  margin-bottom: 20px;
  border: 1px solid var(--ge-border);
}

.ge-dash-section h2 {
  font-family:'Cormorant Garamond';
  font-size: 1.4rem;
  font-weight: 600;
  margin: 0 0 18px;
  color: var(--ge-text);
}

.ge-dash-section h3 {
  font-family:'Cormorant Garamond';
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--ge-text);
}

.ge-dash-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin: 0 -8px;
  padding: 0 8px;
}

.ge-dash-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .9rem;
  min-width: 580px;
}

.ge-dash-table thead th {
  text-align: left;
  padding: 12px 14px;
  font-weight: 600;
  color: var(--ge-text-muted);
  font-size: .8rem;
  letter-spacing: .5px;
  text-transform: uppercase;
  border-bottom: 1px solid var(--ge-border);
  white-space: nowrap;
}

.ge-dash-table tbody td {
  padding: 12px 14px;
  border-bottom: 1px solid var(--ge-border);
  color: var(--ge-text);
  vertical-align: middle;
}

.ge-dash-table tbody tr:last-child td { border-bottom: none; }
.ge-dash-table tbody tr:hover { background: rgba(201,168,76,.03); }
.ge-dash-table small { color: var(--ge-text-muted); }

.ge-badge {
  display: inline-block;
  padding: 3px 12px;
  border-radius: 20px;
  font-size: .8rem;
  font-weight: 600;
  color: #fff;
  white-space: nowrap;
}

.ge-reserva-card {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 24px;
  align-items: start;
}

.ge-reserva-info p {
  margin: 4px 0;
  font-size: .9rem;
  color: var(--ge-text-muted);
}

.ge-reserva-info strong { color: var(--ge-text); }

.ge-reserva-acoes {
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: flex-end;
}

.ge-dash-empty {
  text-align: center;
  padding: 60px 20px;
  color: var(--ge-text-muted);
}

.ge-dash-empty p {
  font-size: 1.1rem;
  margin: 0 0 20px;
}

/* ═══════════════════════════════════════
   DARK THEME — STATS BAR
   ═══════════════════════════════════════ */

.ge-dt-stats-bar {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 40px !important;
  max-width: 100%;
  margin: 0 auto;
  padding: 50px 60px;
  background: var(--fived-panel-raised);
  border-top: 1px solid rgba(201,168,76,0.1);
  border-bottom: 1px solid rgba(201,168,76,0.1);
}

.ge-dt-stat-item {
  position: relative;
  text-align: center;
  padding: 10px 0;
}

.ge-dt-stat-item::after {
  content: '';
  position: absolute;
  right: -20px;
  top: 10%;
  height: 80%;
  width: 1px;
  background: rgba(201,168,76,0.15);
}

.ge-dt-stats-bar .ge-dt-stat-item:nth-child(4n)::after {
  display: none;
}

.ge-dt-stat-number {
  font-family:'Cormorant Garamond';
  font-size: 48px;
  font-weight: 300;
  color: var(--ge-gold);
  line-height: 1;
  margin-bottom: 8px;
}

.ge-dt-stat-label {
  font-family:'DM Sans';
  font-size: 12px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--ge-text-muted);
}

/* ═══════════════════════════════════════
   DARK THEME — SERVIÇOS GRID
   ═══════════════════════════════════════ */

.ge-dt-servicos-grid {
  display: grid;
  grid-template-columns: repeat(var(--ge-cols, 4), 1fr);
  gap: 30px;
  max-width: 1200px;
  margin: 0 auto;
}

.ge-dt-servicos-grid > div {
  text-align: center;
  padding: 50px 30px;
  border: 1px solid rgba(255,255,255,.05);
  transition: var(--ge-transition);
  position: relative;
}

/* ═══════════════════════════════════════
   DARK THEME — PACOTES GRID
   ═══════════════════════════════════════ */

.ge-dt-pacotes-grid {
  display: grid;
  grid-template-columns: repeat(var(--ge-cols, 3), 1fr);
  gap: 24px;
  max-width: 1200px;
  margin: 0 auto;
}

.ge-dt-pacotes-grid > div {
  background: var(--fived-panel-raised);
  border-radius: 8px;
  overflow: hidden;
  transition: transform .3s, box-shadow .3s;
  position: relative;
}

/* ═══════════════════════════════════════
   SINGLE SALÃO — PAGE STYLES
   ═══════════════════════════════════════ */

.ge-single-salao {
  min-height: 100vh;
  padding-top: 0;
}

.ge-single-salao .ge-hero {
  position: relative;
  height: 60vh;
  min-height: 400px;
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: flex-end;
  margin-top: 0;
}

.ge-single-salao .ge-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(10,10,10,.95) 0%, rgba(10,10,10,.3) 50%, rgba(10,10,10,.5) 100%);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 60px;
}

.ge-single-salao .ge-hero-overlay h1 {
  font-family:'Cormorant Garamond';
  font-size: clamp(36px, 6vw, 64px);
  font-weight: 600;
  color: #fff;
  margin: 0 0 10px;
}

.ge-single-salao .ge-hero-loc {
  font-family:'DM Sans';
  font-size: 15px;
  color: var(--ge-text-muted);
  margin: 0;
}

.ge-info-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  background: var(--ge-surface);
  border-bottom: 1px solid var(--ge-border);
}

.ge-info-item {
  flex: 1;
  min-width: 180px;
  padding: 20px 30px;
  font-family:'DM Sans';
  font-size: 15px;
  color: var(--ge-text);
  border-right: 1px solid var(--ge-border);
  transition: background .3s;
}

.ge-info-item:last-child { border-right: none; }
.ge-info-item:hover { background: rgba(201,168,76,.04); }

.ge-content {
  padding: 60px;
  max-width: 900px;
  margin: 0 auto;
}

.ge-content h2 {
  font-family:'Cormorant Garamond';
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--ge-text);
  margin: 0 0 20px;
}

.ge-content p {
  font-family:'DM Sans';
  font-size: 15px;
  color: var(--ge-text-muted);
  line-height: 1.8;
  margin-bottom: 16px;
}

.ge-gallery-section {
  padding: 60px;
  max-width: 1200px;
  margin: 0 auto;
}

.ge-gallery-section h2 {
  font-family:'Cormorant Garamond';
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--ge-text);
  margin: 0 0 30px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--ge-border);
}

.ge-gallery-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 12px;
}

.ge-gallery-item {
  display: block;
  aspect-ratio: 4/3;
  overflow: hidden;
  border-radius: var(--ge-radius);
  cursor: pointer;
  transition: transform .3s;
}

.ge-gallery-item:hover { transform: scale(1.02); }

.ge-gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .5s ease;
}

.ge-gallery-item:hover img { transform: scale(1.08); }

.ge-map-section {
  padding: 60px;
  max-width: 1200px;
  margin: 0 auto;
}

.ge-map-section h2 {
  font-family:'Cormorant Garamond';
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--ge-text);
  margin: 0 0 24px;
}

.ge-map-embed {
  border-radius: var(--ge-radius-lg);
  overflow: hidden;
  border: 1px solid var(--ge-border);
  line-height: 0;
}

.ge-map-embed iframe {
  width: 100%;
  height: 400px;
  border: none;
  display: block;
}

.ge-pacotes-section {
  padding: 60px;
  max-width: 1200px;
  margin: 0 auto;
}

.ge-pacotes-section h2 {
  font-family:'Cormorant Garamond';
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--ge-text);
  margin: 0 0 30px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--ge-border);
}

.ge-pacotes-section .ge-grid-pacotes {
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
}

.ge-cta-section {
  text-align: center;
  padding: 80px 60px;
  background: var(--ge-surface);
  border-top: 1px solid var(--ge-border);
  border-bottom: 1px solid var(--ge-border);
}

.ge-cta-section h2 {
  font-family:'Cormorant Garamond';
  font-size: clamp(28px, 4vw, 42px);
  font-weight: 600;
  color: var(--ge-text);
  margin: 0 0 12px;
}

.ge-cta-section p {
  font-family:'DM Sans';
  font-size: 15px;
  color: var(--ge-text-muted);
  margin: 0 0 30px;
}

.ge-lightbox {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.92);
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: all .3s ease;
  cursor: zoom-out;
}

.ge-lightbox.active {
  opacity: 1;
  visibility: visible;
}

.ge-lightbox img {
  max-width: 90vw;
  max-height: 90vh;
  object-fit: contain;
  border-radius: 4px;
  transform: scale(.9);
  transition: transform .3s ease;
}

.ge-lightbox.active img { transform: scale(1); }

.ge-lightbox-close {
  position: absolute;
  top: 20px;
  right: 24px;
  background: none;
  border: none;
  color: #fff;
  font-size: 32px;
  cursor: pointer;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color .2s;
  z-index: 2;
}

.ge-lightbox-close:hover { color: var(--ge-gold); }

.ge-lightbox-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(26,26,26,.8);
  border: 1px solid var(--ge-border-gold);
  color: var(--ge-gold);
  width: 48px;
  height: 48px;
  border-radius: 50%;
  cursor: pointer;
  font-size: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all .2s;
  z-index: 2;
}

.ge-lightbox-nav:hover {
  background: var(--ge-gold);
  color: var(--ge-dark);
}

.ge-lightbox-prev { left: 20px; }
.ge-lightbox-next { right: 20px; }

.ge-lightbox-counter {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  font-family:'DM Sans';
  font-size: 13px;
  color: var(--ge-text-muted);
  z-index: 2;
}

/* ═══════════════════════════════════════
   RESPONSIVE — TABLETS (≤1024px)
   ═══════════════════════════════════════ */

@media (max-width: 1024px) {

  /* Stats: 2 colunas + 2 separadores verticais */
  .ge-dt-stats-bar {
    grid-template-columns: repeat(2, 1fr) !important;
    padding: 40px 30px;
    gap: 30px !important;
  }

  .ge-dt-stats-bar .ge-dt-stat-item:nth-child(4n)::after,
  .ge-dt-stats-bar .ge-dt-stat-item:nth-child(4n+4)::after {
    display: block !important;
  }

  .ge-dt-stats-bar .ge-dt-stat-item:nth-child(2n)::after {
    display: none !important;
  }

  .ge-dt-stats-bar .ge-dt-stat-item:nth-child(n+3)::before {
    display: none !important;
  }

  .ge-dt-stat-number { font-size: 42px; }

  /* Serviços e pacotes */
  .ge-dt-servicos-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
  }

  .ge-dt-pacotes-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }

  /* Dashboard */
  .ge-dash-header h1 { font-size: 1.6rem; }

  .ge-reserva-card {
    grid-template-columns: 1fr;
  }

  .ge-reserva-acoes {
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
  }

  /* Single salão */
  .ge-single-salao .ge-hero { height: 50vh; min-height: 320px; }
  .ge-single-salao .ge-hero-overlay { padding: 40px; }
  .ge-info-item { min-width: 140px; padding: 16px 20px; font-size: 14px; }
  .ge-content { padding: 40px; }
  .ge-gallery-section { padding: 40px; }
  .ge-map-section { padding: 40px; }
  .ge-pacotes-section { padding: 40px; }
  .ge-cta-section { padding: 60px 40px; }
}

/* ═══════════════════════════════════════
   RESPONSIVE — MOBILE (≤640px)
   ═══════════════════════════════════════ */

@media (max-width: 768px) {

  /* Stats: coluna única, sem bordas */
  .ge-dt-stats-bar {
    grid-template-columns: 1fr !important;
    padding: 40px 20px;
    gap: 32px !important;
  }

  .ge-dt-stats-bar .ge-dt-stat-item::after,
  .ge-dt-stats-bar .ge-dt-stat-item::before {
    display: none !important;
  }

  .ge-dt-stat-item {
    padding: 16px 0;
  }

  .ge-dt-stat-number { font-size: 38px; }
  .ge-dt-stat-label { font-size: 11px; }

  /* Forms */
  .ge-form-row {
    grid-template-columns: 1fr;
  }

  .ge-extras-grid {
    grid-template-columns: 1fr;
  }

  .ge-auth-wrap { padding: 24px 16px; min-height: auto; }
  .ge-auth-card { padding: 28px 20px; }
  .ge-auth-card h2 { font-size: 1.4rem; }

  /* Dashboard */
  .ge-dashboard { padding: 20px 14px; }

  .ge-dash-header {
    flex-direction: column;
    align-items: flex-start;
  }

  .ge-dash-header h1 { font-size: 1.4rem; }

  .ge-dash-cards {
    grid-template-columns: repeat(2, 1fr);
  }

  .ge-dash-card { padding: 16px; }
  .ge-dash-card-num { font-size: 1.5rem; }
  .ge-dash-section { padding: 16px; }
  .ge-dash-section h2 { font-size: 1.1rem; }

  .ge-dash-filters { gap: 6px; }

  .ge-dash-filters .ge-btn-sm {
    font-size: 11px;
    padding: 5px 10px;
  }

  .ge-dash-table { min-width: 480px; font-size: .8rem; }

  .ge-dash-table thead th,
  .ge-dash-table tbody td {
    padding: 8px 10px;
  }

  .ge-reserva-card {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .ge-reserva-acoes {
    flex-direction: column;
    align-items: stretch;
  }

  .ge-servico-item {
    flex-direction: column;
    align-items: flex-start;
  }

  /* Grids dark */
  .ge-dt-servicos-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .ge-dt-servicos-grid > div {
    padding: 32px 20px;
  }

  .ge-dt-pacotes-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  /* Buttons */
  .ge-btn {
    padding: 10px 20px;
    font-size: 13px;
  }

  .ge-btn-submit {
    padding: 12px 20px;
    font-size: 14px;
  }

  .ge-valor-box {
    flex-direction: column;
    text-align: center;
    gap: 8px;
  }

  #ge-modal-pagamento > div {
    padding: 20px !important;
    margin: 16px;
    width: calc(100% - 32px) !important;
  }

  .ge-equipa-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }

  .ge-staff-img {
    width: 90px;
    height: 90px;
  }

  .ge-card-body { padding: 16px; }
  .ge-card-title { font-size: 1.2rem; }

  /* Single salão */
  .ge-single-salao .ge-hero { height: 45vh; min-height: 280px; }
  .ge-single-salao .ge-hero-overlay { padding: 24px; }
  .ge-single-salao .ge-hero-overlay h1 { font-size: 1.6rem; }
  .ge-info-bar { flex-direction: column; }
  .ge-info-item { min-width: 100%; border-right: none; border-bottom: 1px solid var(--ge-border); }
  .ge-info-item:last-child { border-bottom: none; }
  .ge-content { padding: 24px 20px; }
  .ge-gallery-section { padding: 24px 20px; }
  .ge-gallery-grid { grid-template-columns: repeat(2, 1fr); gap: 8px; }
  .ge-map-section { padding: 24px 20px; }
  .ge-map-embed iframe { height: 280px; }
  .ge-pacotes-section { padding: 24px 20px; }
  .ge-cta-section { padding: 40px 20px; }

  .ge-lightbox-nav { width: 40px; height: 40px; font-size: 16px; }
  .ge-lightbox-prev { left: 10px; }
  .ge-lightbox-next { right: 10px; }
}

/* ═══════════════════════════════════════
   RESPONSIVE — SMALL MOBILE (≤480px)
   ═══════════════════════════════════════ */

@media (max-width: 480px) {

  /* Stats */
  .ge-dt-stats-bar {
    padding: 30px 16px;
    gap: 24px !important;
  }

  .ge-dt-stat-item { padding: 12px 0; }
  .ge-dt-stat-number { font-size: 34px; }
  .ge-dt-stat-label { font-size: 10px; letter-spacing: 2px; }

  /* Dashboard */
  .ge-dashboard { padding: 16px 10px; }

  .ge-dash-cards {
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }

  .ge-dash-card { padding: 14px; }
  .ge-dash-card-num { font-size: 1.3rem; }
  .ge-dash-section { padding: 14px; }
  .ge-dash-header h1 { font-size: 1.2rem; }

  .ge-auth-card { padding: 24px 16px; }
  .ge-extra-item { padding: 10px 12px; }

  .ge-equipa-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }

  .ge-staff-img {
    width: 70px;
    height: 70px;
  }

  .ge-staff-name { font-size: 1rem; }
  .ge-staff-role { font-size: .75rem; }

  /* Single salão */
  .ge-single-salao .ge-hero { height: 40vh; min-height: 240px; }
  .ge-single-salao .ge-hero-overlay { padding: 20px; }
  .ge-single-salao .ge-hero-overlay h1 { font-size: 1.3rem; }
  .ge-gallery-grid { grid-template-columns: repeat(2, 1fr); gap: 6px; }
  .ge-map-embed iframe { height: 220px; }
}

/* ═══════════════════════════════════════
   PATCH V39 — LIVE FIXES MENU + SERVIÇOS
   ═══════════════════════════════════════ */

/* ═══════════════════════════════════════
   5D EVENTOS — V39 LIVE CSS FIXES
   Bloco legado migrado para: assets/css/public/public-legacy.css
   Corrige: Swiper serviços no LIVE, setas duplicadas, dots rosa,
   botão Reservar do menu e setas dos submenus.
   ═══════════════════════════════════════ */

/* ───────────────────────────────────────
   MENU — caret/submenu alinhado + botão reservar
─────────────────────────────────────── */
.ge5d-nav,
.ge-home-menu,
.ge5d-menu,
.ge-nav {
  overflow: visible !important;
}

.ge5d-nav-links a,
.ge-home-menu a,
.ge5d-menu a,
.ge-nav a {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  line-height: 1 !important;
}

.ge5d-nav-links .menu-item-has-children > a::after,
.ge-home-menu .menu-item-has-children > a::after,
.ge5d-menu .menu-item-has-children > a::after,
.ge-nav .menu-item-has-children > a::after,
.ge5d-has-submenu > a::after,
.ge5d-menu-caret,
.ge-nav-caret {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
  vertical-align: middle !important;
  transform: translateY(0) !important;
  margin-top: 0 !important;
  position: static !important;
}

.ge5d-nav-cta,
.ge-nav-cta,
a.ge5d-nav-cta,
a.ge-nav-cta,
.ge-home-menu .ge-nav-cta,
.ge5d-menu .ge-nav-cta {
  background: linear-gradient(135deg, var(--fived-gold), var(--fived-gold-light)) !important;
  color: var(--fived-ink) !important;
  border: 1px solid var(--fived-gold) !important;
  box-shadow: 0 10px 30px rgba(201,168,76,.18) !important;
  padding: 12px 30px !important;
  letter-spacing: 3px !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
}

.ge5d-nav-cta:hover,
.ge-nav-cta:hover,
a.ge5d-nav-cta:hover,
a.ge-nav-cta:hover {
  background: linear-gradient(135deg, var(--fived-gold-light), var(--fived-gold)) !important;
  color: var(--fived-ink) !important;
  border-color: var(--fived-gold-light) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 14px 38px rgba(201,168,76,.28) !important;
}

/* ───────────────────────────────────────
   SERVIÇOS — remover controlos antigos/duplicados no LIVE
─────────────────────────────────────── */
#servicos .ge5d-carousel-nav,
#servicos .ge5d-slider-nav,
#servicos .ge5d-services-nav,
#servicos .ge5d-scroll-nav,
#servicos .ge5d-arrow,
#servicos .ge5d-prev,
#servicos .ge5d-next,
#servicos .ge5d-services-prev,
#servicos .ge5d-services-next,
#servicos .ge5d-svc-arrow,
#servicos .ge5d-service-arrow,
#servicos .ge5d-dots,
#servicos .ge5d-service-dots,
#servicos .ge5d-slider-dots,
#servicos .ge5d-scrollbar,
#servicos .ge5d-services-scrollbar,
#servicos .swiper-button-next.swiper-button-disabled::before,
#servicos .swiper-button-prev.swiper-button-disabled::before {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* Garante que apenas os controlos Swiper oficiais aparecem */
#servicos .ge5d-service-shell .swiper-button-next,
#servicos .ge5d-service-shell .swiper-button-prev,
#servicos .ge5d-svc-swiper .swiper-button-next,
#servicos .ge5d-svc-swiper .swiper-button-prev {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 46px !important;
  height: 46px !important;
  border-radius: 999px !important;
  border: 1px solid rgba(201,168,76,.32) !important;
  background: rgba(10,10,10,.82) !important;
  color: var(--fived-gold) !important;
  box-shadow: 0 14px 40px rgba(0,0,0,.35) !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  margin: 0 !important;
  z-index: 10 !important;
  outline: none !important;
}

#servicos .ge5d-service-shell .swiper-button-prev,
#servicos .ge5d-svc-swiper .swiper-button-prev {
  left: -24px !important;
  right: auto !important;
}

#servicos .ge5d-service-shell .swiper-button-next,
#servicos .ge5d-svc-swiper .swiper-button-next {
  right: -24px !important;
  left: auto !important;
}

#servicos .ge5d-service-shell .swiper-button-next::after,
#servicos .ge5d-service-shell .swiper-button-prev::after,
#servicos .ge5d-svc-swiper .swiper-button-next::after,
#servicos .ge5d-svc-swiper .swiper-button-prev::after {
  font-size: 15px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  color: currentColor !important;
}

#servicos .ge5d-service-shell .swiper-button-next:hover,
#servicos .ge5d-service-shell .swiper-button-prev:hover,
#servicos .ge5d-svc-swiper .swiper-button-next:hover,
#servicos .ge5d-svc-swiper .swiper-button-prev:hover {
  background: var(--fived-gold) !important;
  color: var(--fived-ink) !important;
  border-color: var(--fived-gold) !important;
  box-shadow: 0 18px 45px rgba(201,168,76,.24) !important;
}

#servicos .ge5d-service-shell .swiper-button-disabled,
#servicos .ge5d-svc-swiper .swiper-button-disabled {
  opacity: .28 !important;
  pointer-events: none !important;
}

/* Controles do carrossel de servicos: evitar focus/hover herdado do tema. */
#servicos .swiper-button-next,
#servicos .swiper-button-prev,
#servicos .swiper-pagination-bullet,
#servicos .ge5d-service-tab,
#servicos button,
#servicos [role="button"] {
  -webkit-tap-highlight-color: transparent !important;
}

#servicos .swiper-button-next:focus-visible,
#servicos .swiper-button-prev:focus-visible,
#servicos .swiper-pagination-bullet:focus-visible,
#servicos .ge5d-service-tab:focus-visible {
  outline: none !important;
  border-color: rgba(201,168,76,.32) !important;
  box-shadow: none !important;
}

/* Dots/pagination dourado e cinza */
#servicos .ge5d-service-shell .swiper-pagination,
#servicos .ge5d-svc-swiper .swiper-pagination {
  position: relative !important;
  inset: auto !important;
  bottom: auto !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 9px !important;
  margin-top: 42px !important;
  min-height: 12px !important;
}

#servicos .ge5d-service-shell .swiper-pagination-bullet,
#servicos .ge5d-svc-swiper .swiper-pagination-bullet {
  width: 10px !important;
  height: 10px !important;
  margin: 0 !important;
  border-radius: 999px !important;
  background: var(--fived-muted) !important;
  border: 0 !important;
  opacity: 1 !important;
  transition: width .28s ease, background .28s ease !important;
}

#servicos .ge5d-service-shell .swiper-pagination-bullet-active,
#servicos .ge5d-svc-swiper .swiper-pagination-bullet-active {
  width: 32px !important;
  background: var(--fived-gold) !important;
}

/* Cards e shell */
#servicos .ge5d-service-shell {
  max-width: 1280px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  overflow: visible !important;
  padding: 0 52px !important;
}

#servicos .ge5d-svc-swiper,
#servicos .ge5d-service-shell .swiper {
  overflow: hidden !important;
  padding: 0 0 4px !important;
}

#servicos .swiper-wrapper {
  align-items: stretch !important;
}

#servicos .swiper-slide {
  height: auto !important;
}

#servicos .ge5d-service-card {
  min-height: 330px !important;
  height: 100% !important;
}

@media (max-width: 1024px) {
  #servicos .ge5d-service-shell {
    padding: 0 22px !important;
  }
  #servicos .ge5d-service-shell .swiper-button-next,
  #servicos .ge5d-service-shell .swiper-button-prev,
  #servicos .ge5d-svc-swiper .swiper-button-next,
  #servicos .ge5d-svc-swiper .swiper-button-prev {
    display: none !important;
  }
}


/* ═══════════════════════════════════════
   V43 — mobile/tablet carousel fixes
   ═══════════════════════════════════════ */
@media (max-width: 1024px) {
  #saloes .swiper-button-next,
  #saloes .swiper-button-prev,
  .ge-saloes-grid .swiper-button-next,
  .ge-saloes-grid .swiper-button-prev,
  .ge-saloes-swiper .swiper-button-next,
  .ge-saloes-swiper .swiper-button-prev {
    display: flex !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    width: 42px !important;
    height: 42px !important;
    border-radius: 50% !important;
  }
}
@media (max-width: 768px) {
  #saloes .swiper-button-next,
  #saloes .swiper-button-prev,
  .ge-saloes-grid .swiper-button-next,
  .ge-saloes-grid .swiper-button-prev,
  .ge-saloes-swiper .swiper-button-next,
  .ge-saloes-swiper .swiper-button-prev {
    width: 36px !important;
    height: 36px !important;
  }
  #saloes .swiper-button-next:after,
  #saloes .swiper-button-prev:after,
  .ge-saloes-grid .swiper-button-next:after,
  .ge-saloes-grid .swiper-button-prev:after,
  .ge-saloes-swiper .swiper-button-next:after,
  .ge-saloes-swiper .swiper-button-prev:after {
    font-size: 13px !important;
  }
}

/* ═══════════════════════════════════════
   V44 — Ajustes finais: carrosséis, menu, templates
   ═══════════════════════════════════════ */
.ge5d-template-main{background:var(--fived-ink);min-height:60vh;}
.ge5d-nav-dd>a{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;line-height:1!important;}
.ge5d-nav-dd>a .chev{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:10px!important;height:10px!important;font-size:0!important;line-height:1!important;transform:none!important;position:relative!important;top:0!important;margin:0!important;}
.ge5d-nav-dd>a .chev::before{content:"";display:block;width:5px;height:5px;border-right:1.5px solid var(--fived-gold);border-bottom:1.5px solid var(--fived-gold);transform:rotate(45deg) translateY(-1px);transform-origin:center;}
.ge5d-user-dd>a{display:inline-flex!important;align-items:center!important;gap:9px!important;}
.ge5d-nav-avatar{width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--fived-gold),var(--fived-gold-dark));color:var(--fived-ink);font:800 10px 'DM Sans';letter-spacing:.5px;overflow:hidden;flex:0 0 26px;box-shadow:0 0 0 1px rgba(201,168,76,.18);}
.ge5d-nav-avatar img{width:100%;height:100%;object-fit:cover;display:block;}
.ge5d-nav-usertext{display:inline-grid;gap:1px;line-height:1.05;text-align:left;}
.ge5d-nav-usertext strong{font-size:12px;color:var(--fived-ivory);font-weight:700;letter-spacing:1.6px;text-transform:uppercase;max-width:96px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ge5d-nav-usertext small{font-size:8px;color:var(--fived-gold);letter-spacing:1.3px;text-transform:uppercase;max-width:96px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ge5d-nav-cta{min-width:154px!important;text-align:center!important;border-radius:0!important;background:linear-gradient(135deg,var(--fived-gold),var(--fived-gold-light))!important;color:var(--fived-ink)!important;border-color:var(--fived-gold)!important;box-shadow:0 14px 32px rgba(201,168,76,.22)!important;}
.ge5d-nav-cta:hover{background:var(--fived-gold-light)!important;color:var(--fived-ink)!important;}

/* Serviços: sem loop visual agressivo, botões compactos e desactivados no limite */
#servicos .ge5d-swp-card:hover{transform:translateY(-4px)!important;box-shadow:0 0 0 1px rgba(201,168,76,.12) inset!important;}
#servicos .ge5d-swp-shell .ge5d-swp-prev,
#servicos .ge5d-swp-shell .ge5d-swp-next{display:flex!important;align-items:center!important;justify-content:center!important;background:rgba(26,26,26,.82)!important;border:1px solid rgba(201,168,76,.22)!important;color:var(--fived-gold)!important;border-radius:50%!important;box-shadow:none!important;}
#servicos .ge5d-swp-shell .ge5d-swp-prev:hover,
#servicos .ge5d-swp-shell .ge5d-swp-next:hover{background:var(--fived-gold)!important;color:var(--fived-ink)!important;border-color:var(--fived-gold)!important;}
#servicos .ge5d-swp-shell .swiper-button-disabled{opacity:.22!important;filter:grayscale(1)!important;pointer-events:none!important;background:rgba(26,26,26,.45)!important;color:#6b655c!important;border-color:rgba(255,255,255,.08)!important;}

/* Salões: mostrar setas em tablet/mobile e desactivar no limite */
.ge-saloes-section .swiper-button-next,
.ge-saloes-section .swiper-button-prev{display:flex!important;align-items:center!important;justify-content:center!important;}
.ge-saloes-section .swiper-button-disabled{opacity:.22!important;filter:grayscale(1)!important;pointer-events:none!important;background:rgba(26,26,26,.45)!important;color:#6b655c!important;border-color:rgba(255,255,255,.08)!important;}

/* Staff media fields */
.gs-media-field small{display:block;color:#9e978c;font-size:12px;margin-top:8px;}
.gs-media-preview{min-height:86px;border:1px dashed rgba(201,168,76,.25);border-radius:14px;background:rgba(255,255,255,.02);display:flex;align-items:center;justify-content:center;overflow:hidden;color:#9e978c;margin-bottom:10px;}
.gs-media-preview img{width:100%;height:100%;max-height:130px;object-fit:cover;display:block;}
.gs-media-preview.has-media{border-style:solid;border-color:rgba(201,168,76,.32);}
.gs-media-file{padding:12px 14px;color:var(--fived-ivory);font-weight:600;word-break:break-all;}
.gs-media-actions{display:flex;gap:10px;flex-wrap:wrap;}
.gs-btn-soft{background:rgba(255,255,255,.04)!important;border:1px solid rgba(255,255,255,.08)!important;color:#d8d0c4!important;}

@media(max-width:1024px){
  #servicos .ge5d-swp-shell{padding:0 42px!important;}
  #servicos .ge5d-swp-shell .ge5d-swp-prev,#servicos .ge5d-swp-shell .ge5d-swp-next{display:flex!important;width:34px!important;height:34px!important;top:50%!important;}
  #servicos .ge5d-swp-shell .ge5d-swp-prev::after,#servicos .ge5d-swp-shell .ge5d-swp-next::after{font-size:12px!important;}
  #servicos .ge5d-swp-shell .ge5d-swp-prev{left:0!important;}
  #servicos .ge5d-swp-shell .ge5d-swp-next{right:0!important;}
  .ge-saloes-section .swiper-button-next,.ge-saloes-section .swiper-button-prev{display:flex!important;width:36px!important;height:36px!important;}
  .ge-saloes-section .swiper-button-next::after,.ge-saloes-section .swiper-button-prev::after{font-size:13px!important;}
}
@media(max-width:768px){
  #servicos .ge5d-swp-shell{padding:0 34px!important;}
  #servicos .ge5d-swp-shell .ge5d-swp-prev,#servicos .ge5d-swp-shell .ge5d-swp-next{width:30px!important;height:30px!important;}
  #servicos .ge5d-swp-card{padding:36px 20px!important;min-height:260px!important;}
  .ge-saloes-section .swiper-button-next,.ge-saloes-section .swiper-button-prev{display:flex!important;width:32px!important;height:32px!important;}
  .ge5d-nav-avatar{width:24px;height:24px;flex-basis:24px;}
  .ge5d-nav-usertext strong{max-width:78px;}
}
.ge5d-avatar img,.ge5d-client-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block;}
.ge5d-field input[type="file"]{padding:12px;background:var(--fived-panel);color:#e7ded2;border:1px solid rgba(255,255,255,.12);border-radius:10px;}


/* ═══════════════════════════════════════
   V105 — Anchor points globais
   ═══════════════════════════════════════ */
html{scroll-behavior:smooth;}
[id]{scroll-margin-top:108px;}
.ge5d-section[id],.ge-section[id],.gs-card[id],.gs-section[id],section[id],article[id]{scroll-margin-top:108px;}
@media(max-width:768px){[id],.ge5d-section[id],.ge-section[id],.gs-card[id],.gs-section[id],section[id],article[id]{scroll-margin-top:84px;}}


/* V52 — submenu cliente + chevron alinhado/rotativo */
.ge5d-nav-dd > a .chev{
  display:inline-grid!important;
  place-items:center!important;
  width:16px!important;
  height:16px!important;
  min-width:16px!important;
  margin:0!important;
  padding:0!important;
  position:relative!important;
  top:0!important;
  line-height:1!important;
  font-size:0!important;
  color:var(--fived-gold)!important;
  transform:none!important;
  transform-origin:center!important;
}
.ge5d-nav-dd > a .chev::before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  width:6px!important;
  height:6px!important;
  border-right:1.6px solid currentColor!important;
  border-bottom:1.6px solid currentColor!important;
  transform:translate(-50%,-50%) rotate(45deg)!important;
  transform-origin:center!important;
  transition:transform .18s ease!important;
}
.ge5d-nav-dd:hover > a .chev::before,
.ge5d-nav-dd:focus-within > a .chev::before,
.ge5d-nav-dd.ge5d-dd-open > a .chev::before{
  transform:translate(-50%,-50%) rotate(225deg)!important;
}
.ge5d-nav-dd > a{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
}

/* 5D v2.5.203 — CTA Reservar centrado no menu público */
.ge5d-nav-links a.ge5d-nav-cta,
.ge5d-nav-cta{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  line-height:1!important;
  min-height:44px!important;
}
.ge5d-nav-links a.ge5d-nav-cta::after,
.ge5d-nav-cta::after{display:none!important;content:none!important;}

/* GE 2.5.215 - chevron anterior, apenas recentrado */
nav.ge5d-nav .ge5d-nav-links > li.ge5d-nav-dd > a{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
}
nav.ge5d-nav .ge5d-nav-links > li.ge5d-nav-dd > a .chev{
  display:inline-grid!important;
  place-items:center!important;
  position:relative!important;
  width:11px!important;
  min-width:11px!important;
  height:11px!important;
  margin:0!important;
  padding:0!important;
  line-height:1!important;
  font-size:0!important;
  color:var(--fived-gold)!important;
  transform:none!important;
  top:0!important;
}
nav.ge5d-nav .ge5d-nav-links > li.ge5d-nav-dd > a .chev::after{
  display:none!important;
  content:none!important;
}
nav.ge5d-nav .ge5d-nav-links > li.ge5d-nav-dd > a .chev::before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  width:5px!important;
  height:5px!important;
  border:0!important;
  border-right:1.6px solid currentColor!important;
  border-bottom:1.6px solid currentColor!important;
  background:transparent!important;
  transform:translate(-50%,-72%) rotate(45deg)!important;
  transform-origin:center!important;
  transition:transform .18s ease!important;
}
nav.ge5d-nav .ge5d-nav-links > li.ge5d-nav-dd:hover > a .chev::before,
nav.ge5d-nav .ge5d-nav-links > li.ge5d-nav-dd:focus-within > a .chev::before,
nav.ge5d-nav .ge5d-nav-links > li.ge5d-nav-dd.ge5d-dd-open > a .chev::before{
  transform:translate(-50%,-28%) rotate(225deg)!important;
}

/* GE 2.5.216 - cards de servicos mantem a posicao no hover */
#servicos .ge5d-swp-card:hover,
#servicos .ge5d-swp-panel[id$="-extras"] .ge5d-swp-card:hover{
  transform:none!important;
}

/* GE 2.5.217 - extras usam a mesma linha superior animada dos tipos de eventos */
#servicos .ge5d-swp-panel[id$="-extras"] .ge5d-swp-card::before{
  left:50%!important;
  transform:translateX(-50%)!important;
  width:0!important;
}
#servicos .ge5d-swp-panel[id$="-extras"] .ge5d-swp-card:hover::before{
  width:100%!important;
}

/* GE 2.5.218 - cards extras com a mesma moldura dos tipos de eventos */
#servicos .ge5d-swp-panel[id$="-extras"] .ge5d-swp-card{
  border:1px solid rgba(255,255,255,.055)!important;
  border-radius:14px!important;
  background:rgba(255,255,255,.015)!important;
  box-shadow:none!important;
}
#servicos .ge5d-swp-panel[id$="-extras"] .ge5d-swp-card:hover{
  border-color:rgba(96,165,250,.28)!important;
  background:rgba(201,168,76,.035)!important;
  box-shadow:none!important;
}

/* GE 2.5.219 - servicos mobile a 100vw e setas alinhadas ao centro do card */
@media (max-width: 768px){
  #servicos .ge5d-swp-shell{
    width:100vw!important;
    max-width:100vw!important;
    margin-left:calc(50% - 50vw)!important;
    margin-right:calc(50% - 50vw)!important;
    padding:0!important;
    overflow:visible!important;
  }
  #servicos .ge5d-swp-shell .swiper{
    width:100vw!important;
    padding-left:0!important;
    padding-right:0!important;
    padding-bottom:72px!important;
    overflow:hidden!important;
  }
  #servicos .ge5d-swp-shell .swiper-slide{
    width:100vw!important;
    display:flex!important;
  }
  #servicos .ge5d-swp-card{
    width:100vw!important;
    max-width:100vw!important;
    min-height:284px!important;
  }
  #servicos .ge5d-swp-desc{
    margin-top:12px!important;
  }
  #servicos .ge5d-swp-shell .ge5d-swp-prev,
  #servicos .ge5d-swp-shell .ge5d-swp-next{
    display:flex!important;
    width:32px!important;
    height:32px!important;
    top:142px!important;
    transform:translateY(-50%)!important;
    margin:0!important;
  }
  #servicos .ge5d-swp-shell .ge5d-swp-prev::after,
  #servicos .ge5d-swp-shell .ge5d-swp-next::after{
    font-size:13px!important;
    line-height:1!important;
  }
  #servicos .ge5d-swp-shell .ge5d-swp-pagination{
    bottom:38px!important;
  }
  #servicos .ge5d-swp-shell .ge5d-swp-prev{left:28px!important;right:auto!important;}
  #servicos .ge5d-swp-shell .ge5d-swp-next{right:28px!important;left:auto!important;}
}

/* GE 2.5.220 - saloes mobile em 100vw */
@media(max-width:768px){
  #saloes .ge-saloes-section,
  .ge-saloes-section{
    width:100vw!important;
    max-width:100vw!important;
    margin-left:calc(50% - 50vw)!important;
    margin-right:calc(50% - 50vw)!important;
    overflow:hidden!important;
  }
  #saloes .ge-saloes-section .swiper,
  .ge-saloes-section .swiper,
  #saloes .ge-saloes-swiper,
  .ge-saloes-swiper{
    width:100vw!important;
    max-width:100vw!important;
    overflow:hidden!important;
  }
  #saloes .ge-saloes-section .swiper-pagination,
  .ge-saloes-section .swiper-pagination{
    position:relative!important;
    left:auto!important;
    right:auto!important;
    bottom:auto!important;
    top:auto!important;
    width:100%!important;
    margin:18px auto 0!important;
    transform:none!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:8px!important;
    z-index:2!important;
  }
  #saloes .ge-saloes-section .swiper-slide,
  .ge-saloes-section .swiper-slide{
    width:100vw!important;
  }
  #saloes .ge-salao-card,
  .ge-salao-card{
    width:100vw!important;
    max-width:100vw!important;
    padding-bottom:132%!important;
    border-radius:0!important;
  }
  #saloes .ge-salao-address,
  .ge-salao-address{
    position:relative!important;
    display:block!important;
    min-width:0!important;
    padding-left:18px!important;
    color:#fff!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  #saloes .ge-salao-address-icon,
  .ge-salao-address-icon{
    position:absolute!important;
    left:0!important;
    top:50%!important;
    transform:translateY(-50%)!important;
    background:#fff!important;
  }
  #saloes .ge-salao-link,
  .ge-salao-link{
    font-size:12px!important;
    font-weight:800!important;
    letter-spacing:3.2px!important;
  }
  #saloes .ge-saloes-section .swiper-button-prev,
  .ge-saloes-section .swiper-button-prev{
    left:28px!important;
    right:auto!important;
  }
  #saloes .ge-saloes-section .swiper-button-next,
  .ge-saloes-section .swiper-button-next{
    right:28px!important;
    left:auto!important;
  }
}
@media(max-width:768px){
  .ge5d-nav{
    position:fixed!important;
    top:0!important;
    left:0!important;
    right:0!important;
    width:100vw!important;
    max-width:none!important;
    height:76px!important;
    min-height:76px!important;
    padding:14px 18px!important;
    display:block!important;
    background:rgba(6,6,6,.96)!important;
    border-bottom:1px solid rgba(232,212,139,.16)!important;
    box-shadow:0 16px 48px rgba(0,0,0,.52)!important;
    backdrop-filter:blur(18px)!important;
    transition:background-color .2s ease,box-shadow .2s ease!important;
  }
  .ge5d-nav.scrolled{
    top:0!important;
    height:76px!important;
    min-height:76px!important;
    padding:14px 18px!important;
  }
  .ge5d-nav .ge5d-nav-logo{
    position:absolute!important;
    left:18px!important;
    top:50%!important;
    transform:translateY(-50%)!important;
    line-height:0!important;
  }
  .ge5d-nav .ge5d-nav-logo img{
    height:46px!important;
    width:auto!important;
    display:block!important;
  }
  .ge5d-nav .ge5d-nav-links{
    display:none!important;
  }
  .ge5d-nav .ge5d-notification-trigger-mobile{
    width:42px!important;
    height:42px!important;
    min-width:42px!important;
    min-height:42px!important;
    margin:0!important;
    padding:0!important;
    display:grid!important;
    place-items:center!important;
    position:absolute!important;
    right:72px!important;
    top:50%!important;
    transform:translateY(-50%)!important;
  }
  .ge5d-nav .ge5d-notification-trigger-mobile:hover,
  .ge5d-nav .ge5d-notification-trigger-mobile:focus-visible,
  .ge5d-nav .ge5d-notification-trigger-mobile:active{
    transform:translateY(-50%)!important;
  }
  .ge5d-nav .ge5d-notification-trigger-mobile svg{
    width:22px!important;
    height:22px!important;
    display:block!important;
  }
  .ge5d-nav .ge5d-hamb{
    width:44px!important;
    height:44px!important;
    min-width:44px!important;
    min-height:44px!important;
    margin:0!important;
    padding:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    position:absolute!important;
    right:18px!important;
    top:50%!important;
    transform:translateY(-50%)!important;
  }
  .ge5d-nav .ge5d-hamb:hover,
  .ge5d-nav .ge5d-hamb:focus-visible,
  .ge5d-nav .ge5d-hamb:active{
    transform:translateY(-50%)!important;
  }
}
